summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.dstreamrc18
-rw-r--r--BUGS46
-rw-r--r--Documentation/CodingStyle.pod19
-rw-r--r--Documentation/Makefile11
-rw-r--r--Documentation/Rules.make6
-rw-r--r--Documentation/Vocab-British21
-rw-r--r--Documentation/Vocab-French237
-rw-r--r--Documentation/Vocab-German8
-rw-r--r--Documentation/lelie_icon.gifbin2296 -> 0 bytes
-rw-r--r--Documentation/lelie_icon.xpm141
-rw-r--r--Documentation/lelie_logo.gifbin4430 -> 0 bytes
-rw-r--r--Documentation/lelie_logo.xpm214
-rw-r--r--Documentation/lelieblond.xpm845
-rw-r--r--Documentation/links.pod7
-rw-r--r--Documentation/mudela-man.doc8
-rw-r--r--NEWS23
-rw-r--r--TODO6
-rw-r--r--VERSION4
-rwxr-xr-xbin/make-patch4
-rw-r--r--bin/make-website.in11
-rw-r--r--flower/NEWS2
-rw-r--r--flower/choleski.cc100
-rw-r--r--flower/data-file.cc16
-rw-r--r--flower/diagonal-storage.cc92
-rw-r--r--flower/directed-graph.cc60
-rw-r--r--flower/dstream.cc56
-rw-r--r--flower/flower-debug.cc5
-rw-r--r--flower/flower-version.cc2
-rw-r--r--flower/full-storage.cc62
-rw-r--r--flower/include/acursor.hh10
-rw-r--r--flower/include/assoc-iter.hh10
-rw-r--r--flower/include/assoc.hh36
-rw-r--r--flower/include/choleski.hh14
-rw-r--r--flower/include/compare.hh38
-rw-r--r--flower/include/cursor.hh18
-rw-r--r--flower/include/cursor.icc40
-rw-r--r--flower/include/cursor.tcc28
-rw-r--r--flower/include/data-file.hh16
-rw-r--r--flower/include/diagonal-storage.hh42
-rw-r--r--flower/include/directed-graph.hh14
-rw-r--r--flower/include/dstream.hh10
-rw-r--r--flower/include/flower-debug.hh6
-rw-r--r--flower/include/fproto.hh3
-rw-r--r--flower/include/full-storage.hh38
-rw-r--r--flower/include/full-storage.icc26
-rw-r--r--flower/include/handle.hh16
-rw-r--r--flower/include/interval.hh38
-rw-r--r--flower/include/interval.tcc50
-rw-r--r--flower/include/iterate.hh10
-rw-r--r--flower/include/lgetopt.hh8
-rw-r--r--flower/include/libc-extension.hh12
-rw-r--r--flower/include/link.hh10
-rw-r--r--flower/include/link.icc32
-rw-r--r--flower/include/list.hh14
-rw-r--r--flower/include/list.icc10
-rw-r--r--flower/include/list.tcc45
-rw-r--r--flower/include/matrix-storage.hh52
-rw-r--r--flower/include/matrix.hh50
-rw-r--r--flower/include/parray.hh32
-rw-r--r--flower/include/path.hh6
-rw-r--r--flower/include/pcursor.hh20
-rw-r--r--flower/include/pcursor.tcc4
-rw-r--r--flower/include/plist.hh12
-rw-r--r--flower/include/plist.icc6
-rw-r--r--flower/include/plist.tcc10
-rw-r--r--flower/include/pointer.hh4
-rw-r--r--flower/include/pointer.tcc10
-rw-r--r--flower/include/pqueue.hh36
-rw-r--r--flower/include/priorities.hh8
-rw-r--r--flower/include/rational.hh2
-rw-r--r--flower/include/real.hh4
-rw-r--r--flower/include/scalar.hh12
-rw-r--r--flower/include/string-convert.hh55
-rw-r--r--flower/include/string-data.hh16
-rw-r--r--flower/include/string-data.icc54
-rw-r--r--flower/include/string-handle.hh10
-rw-r--r--flower/include/string-handle.icc28
-rw-r--r--flower/include/string.hh63
-rw-r--r--flower/include/text-db.hh6
-rw-r--r--flower/include/text-stream.hh18
-rw-r--r--flower/include/unionfind.hh10
-rw-r--r--flower/include/varray.hh98
-rw-r--r--flower/include/vector.hh42
-rw-r--r--flower/include/virtual-methods.hh18
-rw-r--r--flower/interval.cc2
-rw-r--r--flower/lgetopt.cc40
-rw-r--r--flower/libc-extension.cc28
-rw-r--r--flower/matrix-debug.cc6
-rw-r--r--flower/matrix-storage.cc68
-rw-r--r--flower/matrix.cc186
-rw-r--r--flower/path.cc35
-rw-r--r--flower/rational.cc4
-rw-r--r--flower/scalar.cc16
-rw-r--r--flower/string-convert.cc134
-rw-r--r--flower/string.cc126
-rw-r--r--flower/stringtest.cc54
-rw-r--r--flower/stringutil.cc4
-rw-r--r--flower/text-db.cc8
-rw-r--r--flower/text-stream.cc10
-rw-r--r--flower/unionfind.cc12
-rw-r--r--flower/vector.cc14
-rw-r--r--input/gallina.ly6
-rw-r--r--input/s.ly43
-rw-r--r--input/standchen.tex1
-rw-r--r--input/wohltemperirt.ly6
-rw-r--r--lib/duration.cc7
-rw-r--r--lib/include/duration.hh1
-rw-r--r--lib/include/source.hh4
-rw-r--r--lib/template.cc14
-rw-r--r--lily/VERSION2
-rw-r--r--lily/atom.cc22
-rw-r--r--lily/audio-column.cc12
-rw-r--r--lily/audio-item.cc38
-rw-r--r--lily/audio-score.cc64
-rw-r--r--lily/audio-staff.cc8
-rw-r--r--lily/axis-group-item.cc8
-rw-r--r--lily/axis-group-spanner.cc26
-rw-r--r--lily/axis-group.cc24
-rw-r--r--lily/axis.cc2
-rw-r--r--lily/bar-column-grav.cc20
-rw-r--r--lily/bar-column.cc10
-rw-r--r--lily/bar-grav.cc12
-rw-r--r--lily/bar-number-grav.cc10
-rw-r--r--lily/bar.cc8
-rw-r--r--lily/beam.cc146
-rw-r--r--lily/bow.cc18
-rw-r--r--lily/boxes.cc2
-rw-r--r--lily/break.cc46
-rw-r--r--lily/clef-grav.cc28
-rw-r--r--lily/clef-item.cc14
-rw-r--r--lily/col-info.cc14
-rw-r--r--lily/colhpos.cc18
-rw-r--r--lily/collision-grav.cc10
-rw-r--r--lily/collision.cc65
-rw-r--r--lily/command-request.cc72
-rw-r--r--lily/crescendo.cc16
-rw-r--r--lily/debug.cc20
-rw-r--r--lily/dimen.cc14
-rw-r--r--lily/dynamic-grav.cc48
-rw-r--r--lily/elem-group.cc38
-rw-r--r--lily/engraver-group.cc122
-rw-r--r--lily/engraver.cc30
-rw-r--r--lily/general-script-def.cc16
-rw-r--r--lily/global-gravs.cc20
-rw-r--r--lily/global-performers.cc10
-rw-r--r--lily/global-translator.cc14
-rw-r--r--lily/gourlay-breaking.cc46
-rw-r--r--lily/grouping.cc158
-rw-r--r--lily/head-column.cc30
-rw-r--r--lily/head-grav.cc18
-rw-r--r--lily/horizontal-align-item.cc46
-rw-r--r--lily/idealspacing.cc8
-rw-r--r--lily/identifier.cc117
-rw-r--r--lily/include/audio-column.hh6
-rw-r--r--lily/include/audio-item.hh18
-rw-r--r--lily/include/audio-score.hh12
-rw-r--r--lily/include/audio-staff.hh4
-rw-r--r--lily/include/axes.hh2
-rw-r--r--lily/include/axis-group.hh18
-rw-r--r--lily/include/bar-column-grav.hh2
-rw-r--r--lily/include/bar-column.hh4
-rw-r--r--lily/include/bar-grav.hh2
-rw-r--r--lily/include/bar-number-grav.hh2
-rw-r--r--lily/include/beam.hh8
-rw-r--r--lily/include/boxes.hh16
-rw-r--r--lily/include/break.hh12
-rw-r--r--lily/include/clef-grav.hh10
-rw-r--r--lily/include/clef-item.hh4
-rw-r--r--lily/include/col-info.hh2
-rw-r--r--lily/include/colhpos.hh2
-rw-r--r--lily/include/collision-grav.hh2
-rw-r--r--lily/include/collision.hh2
-rw-r--r--lily/include/command-request.hh28
-rw-r--r--lily/include/debug.hh12
-rw-r--r--lily/include/dimen.hh6
-rw-r--r--lily/include/dynamic-grav.hh6
-rw-r--r--lily/include/elem-group-item.hh6
-rw-r--r--lily/include/elem-group.hh12
-rw-r--r--lily/include/engraver-group.hh24
-rw-r--r--lily/include/engraver.hh32
-rw-r--r--lily/include/general-script-def.hh6
-rw-r--r--lily/include/global-performers.hh10
-rw-r--r--lily/include/global-translator.hh10
-rw-r--r--lily/include/grouping.hh28
-rw-r--r--lily/include/head-column.hh8
-rw-r--r--lily/include/head-grav.hh2
-rw-r--r--lily/include/horizontal-align-item.hh8
-rw-r--r--lily/include/horizontal-group-item.hh6
-rw-r--r--lily/include/identifier.hh44
-rw-r--r--lily/include/ineq-constrained-qp.hh16
-rw-r--r--lily/include/input-translator.hh16
-rw-r--r--lily/include/item.hh4
-rw-r--r--lily/include/key-grav.hh6
-rw-r--r--lily/include/key-item.hh8
-rw-r--r--lily/include/key-performer.hh2
-rw-r--r--lily/include/key.hh10
-rw-r--r--lily/include/keyword.hh4
-rw-r--r--lily/include/leastsquares.hh2
-rw-r--r--lily/include/line-group-grav.hh2
-rw-r--r--lily/include/line-spacer.hh8
-rw-r--r--lily/include/linespace.hh24
-rw-r--r--lily/include/local-key-grav.hh2
-rw-r--r--lily/include/local-key-item.hh12
-rw-r--r--lily/include/lookup.hh52
-rw-r--r--lily/include/lyric-engraver.hh2
-rw-r--r--lily/include/lyric-performer.hh2
-rw-r--r--lily/include/main.hh8
-rw-r--r--lily/include/meter-grav.hh4
-rw-r--r--lily/include/meter-performer.hh2
-rw-r--r--lily/include/meter.hh2
-rw-r--r--lily/include/midi-def.hh10
-rw-r--r--lily/include/midi-item.hh40
-rw-r--r--lily/include/midi-stream.hh8
-rw-r--r--lily/include/midi-walker.hh10
-rw-r--r--lily/include/misc.hh8
-rw-r--r--lily/include/molecule.hh20
-rw-r--r--lily/include/music-iterator.hh22
-rw-r--r--lily/include/music-list.hh10
-rw-r--r--lily/include/music.hh4
-rw-r--r--lily/include/musical-request.hh26
-rw-r--r--lily/include/my-lily-lexer.hh18
-rw-r--r--lily/include/my-lily-parser.hh28
-rw-r--r--lily/include/note-column-grav.hh6
-rw-r--r--lily/include/note-column.hh4
-rw-r--r--lily/include/note-head.hh6
-rw-r--r--lily/include/note-performer.hh2
-rw-r--r--lily/include/notename-table.hh4
-rw-r--r--lily/include/notename.hh8
-rw-r--r--lily/include/offset.hh6
-rw-r--r--lily/include/p-col.hh10
-rw-r--r--lily/include/p-score.hh24
-rw-r--r--lily/include/paper-def.hh10
-rw-r--r--lily/include/parseconstruct.hh14
-rw-r--r--lily/include/performer-group-performer.hh12
-rw-r--r--lily/include/performer.hh6
-rw-r--r--lily/include/qlp.hh10
-rw-r--r--lily/include/qlpsolve.hh22
-rw-r--r--lily/include/request.hh10
-rw-r--r--lily/include/rest-collision-grav.hh5
-rw-r--r--lily/include/rest-collision.hh7
-rw-r--r--lily/include/rest-column.hh2
-rw-r--r--lily/include/score-align-grav.hh2
-rw-r--r--lily/include/score-column.hh4
-rw-r--r--lily/include/score-elem-info.hh2
-rw-r--r--lily/include/score-elem.hh34
-rw-r--r--lily/include/score-grav.hh16
-rw-r--r--lily/include/score-halign-grav.hh2
-rw-r--r--lily/include/score-performer.hh10
-rw-r--r--lily/include/score.hh12
-rw-r--r--lily/include/scoreline.hh8
-rw-r--r--lily/include/script-column.hh8
-rw-r--r--lily/include/script-def.hh6
-rw-r--r--lily/include/script-grav.hh2
-rw-r--r--lily/include/script.hh6
-rw-r--r--lily/include/slur-grav.hh6
-rw-r--r--lily/include/slur.hh4
-rw-r--r--lily/include/span-bar-grav.hh2
-rw-r--r--lily/include/span-bar.hh8
-rw-r--r--lily/include/span-score-bar.hh2
-rw-r--r--lily/include/spanner.hh4
-rw-r--r--lily/include/spring-spacer.hh28
-rw-r--r--lily/include/staff-performer.hh6
-rw-r--r--lily/include/staff-side.hh6
-rw-r--r--lily/include/staff-sym-grav.hh3
-rw-r--r--lily/include/staff-sym.hh4
-rw-r--r--lily/include/stem-beam-grav.hh6
-rw-r--r--lily/include/stem.hh8
-rw-r--r--lily/include/super-elem.hh4
-rw-r--r--lily/include/swallow-grav.hh4
-rw-r--r--lily/include/swallow-perf.hh2
-rw-r--r--lily/include/symbol.hh6
-rw-r--r--lily/include/symtable.hh6
-rw-r--r--lily/include/tex-stream.hh4
-rw-r--r--lily/include/tex.hh8
-rw-r--r--lily/include/text-def.hh6
-rw-r--r--lily/include/text-grav.hh6
-rw-r--r--lily/include/text-item.hh4
-rw-r--r--lily/include/text-spanner.hh6
-rw-r--r--lily/include/tie-grav.hh8
-rw-r--r--lily/include/tie.hh4
-rw-r--r--lily/include/time-description.hh14
-rw-r--r--lily/include/timing-grav.hh4
-rw-r--r--lily/include/translator.hh6
-rw-r--r--lily/include/vertical-align-elem.hh6
-rw-r--r--lily/include/vertical-align-grav.hh2
-rw-r--r--lily/include/vertical-align-spanner.hh2
-rw-r--r--lily/include/vertical-group-spanner.hh6
-rw-r--r--lily/include/voice-group-gravs.hh8
-rw-r--r--lily/ineq-constrained-qp.cc100
-rw-r--r--lily/input-translator.cc50
-rw-r--r--lily/item.cc26
-rw-r--r--lily/key-grav.cc26
-rw-r--r--lily/key-item.cc46
-rw-r--r--lily/key-performer.cc16
-rw-r--r--lily/key.cc16
-rw-r--r--lily/keyword.cc18
-rw-r--r--lily/leastsquares.cc12
-rw-r--r--lily/lexer.l30
-rw-r--r--lily/lily-version.cc2
-rw-r--r--lily/line-group-grav.cc14
-rw-r--r--lily/local-key-grav.cc42
-rw-r--r--lily/local-key-item.cc50
-rw-r--r--lily/lookup.cc156
-rw-r--r--lily/lyric-grav.cc14
-rw-r--r--lily/lyric-performer.cc12
-rw-r--r--lily/main.cc60
-rw-r--r--lily/meter-grav.cc50
-rw-r--r--lily/meter-performer.cc16
-rw-r--r--lily/meter.cc8
-rw-r--r--lily/midi-def.cc32
-rw-r--r--lily/midi-item.cc197
-rw-r--r--lily/midi-stream.cc26
-rw-r--r--lily/midi-walker.cc50
-rw-r--r--lily/misc.cc6
-rw-r--r--lily/molecule.cc84
-rw-r--r--lily/music-iterator.cc132
-rw-r--r--lily/music-list.cc38
-rw-r--r--lily/music.cc12
-rw-r--r--lily/musical-request.cc78
-rw-r--r--lily/my-lily-lexer.cc48
-rw-r--r--lily/my-lily-parser.cc98
-rw-r--r--lily/note-column-grav.cc44
-rw-r--r--lily/note-column.cc8
-rw-r--r--lily/note-performer.cc14
-rw-r--r--lily/note.cc26
-rw-r--r--lily/notehead.cc38
-rw-r--r--lily/notename-table.cc10
-rw-r--r--lily/p-col.cc42
-rw-r--r--lily/p-score.cc122
-rw-r--r--lily/paper-def.cc52
-rw-r--r--lily/parser.y129
-rw-r--r--lily/performer-group-performer.cc62
-rw-r--r--lily/performer.cc14
-rw-r--r--lily/qlp.cc46
-rw-r--r--lily/qlpsolve.cc64
-rw-r--r--lily/request.cc14
-rw-r--r--lily/rest-collision-grav.cc34
-rw-r--r--lily/rest-collision.cc46
-rw-r--r--lily/rest-column.cc2
-rw-r--r--lily/score-align-grav.cc14
-rw-r--r--lily/score-align-gravs.cc2
-rw-r--r--lily/score-column.cc28
-rw-r--r--lily/score-elem-info.cc2
-rw-r--r--lily/score-elem.cc206
-rw-r--r--lily/score-grav.cc62
-rw-r--r--lily/score-halign-grav.cc12
-rw-r--r--lily/score-performer.cc28
-rw-r--r--lily/score.cc64
-rw-r--r--lily/scoreline.cc48
-rw-r--r--lily/scores.cc10
-rw-r--r--lily/script-column.cc42
-rw-r--r--lily/script-def.cc10
-rw-r--r--lily/script-grav.cc16
-rw-r--r--lily/script.cc28
-rw-r--r--lily/slur-grav.cc32
-rw-r--r--lily/slur.cc26
-rw-r--r--lily/span-bar-grav.cc18
-rw-r--r--lily/span-bar.cc40
-rw-r--r--lily/span-score-bar.cc6
-rw-r--r--lily/spanner.cc54
-rw-r--r--lily/spring-spacer.cc315
-rw-r--r--lily/staff-info.cc2
-rw-r--r--lily/staff-performer.cc28
-rw-r--r--lily/staff-side.cc32
-rw-r--r--lily/staff-sym-grav.cc19
-rw-r--r--lily/staff-sym.cc14
-rw-r--r--lily/stem-beam-grav.cc58
-rw-r--r--lily/stem.cc76
-rw-r--r--lily/super-elem.cc10
-rw-r--r--lily/swallow-grav.cc2
-rw-r--r--lily/symbol.cc8
-rw-r--r--lily/symtable.cc30
-rw-r--r--lily/template1.cc10
-rw-r--r--lily/template2.cc2
-rw-r--r--lily/template3.cc4
-rw-r--r--lily/template4.cc3
-rw-r--r--lily/template5.cc6
-rw-r--r--lily/template6.cc4
-rw-r--r--lily/template7.cc4
-rw-r--r--lily/template8.cc4
-rw-r--r--lily/tex-beam.cc62
-rw-r--r--lily/tex-slur.cc98
-rw-r--r--lily/tex-stream.cc20
-rw-r--r--lily/tex.cc24
-rw-r--r--lily/text-def.cc18
-rw-r--r--lily/text-grav.cc20
-rw-r--r--lily/text-item.cc16
-rw-r--r--lily/text-spanner.cc24
-rw-r--r--lily/tie-grav.cc38
-rw-r--r--lily/tie.cc14
-rw-r--r--lily/time-description.cc56
-rw-r--r--lily/timing-grav.cc4
-rw-r--r--lily/translator.cc2
-rw-r--r--lily/vertical-align-elem.cc26
-rw-r--r--lily/vertical-align-grav.cc18
-rw-r--r--lily/voice-group-gravs.cc10
-rw-r--r--lily/warn.cc14
-rw-r--r--lily/word-wrap.cc22
-rw-r--r--make/lilypond.lsm8
-rw-r--r--make/lilypond.spec6
-rw-r--r--mi2mu/TODO92
-rw-r--r--mi2mu/include/lily-stream.hh35
-rw-r--r--mi2mu/include/mi2mu-proto.hh26
-rw-r--r--mi2mu/include/mi2mu.hh62
-rw-r--r--mi2mu/include/midi-event.hh100
-rw-r--r--mi2mu/include/midi-global.hh30
-rw-r--r--mi2mu/include/midi-score.hh28
-rw-r--r--mi2mu/include/midi-track.hh65
-rw-r--r--mi2mu/include/midi-voice.hh32
-rw-r--r--mi2mu/include/my-midi-lexer.hh23
-rw-r--r--mi2mu/include/my-midi-parser.hh53
-rw-r--r--mi2mu/include/track-column.hh27
-rw-r--r--mi2mu/lily-stream.cc143
-rw-r--r--mi2mu/main.cc298
-rw-r--r--mi2mu/mi2mu-version.cc1
-rw-r--r--mi2mu/midi-event.cc227
-rw-r--r--mi2mu/midi-lexer.l328
-rw-r--r--mi2mu/midi-parser.y190
-rw-r--r--mi2mu/midi-score.cc79
-rw-r--r--mi2mu/midi-track.cc536
-rw-r--r--mi2mu/midi-voice.cc102
-rw-r--r--mi2mu/my-midi-lexer.cc36
-rw-r--r--mi2mu/my-midi-parser.cc265
-rw-r--r--mi2mu/template.cc27
-rw-r--r--mi2mu/track-column.cc27
-rw-r--r--mi2mu/version.cc9
426 files changed, 6966 insertions, 6940 deletions
diff --git a/.dstreamrc b/.dstreamrc
index ae0b1b1143..b4b3248203 100644
--- a/.dstreamrc
+++ b/.dstreamrc
@@ -15,25 +15,21 @@ Matrix 1
# flower lib
-File_path 0
+File_path 1
Atom 0
Bar 0
Beam 0
Change_iterator 0
Chord 0
-Chord_iterator 0
+Chord_iterator 1
Clef_item 0
Col_configuration 0
Colinfo 0
Colinfo 0
Collision 0
-
-# E l b e ment? search/replace typo.
-# Yeah. kind of. Looks cute though
-Elbement_group 0
-Engraver 0
-Engraver_group_engraver 0
+Engraver 1
+Engraver_group_engraver 1
Group_change_req 0
Head_column 0
Idealspacing 0
@@ -41,13 +37,13 @@ Ineq_constrained_qp 0
Input_translator 0
Item 0
Key_item 0
-Lookup 0
+Lookup 1
Line_spacer 0
Melodic_req 0
Midi_def 0
Mixed_qp 0
Music 0
-Music_iterator 0
+Music_iterator 1
My_lily_lexer 1
Note_head 0
Note_performer 0
@@ -59,7 +55,7 @@ Paperdef 0
Performer 0
Performer_group_performer 0
Request 0
-Request_iterator 0
+Request_iterator 1
Rest_collision 0
Rest_collision_engraver 0
Rest_req 0
diff --git a/BUGS b/BUGS
index 1f811c90c9..c5f7e685f6 100644
--- a/BUGS
+++ b/BUGS
@@ -2,10 +2,46 @@ Document reintroduced deficiencies.
* placement of bar-numbers
-*
+****************
+vi1=\melodic{
+ \meter 4/4;
+ \octave c'';
-hw:~/musix/spacer/Documentation/out$ LILYINCLUDE=../../input lilypond -o wohltemperirt ../../input/wohltemperirt.ly
+ B8 G G G16 A B8 G G G16 A |
+
+}
-GNU LilyPond 0.1.7 #10/FlowerLib 1.1.26 #1
-Parsing ... [/home/hw/share/lilypond/init//symbol.ly[/home/hw/share/lilypond/init//dynamic.ly][/home/hw/share/lilypond/init//dutch.ly][/home/hw/share/lilypond/init//script.ly][/home/hw/share/lilypond/init//paper16.ly[/home/hw/share/lilypond/init//table16.ly^[[B][/home/hw/share/lilypond/init//engraver.ly]][/home/hw/share/lilypond/init//midi.lySegmentation fault (core dumped)
-hw:~/musix/spacer/Documentation/out$
+vi2=\melodic{
+ \meter 4/4;
+ \octave c'';
+
+ r16
+}
+
+%{
+bc=\melodic{
+ \clef "bass";
+ \meter 4/4;
+ \octave c;
+
+ G1 |
+}
+%}
+
+\score{
+ < \multi 3;
+ \vi1
+ \vi2
+
+ >
+
+ \paper{
+ geometric=1.2;
+ unitspace=8.\mm;
+ linewidth=18.\cm;
+ gourlay_maxmeasures=4.;
+ gourlay_energybound = 70000.;
+ basicspace = 2.8\pt;
+ }
+}
+***************************
diff --git a/Documentation/CodingStyle.pod b/Documentation/CodingStyle.pod
index 9f87b123bc..db238815e6 100644
--- a/Documentation/CodingStyle.pod
+++ b/Documentation/CodingStyle.pod
@@ -4,7 +4,7 @@ CodingStyle - standards while programming for GNU LilyPond
=head1 DESCRIPTION
-Please use these standards while doing programming for GNU LilyPond
+We use these standards while doing programming for GNU LilyPond
Functions and methods do not return errorcodes, but use assert for
checking status.
@@ -90,19 +90,23 @@ If you like using font-lock, you can also add this to your F<.emacs>:
This_is_a_class
AClass_name (for Abbreviation_class_name)
-=head2 DATA MEMBERS
+=head2 MEMBERS
Class::member()
Type Class::member_type_
+ Type Class::member_type()
the C<type> is a Hungarian notation postfix for C<Type>. See below
=head2 MACROS
+Macros should be written completely in uppercase
+
The code should not be compilable if proper macro declarations are not
included.
-Don't laugh. It took us a whole figure out one of these bugs.
+Don't laugh. It took us a whole evening/night to figure out one of
+these bugs.
=head2 BROKEN CODE
@@ -213,10 +217,11 @@ Another fun quote from Microsoft Secrets:
our source code, you also notice very few comments. Hungarian
gives us the ability to go in and read code..."
-
Wow! If you use Hungarian you don't have to document your software!
Just think of the hours I have wasted documenting while this "silver bullet"
-existed. I feel so stupid and ashamed!
+existed. I feel so stupid and ashamed! [Didn't MMM-Brooks say `There is
+no silver bullet?' --HWN]
+
=head2 Disadvantages
@@ -339,7 +344,7 @@ unsigned integer
=head2 Modifiers
The following types modify the meaning of the prefix.
-These are precede the prefixes:
+These are preceded by the prefixes:
=over 5
@@ -353,7 +358,7 @@ user built array.
=item C<c>
-const. Note that the proper order C<Type const> i.s.o. C<const Type>
+const. Note that the proper order is C<Type const> i.s.o. C<const Type>
=item C<C>
diff --git a/Documentation/Makefile b/Documentation/Makefile
index 1bc695200e..521caa1bb6 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -28,13 +28,18 @@ GROFFFILES = $(OUTPODFILES:.pod=.1)
HTMLFILES = $(OUTPODFILES:.pod=.html)
DVIFILES = $(addprefix $(outdir)/, $(DOCFILES:.doc=.dvi))
+
+default: do-doc
#
# list of distribution files:
#
-EXTRA_DISTFILES = lelie_icon.gif lelie_logo.gif $(DOCFILES)
-# $(wildcard Vocab*)
+XPMS=$(wildcard *.xpm)
+giffiles=$(XPMS:.xpm=.gif)
-default: do-doc
+gifs: $(addprefix $(outdir)/, $(giffiles))
+
+
+EXTRA_DISTFILES = $(XPMS) $(DOCFILES) $(wildcard Vocab*)
# don't do DVI files. They can only be made if lily is installed
do-doc: $(TEXTFILES)
diff --git a/Documentation/Rules.make b/Documentation/Rules.make
index bf32a8d067..5ac09affd2 100644
--- a/Documentation/Rules.make
+++ b/Documentation/Rules.make
@@ -4,8 +4,9 @@
.SUFFIXES: .pod .text .1 .html
-$(outdir)/%.xpm: %.gif
- giftopnm $< | ppmtoxpm > $@
+$(outdir)/%.gif: %.xpm
+ xpmtoppm $< | ppmtogif > $@
+
$(outdir)/%.ps: $(outdir)/%.dvi
dvips -o $@ $<
@@ -44,7 +45,6 @@ $(outdir)/%.gz: $(outdir)/%
name-stem= $(notdir $(basename $<))
$(outdir)/%.dvi: $(depth)/input/%.ly
(cd $(outdir); \
- rm lelie.midi ; \
lilypond -o $(name-stem) ../$< )
(cd $(outdir); \
if [ -f ../$(basename $< ).tex ]; \
diff --git a/Documentation/Vocab-British b/Documentation/Vocab-British
new file mode 100644
index 0000000000..d2b666a42f
--- /dev/null
+++ b/Documentation/Vocab-British
@@ -0,0 +1,21 @@
+# Musical vocabulary, correspondance from British.
+# Copyright (C) 1993 Free Software Foundation, Inc.
+# Neil Jerram <nj104@cus.cam.ac.uk>, 1993.
+
+British American
+
+breve double whole note
+crotchet quarter note
+crotchet rest quarter rest
+demisemiquaver thirty-second note
+demisemiquaver rest thirty-second rest
+hemidemisemiquaver sixty-fourth note
+hemidemisemiquaver rest sixty-fourth rest
+minim half note
+minim rest half rest
+quaver eighth note
+quaver rest eighth rest
+semibreve whole note
+semibreve rest whole rest
+semiquaver sixteenth note
+semiquaver rest sixteenth rest
diff --git a/Documentation/Vocab-French b/Documentation/Vocab-French
new file mode 100644
index 0000000000..74e46227a2
--- /dev/null
+++ b/Documentation/Vocab-French
@@ -0,0 +1,237 @@
+# Musical vocabulary, correspondance from French.
+# Copyright (C) 1993 Free Software Foundation, Inc.
+# Francois Pinard <pinard@iro.umontreal.ca>, 1993.
+
+# Thanks to Neil Jerram <nj104@cus.cam.ac.uk>.
+
+French American
+
+accentuation accentuation
+accolade brace
+accord chord
+accord de neuvième dominante chord of the dominant ninth
+accord de septième dominante chord of the dominant seventh
+accord parfait majeur perfect major chord
+accord parfait mineur perfect minor chord
+alto alto
+altération accidentelle accident; accidental alteration
+altération essentielle essential alteration
+appogiature appoggiatura
+appogiature brève short appoggiatura
+appogiature double double appoggiatura
+appogiature longue long appoggiatura
+appogiature simple simple appoggiatura
+armature [de la clé] key signature
+armure [de la clé] key signature
+arpège arpeggio
+augmenté (intervalle) augmented (interval)
+bariton baritone
+barre de mesure bar line
+barre de reprise repeat
+basse bass
+blanche half note
+bâton de pause (arbitrary number of bars' rest)
+bâton de pause four-bar rest
+bâton de pause two-bar rest
+bécarre natural sign
+bémol flat
+cadence cadence
+cadence harmonique harmonic cadence
+cadence mélodique melodic cadence
+caractère character
+chaîne de trilles chain of trills
+chevron chevron
+chiffrage time signature
+chiffre inférieur lower number
+chiffre supérieur upper number
+chiffres indicateurs time signature
+clé clef
+clé d'octave octave line
+clé d'ut middle C clef
+clé de fa bass clef
+clé de sol treble clef
+comma comma
+comma enharmonique
+comma pythagoricien
+comma syntonique
+consonance consonant interval; consonance
+contralto contralto
+contre-temps contro-time
+contre-temps irrégulier irregular contro-time
+contre-temps régulier regular contro-time
+coulé slur
+courbe rythmique rythmic curve
+cresendo opening angular bracket
+croche eighth note
+decrescendo closing angular bracket
+degré [de la gamme] degree [of the scale]
+demi-pause half rest
+demi-soupir eighth rest
+demi-ton semitone
+demi-ton chromatique chromatic semitone
+demi-ton diatonique diatonic semitone
+diapason pitch pipe; tuning fork
+diminué (intervalle) diminished (interval)
+dissonance dissonant interval; dissonance
+dièse sharp
+do C
+do central middle C
+doigté
+doigté de pédale
+dominante dominant
+double barre double bar line
+double bémol double flat
+double croche sixteenth note
+double dièse double sharp
+double triolet double triplet
+duolet duplet
+durée duration
+échelle d'octave octave line
+échelle musicale Musical Ladder
+enharmonie enharmony
+espace space
+extension d'intervalle extension of interval
+fa F
+figure de note kind of note
+figure de silence kind of rest
+fioriture cadenza
+forme du mode mineur ancien ancient form (diatonic minor scale)
+forme harmonique harmonic form (diatonic minor scale)
+forme mélodique melodic form (diatonic minor scale)
+gamme scale
+gamme chromatique chromatic scale
+gamme diatonique majeure diatonic major scale
+gamme diatonique mineure diatonic minor scale
+gammes enharmoniques enharmonic scales
+gammes relatives relative scales
+genre chromatique chromatic type
+genre diatonique diatonic type
+genre enharmonique enharmonic type
+groupe irrégulier irregular group
+grupetto turn; gruppetto
+hauteur pitch
+huitième de soupir thirty-second rest
+incise motive
+indication de pédale
+indication métronomique metronomic indication
+intervalle interval
+intervalle ascendant ascending interval
+intervalle composé compound interval
+intervalle descendant descending interval
+intervalle harmonique harmonic interval
+intervalle simple simple interval
+intervalles enharmoniques enharmonic intervals
+juste (intervalle) perfect (interval)
+la A
+liaison tie
+liaison rythmique legato curve
+ligne line
+ligne supplémentaire ledger line
+majeur (intervalle) major (interval)
+membre de phrase phrase member
+mesure bar; measure
+mesure artificielle artificial measure
+mesure composée compound measure
+mesure incomplète incomplete measure
+mesure irrégulière irregular measure
+mesure simple simple measure
+mezzo-soprano mezzo-soprano
+mi E
+mineur (intervalle) minor (interval)
+mode mode
+mode ecclésiastique
+mode majeur major mode
+mode mineur minor mode
+modulation modulation
+mordant mordent
+mouvement tempo; movement
+mouvement conjoint conjunct movement
+mouvement disjoint disjunct movement
+mouvement lent slow tempo
+mouvement modéré moderate tempo
+mouvement rapide fast tempo
+médiante mediant
+métronome metronome
+noire quarter note
+note note
+note doublement pointée double dotted note
+note modale modal note
+note pointée dotted note
+note tonale tonal note
+notes enharmoniques enharmonic notes
+nuance shading
+octave octave
+ornement embellishment; accessory
+partition score
+pause whole rest
+phrase phrase
+phrasé phrasing
+pizzicato dash over/below
+point dot
+point d'orgue pause
+point et liaison combinés dot and curved line combined
+pointillés
+portamento underline over/below
+portée staff
+portées staves
+quadruple croche sixty-fourth note
+quart de soupir sixteenth rest
+quarte fourth
+quartolet quadruplet
+quinte fifth
+registre register
+renversement d'intervalle inversion of interval
+renvoi return sign
+respiration artificial rest
+ronde whole note
+rythme rythm
+ré D
+seconde second
+seizième de soupir sixty-fourth rest
+sensible leading note
+septième seventh
+sextolet sextuplet
+si B
+signes indicateurs de nuance shading signs
+silence rest
+sixain sextuplet
+sixte sixth
+sol G
+soprano soprano
+soupir quarter rest
+sous-dominante subdominant
+sous-tonique subtonic
+staccato dot over/below
+sus-dominante superdominant
+sus-tonique supertonic
+syncope syncopation; upbeat
+syncope irrégulière irregular syncopation
+syncope régulière regular syncopation
+temps beat
+temps binaire binary beat
+temps faible weak beat
+temps fort strong beat
+temps ternaire ternary beat
+tempérament mésotonique meantone tuning
+tempérament égal tempered tuning
+tierce third
+ton tone
+tonalité tonality
+tonique tonic
+tons relatifs relative scales
+tons voisins adjacent keys
+transposition transposition
+transposition chromatique chromatic transposition
+transposition enharmonique enharmonic transposition
+trille trill; shake
+trille double double trill
+triolet triplet
+triple croche thirty-second note
+triton tritone
+ténor tenor
+tétracorde tetrachord
+unisson unison
+unité de mesure unit of measure
+unité de temps unit of beat
+ut C
+voix voice
diff --git a/Documentation/Vocab-German b/Documentation/Vocab-German
new file mode 100644
index 0000000000..488c4f0c49
--- /dev/null
+++ b/Documentation/Vocab-German
@@ -0,0 +1,8 @@
+# Musical vocabulary, correspondance from German.
+# Copyright (C) 1993 Free Software Foundation, Inc.
+# Francois Pinard <pinard@iro.umontreal.ca>, 1993.
+
+German American
+
+B B flat
+H B
diff --git a/Documentation/lelie_icon.gif b/Documentation/lelie_icon.gif
deleted file mode 100644
index 59b6c23680..0000000000
--- a/Documentation/lelie_icon.gif
+++ /dev/null
Binary files differ
diff --git a/Documentation/lelie_icon.xpm b/Documentation/lelie_icon.xpm
new file mode 100644
index 0000000000..0ad7f75dc1
--- /dev/null
+++ b/Documentation/lelie_icon.xpm
@@ -0,0 +1,141 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"50 71 63 2",
+/* colors */
+"`` c #666664",
+"`a c #F2F2F4",
+"`b c #5E5E5C",
+"`c c #EAEAEC",
+"`d c #565654",
+"`e c #E2E2E4",
+"`f c #4E4E4C",
+"`g c #DADADC",
+"`h c #464644",
+"`i c #D2D2D4",
+"`j c #3E3E3C",
+"`k c #CACACC",
+"`l c #363634",
+"`m c #C2C2C4",
+"`n c #2E2E2C",
+"`o c #BABABC",
+"`p c #262624",
+"`q c #B2B2B4",
+"`r c #1E1E1C",
+"`s c #AAAAAC",
+"`t c #161614",
+"`u c #A2A2A4",
+"`v c #0E0E0C",
+"`w c #9A9A9C",
+"`x c #060604",
+"`y c #929294",
+"`z c #8A8A8C",
+"a` c #828284",
+"aa c #7A7A7C",
+"ab c #727274",
+"ac c #6A6A6C",
+"ad c #626264",
+"ae c #5A5A5C",
+"af c #525254",
+"ag c #4A4A4C",
+"ah c #424244",
+"ai c #3A3A3C",
+"aj c #323234",
+"ak c #2A2A2C",
+"al c #FEFEFC",
+"am c #222224",
+"an c #F6F6F4",
+"ao c #1A1A1C",
+"ap c #EEEEEC",
+"aq c #121214",
+"ar c #E6E6E4",
+"as c #0A0A0C",
+"at c #DEDEDC",
+"au c #D6D6D4",
+"av c #CECECC",
+"aw c #C6C6C4",
+"ax c #BEBEBC",
+"ay c #B6B6B4",
+"az c #AEAEAC",
+"b` c #A6A6A4",
+"ba c #9E9E9C",
+"bb c #969694",
+"bc c #8E8E8C",
+"bd c #868684",
+"be c #7E7E7C",
+"bf c #767674",
+"bg c #6E6E6C",
+"bh c #FAFAFC",
+/* pixels */
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalbhbhalalbhalalbhalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalbhbhalalbhalalalalalalalalalalalalalalalalalal`o`ya``s`wbhalalalalalalalalalalalalalalalalalal",
+"bhalalalalalbhalalalalalalalalalalalalalalalalalal`a`malalalap`obb`malalalalal`cax`galalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalbcalbhalalalalalax`ialalal`gauav`u`ealalalalalalal",
+"alalalalalalalbhalalalalalalalalalalalalalalalalawar`ialalalalalalalaxapalalbaacat`i`oalalalalalalal",
+"alalbhalalalalbhalalalalalalalalalalalalalalalalazal`sbhalalalalalalalayalbh`eba`iapavalalalalalalal",
+"albhalbhalalalalalalalalalalalalalalalalalalalal`oatalb``aalalalalalal`oanazazanbhayalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalanawal`salalbaalalalalalalalazaa`cav`oalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalapawalalaranal`i`qalalalalalalbeayazbcbcalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalal`g`oapalalalalal`yalalalalal`gbbabbhapalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalal`sanalalalalalbdalalalalalbc`obbalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalapaaanalalalalal`qatan`ealax`sbbazalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalal`kab`oalalalalalau`uaw`salbb`ua`bcalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalayalalalalalalan`ea`axax`oba`oazaxaralalalalalalalalalalal",
+"alalalalalalalalalalapbhalalalalalalalalalaybhalalalalan`s`sazav`gaz`qbdalalazalalalalalalalalalalal",
+"alalalalalalalalalalax`u`aalalalalalalalalaraw`o`c`c`aaxaw`g`kav`sayb`ayalal`m`calalalalalalalalalal",
+"alalalalalalalalalalal`c`sbhalalalalalalalalalal`c`jb`albh`yavapazay`w`ialalalay`aalalalalalalalalal",
+"alalalalalalalalalalalalar`qbhalalalalalalalalalal`v`sav`abcaubbaw`u`salalalalalayapalalalalalalalal",
+"alalalalalalalalalalalalal`i`kalalalalalalalalalal`l`way`uau`cazazazbc`q`ialalalal`galalalalalalalal",
+"alalalalalalalalalalalalalalaw`galalalalalalan`i`m`hbe`q`oap`w`m`uax`ialax`salalalalalalalalalalalal",
+"alalalalalalalalalalalalalalal`oatalalalbh`kbaadagad```oav`i`mb`ba`ualalal`i`oalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalanaz`aalanaz`nag`ian`w`k`iar`waw`o`o`ialalalalau`ialalalalalalalalalal",
+"alalalalalalalalalalalalalalalalapba`c`zakac`aalau`calapaz`gbabb`qbhalalalalal`ualalalalalalalalalal",
+"alalalalalalalalalalalalalalalalal`ibdambd`c`aalalalal`a`yax`kb``u`aalalalalal`e`kalalalalalalalalal",
+"alalalalalalalalalalalalalalalalarbcajbf`q`kalalalalal`w`c`sbc`k`e`kalalalalalal`salalalalalalalalal",
+"alalalalalalalalalalalalalalalalawaoaibbaw`kalalalalapbaaw`gb`baalaualalalalalal`salalalalalalalalal",
+"alalalalalalalalalalalalalalal`cbgaq`y`q`o`ialalalal`wbh`sba`g`oalaralalalalalal`ualalalalalalalalal",
+"alalalalalalalbhbhalalalalalalar`v`lbfazap`qapalal`gaz`k`e`y`u`galbhalalalalalalb`alalalalalalalalal",
+"alalalalalalalalalalalalalalalbb`x`l`qayalap`u`aala`al`u`q`ebebhalbhalalalalalalb`alalalalalalalalal",
+"alalalalalalalalalalalalalalal`gao`hayazalalapb``kax`iaubeaybaalalalalalalalalalbaalalalalalalalalal",
+"alalalalalalalalalalalalalalalalbdahba`galalalatbcalbb`maxbeatalalalalalalalalalbaalalalalalalalalal",
+"alalalalalalalalalalalalalalalalau`jb``calbhalal`k`oaw`zapbfalalalalanalalalalal`salalalalalalalalal",
+"alalalalalalalalalalalalalalalal`aad`malalbbalalal`o`kbb`y`ialalalal`walalalalal`qalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalbebaalapbfalalalbhbb`c`dalalalalalagalalalalap`oalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalbb`ialalajalalalalap`w`walalalalaxaaalalalal`qalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalazalalalbf`aalalalalbaayanalalalbg`ealalalbh`qalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalaxalalalbebhalalal`c`s`saxalalal``alalalalaybhalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalal`oalalal`ealalalalbb`eaw`uawalalawalbhalataualalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalanalalalalalalalal`wb`alayb``malalal`sal`oalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalal`galalalal`q`g`wauaraz`yalalaxapalbhalalalalalalalalalalalal",
+"alalalalbhalalalalbhalalalalbhbhalalbhal`salalalal`waw`kay`kapb`al`k`galalalbhbhbhbhbhalalalalalalal",
+"albhbhalbhalalalalbhalalalalalbhalalal`i`malalbhar`sbdal`q`oalalal`walalbhalalalalalbhalalalalalalal",
+"bhalalalalalalalalalalalbhalalal`ialalanavalalalbcalbbat`g`qalbhar`qalalalalalalalalalbhbhbhbhbhbhal",
+"alalalalbhbhbhalalbhbhalalalal`mbealbhalawalalalbd`iat`oaratalal`yalbhalalalalalalalalalalalalalbhal",
+"alalbhalalalalbhalalalalbhbhal`najalal`aarbhal`s`eazalazazalal`cb`alalalbhbhbhbhbhalalalalalalalalal",
+"bhalbhalalalalbhalalalalalalbbas`naralalalalal`yalazarauayalalbaa`albhalalalalalbhalalalalalalalbhal",
+"alalalalalalalalalalbhalal`aaq`r`hbdalalalalaraz`m`aazan`mal`ebd`jalalalalalalalalbhbhbhbhbhbhalalal",
+"alalbhbhbhalalbhbhalalalalaa`vah`d`d`calbhalbaal`qal`o`obhalbhbd`ray`i`gbhalalalalalalalalalbhalbhal",
+"bhalalalalbhalalalalbhalal`v`t`lah```ualalalbaan`q`cavaxalalatbeai`hauaw`waz`kav`ialalalalalalalalal",
+"bhalalalalbhalalalalal`aap`x`tahafbb`ybdalavat`sbh`sal`qalal`c`qafam`faab`axauav`i`s`oaualalbhalbhal",
+"alalalalalalalanaxax`s`q`gasao`pbebabb`ubd`walb`al`oavapalalbhaybeagaq`n`sauaw`i`iapat`kayauapalalal",
+"bhbhbhalalav`kazarauayay`sad`r`facae`mazaubgb``sbh`m`oalalalalavbbaeai`j`oav`g`oatau`c`g`a`eb`azanal",
+"alalalat`o`e`mavayavauarawayaq`lbf`yb``e`zap`yawbd`qayalalalap`ibcad`j`jbb`i`gapal`cal`iatau`gar`o`c",
+"alal`eavalbh`g`g`g`ialanaral`b`vabbd`u`ibd`e`ual`o`ea`bbbdbcb`arb````la``uap`i`cavapalarav`catav`c`q",
+"al`eavar`aanar`gavatayavaranatasae`wbcawax`iaval`calalalalalalaybcaf`hbb`garan`g`c`g`i`eatauatau`oap",
+"al`s`a`carau`capanal`gapanbhal`s`ragbc`e`k`walalalalalalal`cap`oa`bfbgarauauan`g`i`e`c`c`a`g`cauatal",
+"al`e`qay`s`i`eanarau`matau`cauau`s`ta`bd`sawalbhalalbhalapatav`s`f`baxalanat`aananan`eawat`max`aalal",
+"bhalbhawavbh`aavar`e`gawawau`k`i`c`i`h`d`y`ealalbhalalalalapauaxb`avan`carbhan`gau`aan`iax`ebhalalal",
+"alalalalan`uawawal`g`e`e`oatavat`q`ganbb`babbhalalap`ubbb`bb`z`u`gaparbhbhalanaw`iavax`cbhalalalbhal",
+"albhalbhalalbhanax`oaw`m`i`m`m`kbhalalalap`obaavalbhan`aan`aalalalalapaxawaw`oapanbhalalalalalalbhal",
+"alalalalalalalalalalananbhanbhalalalalalalalan`gb``qawavaxau`m`o`o`s`eananalalalalalalalalalalalalal",
+"alalalalalalbhbhbhalalalalalalalalbhalbhalalalalalalbhbhanbhalalalalalalalalalalalalalalalbhalalalal",
+"albhalalalbhalalalalalalalalbhbhbhalalalbhalbhalalalalalalalbhalalalalalalalalalbhalalalbhalalalbhal",
+"alalbhbhalalalalalbhalbhalalalalalalalalbhalalbhalalalalbhalalalbhalalbhbhbhalalbhbhbhalalbhalalbhal",
+"albhalalalalalalbhalbhalbhalalalalbhalalalalbhalalalalalalalalbhalbhalalalalbhalalal`aalalalbhalalal",
+"alalalalbhbhbhalalalalalalalalbhalbhalalalalalbhbhbhbhalalbhalalalbhalalalalalap`qbb`salalalalalbhal",
+"alalalbhalalalalalalalalbhbhbhalalalbhalbhalalalalalalalbhalalalalalalalalalalae`uav`calalalbhalalal",
+"bhbhalalalalalbhalbhalalalalalalalalbhalalbhalalalalbhalalalbhalalbhbhbhalalalalalaralalalalbhalbhal"
+};
diff --git a/Documentation/lelie_logo.gif b/Documentation/lelie_logo.gif
deleted file mode 100644
index d606099457..0000000000
--- a/Documentation/lelie_logo.gif
+++ /dev/null
Binary files differ
diff --git a/Documentation/lelie_logo.xpm b/Documentation/lelie_logo.xpm
new file mode 100644
index 0000000000..96be267b71
--- /dev/null
+++ b/Documentation/lelie_logo.xpm
@@ -0,0 +1,214 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"100 143 64 2",
+/* colors */
+"`` c #666664",
+"`a c #F2F2F4",
+"`b c #5E5E5C",
+"`c c #EAEAEC",
+"`d c #565654",
+"`e c #E2E2E4",
+"`f c #4E4E4C",
+"`g c #DADADC",
+"`h c #464644",
+"`i c #D2D2D4",
+"`j c #3E3E3C",
+"`k c #CACACC",
+"`l c #363634",
+"`m c #C2C2C4",
+"`n c #2E2E2C",
+"`o c #BABABC",
+"`p c #262624",
+"`q c #B2B2B4",
+"`r c #1E1E1C",
+"`s c #AAAAAC",
+"`t c #161614",
+"`u c #A2A2A4",
+"`v c #0E0E0C",
+"`w c #9A9A9C",
+"`x c #060604",
+"`y c #929294",
+"`z c #8A8A8C",
+"a` c #828284",
+"aa c #7A7A7C",
+"ab c #727274",
+"ac c #6A6A6C",
+"ad c #626264",
+"ae c #5A5A5C",
+"af c #525254",
+"ag c #4A4A4C",
+"ah c #424244",
+"ai c #3A3A3C",
+"aj c #323234",
+"ak c #2A2A2C",
+"al c #FEFEFC",
+"am c #222224",
+"an c #F6F6F4",
+"ao c #1A1A1C",
+"ap c #EEEEEC",
+"aq c #121214",
+"ar c #E6E6E4",
+"as c #0A0A0C",
+"at c #DEDEDC",
+"au c #020204",
+"av c #D6D6D4",
+"aw c #CECECC",
+"ax c #C6C6C4",
+"ay c #BEBEBC",
+"az c #B6B6B4",
+"b` c #AEAEAC",
+"ba c #A6A6A4",
+"bb c #9E9E9C",
+"bc c #969694",
+"bd c #8E8E8C",
+"be c #868684",
+"bf c #7E7E7C",
+"bg c #767674",
+"bh c #6E6E6C",
+"bi c #FAFAFC",
+/* pixels */
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalbialalalalalalbialalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalbialalalalalbialalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalbialalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalbialalalalbialalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalbaag`xahauauaf`d`tafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaealalalalalalalal`oaeaabealalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`ib`alalalalalalalalalalalaw`xaoalalalalalalalalalalalal`qaaaa`zalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalbdalalalalalalalalalalalalalal`eau`ealalalalalalalalalabalalalal`xalalalalalalalalalalalalalalalal",
+"albialalalalbialalalalbialalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalbaaualalalapalalalalalalalalalalalalbfalalalalalalalalaaalal`halalabbcalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalbialalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`o`e`qalalalalalalalalalalalalalalalalal`lalalalalalalalabalau`ual`walbfalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaaalal`dalalalalalalalalalalalalalalalal`qaxalalalalalalauau`salatb`al``alalalalalalalalalalalalalalal",
+"alalalbialalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalafalalalbhalalalalalalalalalalalalalalalalal`falalalalalal`oaj`y`ob`alalbfalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`balalalal`nalalalalalalalalalalalalalalalal`o`ialalalalalal`abb`ialal`g`qalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalala`alalalalal`falalalalalalalalalalalalalalalal`falalal`o`haiavalalalalbhalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalbialalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`bal`m`ialalalaiapalalalalalalalalalalalalalalbeanalal`valalalalalal`balalalalalalalalalalalalalalalalal",
+"alalbibialalbialalalalalalalbialalbialalalalalalalalalalalalalalalalalalalalalalalalalalalalal`walalalbealalalal`jalalalalalalalalalalalalalalal``alakalalalalalba`ualalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalbb`kalal`ubealalalalal`halalalalalalalalalalalalalalbhalauaxal`eaz`o`ualalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalav`yalalalalalbeatalalalalajapalalalalalalalalalalalalalbfag`dalaxakbfaiaualalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`gbcalalalalalalalalalalalalalaualalalalalalalalalalalalalaxac`yalbbalapbhaoalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalafalalalalalalalalalalalalalalaualalalalalalalalalalalalal`t`q`u`j`aalal`salalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal``b`axalalalalalalalalalalal`ubaalalalalalalalalalalalbb`w`iacbhalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`cacawalalalalalalalalalalalat`ralalalalalalalalalalalau`maradalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaladalalalalalalalalalalalalalar`jalalalalalalalalalalahalaz`yasalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`eaualalalalalalalalalalalalalal`valalalalalalalalalalamazala`aualalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`talalalalalalalalalalalanalba`ualalalal`oalalalakal`sa`bdanaxalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`h`taqa`alalalalalalalalalalala`alafalalbcal`halalal`dbaalaeajalasalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`i`ma``falalalalalalalalalalalalaw`halalbdal`balalaoalac`z`z`kal`palalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`salalalalalalalalalalalalalal`qalaqalal`dalbhalarbgaaalab`halalajalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`jalalalalalalalalalalalalalalalalaualal`yala`al`ral```qapafalalbbaxalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalabalalalalalalalalalalalalalal`zbfazaoalal`war`gayawbgalaebdalalalal`jalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalbialalalalalalalalalalalalalalalalalalalal``alalalalalalalalalalalalal```oaeala`alatawazal`nalacalaxahalalalalbfalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalal`jar`s`ealalalalalalalalalalalalalalalalalalalaaayalalalalalalalalalalbg`u`caz`cabalbcalala`anaaal`nalbealalalalal`halalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalbb`wadapalalalalalalalalalalalalalalalalalalalaybdababawalalalalalbhal`zat`c`abcal`zalalajal`dalae``alalalalalal`y`galalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalala``yalalalalalalalalalalalalalalalalalalalalalalal`g`q`vaxazaaalalal`aaladal`m`aal``an`g`gaeal`falalalalalalal`halalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalbe`yalalalalalalalalalalalalalalalalalalalalalalalalauaeazazalalalal`aaqalaaalalaial`dalahataxalalalalalalalalabalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalal`y`yalalalalalalalalalalalalalalalalalalalalalalal`rasbe`malalalal`dazaraval`jalal`zbaal`dalalalalalalalalalanagalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalal`a`wbaalalalalalalalalalalalalalalalalalalalalalalauau`qazbhbialalaualbdalal`ralajalaialabalalalalalalalalalalanabalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalaxbcaxalalalalalalalalalalalalalalalalalalalalalakak`kbhaaalal`dan`oalal`halalbcavaybfbfalalalalalalalalalalalanakalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalay`uaralalalalalalalalalalalalalalalalalalalalacasbdb``dalal`fal`oal`a`jalaial`nalaj`aadbh`malalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalal`wb`alalalalalalalalalalalalalalalalalalalawbeau```wbbalaual`ualal`nalalacalbealafalalal`dakalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalbdbaalalalalalalalalalalalalalalal`gbc`galbaaubf`bazay`g`ibial`gadalaialaial`ladalalalalalau`aalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`y`walalalalalalalalalalalalatayalayauau`bau`s`qakazal`salal`talal``al`valauapalalalalalalaualalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalapbbb`alalalalalalalalalal`waladauauaubebiauakahaxalbdalal`w`salaialbhalbgahalalalalalalalal`palalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalavbcawalalalalalalal`safabauauaa`yalalalauauawalbealatalamalalabalakalauaealalalalalalalalalafalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalb`bb`calalalalalb`axauau`raa`calalalalaibial`walaparab`ealafal`w`i`gauaealalalalalalalalal`i`ualalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`wbbalalal`e`ibcau```d`s`a`aalal`ua`alalbibial`ual`ralalahalaualau`ualalalalalalalalalalalakalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`zaeal`ial`tau`vah`lalalalalavayalalalalalayal`jalal`hal`eaaalauatalalalalalalalalalalalar`balalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalbe`walauau`b`fal`calalalalalalalalalalalalalajalalahalaual`fbbb`alalalalalalalalalalalalaealalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`may`xaubh`s`zalal`ialalalalalalalalalalalaualal`halalaialauaoal`aalalalalalalalalalalalana`alalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalbabiau`caqajaaawaladalalalalalalalalalalal`zabalalahal`talarag`yalbhalalalalalalalalalalalalakalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaxalauauasalaj`wayap`ialalalalalalalalalalalaualalaealalaualaq`ya`albealalalalalalalalalalalaladalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`ybdau`f`v`yaw`a`i`y`aalalalalalalalalalalbe`salalafalaebialau`zalalaaalalalalalalalalalalalal`o`qalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`ialau`r`raj`hawbdalbgalalalalalalalalalalalaualalaaalal`valafah`ialbib`alalalalalalalalalalalalal`balalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalb`agauauahbb`jalbc`ualalalalalalalalalalaladaralal`nalbe`salaualalalbhalalalalalalalalalalalalalal`nalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalbialalalalalalalalalalalalalal`ialauauauazbbabalar`u`walalalalalalalalalalaoalalacbialaual`g`l`calalbfalalalalalalalalalalalalalalafalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalax``auaoa`aeazbd`g`sapbdayalalalalalalalal`palalalafalayadal`taxanalarar`malalalalalalalalalalalalalafalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalbibialalalalalalalalalalalalalal`cauauaiao`nb``g`zalal`i`y`calalalalalalav`jalalbdanalaualalauae`aalalal`zalalalalalalalalalalalalal`falalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`g`qauau`laj`uafat``alalalbda`alalalalalalasalalalajalal`lalbcau`salalalalbcalalalalalalalalalalalalalafalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalbibialalalalalalalalalalalalalb``jauao`j`pb`apax`ialalalalbdbfalalalalbaadalalbdaval`lalalauaxalalalalbealalalalalalalalalalalalalal`falalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalbd`uauau`fagbgbi```ealalalalalbda`alalalaualalalajalalaualalaoacalalalalbialalalalalalalalalalalalalalafalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalbialalalalalalalalalalalalalal`gauau`h`dbdawbfaxalalalalalal`z`yal`s`zalalb``kal`p`ialai`tbialalalalalalalalalalalalalalalalalalal`jalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalapauaubgaa`a`ualalalalalalal`abcaraualalal`ralalaualal`v`kalalalalalalalalalalalalalalalalalalalal`ralalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`eaoau`z`d`m`qalalalalalalalalb`baa`alal`w`qal`zbealar`vbcalalalalalalalalalalalalalalalalalalalalafalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalatbgau`zabbiaralalalalalalalalal`s`walalasalalaualalah`w`aalalalalalalalalalalalalalalalalalalalal`falalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalavauadaoalazalalalalalalalalalal`zbbat`yal`c`jalalauayalalalalalalalalalalalalalalalalalalalalal`balalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`s`uau`sawalalalalavalalalalalalalbcaialalaualalabab`galalalalalalalalavalalalalalalalalalalalalacalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalayaualbaalalalalaualalalalalalalbibc`malaualal`t`qalalalalalalalalalaualalalalalalalalalalal`o`kalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaraqaealalalalalaualalalalalalalal`e`s`n`oal`oahbialalalalalalalalalau`ealalalalalalalalalalakalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`k`nakalalalalazaualalalalalalalalal`wbcalalaq`dalalalalalalalalalalau`balalalalalalalalalalaealalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaq`falalalalalauawalalalalalalalalalabbaalauaralalalalalalalalalalauaxalalalalalalalalalbhbialalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`p`ualalalalalauaualalalalalalalalalalacabajanalalalalalalalalala`aualalalalalalalalalaladalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalafalalalalalal`qaualalalalalalalalalalalab`yalalalalalalalalalalauasalalalalalalalalal`ca`alalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalagalalalalalalalau`aalalalalalalalalalav`b`o`walalalalalalalal`caualalalalalalalalalalahalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalala`alalalalalalalau`malalalalalalalalalaoalbi`z`salalalalalalalazaualalalalalalalalal`i`oalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalabalalalalalalalaualalalalalalalalalalajal`obf`o`kalalalalalalb`aualalalalalalalalal`jalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`s`galalalalalalalaualalalalalalalalalbhavaladalbbay`aalalalalalalaualalalalalalalalbdaralalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaealalalalalalalalalalalalalalalalalalaualaladalal`t`ualalalalalal`zalalalalalalal`ebaalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`ualalalalalalalalalalalalalalalalal`eadalafanalbbal`uaaalalalalalalalalalaralalalaealalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaialalahalal`bal`gbfbgalalalalalalalat`palal`dalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`ralaladalalacal`balbcaxalalalalalal``alalbi`malalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`ealalalalalalalalalac`kal`lalal`savalafal`ybbalalalalalaealalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`halalalalalalalalal`xalal`ralalbhalalaealbfa`alalalalacalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalbcaralalalalalalalal`gbgal`qbealalafalbdalalbbaealalalb``ualalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`palalalalalalalalalaoalalaualal`iaxal``alalalalalalal`ralalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`yalb`alalalalalalalalaoalalaualaladalal``alalalalalal`k`zalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`zalaaalalalalalalaladaralbd`qalaladalaw`kalalalalalal`talalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`eavalalalalalalalaualalaualalavbbalaealalalalalalal`nalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaualalalalalalal`walalalalalalal`g`balalacalalbhalalbhalalalalalalbhalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazaualalalalalalalbealalalalalalal`valalazayalalacalanb`alalalalalal`valalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalauauapalalalalalal`walalalalalalalasalalafalal`a`ualabalalalalalalal`ralalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaeauauabalalalalalavayalalalalalal`f`galalafalal`dalal`dalalalalalalal``alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalauauaoaualalalalalalalalalalalalalaualala`bialal`falal`balalalalala``o`yalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalaqauau``aualalalalalalalalalalalal`g`balalafalalal`walbbapalalalalatajbhbaalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalal`aau`nauajai``alalalalalalalalalalalaoalalal`balal``alal`falalalalalalad`nbbalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalauau`x`t`ladaualalalalalalalalalalalaoalal`zalalalafalalbhalalalarayba`t`tbfalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalb`auauaqbham```zaaalalalalalalalalalab`galal`falalalabalawaxalalalalararabau`nalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalauauaqaubhau`ybhaibialalalalalalalal`ralal`aaaalalbealal``alalalalalal`mbdau`jbcalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalal`sauam`vaoa`aea``tabbbalalalalalalalal`balalaealalalaealalbhalalalalal`cbgamaiau`tat`zaaacav`aalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalauauau`xas`f`jaoae`saa`oalalalalalal`lalalalafalalalaaalalbealalalal`iatbbbf`hamao`halav`qat`nbhac`o`y`salalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalauauauaf`p`dadagbh`l`e`falalalalalal`lalalavbcalalbcanalaaalalalalalal`m`u`b```lau`sazal`ualalazbhalapalab`zac`salalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalauaqau`p`xajbgas`o`ualbe`ralalalalaxb`alalafalalalahalaladalalalalalalalazb`aeaoajauagadbdbaahan`c`q`wapalalalbc`dbe`oalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalal`o`salauaqau`p`yafbg```bawacajbh`nalalal`jalalal`nalalal`dalal``alalalalalal`sav`ob`ai`lau`v`vak`ja`awbeat`e`e`s`u`a`a`garbeab`u`yalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalarbc`s`baeb`a`alauauau`pauau`dbfaa`u`y`m`ibaaualalaealal`q`oalalb`aralaz`ealalalalalalal`o`zb`be`d`fasauauafbcalalayafavbbalb``salalalal`e`wabbh`ealalalalalalalalal",
+"alalalalalalalalalalalalalalal`i`z`nbh`g`k`oavapalalajauau`f`dakacavay`sbaa``dapbg`daqalalal`nalalal`dalal`balalalalalalalalalbbbfagbcas`fau`xbha``z`ualalalavalalalat`eatawawalalal`kaabbalalalalalalal",
+"alalalalalalalalalalalalalbb`y`gal`a`mavaaaxalbeaaay`qauam`jaoaa`jagakaqbb`g`iacalalauaga`al`balalal`balal`balalalalalalalalal`z`sbhbh`j``akauae```aalalalaraz`q`oat`eal`g`aalaralalatalav`tbgalalalalal",
+"alalalalalalalalalalavai`u`i``ayalalalarav`ka``o`yayalau`xasam`zag`mazabap`mbaal`may`ybi`kau`balal`gawal`c`salalalalalalalalat`ibaaz```bakakau`uaxalb`abbb`oazayalarb``sbibiazazal`kaval`gav`eakatalalal",
+"alalalalalalalalaz`fayalbf`ealbebe`salal`oaxbi`eaxaab`bgau`jam`dbc`sae`wad`m`gayal`talalal`jalaiabbfalalbfalalalalalalalalanayar`o`yaa`lahaeauaf`q`t`savax`malalalalalalalalanaxapat`ebbbial`calat`balal",
+"alalalalalalaladatalalalalb`arapalbdae`oalalalatalalanbiauau`l`vahag`y`iaw`zalalawajal`gawadalalalauaua``dalalalalalalalal`q`gaw``aaazajaiakau`ubealalalalal`g`calalar`ealal`cb`an`ual`g`say`aalay`e`wal",
+"alalalalalal``analalalal`c`k`m`m`k`g`malalalalalalalalalazauasau`hbdb`a`bdbdalawbca`baal``alalalarayal`aauaj`bauauamajas`t`waw`cab`ubf`nbhamaualau`e`eatazazarar`m`u`ealalalalal`may`qalalav`u`iawaladal",
+"alalalalbibgalalalalal`a`oalanalalavax`galalal`iawayalalalauauao`zaa`bbhalbhadalasal`gal`palalaladalal`aalalalalalalalalalalalan`marabbgaiauaiarazalalalal`gatalalaxavalalalal`s`ialalan`qalalaz`cal`dal",
+"alalalal`dalanazalaralalanalalayavaval`sa`adbf`ialalalalal`sauam`nbb`gacbfacal`wajalalal``alalal`malalalalalalalalalalalalalbaav`k`wauacasbf`iajalalalalapal`a`zavalal`abc`oaralalal`qavalat`obi`ub`atal",
+"alalalbhalalalar`calal`gatavaxaxax`maralalalalalatazatalalalauau`n``bc`sbc`qa`alal`calajalalalalalalalalalalalalalalalalalalaybfahacagbcaiac``al`mbbbbapalalanalal`ebcavalalalb``w`mal`i`walaw`c`cbbalal",
+"alalal`fal`ialal`mavayaralawatalalalalal`c`ialalalalalalalalalauauahafak`q`q`aal`ualalaqalalalalalalalalalalalalalalalalalalal`obcaxbebh`nbc`qalalalalalal`gb`axalalalalalba`malalalaralal`galar`walalal",
+"alalalaealal`kavalalar`k`aanapalalapalalarazaw`capal`aalalalalalauamaubdaf```qbibgal`ebealalalalalalalalalalalalalalal`u`o`c`oab`b`f`zac`u``alalaz`sbb`qalalalalbc`wbaanalbialalal`a`o`m`ealba`oalalalal",
+"alalalbbaaap`yaeaja``ial`oalaranalalal`m`yawan`m`u`kalapalaw`ualalauao`rbcaxaual`u`k`jalalalalalalalalalalalalalal`oaxalalaz`wae`fafagag`nalalalalalalalal`c`ealalalalalalalalaw`obialb`biaeapalalalalal",
+"alalalalalagalalal`a`o`q`ialalal`abc`zalalba`mal`ealazalbdbiaxaralal`vauahabak`kaz`zalalalalalalalalalalalalalalalalalb`azawalavaj``az`palalalalalal`e`sapapalalalal`ealaw`s`y`walay`o`ubcalalalalalalal",
+"alalalalalalbbbdalalalalalalal`uawalalalalawayaxaxb`alazavaz`g`kavalal`kauag`paz`ya`alalalalalalalalalalalalalalalalalaw`mb`ab`zala``balalalalalalalalalalalal`o`uaz`galalananal`q`w`ualalalalalalalalal",
+"alalalalalalalanaa`ualalalav`zalalat`g`oaz`e`o`eav`k`c`oax`eazaral`ial`m`m`tau`bahap`yapalalalalalalalalalalalalalalalalalalalalaeavalalalavaxav`qawalalal`g`qapalalalalalalava``ualalalalalalalalalalal",
+"alalalalalalalalalbiad`nayalalalalalb`awaz`eat`qalay`i`galaxalal`saybfanalalbdauac`s`q`valalalalalalalal`iat`eay`earbfbg`pau`vaaal`oawal`karalalalalalalalatalalalalalbcbha`axalalalalalalalalalalalalal",
+"alalalalalalalalalalalal`iaabfbcalalalalalalalalacazbiav`u`m`g`ua``kalalalalalal`faubeac`calalalalalal`uaf`baf`hahaca``ialalalbi`ianalalalalalalalalalalalalataibb`u`wanalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalbiaca`aa`yalalalalalalanalalbcbhavalalalalalalalalalap`b`oarb`alalalalalalalalalalalal`calalalalbialalalalalalalalalalb`bga`acavalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalat`wabbhbgb``qaabebfalalalalalalalalalalalalalalapbc`l`pbialalalalalalalalalalalalalalalalalalalalal`s``a`bf`zalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalala`ahadbh`db`bcbiatalalalal`ubcaf`wacbe`fae`uanalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`g`gabbgababav`ialalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaxalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalafaealalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal`oal`z`l`wbhafalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalauagbeaqal`mb`alalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaf`mbialalaaalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalbaalalalalalalalalalalalalalalalal",
+"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalbialalalalalalalalalalalalalalalal"
+};
diff --git a/Documentation/lelieblond.xpm b/Documentation/lelieblond.xpm
new file mode 100644
index 0000000000..b63f794a3c
--- /dev/null
+++ b/Documentation/lelieblond.xpm
@@ -0,0 +1,845 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"582 836 2 1",
+/* colors */
+"` c #000",
+"a c #FFF",
+/* pixels */
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaa``````````````aaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````````````````````````````aaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````aaaaa``````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa`aaaaaaaaaaaaaa``aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaa```aaaaaaaaaaaaaaa``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa````aaaaaaaaaaaaaaa`aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaa`````aaaaaaaaaaaaaa``aaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaa``````aaaaaaaaaaaaaa`aaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaa```````aaaaaaaaaaaaaa``aaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaa```````aaaaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````a```````````aaaaaaaaaaaaaa``aaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````a`a```aaaaaaaaaaaaaaaa`aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````a`a```aaaaaaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````a``a```aaaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````a``````aaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````a``aaaaaaaaaaaaaa``aaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a``a````aaaaaaaaaaaaa``aaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a``a`a`aaaa``aaaaaaa``aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aa`aaaaa``aaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaa```a`aaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````a``aaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaa``````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaa```aaa``aaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa`aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaa````aa```aaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa```aaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaa```aaa``aaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaa```aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa````aa```aaaaaaaaaaaaa``````aaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaa```aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa```aaa``aaaaaaaaaaaa```aaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa```aaa```aaaaaaaaaaa``aaaaaaaaaaaaa```aa`a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaa```aaa``aaaaaaaaaaa``aaaaaaaaaaaaa```a``a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa```aaa```aaaaaaaaaaa`aaaaaaaaaaaaaa``a`a`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa```aaa```aaaaaaaaaaa`````````````a````a`aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a```aaaa``aaaaaaaaaaa````````````````aa``aa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaa```aaaaaaaaaaa`aaaaaaaaaa`````a`aa`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaa``aaaaaaaaaaa``aaaaaaaaaaaaa`aaaa`aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaa``aaaaaaaaaaaa`aaaaaaaaaaaaa``aaa`aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaa``aaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaa```aaa``aaaaaa`aaaaaaaaaaaaaa`aaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaa``aaaa```aaaa``aaaaaaaaaaaaa```````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaa``aaaa```aaaaa`aaaaaaaaaaaaaaa```aa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaa``aaaa```aa````aaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaa``aaaaa``aaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaa``aaaa```aaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaa``aaaaa``aaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaa``aaaa```aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaa``aaaaa```aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaa``aaaaa``aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaa``aaaaa```aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a`aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaa``aaaaa``aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaa`aaaaa```aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaa``aaaaa``aaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaa`aaaaa```aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaa``aaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaa``aaaa```aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaa``aaaaa```aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaa``aaaaa``aaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaa``aaaaa```aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaa``aaaaa``aaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaa``aaaaa```aaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaa``aaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaa``aaaaaa``aaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaa``aaaaa```aaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaa`aaaaaa``aaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaa``aaaaa```aaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaa``aaaaaa``aaaa``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaa``aaaaa```aaa```a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a`a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaa``aaaaaa```aaa```aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaa``aaaaa```aaaa``aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaa``aaaaaa```aaa```aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaa``aaaaaa``aaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaa``aaaaaa```aaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaa````aaaaaa``aaaaaa``aaaa```aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaa``aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaa```aaaaaa``aaaaaa```aaaa``aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaa``aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa````aaaaaa``aaaaaa``aaaa```aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa```aaaaaa``aaaaaa```aaaa``aaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaa``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa```aaaaaaa``aaaaaa```aaa```aaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaa``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa```aaaaaa``aaaaaa```aaaa```aaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a`````aaa``aa`aaaaaaaaaaaaaaaaaaaaa`aaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaaaaaa```aaaaaaa``aaaaaa```aaa```aaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````a`````a``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaa``aaaaaaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaaaaaa```aaaaaa``aaaaaaa``aaaa```aaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````a``````````aaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaaaaa```aaaaaaa``aaaaaa```aaa````aaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a`````a`aa``a``aaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaaaaa```aaaaaa```aaaaaa``aaaa```aaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa````a```a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a``aaaaaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaaaa```aaaaaaa``aaaaaa```aaaa```aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaa````````aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa``aaaaaaaaaaaaaaaaa`aaaaaaaaa``aaaaaaaaaaaaaaaa````aaaaaa```aaaaaa``aaaa```aaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaa`````aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa``aaaaaaaaaaaaaaaaa`aaaaaaaaa``aaaaaaaaaaaaaaaa```aaaaaaa``aaaaaa```aaaa```aaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa``aaaaaaaaaaaaaaaaa`aaaaaaaaa``aaaaaaaaaaaaaaa```aaaaaaa```aaaaaa```aaa````aaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``aaaaaaaaaaaaaaaaa`aaaaaaaaa`aaaaaaaaaaaaaaaa```aaaaaaa``aaaaaaa``aaaa```aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaa``aaaaaaaaaaaaaaaaa`aaaaaaaaa`aaaaaaaaaaaaaaa```aaaaaaa```aaaaaa```aaaa```aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaa```aaaaaaaaaaaaaaa``aaaaaaaaa`aaaaaaaaaaaaaaa```aaaaaaa``aaaaaaa``aaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaa```aaaaaaaaaaaaaaa``aaaaaaaa``aaaaaaaaaaaaaa```aaaaaaa```aaaaaa```aaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaa```aaaaaaaaaaaaaaa``aaaaaaaa``aaaaaaaaaaaaaa```aaaaaaa``aaaaaaa``aaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaa``aaaaaaaaaaaaa```aaaaaaa```aaaaaa```aaaaa``aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaa`a````aaaaaaaaaaaaaa``aaaaaaaa``aaaaaaaaaaaaa```aaaaaaa```aaaaaa``aaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa````aaaaaaaaaaaaaa`aaaaaaaaa``aaaaaaaaaaaa```aaaaaaa```aaaaaa```aaaaa```aaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa```aaaaaaaaaaaaaa`aaaaaaaaa``aaaaaaaaaaaa```aaaaaaa``aaaaaaa```aaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa```aaaaaaaaaaaaaa`aaaaaaaaa`aaaaaaaaaaaa```aaaaaaa```aaaaaaa``aaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaa````aaaaaaaaaaaaa``aaaaaaaaa`aaaaaaaaaaaa```aaaaaaa``aaaaaaa```aaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaa`````aaaaaaaaaaaaa``aaaaaaaa``aaaaaaaaaaa```aaaaaaa```aaaaaaa``aaaaa```aaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a```aaaaaaaaaaaaa`aaaaaaaaa``aaaaaaaaaaa``aaaaaaaa``aaaaaaa```aaaaa```aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aa```aaaaaaaaaaaaa`aaaaaaaaa``aaaaaaaaaa```aaaaaaa```aaaaaaa``aaaaaa``aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaa```aaaaaaaaaaaaa`aaaaaaaaa`aaaaaaaaaa```aaaaaaaa``aaaaaaa```aaaaa```aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````aaaaaaa```aaaaaaaaaaaa``aaaaaaaaa`aaaaaaaaaa``aaaaaaaa```aaaaaaa```aaaaa```aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaa```aaaaaaaaaaaa``aaaaaaaa``aaaaaaaaa```aaaaaaaa``aaaaaaaa``aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaa`aaaaaaaa``aaaaaaaaaaaaa`aaaaaaaaa``aaaaaaaaa``aaaaaaaa```aaaaaaa```aaaaa```aaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaa```aaaaaaaa``aaaaaaaaaaaaa`aaaaaaaaa``aaaaaaaa```aaaaaaaa``aaaaaaaa``aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaa```aaaaaaaaaa``aaaaaaaaaaaaa`aaaaaaaaa`aaaaaaaaa``aaaaaaaaa``aaaaaaa```aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaa```aaaa```aaaaa``aaaaaaaaaaaa``aaaaaaaaa`aaaaaaaa```aaaaaaaa``aaaaaaaa``aaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa```aaaa```aaaaaaa``aaaaaaaaaaaa``aaaaaaaaa`aaaaaaaa``aaaaaaaaa``aaaaaaaa``aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaa``aaaa```aaaa```aaaaaaaaa``aaaaaaaaaaaa`aaaaaaaaa``aaaaaaa```aaaaaaaa```aaaaaaa```aaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaa``aaaa```aaaaaaaaaaa`aaaaaaaaaaaaa`aaaaaaaaa`aaaaaaa```aaaaaaaaa``aaaaaaaa``aaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaa``aaaaaaaa```aa``aaaaaaaaaaaa``aaaaaaaaaaaaaaaaa```aaaaaaaa```aaaaaaa```aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaa``aaaaaaaa```aaaa``aaaaaaaaaaaa`aaaaaaaaaaaaaaaaa```aaaaaaaa```aaaaaaaa```aaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaa``aaaaaaaa```aaaaaa``aaaaaaaaaaaa`aaaaaaaaaaaaaaaaa``aaaaaaaaa```aaaaaaa```aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``aaaaaaaa```aaaaaaaa``aaaaaaaaaaa`aaaaaaaaaaaaaaaaa```aaaaaaaaa``aaaaaaaa```aaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaa``aaaaaaaaaa`aaaaaaaaaaaa`aaaaaaaaaaaaaaaaa``aaaaaaaaa```aaaaaaa```aaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa```aaaaaaaa``aaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaaaaaaaaaa```aaaaaaaaa``aaaaaaaa```aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa`aaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaa`aaaaaaaaaaaaaaaaa``aaaaaaaaa```aaaaaaaa```aaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaaaaaaaaaaaa`aaaaaaaaaaaa`aaaaaaaaaaaaaaaa```aaaaaaaaa``aaaaaaaa```aaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaa``aaaaaaaa```aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaa```aaaaaaaaaaaa`aaaa``aaaaaaaaaaa`aaaaaaaaaaaaaaaa```aaaaaaaaa```aaaaaaa```aaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaa```aaaaaaaaaaaa```aaaa``aaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaa``aaaaaaaa```aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaa``aaaaaaaaaaaa```aaaaa``aaaaaaaaaaa`aaaaaaaaaaaaaaaa```aaaaaaaaa``aaaaaaaa```aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaa``aaaaaaaaaaa`aaaaaaaaaaaaaaaa``aaaaaaaaaa``aaaaaaaa```aaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````a`aaaaaaaaaaaaa`aaaa`a``aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaa``aaaaaaaaaaaaaaa```aaaaaaaaaa``aaaaaaaa``aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaa`aaaa````aaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaa``aaaaaaaaaaa`aaaaaaaaaaaaaaaa``aaaaaaaaaa``aaaaaaaa```aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaa``aaa```a`aaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaa```aaaaaaaaaaa`aaaaaaaaaaaaaaa```aaaaaaaaaa``aaaaaaaa```aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa``````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaa```aaaaaaa```aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aa`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaa`aaaaaaaaaaaaaaa```aaaaaaaaaa``aaaaaaaa```aaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaa```aaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaa``aaaaaaa```aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a````aaaa``aaaa``aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaa`aaaaaaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaa```aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````a`a`a``aaaaa```aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaa``aaaaaaaa``aaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````a`aa``aaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaa``aa```aaaaaaaaaa`aaaaaaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaa```aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````a``a`aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa```aaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaa``aaaaaaaa``aaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a`````a```aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaa`aaaaaaaaaaaaaaa``aaaaaaaaaaa```aaaaaaa```aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa`````aa``aaaa``aa``aa`aaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaa``aaaaaaaa``aaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aa``a``a`a``aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaa`aaaaaaaaaaaaaaa``aaaaaaaaaaa```aaaaaaaa``aaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaa```aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaa``aaaaaaaa```aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a```````aa```aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaa`aaaaaaaaaaaaaa```aaaaaaaaaaa```aaaaaaaa``aaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a```aa```aaa``aaaaaa`aaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaa``aaaaaaaa```aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a`a````````aaa``aaaaa``aa`aaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaa`aaaaaaaaaaaaaa```aaaaaaaaaaa```aaaaaaaa``aaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````a````a```aaaaaa``aa`aaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaa``aaaaaaaa```aaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````a``a`a`aaaa``aa`aaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaa`aaaaaaaaaaaaaa```aaaaaaaaaaa```aaaaaaaa```aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````a`a``a`aaaa``aa`aaa`aaaaaaaaaaaaaaaaaaaa```aaaaaaaaa`aaaaaaaaaaaaaaa```aaaaaaaaaaa``aaaaaaaa```aaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a`a`````aaa`a``aaa`aa````aaaaaaaaaaaaaaaaaa```aaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaa```aaaaaaaa``aaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````aaa``aaaaa`a``a`a``aaaaaaaaaaaaaaaa```aaaaaaaaa`aaaaaaaaaaaaaaa```aaaaaaaaaaa``aaaaaaaaa``aaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaa`aa```aaa`a`aa`aa`aaaaaaaaaaaaaaaa```aaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaa```aaaaaaaa```aaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aa``aa``a```aa`aa`aaaaaaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaaaaaa``aaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aa```a`a`aa`a``aaaa``a`aaaaaaaaaaaaaaaa```aaaaaaaaa`aaaaaaaaaaaaaaa```aaaaaaaaaaaa``aaaaaaaa```aaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````a`a`aaa`aa``aaaa``a`aaaaaaaaaaaaaaaa```aaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaaaaaa``aaaaaaaa```a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a`````aaaa```aaa``aa`aaaaaaaaaaaaaaaa````aaaaaaaaa`aaaaaaaaaaaaaaa```aaaaaaaaaaaa``aaaaaaaa```aaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aa````aaa```aaa``aa``aaaaaaaaaaaaaaaa```aaaaaaaaa`aaaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaaaaaa```aaaaaaaa``````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaa`a`aa`aa``aaa`aaaa`aaaaaaaaaaa```aaaaaaaaa``aaaaaaaaaaaaaaa```aaaaaaaaaaaa``aaaaaaaa```aaaaaaaa```aa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aa``aa`a``aaaa`a`aa`aaaaaaaaaaaa```aaaaaaaaa`aaaaaaaaaaaaaaa```aaaaaaaaaaaa```aaaaaaaa```aaaaaaaa``aaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aa```a``a``a`aaa```a``aaaaaaaaaaa```aaaaaaaaa`aaaaaaaaaaaaaaaa```aaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaa``aaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaa``aa`aaa```aa`aaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaa```aaaaaaaaaaaa```aaaaaaaa```aaaaaaaa``aa`aaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a```a`aa```a`aaa``aaa`aaaaaaaaaaaa```aaaaaaaaa`aaaaaaaaaaaaaaaa```aaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaa``a`aaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````a``a``aa`aaa``aaa`a``aaaaaaaaa```aaaaaaaaa`aaaaaaaaaaaaaaaa```aaaaaaaaaaaa```aaaaaaaa```aaaaaaaa````aaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaa````aaa`````aaa`a``aaaaaaaaaa```aaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaa```aaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````a``aaaaa``aaaaa```aaaaaaaaaa````aaaaaaaa`aaaaaaaaaaaaaaaa```aaaaaaaaaaaa```aaaaaaaa```aaaaaaaa```aaa`aaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a```````aa``aa`aaa``aaaaaaaaaaa````aaaaaaaa`aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaa``aaa`aaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````a``````aa`aaa``aaaaa`aaaaaa```aaaaaaaa``aaaaaaaaaaaaaaaa```aaaaaaaaaaaa```aaaaaaaaa``aaaaaaaaa``aa``aaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aa```````aaa``aa`aaa``aaaaa``aaaaa```aaaaaaaaa`aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaa```aaaaaaaa```aa`aaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaa`````a```````a`a```aaaa``aaaaaa````aaaaaaaa`aaaaaaaaaaaaaaaaa```aaaaaaaaaaaa```aaaaaaaaa``aaaaaaaaa``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaa`a```aa````aa``a```aaa``aaaaaaaa```aaaaaaaa``aaaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaaaaaaaa```aaaaaaaa```a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaa`a````````aaaa``aa`aa``aaaaaaaa```aaaaaaaaa`aaaaaaaaaaaaaaaaa```aaaaaaaaaaaa```aaaaaaaaa``aaaaaaaaa``a``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaa`a```````aa```a`a``aaaaaaaaa```aaaaaaaaa`aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaa```aaaaaaaa```a`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaa```````aa`````a``a``aaaaa`aaaa``aaaaaaaaa``aaaaaaaaaaaaaaaaa```aaaaaaaaaaaa```aaaaaaaaa```aaaaaaaa````aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaa`````````a`aaa``aaa``aaaa`a``aaa``aaaaaaaaaa`aaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaaaaaaaaa``aaaaaaaaa``a`a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaa``````aa```a`````aa`a```aaa```aaaa```aaaaaaaaa`aaaaaaaaaaaaaaaaaa```aaaaaaaaaaaa```aaaaaaaaa```aaaaaaaa```aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``````aa``a```aa```aaa``aaaaa```aaaa```aaaaaaaaa``aaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaaaaaaaaa```aaaaaaaa``aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa`````````aaaa```````aa`a```aaaa``aaaa````aaaaaaaaa``aaaaaaaaaaaaaaaaaa```aaaaaaaaaaaa```aaaaaaaaa```aaaaaaaaa``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaa````````aa`````aa```````aa``aa`a```aaa`````aaaaaaaaaa`aaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaaaaaaaaa```aaaaaaaa```a`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaa`````````aa````````a```a``a````aaa``aaaa`````aaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaa````aaaaaaa```a``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaa```````````a```````aa```a`a```aa``a`a`aa``aa``aaaaaaaaaa``aaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaaaaaaaaa```aaaaaaaa`````a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaa`````````````````a`````aa``````aaaa``aa````a```aaaaaaaaaaa`aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaa````aaaaaaa```a`a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaa`````````````````a```aaa``aa````````a`a`````aa```aaaaaaaaaaa`aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaaaaaaaaa```aaaaaaaa```aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaa```````````a``````aa``a```aaa`````aaa```a`a```aa```aaaaaaaaaaa``aaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa```aaaaaaaaaa``aaaaaaaaa```aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaa`````````````````a```aaaaa```aaa```````a``a```aaa``aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa```aaaaaaaaa```aaaaaaaa```aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaa``````````````````a``aa``aaaa``aaaa``````a````aa`a``aaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaa``aaaaaaaaa```a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaa``````````a``aa```````aaaaa`a`aaaaaa`````a`````aaa```aaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaa```aaaaaaaa```a``aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaa``````````````aa``````aaa`aaa``aaaaaaaa``````a``a``a```aaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa```aaaaaaaaaa```aaaaaaaa```a``aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaa```````````a``a``````aaaaaaa``aaaaaaaaaa````````a`a````aaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaa```aaaaaaaaa`````aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaa`````````````a`a``a```aaaaaaa`aaaaaaaaaaaaa``aa`````````aaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaa```aaaaaaaa```a`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaa`````````a````a```aa``aa`aaaaa`aaaaaaaaaaaaaa`````a``````aaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaaa````aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaa```````````a``a``aaa```aaaaaaaaaaaaaaaaaaaaaaaa```````````aaaaaaaaaaaaa``aaaaaaaaaaa`aaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaa```aaaaaaaa````aa``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaa`````````aa``````aaaaa``aa`aaaaaaaaaaaaaaaaaaaaaa````a`````aaaaaaaaaaaaa``aaaaaaaaaaa``aaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaaa```aa``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaa``````````````a````aa``aaa``aaaaaaaaaaaaaaaaaaaaaaa``a`a``aaaaaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaa```aaaaaaaaa```a``a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaa`````````aa``````aaaa```aaa`aaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaa``aaaaaaaaaaaa`aaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaaa```a``aa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaa``````````a``aa``aaaa``aaa``aaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaa``aaaaaaaaaaaa`aaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaa```aaaaaaaaa```a`a`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaa`````a```a`````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaaa```aaaaaaaa`````aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaa``````````````a``aaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa`aaaaaaaaaaaaa`aaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaa````aaaaaaaa```a`a````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaa```````````````````aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaa`aaaaaaaaaaaaa`aaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaa```aaaaaaaaa```aa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaa````````````aa``a``aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa`aaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaa````aaaaaaaa```aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaa```````a```a``aaa``aa``a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa`aaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaa```aaaaaaaaa```a``a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaa```````````aa```````````aaaaaaa``aaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaa```aaaaaaaaaaaaaaa``aaaaaaaaaaa```aaaaaaaa```a``a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaa```aaaaaaa``````a`````a``a````a``aaaaaaaa``aaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaa````aaaaaaaa`````a`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaa```````a```a``aa``aaaa``aaaaaaa``aaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaa```aaaaaaaaaaaaaaa``aaaaaaaaaaa```aaaaaaaa`````a`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaa``aaaaaa```````a````aa`aa``a`a``aaaaaaaa``aaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaa````aaaaaaaa````aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa```aaaaaaaaaaaaaaaaa``aaaaaa````a``a````````a``a````aaaaaaaa`aaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaa```aaaaaaaaaaaaaaa``aaaaaaaaaaa```aaaaaaaaa`````aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa``aaaaaaaaaaaaaaaa``aaaaaa```````a````a`a```aa`````a`aaaaa`aaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaa```aaaaaaaaaa````aaaaaaaa`````aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa``aaaaaaaaaaaaa``aaaaaa````a````````a``a````a```aa`aaaaa`aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaa```aaaaaaaaaaaaaaa``aaaaaaaaaaa```aaaaaaaaa````aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaa``aaaaaa`````a``a`````aa```a`````aa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaa```aaaaaaaaaa```aaa`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaa``aaaaaa`````````a````a```aa``a``aa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaa```aaaaaaaaaaaaaaa``aaaaaaaaaaa```aaaaaaaaa```aaa`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa```aaaaaaa``aaaaaa````a````a```a`a```a`aa`aa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaa```aaaaaaaaa```aa`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa``aaaaaa``aaaaa``````````aaa`a```aa``a``aaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa``aaaaaaaaaaa```aaaaaaaaa````a`aa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa``aaaa``aaaaaa````````````````````````aaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaa```aaaaaaaaa```a`aa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa``aa`aaaaaaa`````````a`a``a```a`aa`aaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa``aaaaaaaaaaa```aaaaaaaaaa````aa`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa```aaaaaaa`````````````a``aa``aa`aaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaa```aaaaaaaaa````aa`aaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaa````````````a````aaa`a``aaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa``aaaaaaaaaaa````aaaaaaaaa```aa`aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaa`````````a`a`a````a`a`aaa`aaa`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaa```aaaaaaaaa````a`aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa``aaa`````````a`a````aaa`a`aaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaa``aaaaaaaaaaaa```aaaaaaaaa```a`aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa``a```````````aa`a`aaaaa`aaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaa```aaaaaaaaaa````aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaa`````````````a```````````````a`aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaa``aaaaaaaaaaaa```aaaaaaaaa````aa```a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa`aaaa```````````a`````aaa`aaaaaaa`aaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaa```aaaaaaaaaa```aa`a`a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa``aaaa`````````aaaa``aaa`aaa`aaaa`aaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaaaaa```aaaaaaaaa````a`a`a``aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``aaaa``````a```a`````````````aaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaa```aaaaaaaaaaa```aaaaaaaaaa`````a`a``aa``aaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaa```aaa```a`````````````aa`aaaa``aaaaaaaa`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaa``aaaaaaaaaaaa```aaaaaaaaaa```aa`a``aa``aaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaa``a``aaa````a```a`aaa``aa``aaa``aaaaaaaa``a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaa```aaaaaaaaaaa````aaaaaaaaaa``aaaa``aa`aaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaa````a`aaaa``````a``a``aaa``aaaa`aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaa``aaaaaaaaaaaa```aaaaaaaaaa```aaa``aa`aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaa````````aaaa``a`a``a`a`a```aaaa`aaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa```aaaaaaaaaaa````aaaaaaaaaa```aa``aa`aaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaa``````````aaaa`````````````aaaa`aaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaa``aaaaaaaaaaaa```aaaaaaaaaa````a``aa``aa`aaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`````````a``aaaa``aaa`aaa``aaaa`aaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa```aaaaaaaaaaaa```aaaaaaaaaa```a``aa`aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa```````````a``aaaa`aa`a`````aaa``aaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaa``aaaaaaaaaaaa```aaaaaaaaaa``````aa`aa``aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaa``````a`````a``aaaa`aa````````````aa`aa`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa```aaaaaaaaaaaa```aaaaaaaaaa`````aa`aa``aaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaa`````````````a``aaaa``aaa``aaaa`aaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaa``aaaaaaaaaaaa````aaaaaaaaaa```aaa`aa``aaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaa``````a```````a```aaaa``aa`aaaa`aaaaa`a`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaa```aaaaaaaaaa````aa`aa``a``aaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaa````````a``````````aaaa`````aaa`aaaa`a`aaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaa``aaaaaaaaaaaa````aaaaaaaaaa```aa`aa`aa``aaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaa``````````````a```a``aaaa``aaaa`aaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa```aaaaaaaaaaaa```aaaaaaaaaaa```a`aa`aa``aaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaa`````````aa````````aa``aaa``aaa``aaaaa``aaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaa```a`aa`aa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``````a``````aa`````aa```aaaa`aa`aaaaa``aaaaaa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaa```aaaaaaaaaaa```aaa`aa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaa``````aa``a`````aa`````a`aaaa``a`aaaaa`aaaa`aa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaa````aa`aa``aaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``````````a````a```````aaa`aaaa``aaaaaaaaaaa`a`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaa```aaaaaaaaaaa```a``aa``aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``````````````aaa`a``aa`a`a``aaaa``aaaaaaaaaaaa`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaa````a`aa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``````a`a`````````a```````aa``aaaa``aaaaaaaaaa`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaa```aaaaaaaaaaa```a`aa``aaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`````````a````aa`````aa`aa`a`a``aaaa``aaaaaaaaa`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaa```aaa``aa`aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaa`````````````````a``````a``a`aa`aaaaa`aaaaaaaa`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaa````aa``aa``aaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``````````````aa````a````a`a``aaa`aaaa``aaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaa```aa``a``aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa```````a``a````````a``a````a`aaaa``aaaa``aaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaa````a``aa`aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``````````a```aa`````aa`aa`aa`aaaaa``aaaa``aaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaa```a``aa`aaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`````````````````````````````a``aaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaa```a`aa`aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``````a``a`````a``````aa`aa`a`a`aaaaaa``aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa```aaaaaaaaaaaa```aaaaaaaaaaa````aaa`aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``````````a````````aaaa`aaa`aa`a`aaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaa```aaa`aaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``````````````a`a````aaa`aa`aaa``aaaaaaaa`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa```aaaaaaaaaaaa```aaaaaaaaaaa````aa`aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa````````a`a```````aaa`````a``a```aaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaa```aa`aaaaa``aaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa```````````````````a`aaa`aa`aa`a`a`aaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa```aaaaaaaaaaaa````aaaaaaaaaaa```a`aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``````````````````aa````a`aa`aa`a`aaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``````aa````````a`aaaa````aaaaa``aaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa```aaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa```````````````````aa`aaa`aaaaaa``aaa`aaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa````````````````a`````aaa`````````aa`aaaaaaaaaaaa`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa```aaaaaaaaaaa````aaaaaaa``aaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa```````````````````aa``````aaaaa```aa`aaaaaaaa``aa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaaa```aaaaaa``aaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``````````````a`a````aaaa```aaaa``aaa`aaaaaaaa`aaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaa````aa`aa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa``````````````a`aa`aa```aa````aaa``aaa`aaaaaaa``aaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaaa```aa`aa``aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa```````a````````aa`a`a```a`aaaa`aa`aaaaaa`aaaa`aaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaaa```aaaa``aaaaaaaaaaaaaaaaa`aaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa`````````````a``````a`a`aaa`aaaaa`````aaa``aaa``aaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa````aaaaaaaaaaa```a`aaa`aaaaaaaaaaaaaaaaaa`aaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``````aa```````a```````a`````aaa`aaa`aaa`aaaa`aaaaaaaaaa`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaaa````aaa`aaa`aaaaaaaaaaaaaa`aaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``````````a`a````a`a````aa`a`aaa``aaa`aaa`aaaa`aaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa````aaaaaaaaaaaa```aaa`aaa`aaaaaaaaaaaaaaa`aaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``````````````a`a````a`````a`aaa`aaaa`aaa`aaa`aaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaaa````aa`aa``aaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``````a````a`````a```aa`aaa``aaaa`aaa``aaa`aaa`aaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaa```aa`aa``a`aaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa```````````aa``````a```````````aa`aaa``aaa`aa``aaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaaaa```a`aa``a``aaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa`````````````````````````aa`a`aaa`aaaa`aaaa`aa`aaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaa```a``a`aa``aaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa```````a`````````a`a````aaa```aaa`aaaa`aaaa`aa`aaaaaaaaaaaaaaaaa`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa````aaaaaaaaaaaa`````a`aa`a`aaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa```````````a`aa````a`a````a``aaaa`aaaa`aaaa`a``aaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaa````aa`aa`a``aaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa``````````````a```````````````````````a`aaa``a`aaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaa```aa`aa`a`aaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa```````````````````a`aa`aaa```aaa``aaaa`aaa``a`aaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaaa```a`a``a`aaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa```````````````a`````a`a`aaaa`aaaa``aaa``aaa``a`aaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaa```a`aa```aaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa```````a```a``````a````a`aaaa`aaaa`aaaa`aaaa`aa`aaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa```aaaaaaaaaaaaa```a`````aaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa```````````a``a````a`a```````````````aa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaaa``````a`aaa`aaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa```````````````a```````````aaa`aaa``a`aa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa```aaaaaaaaaaaaa```a``a`aaa``aaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa```````````````aa`aa```````aa``aaa`aaaaa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaaa```a`a`aaa``aaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa```````````````````a`a`````aa`aaa``aaaaa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaa````a`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa``````````````a````a`a`aa```a`aaa``aaaaa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaaa````a`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa````````````````a`````a`a``aaa```aa`aaaaa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaaa```a`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa````````````a``a``````a`a``````aaaa`aaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaaaa````aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa```````````````aa``````````aa``aaaa`aaa``aaa`a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaa````aaa`aa``aaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa```````````````````````````aa`aaaaaaaaa``aaa`a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaa`aa```aaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``````````a```````a`aa``a`aaa`aa`a`aaaaa`aaa`a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaa```aaa`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa```````````````````aa```````````a`aaaaa`aaa`a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa````aaaaaaaaaaaaa```aa`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`````a`````````````a`aa`a```aa`a```````aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aa`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa```````````a`````aa``a`a`a`aa`aaaaaaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa````aaaaaaaaaaaaa```a`aa``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa```````````````a``a``a`a```aaaaaaaaaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaaa``````a``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``````````a`````aa``a`a````````````a`aaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa````aaaaaaaaaaaaa````aa``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa`````````````````a`````a```aaa`aaaaaa`aaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aa``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa````````````````a``a`a``aaaa`aaaaaa`aaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa``aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa````aaaaaaaaaaaaa````a``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``````````````aa`a``a``aaaa`a`aaaa`aaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa````aaaaaaaaaaaaa```a``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa````````a`````aa`a``a``aaaaaaaaaaa`aaa`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa````aaaaaaaaaaaaaa``a``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``````````a```a`a``a``aaaaa`aaaaa`aaa`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa````aaaaaaaaaaaaa`````a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``````a``aa``a``````````````aaaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaaaaa```aaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aa`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa``````a````````a`aaa``aaaa`aaaaa`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaaa````aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa````aaaaaaaaaaaaaa```a`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa`````````a````a`aaa``aaaa`aaaaa`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaa```aaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaa```a`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa``````````````a``aa``aaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaa```aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa````aaaaaaaaaaaaaa````aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa`a```````````a``a``a`aaaa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaa```aaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaa`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa`````````````a``a``a`aaaa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aa```aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaa``aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa`````a``````aa`a``a`aaaa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``a```aaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa````aaaaaaaaaaaaaa```aa``aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa````````a````````````````aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa````aaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa``aa``aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa`a`````````aa`a`a```aa``aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa```aaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa````aaaaaaaaaaaaaa```a``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa````a````a`aa```a`a`aaa``aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa``a``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa````````a```aaa`aa`a`aaaa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa````aaaaaaaaaaaaaaa````aa`aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``````a`a`aaa`aa`a`aaaa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaa`aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa`````````a``aa`aa`a`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa``aaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa`````````a`aa`aa`a``aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa````aaaaaaaaaaaaaaa``aa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa`````````a`a````````aa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```a`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa``a``````````aa`aa`aaaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaa```aaaaaaaaaaaaaaa````aaaaaaaaaaaaaaa``a`aa``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa``````a`a`a`aa`aa`aaaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa````aa``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa````````a``aaa`aa`aaaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaa```aaaaaaaaaaaaaa````aaaaaaaaaaaaaaa```aa``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa`````a`````````a`aaaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aa``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa``````a``aaa`aa``aaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaaa``aaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```a``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa````a`aa`aa```a``aaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaa``aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``a``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa`````a`a``a```a``aaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa`````aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa`a````aa`a```aa`aaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaa``aaaaaaaaaaaaaaa````aaaaaaaaaaaaaaa````aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa``a``````````a``aaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa```aa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa``a``````aa``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``a``aaaaaaaaaaaaaaa````aaaaaaaaaaaaaaa```aa`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa`a```aa`aa`aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa````aaaaaaaaaaaaaaa````aaaaaaaaaaaaaaa``aa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa``a``aa`aa`aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``aaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```a`aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa````a``aa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaa````aaaaaaaaaaaaaaa````aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa````a``````aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaa```aaaaaaaaaaaaaaa````aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa``a`````aa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaa````aaaaaaaaaaaaaaa```aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa`a`a```aa`aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaaaaaaa````aaaaaaaaaaaaaaa``aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa```````aa`aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``aaaaaaaaaa```aaaaaaaaaaaaaaaa``aa`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa```````aa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaa````aaaaaaaaaaaaaaa```a`aaa``a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa````a`aaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaa```aaaaaaaaaaaaaaa```a`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa``a`a``aa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaa````aaaaaaaaaaaaaaa````aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa``a`a```a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaa````aaaaaaaaaaaaaa````aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa````a``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaa```aaaaaaaaaaaaaaa```aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa``````aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``aa````aaaaaaaaaaaaaa````aa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa``a`a``a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aa```aaaaaaaaaaaaaaa```aa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa``a`a``a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`````aaaaaaaaaaaaaaa```a`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa````a``a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa```aaaaaaaaaaaaaaa```a`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaa```aaaaaaaaaaaaaaa````aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa`````a``aaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaa```aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa`````aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``aaaaaaaaaaaaa```aa``aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa````aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaa```a``aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa````aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaa`````aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa`````a``aaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaaaaaaa`````aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa`````aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaaaaaaaa````aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa````aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaa``aaaaaaa````aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa```aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``aaaaaa```aa`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa```aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``aaaaa``a``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa```aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaa`````aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa```aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaa```aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa```aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aa```a``aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa```aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaa`````aa`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa``aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa````aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa``aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``a````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa``a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaa`aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaa``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaa``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa```aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``a``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaaaa``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaa``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaaaaaaa``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaaaaaaaaaaa`aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa`aaaaaaaaaaaaaa``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaaaaaaa```aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaaaaaaa````aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaa`aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaa``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaa``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa```aaaaaaaaaaaaaaa``aaaaaa``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaa``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa```aaaaaaaaaaaaaaaa`aaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa```aaaaaaaaaaaaaaa``aaaaaaaaaa`aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaa``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaa````aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa`aaaaaaaaaaaaa``a``aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aa`aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaa`aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaaaa`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa`aaaaaaaaaaaaa``aaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaaaaaaa``aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaa`aaaaaaaaaaaaa``aaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaa``aaaaaaaaaaaa```aaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa`aaaaaaaaaaaaa``aaaaaaaaaaaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa`aaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaa`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaa``aaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa`aaaaaaaaaaaaaaa``aaa`aaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa`aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaa`aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa````aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````a``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````a```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````a`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````a````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````aa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````a````a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````a`````a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa`aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````a``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa``aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````a`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````````aa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````aa```a````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa``a`aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````````a```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa`aa`aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````a```a`aa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a`a`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````a`a`a`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``a``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````a```a``aa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`````aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````````````a``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa`a`````aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````a``````aa```````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a`a```a`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````a`````a`a`````aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa`````aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````````a```a````aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a````aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````a````a``a`````aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````a`a``````````a`a```a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a`a````aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````````````a````a````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a````aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````aa`````````````aa``aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a``````aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````a```````````a`````````a````aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa``````aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````````````aa`aa```aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a``a````aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````a`a`````````a`a```aa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a````````aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````a``````a``````````aaa``a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa````a```aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````````````a```a````````a````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a`````aaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````````aa``a`a``aa``aaa``a````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaa```a`aa``````a``a``````aaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````````````````````aa````aa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaa``aa`````````````````````aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````````aa```````aa``aaa``a````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a```a````aaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````````a`````a`````````````a`a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a`a```````aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````````aa``a``aa``aa`a`aaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa``a`aa```````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````````aa``aa``````a`aa``aaa``aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`a`a``````aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````a``````````a``aa```a````aaa`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa```a`a````aaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````````aa``aa````````aa``aaa```aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````````````aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````a``````a`````a````aa``a`a```aaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a`````a```aaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````````````````a`a`a``aa```aaa`aaa```aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a``a```a````aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````a````a``````````````````a`````aaa``aa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa````````````a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````````````````````````aaa``aaa```````aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaa``a``a```````a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````````````a`aaa``````a``a`a`a`a```aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaa`aa`````````aaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````````a```a`aaa``a``````a``aa``aa`aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aa``a```````aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````a````a````````````````a```aa````````aa`aa``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aa`aaa`aa``````````````a``a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````````a`````a``aaa``aaa`aaaa``````````a`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````a```````a```aa``a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````````a`````````a````````a`````````a`a``aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa`aa``a`a`````````aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````````````````a``a```aaa`a`a`a`a```aa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a````aa``a`a`a```````aa``````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````a`a``a`````a`a`a`aa`a```aaa```aa```aaa```aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa`a```aa```a`````````a````aaa``a````a```````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````````````````````````````````aa`a``aa`a`a`aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a```````````a````````````aaaaaaaaaaaa`a`aaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````````a````a``a`aa``aa``a````aa`a```a``a`aa``aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaa`````````aaa``````a`aa```a`aa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaa`````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````a`````````````````````````````````````aa``a``aaa``aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaa`aaa`aa````aa``````````aaa```````````````aa`aaaaa``a`aaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````````````aa````````aaa`aaa``aa``a``a``aaa``a`aaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a```aaa````aa````````````aa``aaaaaaaaaaaa`a``````aaaaa`a`a`aaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````a```a``````````````````````````aa`````a```aa``aaaaa``aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa````a`a`aa``a```````aa`````aaaaaaaaaaaaa`aaaaaaaaa````aaaaaa``aaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````````a``````a`a`a`aaa```aaa``````a``a```aa`aa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa`aa`````aa`aa````````aa`a```aaaaaaaaaa`aaaaaaaaa``aaaa`````aaaaa``aaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````a````````a```aa`````a`aa`aa```a``aaa``aaa``aa`a``aaaa``a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaa``````````````aaaaa```aaaaaaaaa````aaaaaaaa``aaaaaaaaaa`a`aaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````````a``````````````````a````````aa``a``a``aaa``aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaa````a``a``````````````````aaaaa``aaaaaaaaaaaa`a`aaaaaaaaaaaa`a`aaaaaaa``aaaaaaaaaaaa`aaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````````````````````````a``a````a````a``aaa```aaaa``aaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````````aaaa`aaa````a```````aaa``aaaaaaaaaaaaaaaaaa`a``aaaaaaa``````aaaaaaaaaaaaaaaaaaaa`aaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````````a```a``a``a````````````aaa``aa``````````aa`aaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a``a````a``aa``a`````a`````aaa``aa`````````aaaaaaaaaa`aaa``aaaaaaaa`a``aaaaaaaaaaaaaaaa``aaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````a``aa`````a```aaa```aa`aa`a````aa```a`a```aaaaa```aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a`aaa`````a``a`a```````aa``aa``aaaaaaaaa``````aaaaaaaaaaaa````a`aaaaaaaaa`a`aaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````````````a``a``a``aa`aaa````aa```aa``aaaaa``aaaa``aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaa`a`a```````````````a``a````aaaaaaaaaaaaaa`a``aaaaaaaaaaa`````aaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````a````````````````````````````````````````aa`aaaaa```aaa``aaaaaa`a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aa````aa`a`a``a```````a````aa`aa``````aaaa`aaaaaaa```a```aa``aaaaaaa```aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````aa``a````aa`aa```aaaa``a```````aaaa```aaaa`aaaaaa``aa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa`a`````````````a`a`a``````a``aa``````a```aaaa```````aaaaaaaa``aaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a``````a``````a`````````````````````a```aa`````a`a`````aaa``aaaaa``aaa``a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````````````````a``````a`````aaaa````aaaa``````aa````aaaaaaaaa`aaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````a`````````a````````a```aa``````a`a```aaaa`a``aa``aaaaa``aaa``aa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaa`aaa``a````````````````````aaaa```````````aaaaa```aaaaaaaaaaaaa````aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````````````````a``aaa``aaa`a```aaa``a`aaa``aaaaa`aaaa``a```aa``aaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa`aa```a`a`a``````````a```aaaa``````aaaaaaaaa``aaaa`aaaaaaaaaaaa````aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````````a```a````````````````a```a```aa`aa``aaaaa``aaa``a```aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa``aaa``a``a``````a`````aa`````aaaaaaaaaa`aaaa```aaaaa`````aaaaaaaaaaaa````aaaa``aaaaaaaaaaaaaaa``aa``aaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````````a``aa`a`aa```aa``a``aa```````aa``aaaaa``aaa``a``aaa````a``aaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaa`aa``````a````aa`a``a`````aa``````aaaaaaaa```aaa``aaaa``aaaa`````aaaaaaaaaaaa```aaaaa`aaaaaaaaaaaaaaaaaaaa```````aaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````````````a`aa`aa```aa````aaa`aaa``a``aaaaa``aaaa`a``aaa`````a````aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a``````````````````````````````````````a```a``````````````aa````aaa```aaaaaa````aaaaaaaaaaaaa``aaaaaa``aaaaa```aaaaaaaaaaaaaa``a`aaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````a``````````````a`````a``````aaa`aaa`aa``aaaa``aaaa``a``aa````aaa``a```aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaa``a`````aa``aa`````````````````````a````aa``aaaa`aaa`a`aaaaaaa```aaaaaaaaaaaaaa``aaaaaaaaaaaaaaa````aaaaaaaaaaaa```aaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````````````````````a```a``a`a`````````aaa`a``aaa```aaaaa````aa``a``aaa`aaaa```aaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa`````````````````a```a``a```````````aa``aaaaaaaaa``aa`aaaaaaaaa```aaaaaaaaa`aa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaa``````````a`````````````a```a`````aaa```````````a```aa`a``a`aa``a```aa``aaaa`a```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa```aa``a``````````````````a```````aa```aaaaaaaaaaaaa`aaaaaaaaaaa``aaaaaaaaa`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaa```````````````````````aa`````````aaaaaa`a````aaa```aa`aa``aaa``aa``aaa`aaaa```a````aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa`aaa`a`a```````````````a``````````````aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a``aaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaa``````````````````````````a```````````aa`aaaaaaa``aa`a``aaa``aa``aaaa`aaaa``aaaa`````aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa``````````aa`a`a````a``a`a````````````aa``a`aaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaa````aaaaa````````````````a````a````````````aaa`````aaa``aaa`a``aaa`aaa``aaa``aaa``aaa`aaa`````aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````````a`````a``a````````````````a`a`````aa``aaaaaa`aaaaaaa`aaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaa``````aaaaaaa````````````````````````````````a`````aaaaa```aaa```aaa``aa``aaaa`aaaa``aaaaaaa```````aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````a``aaaaa``aaaa``````a`a``a`a```````a`a`a`````aa``aaaaaaaaaa`aaaa````aaaaa````aaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaa`````````aaaaaaaaaa`````````````````aaa``````aaa`````````````````aa```aa``aa``aaaa``aaa``aaaa``aa`aaaa````aaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa`aaa`aaaa`a`a`a`a````````````````````````aa``aaaaaaaaaaaaaaaaaaa````aaaaaa```aaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaa````````````````````````````````a``aaa`````aaaa``aa`aaaa``aaa```aaa``aaaa``a``aaa``a`````aaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa`aaa```aaa`a`a`a``````````````````````````aa``aa``aaaaaaaaaaaaaaaaaaa````aaaaa````aaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaa``````a`a``a```````````aa``aa`````````````aa``a``aaaa``aaaa``aaa``aaaaa`aa``aaa``aaaa````aaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa`aa``a`aa``a``a``````aa```````````````````aa``aaaa```aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaa`aaaaa````````````````````a`aaa```aa`aa`aaaaa`aaa``aa`aaa``aaaa```aaa``aaaa``a``aaaa`aaaaa```````aaaaa``aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa`aaa`aa````aa`aa```````````````aa```a`a````aa```aaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaa``````aaaaaaaaaaaaaaa```````aaaaaaaaaaa````````````````aaa`````````````````````aa``aaa`aa``aaaa``aaa``aaaaa``a``aaa``aaaaa``a``````aaaa``aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````````````````aa`a````````a`a``````aa```aaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaa``````aaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa````````````````````````a````````aaa`aaaaa`aaaa```aaaaa``aaa``aaaa`````aaaa`aaaaaa`aa``aaa````a```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaa``aaaa``aa``a`````````````````````````a``aa```aa```aaaaaaaa``aaaaaaaaaaaaaaaaaaa````a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaa```````aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaa```````````````a````a````````aa`````aaaaa`aaaaa``aaaa```aa``aaaaa````aaaa``aaaaa``a``aaaaaa``````aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaa``aaaa``aa`a`a``aa`a````a`a```````````````aaa``aaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaa````aaaaaaaaaaaaaaaaaa`aaaa````aaaaaaaaaaaaaaaaaaaaaaaa``````a```````````aa`aa``a``````````````aaaa```aaa``a`a``aaaaa````aaaa``aaaaaa``a``aaaaaaaaa````aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a`aa`````aaa`a`aa`a````a`a```````````````aaa``aaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa````aaaaaaaaaaaaaaaaaaa``aaaaaa`````````````````````````aaa``a``a```````````a`aa``a`a`aaaaaa```aaaa```aaaaa``aa``aaaaaaaaaa``````aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa``a`a````a`aa`aa```a`aa`a`````a`````````aaa``aaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a`aaaaaaaaaaaaaaaaaaaaaaaaa```a`aaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaa``````aaaaaaaaaaaa`````````````a`````````````aaaa``aaaa`aa````a`````a```aaa`a```aaaaa``aaaaaa``aa`aaaaaaaaaaa`````````aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````a``aaa`a``````a```````````````a`````````aaa```aaaaaaaaaaaaaa`aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaa`a`aaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaa`aaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaa`a````aaa``````````````a````a````````````aa```a```a`a```a`a````aa````aaaaa``aaaaaa``aa``aaaaaaaaaaa`````aa`````aaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````````````````````````````````````````aaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaa`aaaaaaaaa``a``aaaaaaaaaaa````````````a````a````aa``a``a````````a``aaaa`````a``a```aaaaa``aaaaaaa``aa``aaaaaaaaaaa``a``aaaa``````aaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa`aa``aaaaa``a``a`a`````````````````aaa```aa`````aaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa`````````````aa```a`````a``aaa`a`````a``a`aa```aaaa````aaaaa``aaaaaaa``aaa`aaaaaaaaaaaa``a```aaaaaa``````aaaaaaaa``aaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa`a`aa`a`aa``a`a`a`aa``a`````````aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a```a```aa`aaaaa```````````````a`aaaaa`````````````````aa`a`a``````a``a`aa```aaaa```aa``a```aaaa``aaaaaaaa`aaa``aaaaaaaaaaaa``aa```aaaaaaaa`````aaaaaa```aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa`aaa``````a``a``aa````a``````````aaaa``aaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaa```````````a```````aaa```a`a```a`aa`aa`````aaaaaaa``aaa``aaaaaaaa``aaa``aaaaaaaaaaa``aaaa``aaaaaaaaaa``````aaaa``aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaa`aa`aaa```a`````````````````````````aaaa``aaaaaaaaaa``````aaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaa````aaaaaaaaaaaaaa``````aaa``aa```````````````````````a`aaa``aa````aaaa``a``aaaa```a```aaaaaaa``aaaa``aaaaaaaaaaa``aaaa```aaaaaa``aaaa``````aa``aaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaa``aaaa``aaaaa`a```a````````````````aaaa``aaaaaaaaaaaaaaaa```````a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaa```aaaaaaa`aaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaa`a`a`aaaaaa````aaa```````````aa````````````aa`aa`a``a`a```aaa``aa``aa``aaaaaaaaa``aaaa`aaaaaaaaaaaa``aaaaa``aaaaaa``aaaaaaa````````aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaa``aaa```````a````````aa``````````a`aaaa``aaaaaaaaaaaaaaaaaaaaaaa```````a``aaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa```aaa``aaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaa`aa`a```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaa``aaaaaaaaaa````aaaaaaaa`````````````a``````````````````aaaa``aaaa``a``aa```aaaaaaa``aaaa``aaaaaaaaaaa``aaaaaa```aaaaa`aaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaa`aaaaaa``aa```a````````a`````a`aa```````a`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa```aaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaa``````````a`aaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaa``````````````aa```aa````a`a````aa```aaaaa```aaa`a`a`aaaa``aaaaa``aaaaaaaaaa``aaaaaaaa```aaa``aaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````````````a`aaa`aa`````````````````a`aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaa``aaaaaaaaaaaaaaaa````aaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa```````````aaaaaaaaaa`aaaaaa``````````````````a`````aaa``a``````aaaaa``aaa`aa`a`aa``aaaaa``aaaaaaaaaaa``aaaaaaaaa``aaa`aaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaa```aa````a``aa```a`a```````````a`aaaa``aaaaa````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaa``aaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````a`aaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````aaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````a``````aa```a`a`aa`a````a``aa``aaa`aa``aaaa````aaaaaaaaaa``aaaaaaaaaa```a``aaaaaaaaaaaaaaaaa``aaa`````aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa`aaaaaa```aaa`a```aa`aa```````a`````````aaaa``aaa````aaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa``````````a`````a``a```a``a```aaaaaa````a``aaaaa````aaaa```aaaaaaaaaa``aaaaaaaaaaaa````aaaaaaaaaaaaaaaaaa```aaaaa`````aaaaaaaaaaaa``aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaa`aaaa`aa`aa`aaa````````a`aa````````````aaaa``aaa`````````aaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaa`aaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````a``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaa````aaaa``````````````a``````aa`````a`aaaaa``aaa```aaaa```aa`a``a`aaaaaaaaaa``aaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaa```aaaaaaa``````aaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````aa``aa``aa`a``````````````````a``````````aaaa``aaaaaa``aaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaa`aaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaa`````````a```a`aaaaaaaaaaaaa``````aaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````aaa``````````a```a```a```a``a`````aa`aaaa```aaaa```aaa``a``aaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa````aaaaaaaaaa``````aaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````````````aaa```a``````````````aaaa``aa``````aaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaa``aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaa```aaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aa``aaaaaaaaaa```````````a`````a``````a`a`aa```aaa``a`aa``aa`aa```aaaaaaaaaa``aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa`aa``aaaaaaaaaaaaa``````aaa`aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``a`aa````````aaa```a`````````aaaa``aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaa`aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaa```aaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaa```aaaaaaaaa````````````````````a````a`a`a``aa```aaa```aaaa`a``a`aaaaaaaa``aaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaa`aa``aaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaa``aaaa`a```aa`aa`a`````````a`````````aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaa`aaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaa```aaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaa````````````````````````a`a``a``aa`a``a``aaaaa``aaaa`aaaaaa``aaaaaaaaaaaaaaa``a```aaaaaaaaaaaaaaa``aaa``aaaaaaaaaaaaaaaaaa``````````aaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````````a`aa``a`aa``aa````````````````````````````aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaa``aaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````a`a```a````````aaaa```aaa``aaaaa``aaaaa``aaa``aaaaaaaaaaaaaaaa`aaa``aaaaaaaaaaaaaaa``aaa```aaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````````````````aaaa`````````a```aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaa``aaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaa`aaaaaa``aaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaa``````````````a````a```````````a````a``aaa`a`aaaa`a`aa``aaaaaaaaaaaaaaaa`aaa```aaaaaaaaaaaaaa`aaaaa``aaaaaaaaaaaaaaaaaaaaaaa``````````aaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa``aaaa``aaaaa``aaaa````aaa```a`````````aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaa``aaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaa``aaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaa``````````````````aa````a`aa`a`````aa``a``aa`aaaa`aa``a`aaaaaaaaaaaaaa``aaaa```aaaaaaaaaaaa``aaaaaa``aaaaaaaaaaaaaaaaaaaaaa``aaa`````````aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaa`aaaa``aaaaa```aaa`aa`````````````````aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaa``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaa``aaaaaaaaaa``aaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aa`aa``a```````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaa```````````a```a```````a```aaa``aaaa`aa`aaa`aaaa`a```a`aaaaaaaaaaaaa``aaaa```aaaaaaaaaaaa``aaaaaa```aaaaaaaaaaaaaaaaaaaaaa``aaaaaa````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa`aaa`a`aaa`aa````````````````````````aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaa`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````a`````a``````````aaaa``a`aaa`aaaaa`aa`a`aaaaaaaaaaaa`aaaaaa```aaaaaaaaaaa`aaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaa````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa`aaaa`aa`aaa`a``a```````aa``a`aa`aa```````aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaa`aaaaaaaaaa``aaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````````a```aa```a````a``a`aaa``aaa`aaaa``aaaaaaaaaaa`aaaaaa```aaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaa``aaaa`a`a````````a``a````````````````````aaaa```aaaaaaaaaaaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa`aaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````a`````a`aa`aa``aaa```a`aaa`aaa```aaaa`aaaaaaaaa``aaaaaaa```aaaaaaaaa`aaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa```a````````````````````````````aaaaaa`````````````````a``````````````````````````````aa`````aa``a`````a````````aaaaa```aaaaaaaaa``aaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa``aaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````a``````a````a````aaa````aa`aa`aa`a``a``aaaa``aaaaaaa`aaaaaaaaa```a``aaaa``aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaa````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaa`aaaa`aaaaaa``a``aa`aa`aaaa`````a``````aaaa```aaaaaa`a`aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````a`````````````aa`aaa``aaa``aa`aa```aa``aa`a`a`aaaaa```aaaaaaa```aa`a``a``aaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa`aaaaaa`a````a``a```````````````aaaaa```aaaa``aaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaa``aaaaaaaaa``aaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````````a`````aaa``aaaa`aa`a``aaaa``aa`a`aa``aaaa`aaaaaaaa```aa`aa``aaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa`aaaa``aaaaa```a``````````aa```a`````aaaaa```a```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaa`````````````````a`a``a``````aaaa`aa``a`a`aa``aa`a`aaa``aa`aaaaaaaaa``aaaaa`aa``aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa`aaaa`aa```````aa`a``aa``````aa````aaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaa`a``aaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaa``aaaaaaaaaa``aaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa````````````a`````a`a``aaaa````a`a``aa`a`aaa`aa`a`aaaaa``aaaaaaaaa```aaaa`aaaa``aaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa``aaaa`aaaa`aa````aaa````aa`````a``aaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a```aaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaa``````a`````````````aa```aa`aaaa````aa`a`aaa`aa`a`aa`aa```aaaaaaaa```aa``aaaaaaa``aaaaaaa```aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa`aaaaa`aa``aaa`````a``aa`````````aaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a`aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaa``aaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaa````````````a`````a`aaaa`aa`aaa``aa`aa``aaaa`aa`a`aa```aa``aaaaaa```aa`aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa`aaaa````aaaa```````````````````aaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaa`a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````a```````aaa`aa```aaa`a`aaaaa`aa```aa``aaaaa`aaaaa`````aaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa``aaaa```````a``aa```````a`a````aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````a````aa`aa````````````aa`a`aaaaa`aaa``a``aaaaaaa``aaa```aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaa``aa`aaaa``aa``aaa`````````````aa`aaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````a`aa`aaa``aaa``````````aa`aaaa```a`aaaaaaaa`a```aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````````````````aaaa``````a``aaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaa`aaaaaaa`aaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a`a`````a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````````a`a`aa`aaaaa`aaa`aa`a`aa`aaa```aa`aaaaaaaaa```aaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaa`aaa`a``a```a`aa``````````aa```aaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaa``aaaaaa``aaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a`aaaaaaa```````````````a``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````a`a`````````aaaaaa`aaa`aa`a`aa`aaa``aaa`aaaaaaaa````aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaa`aa`````a`aaaaa```````a````a``aaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaa``aaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````aa``a````a``````````````a`aa`a``a`aaa`aaaaaaa`a`````aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaa``a``aa`a`a```aaaa```````aa``aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaa``aaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````a```a``````aaaaaaa`aaaaaa`a`aa```aa``aa`aaaaa``aa``aaa`aaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaa`aaaaaa``aa`a`````a`````````aaaaa``aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaa`aaaaaaaaaaaaaaaa``aaaaaaaa``aaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaa`a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````a```a```a``aa`aaa`aaaa`a`a`aa```aa``aa`aaaa``aaa``aaaa`aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaa`aaaaaa````````````aa```a```aaaa``aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa`aaaaaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa`a``a`aa``aaaaaaaaaaaaaaaaaaaaaaaa`a``````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa```````````a````a``aa```aaa`aaaa`a`a`a``a`aa``aa`aaa`aaaaaaaaaaaa`aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````aa`aaaa`````aa``a`aa```aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaa````````a```a``````````aa``aaaa`a`a``a`a`aaa`aa`aa`aaaaaaaaaaaaaaa``aaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaa``aaaaa``aaaaaa`aa``aa``a`a````aaa````aaaa````aaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaa``aaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````aa``aa``aa``````aaa`a`a`aa`a`aa``aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaa``aaaaa``aaaaaa```````aaa`aa`````a```aaaa```aaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````a``aaa`aa```````````aaaa`a`aaa`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaa``aaaa````aa`aaaaa`````aaa``aaaa```aaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````aa`aaa`a`aaaa````aa`aaaaa`a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````aaa`a`a`aa``````aa`a``aaa````aaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaa`aaaaaaaaaaaa``aaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````a````````aa`aaaaaaa`aa`aa``aaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa`````a`````````````aa``a`a``aaa```aaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa`aaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a`a````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````a````````````a`a`a`aa`a``aa`aa`aaaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaa``a`aaaa`aaaaa```aa`aaaaa``a```aaa```aaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaa`a`aaaaaaaaaaaaaaaaa`aaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````aa`````aaa`aa`a```a`aa`a`aa``aa`aaaaaaaaaaaa`aaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaa`aaaaaa`aa``aaa`aa``a``````aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaa`a`aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````a`a```````aa`a```a`aa`a`aa``aa`aaaaaaaa`aaa`aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````aaaa````aaaaa```````a`a``aaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````a```````a``a```````````a`aa`a`aaa`aa`aaa`aaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa```````````````aa```a`````aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a``aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````a```a`````aaa`a```a`aa`a`aaa`aa`aaa`aaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa`aaaaa``aaaaaa`aaa`````aa```aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaa``aaaaaaaaa````aaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````aa`a```a````aa`aa`aaaaa`aa`aaaaaaaaaaaaa`aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaa``aaaa``aaaa``aa```````aaaaa````aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaa`aaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````````aa``````aa`aaaaa`aaaaaaaa`aa`aaaa`aaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaa``aaaaa`aa``````aaaa``aaa``````aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````aa``````a`aa`aa`a`````aa``a`aaaaa`aa`aaaa`aaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaa`aa`````aaaa``aaaaa````aaa``aaaa```aaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aa````a```````aa`aa````aa``a``aaaa`aaaaaaa`aaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaa``````a```aaaaa`aaaaa``````````a``aaaa```aaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a`aaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````a`aa``aaa`a`````aa`a`aa``aa`aaaa`aaa`aaa`aaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaa`aaa``````````````````````aaaa```aaaa```aaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````a```````aa`a`a``````a`aa``aa`aaaaaaaa`a`a`aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaa`aa`aaaa`aaa`a``````aaaa``aaaa``aaaa````aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaa```aaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aa`a```````aaa``aaa```aa``aa``aaaaaaa`aa``aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaa``aa``aa```````aaaaa``aaaa`````aaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```aaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa```a`aa`aa``aa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaa```aaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaa``````````aa``a``````a`aa`a`aaa``a```aa``aaaaaa``aaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaa`aaaa````aaaaa``aaaa``aaa`````aaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaa``aaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaa``aaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaa``````````````a``a`a``aa```aaa``a`a`aa``aaaaaa```aaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaa````aaaaa`aaaaaa```aaaaa```aaa````a``aaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a`aaaaaaaaaaaaaa``aaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaa``aaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaa```aaaaaaaaaaaaaa````````aaa`````a`a``aa```aaa``a`a`aaa`aaa`aaa`a``aaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaa````aa``aaaaaa`a````aaa````aa````aaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa``aaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa``aaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaa````````````````````aa`a``aa``aa``aaa`aaa`aaa`aaa`aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaa`````````````````````a````a```aaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaa``aaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaa```aaa````````````````````````a```aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaa``aaaaaaaaaaaaaaaaaaaa``````aa``aa````a``aa`aa`aa``aa``aaaaaaa`aaa`aaaa`aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa`aaaa``````aa`aaa````````````aaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaa`aaaa``aaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaa```````a```a`a````aa`aa`aa``aa`aaaaaaaa`aaa`aaaa`a`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaa`aa`````````aaaaaa```aaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaa``aaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaa`````````````aa``````a`aa``aa`a`aa``aa`aaa`aaaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaa````aaa``aaaaaaaa``aaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaa```aaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaa``aaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaa``aaaaaaaaaaa``aaaaaaaaaaaaaaaa```````aaa``aa````````````a`a`aaa`aaa`aa``aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaa`a``````````````aaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaa```aaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaa``aaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaa``aaaaaaaaaa``aaaaaaaaaaaaaaaaaaa``````````````aa``a``a```a``aaaa`aaa`aa``aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaa`aaaaa`aaaa```aaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa```aaaaaaaaaa```aaaaaaaaa``aaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaa`aaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaa``aaaaaaa``aaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaa````````aa```aa`a``aa``````aaa`aaa``aa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaa`aaaaa`aa```aaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaa```aaaaaaaaa``aaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaa`aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaa``aaaaaaaa`aaaaaaaaaaa``aaaaaaaa``aaaaa``aaaaaaaaaaaaaaaaaaa```a````aa````aa``aa``aa```aa`aaa``aa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaa````````````aaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaa``aaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaa``aaaaaaaaaa``aaaaaaaaa``aaaaa`aaaaaaa``aaaaaaaaaaaaaa```a```````````aaa``aa`aaaa``aa``aa``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````````aa```aaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaa```aaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaa``aaaaaaaaaa``aaaaaaaa``aaaaa``aaaaaaa``aaaaaaaaaaaaaaaa`````````aaa```````aa`a`aa``aa``aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaa````aa`aaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaa``aaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaa``aaaaaaaaaaa`aaaaaaaaa`aaaaaaa`aaaaaaa`aaaaaaaaaaaaaaaaaaaa````````aaa```a```````aaa`aa``aa``aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaa``aaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaa``aaaaaaaaaa``aaaaaaaa``aaaaaaaaaaaaaaa`aaaaaaaaaaaaaaa``aaaaa```a````a`aa`````a`a`aaa`aaa``a``aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaa``aaaaaa`aaaaaaaa`aaaaaaaaaaaaaaa`aaaaaaaa```a```````a````aa`a`aa`aaa``a``aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaa``aaaaaaaaaaa``aaaaaaaa``aaaaaa``aaaaaaa``aaaaaaaaaaaaaaa`aaaaaaaaaaa````a`````aa`````a`aa``aa``aa`aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````````````aaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaaaaa``aaaaaa``aaaaaaa``aaaaaaaaaaaaaaa`aaaaaaaaaaaaa````aa````a``aa`a`aaa`aa``aa`aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaa``aaaaaaaaaaaa``aaaaaaaaa`aaaaaaa`aaaaaaaa``aaaaaaaaaaaaaaa`aaaaaaaaaaaaa```````````a```aa``aaa`aaa`aa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaaa``aaaaaaa`aaaaaaaaa`aaaaaaaaaaaaaaa`aaaaaaaaaaaa```aaa`````a``````````````aa`aa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa``aaaaaaaaaa`aaaaaaa``aaaaaaaa``aaaaaaaaaaaaaaa`aaaaaaaaaaa```aaaaaaa```````````a`aaa``aa``a``aaa`aaa`a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaa```aaaaaaaaaa``aaaaaaa`aaaaaaaaa``aaaaaaaaaaaaaaa`aaaaaaaaaaa``aaaaaaaaaa``````a``````````aa``a`aaaa``aa`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa```aaaaaaaaaaaa``aaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaa`aaaaaaaaaa```aaaa`aaaaaaaa`````aaa```aa```a``a`aaaa``aa`aa`a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa```aaaaaaaaaaaaa``aaaaaaa`aaaaaaaaaa``aaaaaaaaaaaaaaa`aaaaaaaaaa```aaaaaaaaaaaaaaaa``````aa`aaa`aa``a``aaaa`aa`aa`a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaaaa``aaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaa```aaaaaaaaaaaaaaaaaa`````````aaaaaa``aa`aaaa`aa``a`a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa````aaaaaaaaaaaaaa``aaaaaaa``aaaaaaaaaaa`aaaaaaaaaaaaaaa``aaaaaaaaa``aaaaaaaaaaaaaaaaaaaa`aa``````````aaaa`a`aaaa``aa`a`a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````aaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaa```aaaaaaaaaaaaaaaa``aaaaaaaa`aaaaaaaaaaaa`aaaaaaaaaaaaaa``aaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaa`````````````````aaa``aa`a````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````aaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaa`aaaaaaaaaaaa``aaaaaaaaaaaaaa``aaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaa`````a```aaa`a`aaaa``aa`aa`a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa```````````````````````aaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaa``aaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aa```a`a`aaaaa`aa``a`a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaa``aaaaaaaaaaaaa``aaaaa`aaaaaaa``aaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````aaaa`aa`aaa`a`a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaa``aaaaaaaaaaaaa``aaaaa``aaaaaa``aaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````aa``aa`a`a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaa``aaaaaaaaaaaaaa``aaaaaaaaaaa```aaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a``aa``````aa`a`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaa``aaaaa`aaaaa``aaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aa`aaa`aaa``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaa``aaaaa`aaaa``aaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````a`aaa`aaa``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaa``aaaaaaaaaa`aaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a``aa``aa``aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`a````aaa`aaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaa`aaa`aaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a`aaa`aaa`aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaa`aaaa`aaaa`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaaa`aaaa``aa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aaa`aaaa``aa`aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaaa``aaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````aaaaaaaaaaaaaaaaa```````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aa``aaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````aaa`aaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````a`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````````````````aaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaa`a```````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a````a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaa`aaa```a``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaa`aaaa``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaa``aaaa`aaaa``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```aaa``aa``aaa``aaa``aa```aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaa``aa`aaaa``aaa``aa`````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaa```aa``aa`aaaa``a```aaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa`aa``aaaa``aa``aa``aaaa```a`aaa`aaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a```a`aaaaaa`aa``aa``aaaaaaa``aaa``aa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a```a`aaaaaa`aa``aa``aaaaaaa``aaa`aa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a``aa`a``aaa`aa```a``aaaaaaa`aaaa````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a``aa`a``aaa`aa`a``a`aaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa````aa`a```a``aa`aa```aaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaa``aa`aa```a`a``aa`aaa``aaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``````aa`aa```a````aa`aaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aa``aa``aa``aaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``a``aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa```a``aaaaaaaaaaaaaaaaaaaaaaa``aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa``aa`aaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+};
diff --git a/Documentation/links.pod b/Documentation/links.pod
index ab1adf7a3e..2402e2e533 100644
--- a/Documentation/links.pod
+++ b/Documentation/links.pod
@@ -44,13 +44,14 @@ The FTP site of RedHat Software.
=back
-Beta releases will also be at
+At this moment we have about one development-patchlevel per week.
+These development releases will also be at
=over 4
-=item ftp://pcnov095.win.tue.nl/pub/lilypond
+=item ftp://pcnov095.win.tue.nl/pub/lilypond/development
-=item ftp://alpha.gnu.ai.mit.edu/gnu/lilypond/
+=item ftp://alpha.gnu.ai.mit.edu/gnu/lilypond/development
=back
diff --git a/Documentation/mudela-man.doc b/Documentation/mudela-man.doc
index a4cb803430..7c28d71e34 100644
--- a/Documentation/mudela-man.doc
+++ b/Documentation/mudela-man.doc
@@ -123,9 +123,15 @@ When assigning identifiers you use
\begin{verbatim}
string = ...
-\oldidentifier = ..
\end{verbatim}
+If you reuse identifiers, then the previous contents will be thrown
+away after the right hand is evaluated, eg
+\begin{verbatim}
+bla = \melodic { \bla }
+\end{verbatim}
+is legal
+
When using identifiers they have to be escaped:
\begin{verbatim}
diff --git a/NEWS b/NEWS
index ee3412f44c..db76e9d527 100644
--- a/NEWS
+++ b/NEWS
@@ -1,11 +1,22 @@
-pl 0.1.7.jcn1
- - complete redo mid/back-end of mi2mu
- - bf: do not create/play empty Audio-{text,instrument} events
+pl 8
+ - gif -> xpm
+ - bf: Whoops! Open eyes now, when finding shortest note in
+spring-spacer. Fixes spacing problems.
+ - GNU coding: parentheses (here you are, Franc,ois :-)
+ - all macros now UPPERCASE
+ - Identifier blondification: don't use void*
+ - Identifier doesn't store its name. Much cleaner now.
+ - bf: Rest_collision_engraver now always announces
+ - bf: announce Staff_sym only once
+ - rewrite of mi2mu (JCN)
+
+********
+aug 14
pl 7
- Audio_element as base for Audio_item and Audio_staff. fixes
midi-lyric segfault
- - added "Gallina a due violini"
+ - added "Gallina a due violini" (MB)
- make MIDI files on website.
- Collision now also is an Element_group.
- bf: announce Collision when created
@@ -46,7 +57,6 @@ pl 0.1.3.jcn1
*********
aug 11
-
pl 4
- correction of GNU Music Manifesto
- moved lowlevel stuff of Source_file to Mapped_file_storage.
@@ -62,9 +72,6 @@ Interface via File_storage. (Now using Simple_file_storage)
- mudela: parse tempo requests, \midi{ \tempo 4= 60;}
******
-pl 0.1.3.jcn1
- - mi2mu: simplification +bf lily_stream: indentation and wordwrap
- - mi2mu: bf: blunt: non-alpha(num) chars from identifiers
aug 8
pl 3
- don't crash if no Clef_engraver.
diff --git a/TODO b/TODO
index 66701d0090..d53e6e6b69 100644
--- a/TODO
+++ b/TODO
@@ -5,14 +5,12 @@ done, or is an idea that I want to think about
Most of the items are marked in the code as well, with full explanation.
grep for TODO and ugh/ugr
+
* Generate TeX titles from MudelaHeader
* integrate midi-elts from mi2mu and lily
* virtualise PCols to make encapsulated spacing problems
-
- * fix spacing: standchen: distance bar-note,
- strange stretching and compressing of 8's
* Doc Mutopia (Music To The People)
@@ -80,6 +78,8 @@ grep for TODO and ugh/ugr
3RD PARTY BUGS:
+ * ICE: spring-spacer::calcideal()
+
* collision.cc: 138, g++ errors
* bugreport to doc++ devel: struct not in class hier; public
diff --git a/VERSION b/VERSION
index d680f6bd6d..e67ec04990 100644
--- a/VERSION
+++ b/VERSION
@@ -1,6 +1,6 @@
TOPLEVEL_MAJOR_VERSION = 0
TOPLEVEL_MINOR_VERSION = 1
-TOPLEVEL_PATCH_LEVEL = 7
+TOPLEVEL_PATCH_LEVEL = 8
# use to send patches, always empty for released version:
-TOPLEVEL_MY_PATCH_LEVEL = .jcn1
+TOPLEVEL_MY_PATCH_LEVEL =
diff --git a/bin/make-patch b/bin/make-patch
index e11d7b8533..4c98e9f35a 100755
--- a/bin/make-patch
+++ b/bin/make-patch
@@ -18,7 +18,7 @@ then
echo untarring ..
if [ ! -f $newarc ]
then
- echo "can't find $newarc"
+ echo cant find $newarc
exit
fi
tar zfx $newarc
@@ -29,7 +29,7 @@ then
if [ ! -f $oldarc ]
then
- echo "can't find $oldarc"
+ echo cant find $oldarc
exit
fi
tar zfx $oldarc
diff --git a/bin/make-website.in b/bin/make-website.in
index e6796215f3..54bfc14151 100644
--- a/bin/make-website.in
+++ b/bin/make-website.in
@@ -74,8 +74,10 @@ sub my_system
local $base="lilypond/";
-local @examples=("twinkle", "multi", "wohltemperirt" ,"standchen", "toccata-fuga-E",
- "scsii-menuetto", "collisions", "cadenza", "scales", "twinkle-pop");
+
+local @examples=("twinkle-pop", "twinkle", "multi", "wohltemperirt"
+ ,"standchen", "toccata-fuga-E", "scsii-menuetto",
+ "cadenza", "scales", "rhythm", "gallina");
# rhythm, scales,
@@ -218,8 +220,9 @@ sub copy_files
my_system "cp $depth/TODO ./TODO.txt",
"cp $depth/ANNOUNCE ./ANNOUNCE.txt",
"cp $depth/NEWS ./NEWS.txt",
- "cp $depth/DEDICATION ./DEDICATION.txt",
- "cp ../lelie*gif .";
+ "cp $depth/DEDICATION ./DEDICATION.txt";
+ my_system "make -C .. gifs";
+
}
sub set_images
diff --git a/flower/NEWS b/flower/NEWS
index f2720c2744..d26a6f344b 100644
--- a/flower/NEWS
+++ b/flower/NEWS
@@ -1,3 +1,5 @@
+pl 27
+ - naming: macros are MACROS
pl 26
- Getopt_long : command -- and command -
diff --git a/flower/choleski.cc b/flower/choleski.cc
index 086759193f..eae3c49cea 100644
--- a/flower/choleski.cc
+++ b/flower/choleski.cc
@@ -13,93 +13,93 @@ const Real EPS = 1e-7; // so sue me. Hard coded
//#define PARANOID
void
-Choleski_decomposition::full_matrix_solve(Vector &out, Vector const &rhs)const
+Choleski_decomposition::full_matrix_solve (Vector &out, Vector const &rhs)const
{
int n= rhs.dim();
- assert(n == L.dim());
+ assert (n == L.dim());
Vector y;
- y.set_dim( n);
- out.set_dim(n);
+ y.set_dim (n);
+ out.set_dim (n);
// forward substitution
for (int i=0; i < n; i++) {
- Real sum(0.0);
+ Real sum (0.0);
for (int j=0; j < i; j++)
- sum += y(j) * L(i,j);
- y(i) = (rhs(i) - sum)/L(i,i);
+ sum += y (j) * L(i,j);
+ y (i) = (rhs (i) - sum)/L(i,i);
}
for (int i=0; i < n; i++)
- y(i) /= D(i);
+ y (i) /= D(i);
// backward subst
- Vector &x(out); // using input as return val.
+ Vector &x (out); // using input as return val.
for (int i=n-1; i >= 0; i--) {
- Real sum(0.0);
+ Real sum (0.0);
for (int j=i+1; j < n; j++)
- sum += L(j,i)*x(j);
- x(i) = (y(i) - sum)/L(i,i);
+ sum += L(j,i)*x (j);
+ x (i) = (y (i) - sum)/L(i,i);
}
}
void
-Choleski_decomposition::band_matrix_solve(Vector &out, Vector const &rhs)const
+Choleski_decomposition::band_matrix_solve (Vector &out, Vector const &rhs)const
{
int n= rhs.dim();
int b = L.band_i();
- assert(n == L.dim());
+ assert (n == L.dim());
- out.set_dim(n);
+ out.set_dim (n);
Vector y;
- y.set_dim(n);
+ y.set_dim (n);
// forward substitution
for (int i=0; i < n; i++) {
- Real sum(0.0);
+ Real sum (0.0);
for (int j= 0 >? i - b; j < i; j++)
- sum += y(j) * L(i,j);
- y(i) = (rhs(i) - sum)/L(i,i);
+ sum += y (j) * L(i,j);
+ y (i) = (rhs (i) - sum)/L(i,i);
}
for (int i=0; i < n; i++)
- y(i) /= D(i);
+ y (i) /= D(i);
// backward subst
- Vector &x(out); // using input as return val.
+ Vector &x (out); // using input as return val.
for (int i=n-1; i >= 0; i--) {
- Real sum(0.0);
+ Real sum (0.0);
for (int j=i+1; j <= i + b&&j < n ; j++)
- sum += L(j,i)*x(j);
- x(i) = (y(i) - sum)/L(i,i);
+ sum += L(j,i)*x (j);
+ x (i) = (y (i) - sum)/L(i,i);
}
}
void
-Choleski_decomposition::solve(Vector &x, Vector const &rhs)const
+Choleski_decomposition::solve (Vector &x, Vector const &rhs)const
{
if (L.band_b()) {
- band_matrix_solve(x,rhs);
+ band_matrix_solve (x,rhs);
} else
- full_matrix_solve(x,rhs);
+ full_matrix_solve (x,rhs);
}
Vector
-Choleski_decomposition::solve(Vector rhs)const
+Choleski_decomposition::solve (Vector rhs)const
{
Vector r;
- solve(r, rhs);
+ solve (r, rhs);
return r;
}
void
-Choleski_decomposition::full_matrix_decompose(Matrix const & P)
+Choleski_decomposition::full_matrix_decompose (Matrix const & P)
{
int n = P.dim();
L.unit();
for (int k= 0; k < n; k++) {
for (int j = 0; j < k; j++){
- Real sum(0.0);
+ Real sum (0.0);
for (int l=0; l < j; l++)
sum += L(k,l)*L(j,l)*D(l);
L(k,j) = (P(k,j) - sum)/D(j);
@@ -107,7 +107,7 @@ Choleski_decomposition::full_matrix_decompose(Matrix const & P)
Real sum=0.0;
for (int l=0; l < k; l++)
- sum += sqr(L(k,l))*D(l);
+ sum += sqr (L(k,l))*D(l);
Real d = P(k,k) - sum;
D(k) = d;
}
@@ -115,7 +115,7 @@ Choleski_decomposition::full_matrix_decompose(Matrix const & P)
}
void
-Choleski_decomposition::band_matrix_decompose(Matrix const &P)
+Choleski_decomposition::band_matrix_decompose (Matrix const &P)
{
int n = P.dim();
int b = P.band_i();
@@ -123,7 +123,7 @@ Choleski_decomposition::band_matrix_decompose(Matrix const &P)
for (int i= 0; i < n; i++) {
for (int j = 0 >? i - b; j < i; j++){
- Real sum(0.0);
+ Real sum (0.0);
for (int l=0 >? i - b; l < j; l++)
sum += L(i,l)*L(j,l)*D(l);
L(i,j) = (P(i,j) - sum)/D(j);
@@ -131,12 +131,12 @@ Choleski_decomposition::band_matrix_decompose(Matrix const &P)
Real sum=0.0;
for (int l=0 >? i - b; l < i; l++)
- sum += sqr(L(i,l))*D(l);
+ sum += sqr (L(i,l))*D(l);
Real d = P(i,i) - sum;
D(i) = d;
}
L.try_set_band();
- assert ( L.band_i() == P.band_i());
+ assert ( L.band_i() == P.band_i ());
}
@@ -146,20 +146,20 @@ Choleski_decomposition::band_matrix_decompose(Matrix const &P)
Standard matrix algorithm.
*/
-Choleski_decomposition::Choleski_decomposition(Matrix const & P)
- : L(P.dim()), D(P.dim())
+Choleski_decomposition::Choleski_decomposition (Matrix const & P)
+ : L(P.dim()), D(P.dim ())
{
#ifdef PARANOID
- assert((P-P.transposed()).norm()/P.norm() < EPS);
+ assert ((P-P.transposed()).norm ()/P.norm () < EPS);
#endif
if (P.band_b())
- band_matrix_decompose(P);
+ band_matrix_decompose (P);
else
- full_matrix_decompose(P);
+ full_matrix_decompose (P);
#ifdef PARANOID
- assert((original()-P).norm() / P.norm() < EPS);
+ assert ((original()-P).norm () / P.norm () < EPS);
#endif
}
@@ -167,7 +167,7 @@ Matrix
Choleski_decomposition::original() const
{
Matrix T(L.dim());
- T.set_diag(D);
+ T.set_diag (D);
return L*T*L.transposed();
}
@@ -175,20 +175,20 @@ Matrix
Choleski_decomposition::inverse() const
{
int n=L.dim();
- Matrix invm(n);
- Vector e_i(n);
- Vector inv(n);
+ Matrix invm (n);
+ Vector e_i (n);
+ Vector inv (n);
for (int i = 0; i < n; i++) {
- e_i.set_unit(i);
- solve(inv, e_i);
+ e_i.set_unit (i);
+ solve (inv, e_i);
for (int j = 0 ; j<n; j++)
- invm(i,j) = inv(j);
+ invm (i,j) = inv (j);
}
#ifdef PARANOID
Matrix I1(n), I2(original());
I1.unit();
- assert((I1-I2*invm).norm()/I2.norm() < EPS);
+ assert ((I1-I2*invm).norm()/I2.norm () < EPS);
#endif
return invm;
diff --git a/flower/data-file.cc b/flower/data-file.cc
index 0dad79c91f..b324f20039 100644
--- a/flower/data-file.cc
+++ b/flower/data-file.cc
@@ -12,7 +12,7 @@ Data_file::gobble_white()
if (eof())
break;
- data_unget(c);
+ data_unget (c);
}
String
@@ -24,9 +24,9 @@ Data_file::get_word()
{
char c = data_get();
- if (isspace(c) || eof())
+ if (isspace (c) || eof())
{
- data_unget(c);
+ data_unget (c);
break;
}
@@ -37,7 +37,7 @@ Data_file::get_word()
while ((c = data_get()) != '\"')
if (eof())
- error("EOF in a string");
+ error ("EOF in a string");
else
s += c;
@@ -59,7 +59,7 @@ Data_file::data_get() {
char c = get();
if (!rawmode && c == '#') // gobble comment
{
- while ((c = get()) != '\n' && !eof())
+ while ((c = get()) != '\n' && !eof ())
;
return '\n';
}
@@ -73,7 +73,7 @@ String Data_file::get_line()
char c;
String s;
- while ((c = data_get()) != '\n' && !eof())
+ while ((c = data_get()) != '\n' && !eof ())
s += c;
return s;
}
@@ -85,8 +85,8 @@ Data_file::gobble_leading_white()
// eat blank lines.
while (!eof()) {
char c = data_get();
- if (!isspace(c)) {
- data_unget(c);
+ if (!isspace (c)) {
+ data_unget (c);
break;
}
}
diff --git a/flower/diagonal-storage.cc b/flower/diagonal-storage.cc
index fc812423e5..92ed989207 100644
--- a/flower/diagonal-storage.cc
+++ b/flower/diagonal-storage.cc
@@ -47,18 +47,18 @@ Diagonal_storage::band_size_i()const
}
void
-Diagonal_storage::set_band_size(int s)
+Diagonal_storage::set_band_size (int s)
{
- assert( s>=0);
- Full_storage f(dim(), 2*s+1);
+ assert (s>=0);
+ Full_storage f (dim(), 2*s+1);
for (int i=0; i < dim(); i++) {
int k=-s;
for ( ; k < -band_size_i(); k++)
- f.elem(i,k + s) = 0.0;
+ f.elem (i,k + s) = 0.0;
for ( ; k <= band_size_i()&& k<=s ; k++)
- f.elem(i, k + s) = band_.elem(i,k+ band_size_i());
- for( ; k <= s; k++)
- f.elem(i, k + s) =0.0;
+ f.elem (i, k + s) = band_.elem (i,k+ band_size_i());
+ for (; k <= s; k++)
+ f.elem (i, k + s) =0.0;
}
band_ = f;
@@ -70,31 +70,31 @@ Diagonal_storage::set_band_size(int s)
any takers?
*/
void
-Diagonal_storage::insert_row(int )
+Diagonal_storage::insert_row (int)
{
- assert(false);
+ assert (false);
}
void
-Diagonal_storage::delete_row(int )
+Diagonal_storage::delete_row (int)
{
- assert(false);
+ assert (false);
}
void
-Diagonal_storage::resize(int,int)
+Diagonal_storage::resize (int,int)
{
}
void
-Diagonal_storage::resize(int)
+Diagonal_storage::resize (int)
{
}
void
-Diagonal_storage::delete_column(int )
+Diagonal_storage::delete_column (int)
{
- assert(false);
+ assert (false);
}
Diagonal_storage::~Diagonal_storage()
@@ -103,26 +103,26 @@ Diagonal_storage::~Diagonal_storage()
bool
-Diagonal_storage::band_elt_b(int i,int j)const
+Diagonal_storage::band_elt_b (int i,int j)const
{
- return abs(i-j) <= band_size_i();
+ return abs (i-j) <= band_size_i();
}
void
-Diagonal_storage::assert_valid(int i,int j )const
+Diagonal_storage::assert_valid (int i,int j)const
{
- assert( band_elt_b(i,j) );
- assert( i >=0 && j >=0 && i < dim() && j < dim());
+ assert (band_elt_b (i,j));
+ assert (i >=0 && j >=0 && i < dim() && j < dim ());
}
void
-Diagonal_storage::resize_dim(int d)
+Diagonal_storage::resize_dim (int d)
{
- Full_storage f(d, 2*band_size_i()+1);
+ Full_storage f (d, 2*band_size_i()+1);
for (int i=0; i < d && i < dim(); i++) {
for ( int k=0; k < 2*band_size_i(); k++)
- f.elem(i,k) = elem(i,k);
+ f.elem (i,k) = elem (i,k);
}
band_ = f;
@@ -131,37 +131,37 @@ Diagonal_storage::resize_dim(int d)
bool
-Diagonal_storage::mult_ok(int i,int )const
+Diagonal_storage::mult_ok (int i,int)const
{
return i < dim();
}
void
-Diagonal_storage::mult_next(int &i, int &j)const
+Diagonal_storage::mult_next (int &i, int &j)const
{
j++;
- if ( j < i - band_size_i() )
+ if ( j < i - band_size_i())
j = i- band_size_i();
- if ( j > i + band_size_i() || j >= dim() ) {
+ if ( j > i + band_size_i() || j >= dim ()) {
i++;
j = 0 >? i - band_size_i();
}
}
bool
-Diagonal_storage::trans_ok(int ,int j)const
+Diagonal_storage::trans_ok (int ,int j)const
{
return j < dim();
}
void
-Diagonal_storage::trans_next(int &i, int& j)const
+Diagonal_storage::trans_next (int &i, int& j)const
{
i++;
if ( i < j - band_size_i())
i = j-band_size_i();
- if ( i >= dim() || i > j + band_size_i() ) {
+ if ( i >= dim() || i > j + band_size_i ()) {
j++;
i = 0 >? j - band_size_i();
}
@@ -170,26 +170,26 @@ Diagonal_storage::trans_next(int &i, int& j)const
static Real nul_entry=0.0;
Real
-Diagonal_storage::elem(int i, int j)const
+Diagonal_storage::elem (int i, int j)const
{
- if (abs ( i-j ) > band_size_i())
+ if (abs ( i-j) > band_size_i())
return 0;
else
- return band_.elem(i, j - i +band_size_i());
+ return band_.elem (i, j - i +band_size_i());
}
Real &
-Diagonal_storage::elem(int i, int j)
+Diagonal_storage::elem (int i, int j)
{
/*
if this fails, the previous call fucked up
*/
- assert(!nul_entry);
+ assert (!nul_entry);
- if (abs ( i-j ) > band_size_i())
+ if (abs ( i-j) > band_size_i())
return nul_entry;
else
- return band_.elem(i, j - i + band_size_i());
+ return band_.elem (i, j - i + band_size_i());
}
/*
@@ -197,10 +197,10 @@ Diagonal_storage::elem(int i, int j)
*/
bool
-Diagonal_storage::try_right_multiply(Matrix_storage*dest,
+Diagonal_storage::try_right_multiply (Matrix_storage*dest,
const Matrix_storage*right)const
{
- if ( right->name() != Diagonal_storage::static_name() )
+ if ( right->name() != Diagonal_storage::static_name ())
return false;
const Diagonal_storage* right_diag = (Diagonal_storage const*)right;
@@ -216,8 +216,8 @@ Diagonal_storage::try_right_multiply(Matrix_storage*dest,
int relk = startk + band_size_i() -i;
Real sum =0.0;
for ( int k = startk; k <= stopk; k++)
- sum += band_.elem(i, relk++) * right_diag->elem(k, j);
- dest->elem(i, j) = sum;
+ sum += band_.elem (i, relk++) * right_diag->elem (k, j);
+ dest->elem (i, j) = sum;
}
}
@@ -227,13 +227,13 @@ Diagonal_storage::try_right_multiply(Matrix_storage*dest,
IMPLEMENT_IS_TYPE_B1(Diagonal_storage, Matrix_storage);
-Diagonal_storage::Diagonal_storage(Matrix_storage*stor_l, int band_i)
+Diagonal_storage::Diagonal_storage (Matrix_storage*stor_l, int band_i)
{
- set_band_size(band_i);
- resize_dim(stor_l->dim());
+ set_band_size (band_i);
+ resize_dim (stor_l->dim());
- for ( int i=0,j=0; mult_ok(i,j); mult_next(i,j))
- band_.elem(i, j + band_i -i ) = stor_l->elem(i,j);
+ for ( int i=0,j=0; mult_ok (i,j); mult_next (i,j))
+ band_.elem (i, j + band_i -i) = stor_l->elem (i,j);
}
void
diff --git a/flower/directed-graph.cc b/flower/directed-graph.cc
index a08f456381..2c55688011 100644
--- a/flower/directed-graph.cc
+++ b/flower/directed-graph.cc
@@ -30,15 +30,15 @@ Directed_graph_node::get_out_edge_arr()const
/**
Should not copy deps automatically
*/
-Directed_graph_node::Directed_graph_node(Directed_graph_node const&)
+Directed_graph_node::Directed_graph_node (Directed_graph_node const&)
{
}
void
-Directed_graph_node::copy_edges_out(Directed_graph_node const &s)
+Directed_graph_node::copy_edges_out (Directed_graph_node const &s)
{
- for(int i=0; i < s.edge_out_l_arr_.size(); i++)
- add(s.edge_out_l_arr_[i]);
+ for (int i=0; i < s.edge_out_l_arr_.size(); i++)
+ add (s.edge_out_l_arr_[i]);
}
void
@@ -46,37 +46,37 @@ Directed_graph_node::OK() const
{
#ifndef NDEBUG
for (int i=0; i < edge_out_l_arr_.size(); i++) {
- assert(edge_out_l_arr_[i]->
- edge_in_l_arr_.find_l(this));
+ assert (edge_out_l_arr_[i]->
+ edge_in_l_arr_.find_l (this));
}
for (int i=0; i < edge_in_l_arr_.size(); i++)
- assert(edge_in_l_arr_[i]->contains_b( this));
+ assert (edge_in_l_arr_[i]->contains_b (this));
#endif
}
bool
-Directed_graph_node::contains_b(const Directed_graph_node *d)const
+Directed_graph_node::contains_b (const Directed_graph_node *d)const
{
- return edge_out_l_arr_.find_l((Directed_graph_node*)d);
+ return edge_out_l_arr_.find_l ((Directed_graph_node*)d);
}
void
-Directed_graph_node::remove_edge_out_idx(int i)
+Directed_graph_node::remove_edge_out_idx (int i)
{
PARANOID_OK();
- Directed_graph_node * d_l = edge_out_l_arr_.get(i);
+ Directed_graph_node * d_l = edge_out_l_arr_.get (i);
- int j = d_l->edge_in_l_arr_.find_i(this);
- assert(j>=0);
- d_l->edge_in_l_arr_.unordered_del(j);
+ int j = d_l->edge_in_l_arr_.find_i (this);
+ assert (j>=0);
+ d_l->edge_in_l_arr_.unordered_del (j);
PARANOID_OK();
}
void
-Directed_graph_node::remove_edge_in(Directed_graph_node *d_l)
+Directed_graph_node::remove_edge_in (Directed_graph_node *d_l)
{
PARANOID_OK();
- d_l->remove_edge_out(this);
+ d_l->remove_edge_out (this);
PARANOID_OK();
}
@@ -84,9 +84,9 @@ void
Directed_graph_node::remove_edge_out (Directed_graph_node *d_l)
{
PARANOID_OK();
- for (int i=0; i < edge_out_l_arr_.size(); ) {
+ for (int i=0; i < edge_out_l_arr_.size();) {
if (edge_out_l_arr_[i]== d_l)
- remove_edge_out_idx(i);
+ remove_edge_out_idx (i);
else
i++;
}
@@ -95,14 +95,14 @@ Directed_graph_node::remove_edge_out (Directed_graph_node *d_l)
bool
Directed_graph_node::linked_b()const
{
- return edge_out_l_arr_.size() || edge_in_l_arr_.size();
+ return edge_out_l_arr_.size() || edge_in_l_arr_.size ();
}
void
Directed_graph_node::junk_links()
{
- edge_in_l_arr_.set_size(0);
- edge_out_l_arr_.set_size(0);
+ edge_in_l_arr_.set_size (0);
+ edge_out_l_arr_.set_size (0);
}
@@ -113,14 +113,14 @@ Directed_graph_node::unlink()
PARANOID_OK();
Link_array<Directed_graph_node> t = edge_out_l_arr_;
- t.concat(edge_in_l_arr_);
+ t.concat (edge_in_l_arr_);
#endif
- while ( edge_out_l_arr_.size() )
- remove_edge_out_idx(0);
+ while ( edge_out_l_arr_.size())
+ remove_edge_out_idx (0);
- while (edge_in_l_arr_.size() )
- remove_edge_in(edge_in_l_arr_[0]);
+ while (edge_in_l_arr_.size())
+ remove_edge_in (edge_in_l_arr_[0]);
#ifdef PARANOID
for (int i =0; i < t.size(); i++)
@@ -130,18 +130,18 @@ Directed_graph_node::unlink()
Directed_graph_node::~Directed_graph_node()
{
- assert(!linked_b());
+ assert (!linked_b());
}
void
-Directed_graph_node::add(Directed_graph_node* dep_l)
+Directed_graph_node::add (Directed_graph_node* dep_l)
{
PARANOID_OK();
if (!dep_l)
return ;
- dep_l->edge_in_l_arr_.push(this);
- edge_out_l_arr_.push(dep_l);
+ dep_l->edge_in_l_arr_.push (this);
+ edge_out_l_arr_.push (dep_l);
PARANOID_OK();
}
diff --git a/flower/dstream.cc b/flower/dstream.cc
index ce0a51d363..f6d1d48867 100644
--- a/flower/dstream.cc
+++ b/flower/dstream.cc
@@ -21,40 +21,40 @@ const INDTAB = 2;
should use Regexp library.
*/
static String
-strip_pretty(String pretty_str)
+strip_pretty (String pretty_str)
{
- int i = pretty_str.index_i('(');
+ int i = pretty_str.index_i ('(');
if (i>=0)
- pretty_str = pretty_str.left_str(i);
+ pretty_str = pretty_str.left_str (i);
- int l = pretty_str.index_last_i(' '); // strip until last ' '
+ int l = pretty_str.index_last_i (' '); // strip until last ' '
if (l>=0)
- pretty_str = pretty_str.nomid_str(0,l+1);
+ pretty_str = pretty_str.nomid_str (0,l+1);
return pretty_str;
}
static String
-strip_member(String pret)
+strip_member (String pret)
{
- int l=pret.index_last_i(':')-1;
+ int l=pret.index_last_i (':')-1;
if (l>=0)
- pret = pret.left_str(l );
+ pret = pret.left_str (l);
return pret;
}
Dstream&
-Dstream::identify_as(String name)
+Dstream::identify_as (String name)
{
if (!os_l_)
return *this;
- String mem(strip_pretty(name));
- String cl(strip_member(mem));
+ String mem (strip_pretty (name));
+ String cl (strip_member (mem));
String idx = cl;
- if (silent_assoc_p_->elt_b(mem))
+ if (silent_assoc_p_->elt_b (mem))
idx = mem;
- else if (silent_assoc_p_->elt_b(cl))
+ else if (silent_assoc_p_->elt_b (cl))
idx = cl;
else {
(*silent_assoc_p_)[idx] = false;
@@ -69,9 +69,9 @@ Dstream::identify_as(String name)
}
bool
-Dstream::silence(String s)
+Dstream::silence (String s)
{
- if (!silent_assoc_p_->elt_b(s))
+ if (!silent_assoc_p_->elt_b (s))
return false;
return (*silent_assoc_p_)[s];
}
@@ -79,32 +79,32 @@ Dstream::silence(String s)
Dstream &
Dstream::operator<<(String s)
{
- output(s);
+ output (s);
return *this;
}
Dstream &
Dstream::operator<<(void const *v_l)
{
- output(String_convert::pointer_str(v_l));
+ output (String_convert::pointer_str (v_l));
return *this;
}
Dstream &
Dstream::operator<<(char const *ch_l)
{
- output(ch_l);
+ output (ch_l);
return *this;
}
void
-Dstream::output(String s)
+Dstream::output (String s)
{
if (local_silence_b_|| !os_l_)
return ;
for (char const *cp = s ; *cp; cp++)
- switch(*cp) {
+ switch (*cp) {
case '{':
case '[':
case '(': indent_level_i_ += INDTAB;
@@ -131,7 +131,7 @@ Dstream::output(String s)
}
-Dstream::Dstream(ostream *r, char const * cfg_nm )
+Dstream::Dstream (ostream *r, char const * cfg_nm)
{
os_l_ = r;
silent_assoc_p_ = new Assoc<String,bool>;
@@ -141,19 +141,19 @@ Dstream::Dstream(ostream *r, char const * cfg_nm )
char const * fn =cfg_nm ? cfg_nm : ".dstreamrc";
{
- ifstream ifs(fn); // can't open
+ ifstream ifs (fn); // can't open
if (!ifs)
return;
}
- Text_db cfg(fn);
+ Text_db cfg (fn);
while (! cfg.eof()){
- Text_record r( cfg++);
+ Text_record r (cfg++);
if (r.size() != 2) {
- r.message("not enough fields in Dstream init.");
+ r.message ("not enough fields in Dstream init.");
continue;
}
- (*silent_assoc_p_)[r[0]] = (bool)(int)(Scalar(r[1]));
+ (*silent_assoc_p_)[r[0]] = (bool)(int)(Scalar (r[1]));
}
}
@@ -162,13 +162,13 @@ Dstream::Dstream(ostream *r, char const * cfg_nm )
Dstream::~Dstream()
{
delete silent_assoc_p_;
- assert(!indent_level_i_) ;
+ assert (!indent_level_i_) ;
}
void
Dstream::clear_silence()
{
- for (Assoc_iter<String, bool> i(*silent_assoc_p_); i.ok(); i++) {
+ for (Assoc_iter<String, bool> i (*silent_assoc_p_); i.ok(); i++) {
i.val() = 0;
}
}
diff --git a/flower/flower-debug.cc b/flower/flower-debug.cc
index 7e0e519f57..5ea5e50dc0 100644
--- a/flower/flower-debug.cc
+++ b/flower/flower-debug.cc
@@ -4,18 +4,19 @@
bool flower_check_debug=false;
ofstream null_device ( "/dev/null");
-Dstream default_flower_stream(&null_device ,"/dev/null");
+Dstream default_flower_stream (&null_device ,"/dev/null");
Dstream *flower_dstream = &default_flower_stream;
/**
Set the debugging output. Will not delete/swallow argument.
*/
-void set_flower_debug(Dstream&ds, bool b)
+void set_flower_debug (Dstream&ds, bool b)
{
#ifdef NPRINT
if (b)
cout << "Debug printout disabled, see the installation guide." << endl;
#endif
+
flower_check_debug = b;
flower_dstream = &ds;
}
diff --git a/flower/flower-version.cc b/flower/flower-version.cc
index fd37845588..84cfd803d3 100644
--- a/flower/flower-version.cc
+++ b/flower/flower-version.cc
@@ -11,6 +11,6 @@ char const *
flower_version_sz()
{
static char v[1024];
- sprintf(v, s, build);
+ sprintf (v, s, build);
return v;
}
diff --git a/flower/full-storage.cc b/flower/full-storage.cc
index fd0d9f550b..34dcdad1b8 100644
--- a/flower/full-storage.cc
+++ b/flower/full-storage.cc
@@ -12,7 +12,7 @@
void
Full_storage::operator=(Full_storage const &fs)
{
- resize(fs.height_i_, fs.width_i_);
+ resize (fs.height_i_, fs.width_i_);
OK();
fs.OK();
for (int i=0; i<height_i_; i++)
@@ -26,9 +26,9 @@ Full_storage::OK() const
{
#ifndef NDEBUG
- assert(max_height_i_ >= height_i_ && max_width_i_ >= width_i_);
- assert(height_i_ >= 0 && width_i_ >= 0);
- assert(els_p_p_||!max_height_i_);
+ assert (max_height_i_ >= height_i_ && max_width_i_ >= width_i_);
+ assert (height_i_ >= 0 && width_i_ >= 0);
+ assert (els_p_p_||!max_height_i_);
#endif
}
@@ -44,24 +44,24 @@ Full_storage::~Full_storage()
void
-Full_storage::resize(int rows, int cols)
+Full_storage::resize (int rows, int cols)
{
OK();
- resize_cols(rows);
- resize_rows(cols);
+ resize_cols (rows);
+ resize_rows (cols);
}
bool
-Full_storage::mult_ok(int i, int ) const
+Full_storage::mult_ok (int i, int) const
{
return i < height_i_;
}
bool
-Full_storage::trans_ok(int , int j) const
+Full_storage::trans_ok (int , int j) const
{
return j < width_i_;
}
@@ -69,9 +69,9 @@ Full_storage::trans_ok(int , int j) const
void
-Full_storage::trans_next(int &i, int &j) const
+Full_storage::trans_next (int &i, int &j) const
{
- assert(trans_ok(i,j));
+ assert (trans_ok (i,j));
i++;
if (i >= height_i_) {
i=0;
@@ -81,9 +81,9 @@ Full_storage::trans_next(int &i, int &j) const
void
-Full_storage::mult_next(int &i, int &j) const
+Full_storage::mult_next (int &i, int &j) const
{
- assert(mult_ok(i,j));
+ assert (mult_ok (i,j));
j++;
if (j >= width_i_) {
j=0;
@@ -93,9 +93,9 @@ Full_storage::mult_next(int &i, int &j) const
void
-Full_storage::delete_column(int k)
+Full_storage::delete_column (int k)
{
- assert(0 <= k &&k<width_i_);
+ assert (0 <= k &&k<width_i_);
for (int i=0; i< height_i_ ; i++)
for (int j=k+1; j <width_i_; j++)
els_p_p_[i][j-1]=els_p_p_[i][j];
@@ -104,9 +104,9 @@ Full_storage::delete_column(int k)
void
-Full_storage::delete_row(int k)
+Full_storage::delete_row (int k)
{
- assert(0 <= k &&k<height_i_);
+ assert (0 <= k &&k<height_i_);
for (int i=k+1; i < height_i_ ; i++)
for (int j=0; j < width_i_; j++)
els_p_p_[i-1][j]=els_p_p_[i][j];
@@ -116,10 +116,10 @@ Full_storage::delete_row(int k)
void
-Full_storage::insert_row(int k)
+Full_storage::insert_row (int k)
{
- assert(0 <= k&& k <=height_i_);
- resize_cols(height_i_+1);
+ assert (0 <= k&& k <=height_i_);
+ resize_cols (height_i_+1);
for (int i=height_i_-1; i > k ; i--)
for (int j=0; j <width_i_; j++)
els_p_p_[i][j]=els_p_p_[i-1][j];
@@ -127,19 +127,19 @@ Full_storage::insert_row(int k)
}
bool
-Full_storage::try_right_multiply(Matrix_storage * dest, Matrix_storage const * right)const
+Full_storage::try_right_multiply (Matrix_storage * dest, Matrix_storage const * right)const
{
- if (dest->name() != Full_storage::static_name() ||
- right->name() != Full_storage::static_name())
+ if (dest->name() != Full_storage::static_name () ||
+ right->name() != Full_storage::static_name ())
return false;
Full_storage *d_l = (Full_storage*)dest;
Full_storage *r_l = (Full_storage*)right;
- d_l->set_size(height_i_, r_l->width_i_);
+ d_l->set_size (height_i_, r_l->width_i_);
for (int i=0; i < d_l->height_i_; i++)
for (int j = 0; j < d_l->width_i_; j++) {
- Real &r(d_l->els_p_p_[i][j]);
+ Real &r (d_l->els_p_p_[i][j]);
r=0.0;
for (int k = 0; k < width_i_; k++)
r += els_p_p_[i][k] * r_l->els_p_p_[k][j];
@@ -151,7 +151,7 @@ Full_storage::try_right_multiply(Matrix_storage * dest, Matrix_storage const * r
}
IMPLEMENT_IS_TYPE_B1(Full_storage,Matrix_storage);
void
-Full_storage::resize_cols(int newh)
+Full_storage::resize_cols (int newh)
{
if (newh <= max_height_i_) {
height_i_=newh;
@@ -172,20 +172,20 @@ Full_storage::resize_cols(int newh)
-Full_storage::Full_storage(Matrix_storage*m)
+Full_storage::Full_storage (Matrix_storage*m)
{
- set_size(m->rows(), m->cols());
+ set_size (m->rows(), m->cols ());
if ( !m->is_type_b ( Full_storage::static_name()))
for (int i=0; i<height_i_; i++)
for (int j=0; j<width_i_; j++)
els_p_p_[i][j]=0.0;
- for (int i,j=0; m->mult_ok(i,j); m->mult_next(i,j))
- els_p_p_[i][j] = m->elem(i,j);
+ for (int i,j=0; m->mult_ok (i,j); m->mult_next (i,j))
+ els_p_p_[i][j] = m->elem (i,j);
}
void
-Full_storage::resize_rows(int neww)
+Full_storage::resize_rows (int neww)
{
if (neww <= max_width_i_) {
width_i_=neww;
diff --git a/flower/include/acursor.hh b/flower/include/acursor.hh
index 3664b8245f..51ae3ea4d2 100644
--- a/flower/include/acursor.hh
+++ b/flower/include/acursor.hh
@@ -17,12 +17,12 @@ protected:
int idx_;
Array<T> &arr_;
public:
- ACursor(ACursor const& s)
+ ACursor (ACursor const& s)
:arr_(s.arr_)
{
idx_ = s.idx_;
}
- ACursor(Array<T> const &arr)
+ ACursor (Array<T> const &arr)
arr_((Array<T>&)arr)
{
idx_ =0;
@@ -36,7 +36,7 @@ public:
idx_ ++;
return t;
}
- bool ok() { return idx_ >=0 && idx_ < arr_.size(); }
+ bool ok() { return idx_ >=0 && idx_ < arr_.size (); }
};
@@ -44,8 +44,8 @@ template<class T>
class PACursor : public ACursor<T*>
{
public:
- PACursor(Link_array<T> l)
- : ACursor(l)
+ PACursor (Link_array<T> l)
+ : ACursor (l)
{
}
T* ptr() { return arr_[idx_]; }
diff --git a/flower/include/assoc-iter.hh b/flower/include/assoc-iter.hh
index 34b88df22d..9157ad0ab7 100644
--- a/flower/include/assoc-iter.hh
+++ b/flower/include/assoc-iter.hh
@@ -15,12 +15,12 @@ struct Assoc_iter {
int i;
Assoc<K,V> &assoc_;
/// we don't want to be bothered by const correctness
- Assoc_iter(const Assoc<K,V> &a) :
+ Assoc_iter (const Assoc<K,V> &a) :
assoc_((Assoc<K,V> &)a)
{
- i= next(0);
+ i= next (0);
}
- int next(int j) {
+ int next (int j) {
while (j < assoc_.arr.size() && assoc_.arr[j].free)
j++;
return j;
@@ -29,9 +29,9 @@ struct Assoc_iter {
return i < assoc_.arr.size();
}
void OK()const {
- assert(!ok() || !assoc_.arr[i].free);
+ assert (!ok() || !assoc_.arr[i].free);
}
- void operator++(int) { i++; i = next(i); }
+ void operator++(int) { i++; i = next (i); }
K key() { return assoc_.arr[i].key; }
V &val() { return assoc_.arr[i].val; }
};
diff --git a/flower/include/assoc.hh b/flower/include/assoc.hh
index 0d9cbc9a43..92a7c8ee10 100644
--- a/flower/include/assoc.hh
+++ b/flower/include/assoc.hh
@@ -26,19 +26,19 @@ struct Assoc {
/* ************** */
- int find(K key) const {
+ int find (K key) const {
for (int i = 0; i < arr.size(); i++) {
if (!arr[i].free && key == arr[i].key)
return i;
}
return -1;
}
- int find_creat(K key) {
+ int find_creat (K key) {
int free = -1;
for (int i = 0; i < arr.size(); i++) {
if (key == arr[i].key) {
return i;
- } else if (arr[i].free ) {
+ } else if (arr[i].free) {
free = i;
}
}
@@ -51,35 +51,35 @@ struct Assoc {
Assoc_ent_<K,V> ae;
ae.free = false;
ae.key = key;
- arr.push(ae);
+ arr.push (ae);
return arr.size() -1;
}
public:
- bool elt_b(K key) const {
- return find(key) >= 0;
+ bool elt_b (K key) const {
+ return find (key) >= 0;
}
- void del(K key) {
- assert(elt_b(key));
- int i= find(key);
+ void del (K key) {
+ assert (elt_b (key));
+ int i= find (key);
arr[i].free = true;
}
void
- add(K key, V val) {
- int i = find_creat(key);
+ add (K key, V val) {
+ int i = find_creat (key);
arr[i].val = val;
}
- V& elem(K key) {
- return arr[find_creat(key)].val;
+ V& elem (K key) {
+ return arr[find_creat (key)].val;
}
V& operator[](K key) {
- return elem(key);
+ return elem (key);
}
V const & operator[](K key) const {
- return elem(key);
+ return elem (key);
}
- V const & elem(K key) const {
- assert(elt_b(key));
- return arr[find(key)].val;
+ V const & elem (K key) const {
+ assert (elt_b (key));
+ return arr[find (key)].val;
}
};
diff --git a/flower/include/choleski.hh b/flower/include/choleski.hh
index abd19ee676..dd21237550 100644
--- a/flower/include/choleski.hh
+++ b/flower/include/choleski.hh
@@ -9,7 +9,7 @@
#P# is split into
- LD transpose(L)
+ LD transpose (L)
*/
struct Choleski_decomposition {
@@ -24,12 +24,12 @@ struct Choleski_decomposition {
P needs to be symmetric positive definite
*/
- Choleski_decomposition(Matrix const &P);
+ Choleski_decomposition (Matrix const &P);
/**
solve Px = rhs
*/
- Vector solve(Vector rhs) const;
+ Vector solve (Vector rhs) const;
void solve (Vector &dest, Vector const &rhs)const;
Vector operator * (Vector rhs) const { return solve (rhs); }
/**
@@ -41,10 +41,10 @@ struct Choleski_decomposition {
*/
Matrix original() const;
private:
- void full_matrix_solve(Vector &,Vector const&)const;
- void band_matrix_solve(Vector &, Vector const&)const;
- void full_matrix_decompose(Matrix const & P);
- void band_matrix_decompose(Matrix const &P);
+ void full_matrix_solve (Vector &,Vector const&)const;
+ void band_matrix_solve (Vector &, Vector const&)const;
+ void full_matrix_decompose (Matrix const & P);
+ void band_matrix_decompose (Matrix const &P);
};
#endif
diff --git a/flower/include/compare.hh b/flower/include/compare.hh
index 203ba014e7..ef69ce5162 100644
--- a/flower/include/compare.hh
+++ b/flower/include/compare.hh
@@ -6,48 +6,48 @@
#ifndef COMPARE_HH
#define COMPARE_HH
-#define one_operator(type, function, op) \
+#define ONE_OPERATOR(type, function, op) \
inline bool \
operator op (type t1, type t2) {\
- return function(t1, t2) op 0;\
+ return function (t1, t2) op 0;\
}\
-#define gpp_minmax_operator(type, op, opp) \
+#define GPP_MINMAX_OPERATOR(type, op, opp) \
inline type \
-operator op(type t1, type t2)\
+operator op (type t1, type t2)\
{\
return (t1 opp t2) ? t1 : t2;\
}\
#if defined (__GNUG__) && ! defined (__STRICT_ANSI__)
-#define gpp_minmax(type, prefix)\
- prefix gpp_minmax_operator(type, <?, <)\
- prefix gpp_minmax_operator(type, >?, >)
+#define GPP_MINMAX(type, prefix)\
+ prefix GPP_MINMAX_OPERATOR(type, <?, <)\
+ prefix GPP_MINMAX_OPERATOR(type, >?, >)
#else
-#define gpp_minmax(type, prefix)
+#define GPP_MINMAX(type, prefix)
#endif
/** handy notations for a signed comparison.
make the operators{<,<=,==,>=,>} and the MAX and MIN of two.
Please fill a & in the type argument if necessary.
*/
-#define template_instantiate_compare(type, function, prefix) \
-prefix one_operator(type, function, >)\
-prefix one_operator(type, function, >=)\
-prefix one_operator(type, function, ==)\
-prefix one_operator(type, function, !=)\
-prefix one_operator(type, function, <)\
-prefix one_operator(type, function, <=)\
-gpp_minmax(type, prefix)\
-prefix inline type max(type t1, type t2) { return (t1 > t2 )? t1 : t2; }\
-prefix inline type min(type t1, type t2) { return (t1 < t2 )? t1 : t2; }\
+#define TEMPLATE_INSTANTIATE_COMPARE(type, function, prefix) \
+prefix ONE_OPERATOR(type, function, >)\
+prefix ONE_OPERATOR(type, function, >=)\
+prefix ONE_OPERATOR(type, function, ==)\
+prefix ONE_OPERATOR(type, function, !=)\
+prefix ONE_OPERATOR(type, function, <)\
+prefix ONE_OPERATOR(type, function, <=)\
+GPP_MINMAX(type, prefix)\
+prefix inline type max (type t1, type t2) { return (t1 > t2)? t1 : t2; }\
+prefix inline type min (type t1, type t2) { return (t1 < t2)? t1 : t2; }\
\
prefix bool operator<(type t1, type t2) /* stupid fix to allow ; */
-#define instantiate_compare(type, func) template_instantiate_compare(type,func, )
+#define INSTANTIATE_COMPARE(type, func) TEMPLATE_INSTANTIATE_COMPARE(type,func,)
diff --git a/flower/include/cursor.hh b/flower/include/cursor.hh
index 05a3e897c4..2e205ba330 100644
--- a/flower/include/cursor.hh
+++ b/flower/include/cursor.hh
@@ -20,19 +20,19 @@ class Cursor
public:
/** create cursor, set at top. The const part isn't true, actually, #list#
surely isn't const, but I get tired of the warning messages. */
- Cursor( const List<T>& list, Link<T>* pointer = 0 );
+ Cursor (const List<T>& list, Link<T>* pointer = 0);
/**
Create an invalid cursor (pointing to nothing, associated with no list.)
*/
Cursor();
- Cursor( const Cursor<T>& cursor );
+ Cursor (const Cursor<T>& cursor);
T& thing();
/// return current T
T& operator *() { return thing(); }
operator T() { return thing(); }
- Cursor<T> operator =( const Cursor<T>& c );
+ Cursor<T> operator =( const Cursor<T>& c);
/// make cursor with #no# items back
Cursor<T> operator -( int no) const;
@@ -47,10 +47,10 @@ class Cursor
/// move one up.
void previous();
/// return current and move one down
- Cursor<T> operator ++( int );
+ Cursor<T> operator ++( int);
/// return current and move one up
- Cursor<T> operator --( int );
+ Cursor<T> operator --( int);
/// point to link?
bool ok()const;
@@ -72,7 +72,7 @@ class Cursor
cursor points to same object, cursor.next() is newly added
object.
*/
- void add( T const & thing );
+ void add (T const & thing);
/** put (copy) before me in List.
analogously to editor. ok() interpreted as at begin of
@@ -86,7 +86,7 @@ class Cursor
is newly inserted object.
*/
- void insert( T const & thing );
+ void insert (T const & thing);
///
void backspace();
@@ -96,7 +96,7 @@ class Cursor
/// access the list this came from
List<T>& list() const ;
Link<T>* pointer();
- static int compare(Cursor<T> a,Cursor<T>b) { return a-b; }
+ static int compare (Cursor<T> a,Cursor<T>b) { return a-b; }
private:
List<T>& list_;
Link<T>* pointer_;
@@ -109,7 +109,7 @@ private:
#include "compare.hh"
-template_instantiate_compare(Cursor<T>, Cursor<T>::compare, template<class T>);
+TEMPLATE_INSTANTIATE_COMPARE(Cursor<T>, Cursor<T>::compare, template<class T>);
#include "pcursor.hh"
#include "list.hh"
diff --git a/flower/include/cursor.icc b/flower/include/cursor.icc
index 6a2ae6c538..d0b2439af4 100644
--- a/flower/include/cursor.icc
+++ b/flower/include/cursor.icc
@@ -17,7 +17,7 @@
// untested
template<class T>
inline
-Cursor<T>::Cursor( )
+Cursor<T>::Cursor()
: list_(*(List<T> *)0) // ugh
{
pointer_ = 0;
@@ -26,10 +26,10 @@ Cursor<T>::Cursor( )
template<class T>
inline
-Cursor<T>::Cursor( const List<T>& list, Link<T>* pointer ) :
- list_((List<T>&) list )
+Cursor<T>::Cursor (const List<T>& list, Link<T>* pointer) :
+ list_((List<T>&) list)
{
- if ( list.size() )
+ if ( list.size())
pointer_ = pointer ? pointer : list.top_;
else
pointer_ = pointer;
@@ -37,8 +37,8 @@ Cursor<T>::Cursor( const List<T>& list, Link<T>* pointer ) :
template<class T>
inline
-Cursor<T>::Cursor( const Cursor<T>& cursor ) :
- list_( cursor.list_ )
+Cursor<T>::Cursor (const Cursor<T>& cursor) :
+ list_( cursor.list_)
{
pointer_ = cursor.pointer_;
}
@@ -47,31 +47,31 @@ template<class T>
inline T&
Cursor<T>::thing()
{
- assert( pointer_ );
+ assert (pointer_);
return pointer_->thing();
}
template<class T>
Cursor<T>
-Cursor<T>::operator =( const Cursor<T>& c )
+Cursor<T>::operator =( const Cursor<T>& c)
{
- assert( &list_ == &c.list_ );
+ assert (&list_ == &c.list_);
pointer_ = c.pointer_;
return *this;
}
template<class T>
inline void
-Cursor<T>::add( const T& th )
+Cursor<T>::add (const T& th)
{
- list_.add( th, *this );
+ list_.add (th, *this);
}
template<class T>
inline void
-Cursor<T>::insert( const T& th )
+Cursor<T>::insert (const T& th)
{
- list_.insert( th, *this );
+ list_.insert (th, *this);
}
template<class T>
@@ -92,33 +92,33 @@ template<class T>
inline bool
Cursor<T>::backward()const
{
- return ( pointer_ != 0 );
+ return ( pointer_ != 0);
}
template<class T>
inline bool
Cursor<T>::forward()const
{
- return ( pointer_ != 0 );
+ return ( pointer_ != 0);
}
template<class T>
inline bool
Cursor<T>::ok()const
{
- return ( pointer_ != 0 );
+ return ( pointer_ != 0);
}
template<class T>
inline void
Cursor<T>::next()
{
- assert( pointer_ );
+ assert (pointer_);
pointer_ = pointer_->next();
}
template<class T>
inline Cursor<T>
-Cursor<T>::operator ++( int )
+Cursor<T>::operator ++( int)
{
Cursor<T> r (*this);
next();
@@ -129,13 +129,13 @@ template<class T>
inline void
Cursor<T>::previous()
{
- assert( pointer_ );
+ assert (pointer_);
pointer_ = pointer_->previous();
}
template<class T>
inline Cursor<T>
-Cursor<T>::operator --( int )
+Cursor<T>::operator --( int)
{
Cursor<T> r (*this);
previous();
diff --git a/flower/include/cursor.tcc b/flower/include/cursor.tcc
index 3be73fe5d2..18f1fbb42a 100644
--- a/flower/include/cursor.tcc
+++ b/flower/include/cursor.tcc
@@ -8,27 +8,27 @@ template<class T>
void
Cursor<T>::backspace()
{
- Cursor<T> c(*this);
- if ( c.ok() )
+ Cursor<T> c (*this);
+ if ( c.ok())
c--;
- list_.remove( *this );
+ list_.remove (*this);
}
template<class T>
void
Cursor<T>::del()
{
- Cursor<T> c(*this);
- if ( c.ok() )
+ Cursor<T> c (*this);
+ if ( c.ok())
c++;
- list_.remove( *this );
+ list_.remove (*this);
*this = c;
}
template<class T>
Cursor<T>
-Cursor<T>::operator -=( int j )
+Cursor<T>::operator -=( int j)
{
while (j--)
(*this)--;
@@ -36,7 +36,7 @@ Cursor<T>::operator -=( int j )
}
template<class T>
Cursor<T>
-Cursor<T>::operator +=( int j )
+Cursor<T>::operator +=( int j)
{
while (j++)
(*this)++;
@@ -45,7 +45,7 @@ Cursor<T>::operator +=( int j )
template<class T>
Cursor<T>
-Cursor<T>::operator +( int i ) const
+Cursor<T>::operator +( int i) const
{
Cursor<T> r = *this;
@@ -60,7 +60,7 @@ Cursor<T>::operator +( int i ) const
template<class T>
Cursor<T>
-Cursor<T>::operator -( int i ) const
+Cursor<T>::operator -( int i) const
{
Cursor<T> r = *this;
if (i<0)
@@ -79,11 +79,11 @@ template<class T>
int
Cursor<T>::operator-(Cursor<T> rhs) const
{
- assert(rhs.list == list);
+ assert (rhs.list == list);
int dif = 0;
// search from *this on further up (positive difference)
- Cursor<T> c(*this);
+ Cursor<T> c (*this);
while (c.ok() && c.pointer_ != rhs.pointer_) {
c--;
dif++;
@@ -99,10 +99,10 @@ Cursor<T>::operator-(Cursor<T> rhs) const
dif --;
c++;
}
- assert(c.ok());
+ assert (c.ok());
gotcha:
- assert((*this - dif).pointer_ == c.pointer_);
+ assert ((*this - dif).pointer_ == c.pointer_);
return dif;
}
diff --git a/flower/include/data-file.hh b/flower/include/data-file.hh
index dae9e56347..fa75f69922 100644
--- a/flower/include/data-file.hh
+++ b/flower/include/data-file.hh
@@ -24,8 +24,8 @@ class Data_file : private Text_stream
Text_stream::get_name;
char data_get();
- void data_unget(char c) {
- unget(c);
+ void data_unget (char c) {
+ unget (c);
}
/// read line, eat #\n#
@@ -39,7 +39,7 @@ class Data_file : private Text_stream
/// gobble empty stuff before first field.
void gobble_leading_white();
- Data_file(String s) : Text_stream(s) {
+ Data_file (String s) : Text_stream (s) {
//*mlog << "(" << s << flush;
rawmode= false;
}
@@ -48,12 +48,12 @@ class Data_file : private Text_stream
// *mlog << ")"<<flush;
}
- warning(String s) {
- message("warning: " + s);
+ warning (String s) {
+ message ("warning: " + s);
}
- error(String s){
- message(s);
- exit(1);
+ error (String s){
+ message (s);
+ exit (1);
}
};
#endif // DATAFILE_HH
diff --git a/flower/include/diagonal-storage.hh b/flower/include/diagonal-storage.hh
index f4515edfb1..9ac2be679d 100644
--- a/flower/include/diagonal-storage.hh
+++ b/flower/include/diagonal-storage.hh
@@ -16,50 +16,50 @@
@invariant
- Diagonal_storage(i,j) == band_(i, j-i + band_size_i())
+ Diagonal_storage (i,j) == band_(i, j-i + band_size_i())
- band_.cols() == 2 * band_size_i() + 1
+ band_.cols() == 2 * band_size_i () + 1
*/
class Diagonal_storage : public Matrix_storage {
Full_storage band_;
public:
- void set_band_size(int b);
+ void set_band_size (int b);
int band_size_i()const;
- void assert_valid(int i, int j) const;
- bool band_elt_b(int,int )const;
- void resize_dim(int);
+ void assert_valid (int i, int j) const;
+ bool band_elt_b (int,int)const;
+ void resize_dim (int);
- virtual void resize_rows(int d) { resize_dim (d); }
- virtual void resize_cols(int d) { resize_dim(d); }
+ virtual void resize_rows (int d) { resize_dim (d); }
+ virtual void resize_cols (int d) { resize_dim (d); }
virtual int dim() const;
virtual int rows() const ;
virtual int cols() const ;
- virtual void resize(int i, int j);
- virtual void resize(int i);
+ virtual void resize (int i, int j);
+ virtual void resize (int i);
- virtual Real& elem(int i,int j);
- virtual Real elem(int i, int j) const;
- Diagonal_storage(Matrix_storage* , int band_i);
+ virtual Real& elem (int i,int j);
+ virtual Real elem (int i, int j) const;
+ Diagonal_storage (Matrix_storage* , int band_i);
Diagonal_storage();
void OK() const;
- virtual void insert_row(int k);
- virtual void delete_row(int k);
- virtual void delete_column(int k);
+ virtual void insert_row (int k);
+ virtual void delete_row (int k);
+ virtual void delete_column (int k);
~Diagonal_storage();
- virtual bool mult_ok(int i, int j)const;
- virtual void mult_next(int &i, int &j) const ;
- virtual bool trans_ok(int i, int j) const;
- virtual void trans_next(int &i, int &j) const;
+ virtual bool mult_ok (int i, int j)const;
+ virtual void mult_next (int &i, int &j) const ;
+ virtual bool trans_ok (int i, int j) const;
+ virtual void trans_next (int &i, int &j) const;
DECLARE_VIRTUAL_COPY_CONS(Diagonal_storage, Matrix_storage);
DECLARE_MY_RUNTIME_TYPEINFO;
- virtual bool try_right_multiply(Matrix_storage * dest, Matrix_storage const *)const;
+ virtual bool try_right_multiply (Matrix_storage * dest, Matrix_storage const *)const;
};
#endif // DIAGONAL_STORAGE_HH
diff --git a/flower/include/directed-graph.hh b/flower/include/directed-graph.hh
index 73f8a926e5..caa065abec 100644
--- a/flower/include/directed-graph.hh
+++ b/flower/include/directed-graph.hh
@@ -24,17 +24,17 @@ public:
/** remove i-th edge_out (and exactly one ref to me in the edge_out)
*/
- void remove_edge_out_idx(int i);
- void copy_edges_out(Directed_graph_node const&);
+ void remove_edge_out_idx (int i);
+ void copy_edges_out (Directed_graph_node const&);
bool linked_b() const;
void unlink();
void junk_links();
- void add(Directed_graph_node*);
- void remove_edge_in(Directed_graph_node *);
- void remove_edge_out(Directed_graph_node*);
- bool contains_b(Directed_graph_node const*) const;
+ void add (Directed_graph_node*);
+ void remove_edge_in (Directed_graph_node *);
+ void remove_edge_out (Directed_graph_node*);
+ bool contains_b (Directed_graph_node const*) const;
- Directed_graph_node(Directed_graph_node const &);
+ Directed_graph_node (Directed_graph_node const &);
void OK()const;
Directed_graph_node();
diff --git a/flower/include/dstream.hh b/flower/include/dstream.hh
index 19fd8acab2..4d14ae34ec 100644
--- a/flower/include/dstream.hh
+++ b/flower/include/dstream.hh
@@ -23,7 +23,7 @@ struct Assoc;
One can turn on and off specific messages using the Assoc silent.
This can be done automatically:
- #define DEBUG dstream_.identify_as(__PRETTY_FUNCTION__)
+ #define DEBUG dstream_.identify_as (__PRETTY_FUNCTION__)
DEBUG << "a message\n";
@@ -38,18 +38,18 @@ class Dstream
int indent_level_i_;
bool local_silence_b_;
String current_classname_str_;
- void output(String s);
+ void output (String s);
Assoc<String, bool> *silent_assoc_p_;
public:
void clear_silence();
- bool silence(String);
+ bool silence (String);
/**
if rcfile == 0, then do not read any rc file.
*/
- Dstream(ostream *r, char const * rcfile);
+ Dstream (ostream *r, char const * rcfile);
virtual ~Dstream();
- Dstream &identify_as(String s);
+ Dstream &identify_as (String s);
/** Output a string via the Dstream. This is the only output
interface. It delegates all conversion to String class. */
diff --git a/flower/include/flower-debug.hh b/flower/include/flower-debug.hh
index a617c6f379..de19d30630 100644
--- a/flower/include/flower-debug.hh
+++ b/flower/include/flower-debug.hh
@@ -15,11 +15,11 @@
extern Dstream *flower_dstream;
extern bool flower_check_debug;
#ifdef NPRINT
-#define fdebug if ( 0 ) *flower_dstream
+#define fdebug if ( 0) *flower_dstream
#else
#define fdebug if (flower_check_debug) \
- flower_dstream->identify_as(__PRETTY_FUNCTION__)
+ flower_dstream->identify_as (__PRETTY_FUNCTION__)
#endif
-void set_flower_debug(Dstream&ds, bool);
+void set_flower_debug (Dstream&ds, bool);
#endif // FLOWER_DEBUG_HH
diff --git a/flower/include/fproto.hh b/flower/include/fproto.hh
index 8b7bb35798..740c38a7fe 100644
--- a/flower/include/fproto.hh
+++ b/flower/include/fproto.hh
@@ -47,10 +47,13 @@ struct String_convert;
struct String;
struct Matrix_storage;
struct Vector ;
+struct Rational;
struct Text_stream;
struct Data_file;
struct Text_db;
struct Scalar;
typedef unsigned char Byte;
+
+
#endif // FPROTO_HH
diff --git a/flower/include/full-storage.hh b/flower/include/full-storage.hh
index 1dfb96e8fa..0d17df412f 100644
--- a/flower/include/full-storage.hh
+++ b/flower/include/full-storage.hh
@@ -28,41 +28,41 @@ class Full_storage : public Matrix_storage
void
init() ;
- bool valid(int i, int j) const ;
+ bool valid (int i, int j) const ;
- void resize_rows(int);
- void resize_cols(int);
+ void resize_rows (int);
+ void resize_cols (int);
public:
virtual int rows() const;
virtual int cols() const ;
- virtual void resize(int i, int j);
- virtual void resize(int i);
- virtual Real& elem(int i,int j);
- virtual Real elem(int i, int j)const ;
+ virtual void resize (int i, int j);
+ virtual void resize (int i);
+ virtual Real& elem (int i,int j);
+ virtual Real elem (int i, int j)const ;
int dim()const;
- Full_storage(Matrix_storage*);
+ Full_storage (Matrix_storage*);
Full_storage();
- Full_storage(int i, int j);
- Full_storage(Full_storage const&);
- Full_storage(int i);
+ Full_storage (int i, int j);
+ Full_storage (Full_storage const&);
+ Full_storage (int i);
void OK() const;
void operator=(Full_storage const &);
- virtual void insert_row(int k);
- virtual void delete_row(int k);
- virtual void delete_column(int k);
+ virtual void insert_row (int k);
+ virtual void delete_row (int k);
+ virtual void delete_column (int k);
~Full_storage();
- virtual bool mult_ok(int i, int j)const;
- virtual void mult_next(int &i, int &j) const ;
- virtual bool trans_ok(int i, int j) const;
- virtual void trans_next(int &i, int &j) const;
+ virtual bool mult_ok (int i, int j)const;
+ virtual void mult_next (int &i, int &j) const ;
+ virtual bool trans_ok (int i, int j) const;
+ virtual void trans_next (int &i, int &j) const;
DECLARE_VIRTUAL_COPY_CONS(Full_storage,Matrix_storage);
DECLARE_MY_RUNTIME_TYPEINFO;
- virtual bool try_right_multiply(Matrix_storage * dest, Matrix_storage const * )const;
+ virtual bool try_right_multiply (Matrix_storage * dest, Matrix_storage const *)const;
};
#endif // FULL_STORAGE_HH
diff --git a/flower/include/full-storage.icc b/flower/include/full-storage.icc
index 06bcc9d70c..d71dbe07e7 100644
--- a/flower/include/full-storage.icc
+++ b/flower/include/full-storage.icc
@@ -18,7 +18,7 @@ Full_storage::init()
height_i_=width_i_=max_height_i_=max_width_i_=0;
}
INLINE bool
-Full_storage::valid(int i, int j)const
+Full_storage::valid (int i, int j)const
{
return (i>=0 && i < height_i_)
&& (j < width_i_ && j >=0);
@@ -26,22 +26,22 @@ Full_storage::valid(int i, int j)const
INLINE
-Full_storage::Full_storage(Full_storage const&s)
+Full_storage::Full_storage (Full_storage const&s)
{
init();
(*this) = s;
}
INLINE Real&
-Full_storage::elem(int i,int j)
+Full_storage::elem (int i,int j)
{
- assert(valid(i,j));
+ assert (valid (i,j));
return els_p_p_[i][j];
}
INLINE Real
-Full_storage::elem(int i, int j) const {
- assert(valid(i,j));
+Full_storage::elem (int i, int j) const {
+ assert (valid (i,j));
return els_p_p_[i][j];
}
@@ -64,28 +64,28 @@ Full_storage::cols() const
INLINE int
Full_storage::dim()const
{
- assert (rows()==cols());
+ assert (rows()==cols ());
return rows();
}
INLINE void
-Full_storage::resize(int i)
+Full_storage::resize (int i)
{
- resize(i,i);
+ resize (i,i);
}
INLINE
-Full_storage::Full_storage(int i,int j)
+Full_storage::Full_storage (int i,int j)
{
init();
- set_size(i,j);
+ set_size (i,j);
}
INLINE
-Full_storage::Full_storage(int i)
+Full_storage::Full_storage (int i)
{
init();
- set_size(i);
+ set_size (i);
}
INLINE
diff --git a/flower/include/handle.hh b/flower/include/handle.hh
index 26328bd26b..4176325b15 100644
--- a/flower/include/handle.hh
+++ b/flower/include/handle.hh
@@ -17,7 +17,7 @@ class Handle {
refs = 0;
}
/// point to new object.
- void up(T *t, int *r) {
+ void up (T *t, int *r) {
if (!r) {
refs = new int;
*refs = 1;
@@ -29,23 +29,23 @@ class Handle {
}
/// POST: *refs == 1
void copy() {
- if(*refs != 1){
- T * newobj = new T(*obj );
+ if (*refs != 1){
+ T * newobj = new T(*obj);
down();
- up(newobj);
+ up (newobj);
}
}
- Handle(Handle const &src) {
- up(src.obj, src.refs);
+ Handle (Handle const &src) {
+ up (src.obj, src.refs);
}
- Handle(T & o) {
+ Handle (T & o) {
up (&o);
}
void operator=(Handle const& src) {
if (this == &src)
return;
down();
- up(src.o, src.refs);
+ up (src.o, src.refs);
}
operator T const &() {
return *obj;
diff --git a/flower/include/interval.hh b/flower/include/interval.hh
index bf4e4cc0e7..19d5061114 100644
--- a/flower/include/interval.hh
+++ b/flower/include/interval.hh
@@ -26,24 +26,24 @@ struct Interval_t {
static T infinity() ;
T center() { return (left + right) / T(2);}
- void translate(T t) {
+ void translate (T t) {
left += t;
right += t;
}
- T& idx(int j) {
+ T& idx (int j) {
if (j==-1)
return left;
else if (j==1)
return right;
else
- assert(false);
+ assert (false);
return left;
}
T& operator[](int j) {
- return idx(j);
+ return idx (j);
}
T operator[](int j) const {
- return ((Interval_t<T> *)this)->idx(j);
+ return ((Interval_t<T> *)this)->idx (j);
}
T &max() { return right;}
T max()const { return right;}
@@ -53,17 +53,17 @@ struct Interval_t {
PRE
*this and h are comparable
*/
- void unite(Interval_t<T> h);
- void intersect(Interval_t<T> h);
+ void unite (Interval_t<T> h);
+ void intersect (Interval_t<T> h);
T length() const;
void set_empty() ;
bool empty_b() const { return left > right; }
- bool contains_b(Interval_t<T> const&) const;
+ bool contains_b (Interval_t<T> const&) const;
Interval_t() {
set_empty();
}
- Interval_t(T m, T M) {
+ Interval_t (T m, T M) {
left =m;
right = M;
}
@@ -83,7 +83,7 @@ struct Interval_t {
return *this;
}
String str() const;
- bool elt_b(T r);
+ bool elt_b (T r);
};
@@ -91,7 +91,7 @@ struct Interval_t {
inclusion ordering. Crash if not comparable.
*/
template<class T>
-int Interval__compare(const Interval_t<T>&,Interval_t<T> const&);
+int Interval__compare (const Interval_t<T>&,Interval_t<T> const&);
/*
INLINE
@@ -99,21 +99,21 @@ int Interval__compare(const Interval_t<T>&,Interval_t<T> const&);
#include "compare.hh"
-template_instantiate_compare(Interval_t<T>&, Interval__compare, template<class T>);
+TEMPLATE_INSTANTIATE_COMPARE(Interval_t<T>&, Interval__compare, template<class T>);
template<class T>
inline Interval_t<T>
-intersection(Interval_t<T> a, Interval_t<T> const&b)
+intersection (Interval_t<T> a, Interval_t<T> const&b)
{
- a.intersect(b);
+ a.intersect (b);
return a;
}
template<class T>
inline
-Interval_t<T> operator +(T a,Interval_t<T> i )
+Interval_t<T> operator +(T a,Interval_t<T> i)
{
i += a;
return i;
@@ -121,13 +121,13 @@ Interval_t<T> operator +(T a,Interval_t<T> i )
template<class T>
inline
-Interval_t<T> operator +(Interval_t<T> i,T a ){
+Interval_t<T> operator +(Interval_t<T> i,T a){
return a+i;
}
template<class T>
inline
-Interval_t<T> operator *(T a,Interval_t<T> i )
+Interval_t<T> operator *(T a,Interval_t<T> i)
{
i *= a;
return i;
@@ -135,15 +135,13 @@ Interval_t<T> operator *(T a,Interval_t<T> i )
template<class T>
inline
-Interval_t<T> operator *(Interval_t<T> i,T a ){
+Interval_t<T> operator *(Interval_t<T> i,T a){
return a*i;
}
typedef Interval_t<Real> Interval;
-#define Interval__instantiate(T) template struct Interval_t<T>;\
- template int Interval__compare(const Interval_t<T>&,Interval_t<T> const&)
#endif // INTERVAL_HH
diff --git a/flower/include/interval.tcc b/flower/include/interval.tcc
index ab2eb95ec3..efb7644133 100644
--- a/flower/include/interval.tcc
+++ b/flower/include/interval.tcc
@@ -1,3 +1,15 @@
+/*
+ interval.tcc -- implement Interval_t
+
+ source file of the Flower Library
+
+ (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#ifndef INTERVAL_TCC
+#define INTERVAL_TCC
+
#include <assert.h>
#include <math.h>
#include "interval.hh"
@@ -6,7 +18,7 @@
template<class T>
int
-_Interval__compare(const Interval_t<T>&a,Interval_t<T> const&b)
+_Interval__compare (const Interval_t<T>&a,Interval_t<T> const&b)
{
if (a.left == b.left && a.right == b.right)
return 0;
@@ -22,9 +34,9 @@ _Interval__compare(const Interval_t<T>&a,Interval_t<T> const&b)
template<class T>
bool
-Interval_t<T>::contains_b(Interval_t<T> const& a)const
+Interval_t<T>::contains_b (Interval_t<T> const& a)const
{
- int c_i= _Interval__compare( *this, a);
+ int c_i= _Interval__compare (*this, a);
if (c_i == -2)
return false;
return c_i >= 0;
@@ -32,11 +44,11 @@ Interval_t<T>::contains_b(Interval_t<T> const& a)const
template<class T>
int
-Interval__compare(const Interval_t<T>&a,Interval_t<T> const&b)
+Interval__compare (const Interval_t<T>&a,Interval_t<T> const&b)
{
- int i = _Interval__compare(a,b);
+ int i = _Interval__compare (a,b);
if (i < -1)
- assert(false);
+ assert (false);
return i;
}
@@ -51,13 +63,13 @@ Interval_t<T>::set_empty()
template<class T>
T
Interval_t<T>::length() const {
- assert(right >= left);
+ assert (right >= left);
return right-left;
}
template<class T>
void
-Interval_t<T>::unite(Interval_t<T> h)
+Interval_t<T>::unite (Interval_t<T> h)
{
if (h.left<left)
left = h.left;
@@ -71,22 +83,22 @@ Interval_t<T>::unite(Interval_t<T> h)
template<class T>
void
-Interval_t<T>::intersect(Interval_t<T> h)
+Interval_t<T>::intersect (Interval_t<T> h)
{
#if defined (__GNUG__) && ! defined (__STRICT_ANSI__)
left = h.left >? left;
right = h.right <?right;
#else
- left = max(h.left, left);
- right = min(h.right, right);
+ left = max (h.left, left);
+ right = min (h.right, right);
#endif
}
template<class T>
Interval_t<T>
-intersect(Interval_t<T> x, Interval_t<T> const &y)
+intersect (Interval_t<T> x, Interval_t<T> const &y)
{
- x.intersect(y);
+ x.intersect (y);
return x;
}
@@ -96,14 +108,20 @@ Interval_t<T>::str() const
{
if (empty_b())
return "[empty]";
- String s("[");
+ String s ("[");
- return s + String( left ) + String( "," ) + String( right ) + String( "]" );
+ return s + String (left) + String ("," ) + String (right ) + String ("]" );
}
template<class T>
bool
-Interval_t<T>::elt_b(T r)
+Interval_t<T>::elt_b (T r)
{
return r >= left && r <= right;
}
+
+
+#define INTERVAL__INSTANTIATE(T) struct Interval_t<T>;\
+ template int Interval__compare(const Interval_t<T>&,Interval_t<T> const&)
+
+#endif // INTERVAL_TCC
diff --git a/flower/include/iterate.hh b/flower/include/iterate.hh
index 74e6ff202c..65b092d1d5 100644
--- a/flower/include/iterate.hh
+++ b/flower/include/iterate.hh
@@ -18,13 +18,13 @@
(it does save quite some disk space, though)
*/
-#define iterator(set) typeof((set).top())
-#define iterator_bot(set) typeof((set).bottom())
+#define iterator(set) typeof ((set).top())
+#define iterator_bot(set) typeof ((set).bottom())
-#define iter(init, var) typeof(init) var(init)
+#define iter(init, var) typeof (init) var (init)
// should use top()
-#define iter_top(set,var) iterator(set) var(set)
-#define iter_bot(set,var) iterator(set) var(set.bottom())
+#define iter_top(set,var) iterator (set) var (set)
+#define iter_bot(set,var) iterator (set) var (set.bottom())
#endif // ITERATE_HH
diff --git a/flower/include/lgetopt.hh b/flower/include/lgetopt.hh
index 89b0196bf2..b8a2e19049 100644
--- a/flower/include/lgetopt.hh
+++ b/flower/include/lgetopt.hh
@@ -14,7 +14,7 @@ struct Long_option_init {
char const * longname;
char shortname;
- void printon(ostream &errorout)const ;
+ void printon (ostream &errorout)const ;
};
@@ -72,7 +72,7 @@ public:
bool ok() const;
/// report an error and abort
- void report(Errorcod c);
+ void report (Errorcod c);
/// return an integer (with err. detect)
@@ -85,10 +85,10 @@ public:
if #os# is null, then do not report nor abort, just set #error#
*/
- void seterror(ostream *os);
+ void seterror (ostream *os);
/// construct: pass arguments and option info.
- Getopt_long(int c, char **v, Long_option_init *lo);
+ Getopt_long (int c, char **v, Long_option_init *lo);
/** get the next option.
@return pointer to next option found.
diff --git a/flower/include/libc-extension.hh b/flower/include/libc-extension.hh
index 96f3df00e1..3f94a03a0e 100644
--- a/flower/include/libc-extension.hh
+++ b/flower/include/libc-extension.hh
@@ -12,22 +12,22 @@
#include "fproto.hh"
#include "config.hh"
-char* strnlwr( char* start_l ,int n);
-char* strnupr( char* start_l, int n);
+char* strnlwr (char* start_l ,int n);
+char* strnupr (char* start_l, int n);
#if !HAVE_MEMMEM // GNU extension.
-char *memmem(Byte const * haystack, int haystack_len,
+char *memmem (Byte const * haystack, int haystack_len,
Byte const *needle, int needle_len);
#endif HAVE_MEMMEM
#if !HAVE_SNPRINTF // GNU extension.
int snprintf (char *str, size_t n,
- char const *format, ... );
+ char const *format, ...);
#endif
-Byte *memrchr(Byte const * p, int n, char c);
-Byte *strrev( Byte* byte_l, int length_i );
+Byte *memrchr (Byte const * p, int n, char c);
+Byte *strrev (Byte* byte_l, int length_i);
#endif // LIBC_EXTENSION_HH
diff --git a/flower/include/link.hh b/flower/include/link.hh
index 218a0f8e55..5fce0ac915 100644
--- a/flower/include/link.hh
+++ b/flower/include/link.hh
@@ -12,21 +12,21 @@ class Link
{
// friend class Cursor<T>;
public:
- Link( T const & thing );
+ Link (T const & thing);
Link<T>* previous();
Link<T>* next();
/// put new Link item after me in list
- void add( T const & thing );
+ void add (T const & thing);
/// put new Link item before me in list
- void insert( T const & thing );
- void remove(List<T> &l);
+ void insert (T const & thing);
+ void remove (List<T> &l);
T& thing();
void OK() const;
private:
- Link( Link<T>* previous, Link<T>* next, T const & thing );
+ Link (Link<T>* previous, Link<T>* next, T const & thing);
T thing_;
Link<T>* previous_;
diff --git a/flower/include/link.icc b/flower/include/link.icc
index 3926d6bc2a..68b87a73fc 100644
--- a/flower/include/link.icc
+++ b/flower/include/link.icc
@@ -9,26 +9,26 @@ Link<T>::OK() const
{
#ifndef NDEBUG
if (previous_) {
- assert(previous_->next_ == this);
+ assert (previous_->next_ == this);
}
if (next_) {
- assert(next_->previous_ == this);
+ assert (next_->previous_ == this);
}
#endif
}
template<class T>
inline
-Link<T>::Link( const T& thing ) :
- thing_( thing )
+Link<T>::Link (const T& thing) :
+ thing_( thing)
{
previous_ = next_ = 0;
}
template<class T>
inline
-Link<T>::Link( Link<T>* previous, Link<T>* next, const T& thing ) :
- thing_( thing )
+Link<T>::Link (Link<T>* previous, Link<T>* next, const T& thing) :
+ thing_( thing)
{
previous_ = previous;
next_ = next;
@@ -53,23 +53,23 @@ Link<T>::previous()
template<class T>
inline
void
-Link<T>::add( const T& thing )
+Link<T>::add (const T& thing)
{
- Link<T>* l = new Link<T>( this, next_, thing );
- if ( next_ )
+ Link<T>* l = new Link<T>( this, next_, thing);
+ if ( next_)
next_->previous_ = l;
next_ = l;
}
template<class T>
inline void
-Link<T>::insert( const T& thing )
+Link<T>::insert (const T& thing)
{
- // Link<T>* l = new Link<T>( next_, this, thing );
+ // Link<T>* l = new Link<T>( next_, this, thing);
// bugfix hwn 16/9/96
- Link<T>* l = new Link<T>( previous_, this, thing );
- if ( previous_ )
+ Link<T>* l = new Link<T>( previous_, this, thing);
+ if ( previous_)
previous_->next_ = l;
previous_ = l;
}
@@ -79,14 +79,14 @@ Link<T>::insert( const T& thing )
*/
template<class T>
inline void
-Link<T>::remove(List<T> &l)
+Link<T>::remove (List<T> &l)
{
- if ( previous_ )
+ if ( previous_)
previous_->next_ = next_;
else
l.top_ = next_;
- if ( next_ )
+ if ( next_)
next_->previous_ = previous_;
else
l.bottom_ = previous_;
diff --git a/flower/include/list.hh b/flower/include/list.hh
index fcc5e70712..f1ddb48e69 100644
--- a/flower/include/list.hh
+++ b/flower/include/list.hh
@@ -19,8 +19,8 @@ template<class T> class Link;
{\bf note:}
retrieving "invalid" cursors, i.e.
- #top()/bottom()# from empty list, #find()# without success,
- results in a nonvalid Cursor ( #!ok()# )
+ #top()/bottom ()# from empty list, #find ()# without success,
+ results in a nonvalid Cursor ( #!ok()#)
INVARIANTEN!
@@ -30,7 +30,7 @@ template<class T>
class List
{
public:
- List(List const&src);
+ List (List const&src);
/// construct empty list
List();
@@ -48,7 +48,7 @@ class List
friend class Cursor<T>;
friend class Link<T>;
- void concatenate(List<T> const &s);
+ void concatenate (List<T> const &s);
/** make *this empty.
@@ -60,10 +60,10 @@ class List
*/
void set_empty();
- void add( T const & thing, Cursor<T> &after_me );
+ void add (T const & thing, Cursor<T> &after_me);
/// put thing before #before_me#
- void insert( T const & thing, Cursor<T> &before_me );
+ void insert (T const & thing, Cursor<T> &before_me);
/** Remove link pointed to by me. Destructor of contents called
(nop for pointers)
@@ -74,7 +74,7 @@ class List
WARNING: do not use #me# after calling
*/
- void remove( Cursor<T> me );
+ void remove (Cursor<T> me);
/* ************** */
diff --git a/flower/include/list.icc b/flower/include/list.icc
index df0687b7c8..83ec3aa796 100644
--- a/flower/include/list.icc
+++ b/flower/include/list.icc
@@ -20,11 +20,11 @@ List<T>::set_empty()
template<class T>
inline void
-List<T>::remove( Cursor<T> me )
+List<T>::remove (Cursor<T> me)
{
- if ( me.ok() ){
+ if ( me.ok()){
Link<T> *lp = me.pointer();
- lp->remove(*this);
+ lp->remove (*this);
delete lp;
size_--;
}
@@ -41,7 +41,7 @@ template<class T>
inline Cursor<T>
List<T>::top()const
{
- return Cursor<T>( *this, top_ );
+ return Cursor<T>( *this, top_);
}
@@ -49,7 +49,7 @@ template<class T>
inline Cursor<T>
List<T>::bottom()const
{
- return Cursor<T>( *this, bottom_ );
+ return Cursor<T>( *this, bottom_);
}
diff --git a/flower/include/list.tcc b/flower/include/list.tcc
index 4c83034d82..fb64cd3ee0 100644
--- a/flower/include/list.tcc
+++ b/flower/include/list.tcc
@@ -1,20 +1,27 @@
+/*
+ list.tcc -- implement List<T>
+
+ source file of the Flower Library
+
+ (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
#ifndef LIST_CC
#define LIST_CC
// instantiate a template: explicit instantiation.
-#define L_instantiate(a) template class List<a>; template class Cursor<a>; \
+#define L_INSTANTIATE(a) class List<a>; template class Cursor<a>; \
template class Link<a>
#include "list.hh"
template<class T>
-List<T>::List(List const&src)
+List<T>::List (List const&src)
{
set_empty();
// probably el stupido
- for (Cursor<T> c(src); c.ok(); c++)
- bottom().add(c);
+ for (Cursor<T> c (src); c.ok(); c++)
+ bottom().add (c);
}
template<class T>
@@ -24,26 +31,26 @@ List<T>::OK() const
int i = size_;
Link<T> *lp = top_;
while (i--) {
- assert(lp);
+ assert (lp);
lp->OK();
lp = lp->next();
}
- assert(!lp);
+ assert (!lp);
i = size_;
lp = bottom_;
while (i--) {
- assert(lp);
+ assert (lp);
lp->OK();
lp = lp->previous();
}
- assert(!lp);
+ assert (!lp);
}
template<class T>
void
List<T>::junk_links()
{
- Cursor<T> c(*this);
+ Cursor<T> c (*this);
while (c.ok())
c.del();
}
@@ -68,17 +75,17 @@ List<T>::~List()
*/
template<class T>
void
-List<T>::add( T const & thing, Cursor<T> &after_me )
+List<T>::add (T const & thing, Cursor<T> &after_me)
{
if (!size_) { // not much choice if list is empty
- bottom_ = top_ = new Link<T>( thing );
+ bottom_ = top_ = new Link<T>( thing);
if (!after_me.ok())
after_me = bottom();
} else { // add at aprioprate place
if (!after_me.ok())
after_me = bottom();
Link<T> *p =after_me.pointer();
- p->add(thing);
+ p->add (thing);
if (p == bottom_) // adjust bottom_ if necessary.
bottom_ = p->next();
}
@@ -88,10 +95,10 @@ List<T>::add( T const & thing, Cursor<T> &after_me )
template<class T>
void
-List<T>::insert( T const & thing, Cursor<T> &before_me )
+List<T>::insert (T const & thing, Cursor<T> &before_me)
{
if (!size_) {
- bottom_ = top_ = new Link<T>( thing );
+ bottom_ = top_ = new Link<T>( thing);
if (!before_me.ok())
before_me = top();
@@ -101,7 +108,7 @@ List<T>::insert( T const & thing, Cursor<T> &before_me )
Link<T> *p = before_me.pointer() ;
- p->insert(thing);
+ p->insert (thing);
if (p == top_)
top_ = p->previous();
}
@@ -112,11 +119,11 @@ List<T>::insert( T const & thing, Cursor<T> &before_me )
template<class T>
void
-List<T>::concatenate(List<T> const&s)
+List<T>::concatenate (List<T> const&s)
{
- Cursor<T> b(bottom());
- for (Cursor<T> c(s); c.ok(); c++) {
- b.add(c);
+ Cursor<T> b (bottom());
+ for (Cursor<T> c (s); c.ok(); c++) {
+ b.add (c);
b++;
}
}
diff --git a/flower/include/matrix-storage.hh b/flower/include/matrix-storage.hh
index a5971b2688..662cdddc89 100644
--- a/flower/include/matrix-storage.hh
+++ b/flower/include/matrix-storage.hh
@@ -47,14 +47,14 @@ public:
PRE
i >=0, j>=0
*/
- virtual void set_size(int rows, int cols) ;
+ virtual void set_size (int rows, int cols) ;
/**set the size to square dimen. contents lost
PRE
i>=0
*/
- virtual void set_size(int i) ;
+ virtual void set_size (int i) ;
/**set the size to i.
keep contents. If enlarged contents unspecified
@@ -63,7 +63,7 @@ public:
i>=0, j>=0
*/
- virtual void resize(int rows, int cols ) = 0;
+ virtual void resize (int rows, int cols) = 0;
/**
set the size to square dimen. contents kept
@@ -72,7 +72,7 @@ public:
PRE
i>=0
*/
- virtual void resize(int i) = 0;
+ virtual void resize (int i) = 0;
/**
@@ -82,13 +82,13 @@ public:
in the 0-part of a sparse matrix.
*/
- virtual Real& elem(int i,int j) = 0;
+ virtual Real& elem (int i,int j) = 0;
/// access a element, no modify
- virtual Real elem(int i, int j) const = 0;
+ virtual Real elem (int i, int j) const = 0;
- virtual Array<Real> row(int i) const ;
- virtual Array<Real> column(int j) const;
+ virtual Array<Real> row (int i) const ;
+ virtual Array<Real> column (int j) const;
/**
@@ -97,7 +97,7 @@ public:
0 <= k <= rows()
*/
- virtual void insert_row(int k)=0;
+ virtual void insert_row (int k)=0;
/**
@@ -106,8 +106,8 @@ public:
PRE
0 <= k < rows();
*/
- virtual void delete_row(int k)=0;
- virtual void delete_column(int k)=0;
+ virtual void delete_row (int k)=0;
+ virtual void delete_column (int k)=0;
virtual ~Matrix_storage() { }
virtual Matrix_storage *clone()const=0;
@@ -116,12 +116,12 @@ public:
/**
at end of matrix?. when doing loop
- for(i=0; i<h; i++)
- for(j=0; j<w; j++)
+ for (i=0; i<h; i++)
+ for (j=0; j<w; j++)
..
*/
- virtual bool mult_ok(int i, int j) const=0;
+ virtual bool mult_ok (int i, int j) const=0;
/**
walk through matrix (regular multiply).
@@ -129,30 +129,30 @@ public:
this will make sparse matrix implementation easy.
PRE
- mult_ok(i,j)
+ mult_ok (i,j)
*/
- virtual void mult_next(int &i, int &j) const = 0;
+ virtual void mult_next (int &i, int &j) const = 0;
/**
valid matrix entry. return false if at end of row
*/
- virtual bool trans_ok(int i, int j) const=0;
+ virtual bool trans_ok (int i, int j) const=0;
/**
walk through matrix (transposed multiply).
Get next i (for column j)
PRE
- ver_ok(i,j)
+ ver_ok (i,j)
*/
- virtual void trans_next(int &i, int &j) const = 0;
+ virtual void trans_next (int &i, int &j) const = 0;
/// generate a "Full_storage" matrix
- static Matrix_storage *get_full(int n, int m);
- static void set_band(Matrix_storage*&, int band);
- static void set_full(Matrix_storage*&);
- virtual bool try_right_multiply(Matrix_storage *dest,
+ static Matrix_storage *get_full (int n, int m);
+ static void set_band (Matrix_storage*&, int band);
+ static void set_full (Matrix_storage*&);
+ virtual bool try_right_multiply (Matrix_storage *dest,
const Matrix_storage *fact)const ;
/**
RTTI.
@@ -160,13 +160,13 @@ public:
DECLARE_MY_RUNTIME_TYPEINFO;
- static Matrix_storage* get_product_result(Matrix_storage *left,
+ static Matrix_storage* get_product_result (Matrix_storage *left,
Matrix_storage *right);
- static void set_addition_result(
+ static void set_addition_result (
Matrix_storage *&dat, Matrix_storage *right);
- static void set_product_result(
+ static void set_product_result (
Matrix_storage*&dest, Matrix_storage*left, Matrix_storage*right);
};
diff --git a/flower/include/matrix.hh b/flower/include/matrix.hh
index b6e084efda..c2545a072d 100644
--- a/flower/include/matrix.hh
+++ b/flower/include/matrix.hh
@@ -28,12 +28,12 @@ class Matrix {
protected:
Matrix_storage *dat;
- void set(Matrix_storage*);
- Matrix(Matrix_storage*);
+ void set (Matrix_storage*);
+ Matrix (Matrix_storage*);
public:
void OK() const { dat->OK(); }
- int cols() const { return dat->cols(); }
- int rows() const { return dat->rows(); }
+ int cols() const { return dat->cols (); }
+ int rows() const { return dat->rows (); }
/** return the size of a matrix.
PRE
@@ -54,14 +54,14 @@ public:
~Matrix() { delete dat; }
/// set entries to r
- void fill(Real r);
+ void fill (Real r);
/// set diagonal to d
- void set_diag(Real d);
+ void set_diag (Real d);
- void set_diag(Vector d);
+ void set_diag (Vector d);
/// set unit matrix
- void unit() { set_diag(1.0); }
+ void unit() { set_diag (1.0); }
void operator+=(Matrix const &m);
void operator-=(Matrix const &m);
@@ -72,48 +72,48 @@ public:
add a row to the matrix before row k
PRE
- v.dim() == cols()
+ v.dim() == cols ()
0 <= k <= rows()
*/
- void insert_row(Vector v,int k);
+ void insert_row (Vector v,int k);
/** .
delete a row from this matrix.
PRE
0 <= k < rows();
*/
- void delete_row(int k) { dat->delete_row(k); }
- void delete_column(int k) { dat->delete_column(k); }
+ void delete_row (int k) { dat->delete_row (k); }
+ void delete_column (int k) { dat->delete_column (k); }
/**
square n matrix, initialised to null
*/
- Matrix(int n);
+ Matrix (int n);
/**
n x m matrix, init to 0
*/
- Matrix(int n, int m);
- Matrix(Matrix const &m);
+ Matrix (int n, int m);
+ Matrix (Matrix const &m);
/// dyadic product: v * w.transpose
- Matrix(Vector v, Vector w);
+ Matrix (Vector v, Vector w);
void operator=(Matrix const &m);
/// access an element
- Real operator()(int i,int j) const { return dat->elem(i,j); }
+ Real operator()(int i,int j) const { return dat->elem (i,j); }
/// access an element
- Real &operator()(int i, int j) { return dat->elem(i,j); }
+ Real &operator()(int i, int j) { return dat->elem (i,j); }
/// Matrix multiply with vec (from right)
Vector operator *(Vector const &v) const;
/// set this to m1*m2.
- void set_product(Matrix const &m1, Matrix const &m2);
+ void set_product (Matrix const &m1, Matrix const &m2);
- Vector left_multiply(Vector const &) const;
+ Vector left_multiply (Vector const &) const;
Matrix operator-() const;
@@ -128,24 +128,24 @@ public:
PRE
0 <= c1,c2 < cols()
*/
- void swap_columns(int c1, int c2);
+ void swap_columns (int c1, int c2);
/** swap.
PRE
0 <= c1,c2 < rows()
*/
- void swap_rows(int c1, int c2);
+ void swap_rows (int c1, int c2);
- Vector row(int ) const;
- Vector col(int) const;
+ Vector row (int) const;
+ Vector col (int) const;
operator String() const;
void print() const;
};
inline Vector
-operator *(Vector &v, Matrix const & m) { return m.left_multiply(v); }
+operator *(Vector &v, Matrix const & m) { return m.left_multiply (v); }
Matrix operator *(Matrix const & m1,Matrix const &m2);
Matrix operator /(Matrix const &m1,Real a);
inline Matrix operator -(Matrix m1,const Matrix m2)
diff --git a/flower/include/parray.hh b/flower/include/parray.hh
index 61c69495c2..054288b809 100644
--- a/flower/include/parray.hh
+++ b/flower/include/parray.hh
@@ -21,7 +21,7 @@
template<class T>
class Link_array : public Array<T*>
{
- static default_compare(T *const& p1, T *const&p2) {
+ static default_compare (T *const& p1, T *const&p2) {
/* can't do p1 -p2, since T might be an incomplete type */
if (p1 < p2)
return -1 ;
@@ -30,48 +30,48 @@ class Link_array : public Array<T*>
return 0;
}
public:
- void substitute(T *old, T*new_l)
+ void substitute (T *old, T*new_l)
{
int i;
- while ((i = find_i(old)) >=0)
+ while ((i = find_i (old)) >=0)
if (new_l)
- elem(i) =new_l;
+ elem (i) =new_l;
else
- del(i);
+ del (i);
}
- void unordered_substitute(T* old, T * new_l)
+ void unordered_substitute (T* old, T * new_l)
{
int i;
- while ((i = find_i(old)) >=0)
+ while ((i = find_i (old)) >=0)
if (new_l)
- elem(i) =new_l;
+ elem (i) =new_l;
else {
- unordered_del( i );
+ unordered_del (i);
}
}
void default_sort() {
- sort(default_compare);
+ sort (default_compare);
}
void uniq() {
Link_array<T> l_arr;
for (int i=0; i < size(); i++)
- if (!i || elem(i-1) != elem(i))
- l_arr.push(elem(i));
+ if (!i || elem (i-1) != elem (i))
+ l_arr.push (elem (i));
*this = l_arr;
}
int find_i (T const * t) const {
for (int i=0; i < size(); i++)
- if (elem(i) == t)
+ if (elem (i) == t)
return i;
return -1;
}
- T *find_l(T const *t)const
+ T *find_l (T const *t)const
{
- int i = find_i(t);
+ int i = find_i (t);
if (i >= 0)
- return elem(i);
+ return elem (i);
else
return 0;
}
diff --git a/flower/include/path.hh b/flower/include/path.hh
index d41dc2ba1c..81a8cb1038 100644
--- a/flower/include/path.hh
+++ b/flower/include/path.hh
@@ -27,11 +27,11 @@ class File_path : private Array<String>
{
public:
/// locate a file in the search path
- String find(String nm)const;
+ String find (String nm)const;
/// add to end of path.
Array<String>::push;
- void add(String str) { push(str); }
+ void add (String str) { push (str); }
};
/** split a path into its components.
@@ -41,6 +41,6 @@ public:
@return
String &drive, String &dirs, String &filebase, String &extension
*/
-void split_path(String path, String &drive, String &dirs, String &filebase, String &extension);
+void split_path (String path, String &drive, String &dirs, String &filebase, String &extension);
#endif
diff --git a/flower/include/pcursor.hh b/flower/include/pcursor.hh
index 6c9ceff0d7..5aa63d1d8f 100644
--- a/flower/include/pcursor.hh
+++ b/flower/include/pcursor.hh
@@ -34,38 +34,38 @@ public:
return p;
}
T remove_prev_p() {
- assert( ok() );
+ assert (ok());
(*this)--;
return remove_p();
}
- Link_list<T> &list() { return (Link_list<T>&)Cursor<void*>::list(); }
+ Link_list<T> &list() { return (Link_list<T>&)Cursor<void*>::list (); }
PCursor<T> operator++(int) { return Cursor<void*>::operator++(0);}
PCursor<T> operator--(int) { return Cursor<void*>::operator--(0); }
PCursor<T> operator+=(int i) { return Cursor<void*>::operator+=(i);}
PCursor<T> operator-=(int i) { return Cursor<void*>::operator-=(i); }
PCursor<T> operator -(int no) const { return Cursor<void*>::operator-(no);}
int operator -(PCursor<T> op) const { return Cursor<void*>::operator-(op);}
- PCursor<T> operator +( int no) const {return Cursor<void*>::operator+(no);} PCursor(const Link_list<T> & l) : Cursor<void*> (l) {}
+ PCursor<T> operator +( int no) const {return Cursor<void*>::operator+(no);} PCursor (const Link_list<T> & l) : Cursor<void*> (l) {}
PCursor() : Cursor<void*> () {}
- PCursor( const Cursor<void*>& cursor ) : Cursor<void*>(cursor) { }
+ PCursor (const Cursor<void*>& cursor) : Cursor<void*>(cursor) { }
void* vptr() const { return *((Cursor<void*> &) *this); }
// should return T& ?
- T ptr() const { return (T) vptr(); }
+ T ptr() const { return (T) vptr (); }
T operator ->() const { return ptr(); }
operator T() { return ptr(); }
T operator *() { return ptr(); }
- void add(T const & p ) { Cursor<void*>::add((void*) p); }
- void insert(T const & p ) { Cursor<void*>::insert((void*) p);}
- static int compare(PCursor<T> a,PCursor<T>b) {
- return Cursor<void*>::compare(a,b);
+ void add (T const & p) { Cursor<void*>::add ((void*) p); }
+ void insert (T const & p) { Cursor<void*>::insert ((void*) p);}
+ static int compare (PCursor<T> a,PCursor<T>b) {
+ return Cursor<void*>::compare (a,b);
}
};
#include "compare.hh"
-template_instantiate_compare(PCursor<T>, PCursor<T>::compare, template<class T>);
+TEMPLATE_INSTANTIATE_COMPARE(PCursor<T>, PCursor<T>::compare, template<class T>);
#endif
diff --git a/flower/include/pcursor.tcc b/flower/include/pcursor.tcc
index ffb01bcfe8..e8de3d5da1 100644
--- a/flower/include/pcursor.tcc
+++ b/flower/include/pcursor.tcc
@@ -4,12 +4,12 @@ template<class T>
void
PCursor<T>::junk()
{
-#if !defined(NDEBUG) && defined(PARANOID)
+#if !defined (NDEBUG) && defined (PARANOID)
list().OK();
#endif
delete ptr();
-#if !defined(NDEBUG)&&defined(PARANOID)
+#if !defined (NDEBUG)&&defined (PARANOID)
thing() = 0;
list().OK();
#endif
diff --git a/flower/include/plist.hh b/flower/include/plist.hh
index af27832f00..f052e47368 100644
--- a/flower/include/plist.hh
+++ b/flower/include/plist.hh
@@ -28,8 +28,8 @@ class Link_list : public List<void *>
PCursor<T> bottom() const {
return PCursor<T> (List<void*>::bottom());
}
- PCursor<T> find(T) const;
- void concatenate(Link_list<T> const &s) { List<void*>::concatenate(s); }
+ PCursor<T> find (T) const;
+ void concatenate (Link_list<T> const &s) { List<void*>::concatenate (s); }
Link_list() {}
};
@@ -55,19 +55,19 @@ class Pointer_list : public Link_list<T> {
public:
void junk();
- Pointer_list(Pointer_list const &) { set_empty(); }
+ Pointer_list (Pointer_list const &) { set_empty(); }
Pointer_list() { }
- ~Pointer_list() { junk(); }
+ ~Pointer_list() { junk (); }
};
#define Pointer_list__copy(T, to, from, op) \
for (PCursor<T> _pc_(from); _pc_.ok(); _pc_++)\
- to.bottom().add(_pc_->op)\
+ to.bottom().add (_pc_->op)\
\
template<class T>
-void PL_copy(Pointer_list<T*> &dst,Pointer_list<T*> const&src);
+void PL_copy (Pointer_list<T*> &dst,Pointer_list<T*> const&src);
diff --git a/flower/include/plist.icc b/flower/include/plist.icc
index 80ce1ba198..f4a3713761 100644
--- a/flower/include/plist.icc
+++ b/flower/include/plist.icc
@@ -9,12 +9,12 @@
template<class T>
void
-PL_copy(Pointer_list<T*> &to, Pointer_list<T*> const&src)
+PL_copy (Pointer_list<T*> &to, Pointer_list<T*> const&src)
{
- for (PCursor<T*> pc(src); pc.ok(); pc++) {
+ for (PCursor<T*> pc (src); pc.ok(); pc++) {
T *q = pc;
T *p=new T(*q) ;
- to.bottom().add(p);
+ to.bottom().add (p);
}
}
diff --git a/flower/include/plist.tcc b/flower/include/plist.tcc
index ba4a0f20b0..f7733d508d 100644
--- a/flower/include/plist.tcc
+++ b/flower/include/plist.tcc
@@ -1,15 +1,15 @@
#include "plist.hh"
-#define PL_instantiate(a) template class Link_list<a*>; \
+#define PL_INSTANTIATE(a) class Link_list<a*>; \
template class PCursor<a*>;
-#define IPL_instantiate(a) PL_instantiate(a); \
+#define IPL_INSTANTIATE(a) PL_INSTANTIATE(a); \
template class Pointer_list<a*>
template<class T>
void
Pointer_list<T>::junk()
{
- PCursor<T> c( *this );
+ PCursor<T> c (*this);
while (c.ok()) {
delete c.remove_p();
}
@@ -17,9 +17,9 @@ Pointer_list<T>::junk()
template<class T>
PCursor<T>
-Link_list<T>::find(T what ) const
+Link_list<T>::find (T what) const
{
- PCursor<T> i(*this);
+ PCursor<T> i (*this);
for (; i.ok(); i++)
if (i.ptr() == what)
break;
diff --git a/flower/include/pointer.hh b/flower/include/pointer.hh
index 58f8e198b0..cc8097c360 100644
--- a/flower/include/pointer.hh
+++ b/flower/include/pointer.hh
@@ -23,7 +23,7 @@ class P {
/**
Set contents to a copy of #t_l#
*/
- void copy(T const*t_l);
+ void copy (T const*t_l);
T* t_p;
/**
@@ -63,7 +63,7 @@ public:
//P(T *p) { t_p = p; }
T *operator ->() { return t_p; }
- operator T * () { return t_p; }
+ operator T *() { return t_p; }
const T *operator ->() const { return t_p ; }
T &operator *() { return *t_p; }
T const &operator *() const { return *t_p; }
diff --git a/flower/include/pointer.tcc b/flower/include/pointer.tcc
index 80cadfd23a..c35f92c497 100644
--- a/flower/include/pointer.tcc
+++ b/flower/include/pointer.tcc
@@ -21,7 +21,7 @@ P<T>::copy_p()const
template<class T>
inline
void
-P<T>::copy(T const *l_C)
+P<T>::copy (T const *l_C)
{
t_p = l_C ? new T(*l_C) : 0;
}
@@ -48,7 +48,7 @@ P<T> &
P<T>::operator =(P const&s)
{
junk();
- copy(s.t_p);
+ copy (s.t_p);
return *this;
}
@@ -61,7 +61,7 @@ P<T>::~P() {
template<class T>
inline
void
-P<T>::set_p(T * np)
+P<T>::set_p (T * np)
{
if (np == t_p)
return;
@@ -74,13 +74,13 @@ P<T>::set_p(T * np)
template<class T>
inline
void
-P<T>::set_l(T const * l_C)
+P<T>::set_l (T const * l_C)
{
if (t_p == l_C)
return;
junk();
- copy(l_C);
+ copy (l_C);
}
diff --git a/flower/include/pqueue.hh b/flower/include/pqueue.hh
index 846b870089..5f4a97fb47 100644
--- a/flower/include/pqueue.hh
+++ b/flower/include/pqueue.hh
@@ -21,7 +21,7 @@ struct PQueue_ent
template<class K, class T>
int compare (PQueue_ent<K,T> const &e1 , PQueue_ent<K,T> const &e2) {
- return compare(e1.key , e2.key);
+ return compare (e1.key , e2.key);
}
/**
@@ -35,10 +35,10 @@ int compare (PQueue_ent<K,T> const &e1 , PQueue_ent<K,T> const &e2) {
template<class T>
class PQueue {
Array<T> heap_arr_;
- T &elt(int i) {
+ T &elt (int i) {
return heap_arr_[i-1];
}
- T const&elt(int i) const {
+ T const&elt (int i) const {
return heap_arr_[i-1];
}
public:
@@ -52,25 +52,25 @@ public:
{
#ifndef NDEBUG
for (int i =2; i <= size(); i++)
- assert(compare (elt(i/2), elt(i)) <= 0);
+ assert (compare (elt (i/2), elt (i)) <= 0);
#endif
}
- T front () const { return elt(1); }
- int size() const { return heap_arr_.size(); }
- void insert(T v) {
- heap_arr_.push(v);
+ T front() const { return elt (1); }
+ int size() const { return heap_arr_.size (); }
+ void insert (T v) {
+ heap_arr_.push (v);
int i = heap_arr_.size();
int j = i / 2 ;
while (j) {
- if (compare(elt(j), v) > 0) {
- elt(i) = elt(j);
+ if (compare (elt (j), v) > 0) {
+ elt (i) = elt (j);
i = j;
j = i/2;
} else {
break;
}
}
- elt(i) = v;
+ elt (i) = v;
OK();
}
T max() const {
@@ -78,23 +78,23 @@ public:
T max_t;
return max_t;
}
- void delmin( ) {
- assert(size());
+ void delmin() {
+ assert (size());
T last = heap_arr_.top();
int mini=2;
int lasti=1;
- while ( mini < size() ) {
- if (compare(elt(mini + 1), elt(mini)) <0)
+ while ( mini < size()) {
+ if (compare (elt (mini + 1), elt (mini)) <0)
mini++;
- if (compare(last,elt(mini) ) < 0)
+ if (compare (last,elt (mini)) < 0)
break;
- elt(lasti) = elt(mini);
+ elt (lasti) = elt (mini);
lasti = mini;
mini *= 2;
}
- elt(lasti) = last;
+ elt (lasti) = last;
heap_arr_.pop();
OK();
}
diff --git a/flower/include/priorities.hh b/flower/include/priorities.hh
index 8b12766240..59949bd860 100644
--- a/flower/include/priorities.hh
+++ b/flower/include/priorities.hh
@@ -18,16 +18,16 @@
template<class K>
struct Priorities : Array<K>
{
- void insert(K k)
+ void insert (K k)
{
int i=0;
for (; i < size(); i++) {
- if(elem(i) == k)
+ if (elem (i) == k)
return;
- if (elem(i) > k )
+ if (elem (i) > k)
break;
}
- Array<K>::insert(k, i);
+ Array<K>::insert (k, i);
}
};
#endif // PRIORITIES_HH
diff --git a/flower/include/rational.hh b/flower/include/rational.hh
index d3b68f726f..51426dd063 100644
--- a/flower/include/rational.hh
+++ b/flower/include/rational.hh
@@ -12,6 +12,6 @@
#include <Rational.h>
/// print a Rational. To be called from the debugger
-void print_rat(Rational const&);
+void print_rat (Rational const&);
#endif // RATIONAL_HH
diff --git a/flower/include/real.hh b/flower/include/real.hh
index 457b82f967..2e8b160a22 100644
--- a/flower/include/real.hh
+++ b/flower/include/real.hh
@@ -20,9 +20,9 @@ typedef double Real;
const Real infinity_f = HUGE_VAL;
inline Real
-distance(Real x,Real y)
+distance (Real x,Real y)
{
- return abs(x-y);
+ return abs (x-y);
}
#endif
diff --git a/flower/include/scalar.hh b/flower/include/scalar.hh
index 08897ce50c..d081b56fe6 100644
--- a/flower/include/scalar.hh
+++ b/flower/include/scalar.hh
@@ -12,12 +12,12 @@
/// Perl -like scalar type.
struct Scalar : public String {
- Scalar(Real r) : String(r) {}
- Scalar(int i) : String(i) {}
- Scalar(char c) : String(c) {}
- Scalar(char const *c) : String(c) {}
- Scalar(String s ):String(s) {}
- Scalar(Rational );
+ Scalar (Real r) : String (r) {}
+ Scalar (int i) : String (i) {}
+ Scalar (char c) : String (c) {}
+ Scalar (char const *c) : String (c) {}
+ Scalar (String s):String (s) {}
+ Scalar (Rational);
operator Rational();
Scalar() {}
bool isnum();
diff --git a/flower/include/string-convert.hh b/flower/include/string-convert.hh
index f83899a2e1..13c9f41ca7 100644
--- a/flower/include/string-convert.hh
+++ b/flower/include/string-convert.hh
@@ -7,41 +7,34 @@
#ifndef STRING_CONVERT_HH
#define STRING_CONVERT_HH
-#include "string.hh"
+#include "fproto.hh"
-/*
- ///a class which only has functions.
-//#define functor class // cute. docxx fucks up
-*/
-/**
- The functor String_convert handles all conversions to/from String (some
- time, anyway).
- The class is quite empty from data view.
- */
+/** The functor String_convert handles all conversions to/from String
+ (some time, anyway). The class is quite empty from data view. */
class String_convert {
- static int hex2bin_i( String hex_str, String& bin_str_r );
- static int hex2nibble_i( Byte byte );
- static Byte nibble2hex_byte( Byte byte );
+ static int hex2bin_i (String hex_str, String& bin_str_r);
+ static int hex2nibble_i (Byte byte);
+ static Byte nibble2hex_byte (Byte byte);
public:
- static String bin2dec_str( String bin_str );
- static String bin2hex_str( String bin_str );
- static String dec2bin_str( String str );
- static int bin2_i( String str );
- static String char_str(char c, int n);
- static int dec2_i( String dec_str );
- static double dec2_f( String dec_str );
- static String double_str(double f, char const* fmt=0);
- static int hex2_i( String str );
- static unsigned hex2_u( String str );
- static String hex2bin_str( String str );
- static String int_str(int i, char const *fmt=0 );
- static String i2hex_str( int i, int length_i, char ch );
- static String u2hex_str( unsigned u, int length_i, char ch );
- static String i2dec_str( int i, int length_i, char ch );
- static String rational_str(Rational);
- static String pointer_str(void const *);
- static String i64_str(I64, char const * fmt = 0);
+ static String bin2dec_str (String bin_str);
+ static String bin2hex_str (String bin_str);
+ static String dec2bin_str (String str);
+ static int bin2_i (String str);
+ static String char_str (char c, int n);
+ static int dec2_i (String dec_str);
+ static double dec2_f (String dec_str);
+ static String double_str (double f, char const* fmt=0);
+ static int hex2_i (String str);
+ static unsigned hex2_u (String str);
+ static String hex2bin_str (String str);
+ static String int_str (int i, char const *fmt=0 );
+ static String i2hex_str (int i, int length_i, char ch);
+ static String u2hex_str (unsigned u, int length_i, char ch);
+ static String i2dec_str (int i, int length_i, char ch);
+ static String rational_str (Rational);
+ static String pointer_str (void const *);
+ static String i64_str (I64, char const * fmt = 0);
};
#endif // __STRING_CONVERT_HH //
diff --git a/flower/include/string-data.hh b/flower/include/string-data.hh
index c79a6621ba..d4440b1c26 100644
--- a/flower/include/string-data.hh
+++ b/flower/include/string-data.hh
@@ -28,7 +28,7 @@ friend class String_handle;
String_data();
/// init from src. Conservative allocation.
- String_data(String_data const &src);
+ String_data (String_data const &src);
~String_data();
@@ -36,13 +36,13 @@ friend class String_handle;
@param j, maximum stringlength_i_.
contents thrown away.
*/
- void setmax(int j);
+ void setmax (int j);
/** POST: maxlen >= j.
@param j, maximum stringlength_i_.
contents are kept if it grows.
*/
- void remax(int j);
+ void remax (int j);
/// check if writeable.
void OKW();
@@ -54,14 +54,14 @@ friend class String_handle;
void tighten();
// assignment.
- void set( Byte const* byte_C, int length_i );
+ void set (Byte const* byte_C, int length_i);
- void set( char const* ch_C );
+ void set (char const* ch_C);
/// concatenation.
- void append( Byte const* byte_C, int length_i );
+ void append (Byte const* byte_C, int length_i);
- void operator += ( char const* ch_C );
+ void operator += ( char const* ch_C);
char const* ch_C() const;
@@ -72,7 +72,7 @@ friend class String_handle;
// idem, non const
Byte* byte_l();
- void trunc(int j);
+ void trunc (int j);
/** access element. not really safe. Can alter length_i_ without
#String_data# knowing it. */
diff --git a/flower/include/string-data.icc b/flower/include/string-data.icc
index 5a3bb390ef..2a285db24f 100644
--- a/flower/include/string-data.icc
+++ b/flower/include/string-data.icc
@@ -26,9 +26,9 @@ String_data::OKW()
INLINE void
String_data::OK()
{
- assert(maxlen >= length_i_);
- assert(bool(data_byte_p_));
- assert(references >= 1);
+ assert (maxlen >= length_i_);
+ assert (bool (data_byte_p_));
+ assert (references >= 1);
}
@@ -43,23 +43,23 @@ String_data::String_data()
}
INLINE
-String_data::String_data(String_data const &src)
+String_data::String_data (String_data const &src)
{
references=0;
maxlen = length_i_ = src.length_i_;
data_byte_p_ = new Byte[maxlen+1]; // should calc GNU 8byte overhead.
- memcpy( data_byte_p_, src.data_byte_p_, length_i_ + 1 );
+ memcpy (data_byte_p_, src.data_byte_p_, length_i_ + 1);
}
INLINE
String_data::~String_data()
{
- assert(references == 0);
+ assert (references == 0);
delete[] data_byte_p_;
}
INLINE void
-String_data::setmax(int j)
+String_data::setmax (int j)
{
OKW();
if (j > maxlen) {
@@ -82,12 +82,12 @@ String_data::setmax(int j)
define change authority
*/
INLINE void
-String_data::remax(int j)
+String_data::remax (int j)
{
OKW();
if (j > maxlen) {
Byte *p = new Byte[j + 1];
- memcpy( p, data_byte_p_, ( maxlen <? length_i_ ) + 1 );
+ memcpy (p, data_byte_p_, ( maxlen <? length_i_) + 1 );
maxlen = j;
delete[] data_byte_p_;
data_byte_p_ = p;
@@ -99,51 +99,51 @@ String_data::tighten()
{ // should be dec'd const
maxlen = length_i_;
Byte *p = new Byte[maxlen + 1];
- memcpy( p, data_byte_p_, length_i_ + 1 );
+ memcpy (p, data_byte_p_, length_i_ + 1);
delete[] data_byte_p_;
data_byte_p_ = p;
}
// assignment.
INLINE void
-String_data::set( Byte const* byte_C, int length_i )
+String_data::set (Byte const* byte_C, int length_i)
{
OKW();
- assert( byte_C && byte_C != data_byte_p_);
+ assert (byte_C && byte_C != data_byte_p_);
length_i_ = length_i;
- remax( length_i_ ); // copies too
- memcpy( data_byte_p_, byte_C, length_i_ );
+ remax (length_i_); // copies too
+ memcpy (data_byte_p_, byte_C, length_i_);
data_byte_p_[ length_i_ ] = 0;
}
INLINE
void
-String_data::set( char const* ch_C )
+String_data::set (char const* ch_C)
{
- set( (Byte const*)ch_C, strlen( ch_C ) );
+ set ((Byte const*)ch_C, strlen (ch_C) );
}
/// concatenation.
INLINE void
-String_data::append( Byte const* byte_C, int length_i )
+String_data::append (Byte const* byte_C, int length_i)
{
OK();
OKW();
int old_i = length_i_;
length_i_ += length_i;
- remax( length_i_ );
- memcpy( data_byte_p_ + old_i, byte_C, length_i );
+ remax (length_i_);
+ memcpy (data_byte_p_ + old_i, byte_C, length_i);
data_byte_p_[ length_i_ ] = 0;
}
INLINE
void
-String_data::operator += ( char const* ch_C )
+String_data::operator += ( char const* ch_C)
{
- append( (Byte const*)ch_C, strlen( ch_C ) );
+ append ((Byte const*)ch_C, strlen (ch_C) );
}
@@ -175,10 +175,10 @@ String_data::byte_l()
INLINE
void
-String_data::trunc(int j)
+String_data::trunc (int j)
{
OKW();
- assert(j >= 0 && j <= length_i_);
+ assert (j >= 0 && j <= length_i_);
data_byte_p_[j] = 0;
length_i_ = j;
}
@@ -186,21 +186,21 @@ String_data::trunc(int j)
INLINE bool
String_data::is_binary_bo()const
{
-// return !memchr(data_byte_p_, length_i_, 0);
- return ( (int)strlen( (char const*)data_byte_p_ ) != length_i_ );
+// return !memchr (data_byte_p_, length_i_, 0);
+ return ( (int)strlen ((char const*)data_byte_p_) != length_i_ );
}
INLINE Byte&
String_data::operator [](int j)
{
- assert(j >= 0 && j <= length_i_);
+ assert (j >= 0 && j <= length_i_);
return data_byte_p_[j] ;
}
INLINE Byte
String_data::operator [](int j) const
{
- assert(j >= 0 && j <= length_i_);
+ assert (j >= 0 && j <= length_i_);
return data_byte_p_[j];
}
diff --git a/flower/include/string-handle.hh b/flower/include/string-handle.hh
index a18fcc28ed..c6e73ada10 100644
--- a/flower/include/string-handle.hh
+++ b/flower/include/string-handle.hh
@@ -26,7 +26,7 @@ class String_handle {
void down();
/// increase ref count
- void up(String_data *d);
+ void up (String_data *d);
/** make sure data has only one reference.
POST: data->references == 1
@@ -36,7 +36,7 @@ class String_handle {
public:
String_handle();
~String_handle();
- String_handle(String_handle const & src);
+ String_handle (String_handle const & src);
Byte const* byte_C() const;
char const* ch_C() const;
@@ -51,10 +51,10 @@ public:
don't use this for loops. Use byte_C()
*/
Byte &operator[](int j);
- void append( Byte const* byte_C, int length_i );
- void set( Byte const* byte_C, int length_i );
+ void append (Byte const* byte_C, int length_i);
+ void set (Byte const* byte_C, int length_i);
void operator = (char const *p);
- void trunc(int j);
+ void trunc (int j);
int length_i() const;
};
diff --git a/flower/include/string-handle.icc b/flower/include/string-handle.icc
index 63b2ab379d..e398e0a4ed 100644
--- a/flower/include/string-handle.icc
+++ b/flower/include/string-handle.icc
@@ -24,7 +24,7 @@ String_handle::down()
/// increase ref count
INLINE void
-String_handle::up(String_data *d)
+String_handle::up (String_data *d)
{
data=d; data->references ++;
}
@@ -33,16 +33,16 @@ INLINE void
String_handle::copy()
{
if (data->references !=1){
- String_data *newdata = new String_data(*data);
+ String_data *newdata = new String_data (*data);
down();
- up(newdata);
+ up (newdata);
}
}
INLINE
String_handle::String_handle()
{
- up(new String_data);
+ up (new String_data);
}
INLINE
@@ -52,9 +52,9 @@ String_handle::~String_handle()
}
INLINE
-String_handle::String_handle(String_handle const & src)
+String_handle::String_handle (String_handle const & src)
{
- up(src.data);
+ up (src.data);
}
INLINE Byte*
@@ -89,7 +89,7 @@ String_handle::operator =(String_handle const &src)
if (this == &src)
return;
down();
- up(src.data);
+ up (src.data);
}
INLINE void
@@ -116,30 +116,30 @@ String_handle::operator[](int j)
}
INLINE void
-String_handle::append( Byte const* byte_C, int length_i )
+String_handle::append (Byte const* byte_C, int length_i)
{
copy();
- data->append( byte_C, length_i );
+ data->append (byte_C, length_i);
}
INLINE void
-String_handle::set( Byte const* byte_C, int length_i )
+String_handle::set (Byte const* byte_C, int length_i)
{
copy();
- data->set( byte_C, length_i );
+ data->set (byte_C, length_i);
}
INLINE void
String_handle::operator = (char const *p)
{
copy();
- data->set( p );
+ data->set (p);
}
INLINE void
-String_handle::trunc(int j)
+String_handle::trunc (int j)
{
- copy(); data->trunc(j);
+ copy(); data->trunc (j);
}
INLINE int
diff --git a/flower/include/string.hh b/flower/include/string.hh
index 0e0b9fb4dd..3d8981faf0 100644
--- a/flower/include/string.hh
+++ b/flower/include/string.hh
@@ -62,19 +62,19 @@ public:
/** init to empty string. This is needed because other
constructors are provided.*/
String() { }
- String(Rational);
+ String (Rational);
/// String s = "abc";
- String( char const* source );
- String( Byte const* byte_C, int length_i );
+ String (char const* source);
+ String (Byte const* byte_C, int length_i);
/// "ccccc"
- String( char c, int n = 1 );
+ String (char c, int n = 1);
- String( int i , char const *fmt=0);
+ String (int i , char const *fmt=0);
String ( double f , char const* fmt =0);
/// 'true' or 'false'
- String(bool );
+ String (bool);
/// return a "new"-ed copy of contents
Byte* copy_byte_p() const; // return a "new"-ed copy of contents
@@ -85,24 +85,24 @@ public:
Byte* byte_l();
/// deprecated; use ch_C()
- operator char const* () const { return ch_C(); }
+ operator char const*() const { return ch_C(); }
- String &operator =( String const & source );
+ String &operator =( String const & source);
/// concatenate s
void operator += (char const* s) { strh_ += s; }
void operator += (String s);
- void append(String);
- void prepend(String);
+ void append (String);
+ void prepend (String);
- char operator []( int n ) const { return strh_[n]; }
+ char operator []( int n) const { return strh_[n]; }
/// return n leftmost chars
- String left_str( int n ) const;
+ String left_str (int n) const;
/// return n rightmost chars
- String right_str( int n ) const;
+ String right_str (int n) const;
/// return uppercase of *this
String upper_str() const;
@@ -115,28 +115,28 @@ public:
/// return a piece starting at index_i (first char = index_i 0), length n
- String mid_str(int index_i, int n ) const;
+ String mid_str (int index_i, int n) const;
/// cut out a middle piece, return remainder
- String nomid_str(int index_i, int n ) const;
+ String nomid_str (int index_i, int n) const;
/// signed comparison, analogous to memcmp;
- static int compare_i(String const & s1,const String& s2);
+ static int compare_i (String const & s1,const String& s2);
/// index of rightmost c
- int index_last_i( char c) const;
+ int index_last_i (char c) const;
/// index of rightmost element of string
- int index_last_i( char const* string ) const;
+ int index_last_i (char const* string) const;
- int index_i(char c ) const;
- int index_i(String ) const;
- int index_any_i(String ) const;
+ int index_i (char c) const;
+ int index_i (String) const;
+ int index_any_i (String) const;
void to_upper();
void to_lower();
/// provide Stream output
- void print_on(ostream& os) const;
+ void print_on (ostream& os) const;
/// the length of the string
int length_i() const;
@@ -155,21 +155,21 @@ public:
#include "compare.hh"
-instantiate_compare(String const &, String::compare_i);
+INSTANTIATE_COMPARE(String const &, String::compare_i);
// because char const* also has an operator ==, this is for safety:
inline bool operator==(String s1, char const* s2){
- return s1 == String(s2);
+ return s1 == String (s2);
}
inline bool operator==(char const* s1, String s2)
{
- return String(s1)==s2;
+ return String (s1)==s2;
}
-inline bool operator!=(String s1, char const* s2 ) {
- return s1!=String(s2);
+inline bool operator!=(String s1, char const* s2 ) {
+ return s1!=String (s2);
}
inline bool operator!=(char const* s1,String s2) {
- return String(s2) !=s1;
+ return String (s2) !=s1;
}
@@ -181,13 +181,10 @@ operator + (String s1, String s2)
}
inline ostream &
-operator << ( ostream& os, String d )
+operator << ( ostream& os, String d)
{
- d.print_on(os);
+ d.print_on (os);
return os;
}
-
-// String quoteString(String message, String quote);
-
#endif
diff --git a/flower/include/text-db.hh b/flower/include/text-db.hh
index 3535a84f8f..ab3e9c82b5 100644
--- a/flower/include/text-db.hh
+++ b/flower/include/text-db.hh
@@ -14,14 +14,14 @@ public:
Text_record() { } // needed because of other ctor
/// report an error in this line.
- message(String s) {
+ message (String s) {
cerr << '\n'<< filename << ": "<< line_no << s << "\n";
}
String operator[](int j) {
return Array<String>::operator[](j);
}
- Text_record(Array<String> s, String fn, int j) : Array<String>(s) {
+ Text_record (Array<String> s, String fn, int j) : Array<String>(s) {
filename = fn; line_no = j;
}
Array<String>::size;
@@ -38,7 +38,7 @@ public:
/// get a line with records
Text_record get_record();
- Text_db(String fn):Data_file(fn) { }
+ Text_db (String fn):Data_file (fn) { }
Data_file::error;
bool eof();
diff --git a/flower/include/text-stream.hh b/flower/include/text-stream.hh
index 437f8698c7..c921ebc2d3 100644
--- a/flower/include/text-stream.hh
+++ b/flower/include/text-stream.hh
@@ -26,17 +26,17 @@ class Text_stream
String name;
public:
- Text_stream(String fn);
+ Text_stream (String fn);
String get_name() { return name; }
bool eof() {
- return feof(f);
+ return feof (f);
}
bool eol() {
return (peek() == '\n');
}
char peek() {
char c = get();
- unget(c);
+ unget (c);
return c;
}
int line(){
@@ -47,7 +47,7 @@ class Text_stream
char c;
if (pushback.empty())
- c = getc(f);
+ c = getc (f);
else
c = pushback.pop();
@@ -55,20 +55,20 @@ class Text_stream
line_no++;
return c;
}
- void unget(char c) {
+ void unget (char c) {
if (c =='\n')
line_no--;
- pushback.push(c);
+ pushback.push (c);
}
- ~Text_stream (){
+ ~Text_stream(){
if (!eof())
cerr <<__FUNCTION__<< ": closing unended file";
- fclose(f);
+ fclose (f);
}
/// GNU format message.
- void message(String s);
+ void message (String s);
};
#endif
diff --git a/flower/include/unionfind.hh b/flower/include/unionfind.hh
index fbaa51e731..94a3e9f667 100644
--- a/flower/include/unionfind.hh
+++ b/flower/include/unionfind.hh
@@ -7,16 +7,16 @@
Union find, a standard algorithm:
Union_find represents an undirected graph of N points. You can
- connect two points using #connect()#. #find(i)# finds a uniquely
+ connect two points using #connect()#. #find (i)# finds a uniquely
determined representant of the equivalence class of points
connected to #i#.
*/
struct Union_find {
- void connect(int i, int j);
- int find(int i);
- bool equiv(int i, int j) { return find(i) == find(j); }
- Union_find(int sz);
+ void connect (int i, int j);
+ int find (int i);
+ bool equiv (int i, int j) { return find (i) == find (j); }
+ Union_find (int sz);
private:
Array<int> classes;
diff --git a/flower/include/varray.hh b/flower/include/varray.hh
index 6f0e18aedc..60b72d299a 100644
--- a/flower/include/varray.hh
+++ b/flower/include/varray.hh
@@ -10,7 +10,7 @@
/// copy a bare (C-)array from #src# to #dest# sized #count#
template<class T>
-inline void arrcpy(T*dest, T*src, int count) {
+inline void arrcpy (T*dest, T*src, int count) {
for (int i=0; i < count ; i++)
*dest++ = *src++;
}
@@ -42,10 +42,10 @@ protected:
T *thearray;
/// stretch or shrink array.
- void remax(int newmax) {
+ void remax (int newmax) {
T* newarr = new T[newmax];
size_ = (newmax < size_) ? newmax : size_;
- arrcpy(newarr, thearray, size_);
+ arrcpy (newarr, thearray, size_);
delete[] thearray;
thearray = newarr;
@@ -56,8 +56,8 @@ protected:
public:
/// check invariants
void OK() const {
- assert(max >= size_ && size_ >=0);
- if (max) assert(thearray);
+ assert (max >= size_ && size_ >=0);
+ if (max) assert (thearray);
}
/** report the size_.
@see {setsize_}
@@ -73,8 +73,8 @@ public:
/** set the size_ to #s#.
POST: size() == s.
Warning: contents are unspecified */
- void set_size(int s) {
- if (s >= max) remax(s);
+ void set_size (int s) {
+ if (s >= max) remax (s);
size_ = s;
}
@@ -83,44 +83,44 @@ public:
/// return a "new"ed copy of array
T* copy_array() const {
T* Tarray = new T[size_];
- arrcpy(Tarray, thearray, size_);
+ arrcpy (Tarray, thearray, size_);
return Tarray;
}
// depracated
- operator T* () const {
+ operator T*() const {
return copy_array();
}
void operator=(Array const & src) {
set_size (src.size_);
- arrcpy(thearray,src.thearray, size_);
+ arrcpy (thearray,src.thearray, size_);
}
- Array(Array const & src) {
+ Array (Array const & src) {
thearray = src.copy_array();
max = size_ = src.size_;
}
/// tighten array size_.
- void precompute () { remax(size_); }
+ void precompute() { remax (size_); }
/// access element
T &operator[] (int i) {
- return elem(i);
+ return elem (i);
}
/// access element
T const & operator[] (int i) const {
- return elem(i);
+ return elem (i);
}
/// access element
- T &elem( int i) const {
- assert(i >=0&&i<size_);
+ T &elem (int i) const {
+ assert (i >=0&&i<size_);
return ((T*)thearray)[i];
}
/// add to the end of array
- void push(T x) {
+ void push (T x) {
if (size_ == max)
- remax(2*max + 1);
+ remax (2*max + 1);
// T::operator=(T &) is called here. Safe to use with automatic
// vars
@@ -128,13 +128,13 @@ public:
}
/// remove and return last entry
T pop() {
- assert(!empty());
- T l = top(0);
- set_size(size()-1);
+ assert (!empty());
+ T l = top (0);
+ set_size (size()-1);
return l;
}
/// access last entry
- T& top(int j=0) {
+ T& top (int j=0) {
return (*this)[size_-j-1];
}
/// return last entry
@@ -144,14 +144,14 @@ public:
void swap (int i,int j) {
- T t((*this)[i]);
+ T t ((*this)[i]);
(*this)[i]=(*this)[j];
(*this)[j]=t;
}
bool empty() const { return !size_; }
- void insert(T k, int j) {
- assert(j >=0 && j<= size_);
- set_size(size_+1);
+ void insert (T k, int j) {
+ assert (j >=0 && j<= size_);
+ set_size (size_+1);
for (int i=size_-1; i > j; i--)
thearray[i] = thearray[i-1];
thearray[j] = k;
@@ -159,56 +159,56 @@ public:
/**
remove i-th element, and return it.
*/
- T get(int i) {
- T t = elem(i);
+ T get (int i) {
+ T t = elem (i);
del (i);
return t;
}
- void unordered_del(int i)
+ void unordered_del (int i)
{
- elem(i) = top();
- set_size(size() -1);
+ elem (i) = top();
+ set_size (size() -1);
}
- void del(int i) {
- assert(i >=0&& i < size_);
- arrcpy(thearray+i, thearray+i+1, size_-i-1);
+ void del (int i) {
+ assert (i >=0&& i < size_);
+ arrcpy (thearray+i, thearray+i+1, size_-i-1);
size_--;
}
// quicksort.
void sort (int (*compare)( T const&,T const&),
- int lower = -1, int upper = -1 ) {
+ int lower = -1, int upper = -1) {
if (lower < 0) {
lower = 0 ;
upper = size()-1;
}
if (lower >= upper)
return;
- swap(lower, (lower+upper)/2);
+ swap (lower, (lower+upper)/2);
int last = lower;
for (int i= lower +1; i <= upper; i++)
- if (compare(thearray[i], thearray[lower]) < 0 )
- swap( ++last,i);
- swap(lower, last);
- sort(compare, lower, last-1);
- sort(compare, last+1, upper);
+ if (compare (thearray[i], thearray[lower]) < 0)
+ swap (++last,i);
+ swap (lower, last);
+ sort (compare, lower, last-1);
+ sort (compare, last+1, upper);
}
- void concat(Array<T> const &src) {
+ void concat (Array<T> const &src) {
int s = size_;
- set_size(size_ + src.size_);
- arrcpy(thearray+s,src.thearray, src.size_);
+ set_size (size_ + src.size_);
+ arrcpy (thearray+s,src.thearray, src.size_);
}
- Array<T> slice(int lower, int upper) {
- assert(lower >= 0 && lower <=upper&& upper <= size_);
+ Array<T> slice (int lower, int upper) {
+ assert (lower >= 0 && lower <=upper&& upper <= size_);
Array<T> r;
int s =upper-lower;
- r.set_size(s);
- arrcpy(r.thearray, thearray + lower, s);
+ r.set_size (s);
+ arrcpy (r.thearray, thearray + lower, s);
return r;
}
void reverse() {
int h = size_/2;
for (int i =0,j = size_-1; i < h; i++,j--)
- swap(i,j);
+ swap (i,j);
}
};
diff --git a/flower/include/vector.hh b/flower/include/vector.hh
index 7f75735344..2d2772336b 100644
--- a/flower/include/vector.hh
+++ b/flower/include/vector.hh
@@ -15,31 +15,31 @@ class Vector {
Array<Real> dat;
public:
void OK() const { dat.OK();}
- int dim() const { return dat.size(); }
+ int dim() const { return dat.size (); }
Vector() { }
- Vector(Array<Real> d );
- Vector(Vector const &n);
- Vector(int n) {
- dat.set_size(n);
- fill(0);
+ Vector (Array<Real> d);
+ Vector (Vector const &n);
+ Vector (int n) {
+ dat.set_size (n);
+ fill (0);
}
- void set_dim(int i)
+ void set_dim (int i)
{
- dat.set_size(i);
+ dat.set_size (i);
}
- void insert(Real v, int i) {
- dat.insert(v,i);
+ void insert (Real v, int i) {
+ dat.insert (v,i);
}
- void del(int i) { dat.del(i); }
+ void del (int i) { dat.del (i); }
operator String() const;
- void fill(Real r) {
+ void fill (Real r) {
for (int i=0; i < dim(); i++)
dat[i] =r;
}
void operator +=(Vector v) {
- assert(v.dim() == dim());
+ assert (v.dim() == dim ());
for (int i=0; i < dim(); i++)
dat[i] += v.dat[i];
}
@@ -54,32 +54,32 @@ public:
}
void operator -=(Vector v) {
- assert(v.dim() == dim());
+ assert (v.dim() == dim ());
for (int i=0; i < dim(); i++)
- dat[i] -= v(i);
+ dat[i] -= v (i);
}
Real &operator()(int i) { return dat[i]; }
Real operator()(int i) const { return dat[i]; }
- Real elem(int i) { return dat[i]; }
+ Real elem (int i) { return dat[i]; }
Real operator *(Vector v) const {
Real ip=0;
- assert(v.dim() == dim());
+ assert (v.dim() == dim ());
for (int i=0; i < dim(); i++)
- ip += dat[i] *v(i);
+ ip += dat[i] *v (i);
return ip;
}
Vector operator-() const;
Real norm() {
- return sqrt(norm_sq() );
+ return sqrt (norm_sq());
}
Real norm_sq() {
return ((*this) * (*this));
}
- operator Array<Real> () { return dat; }
+ operator Array<Real>() { return dat; }
void print() const;
/// set to j-th element of unit-base
- void set_unit(int j) ;
+ void set_unit (int j) ;
};
inline Vector
diff --git a/flower/include/virtual-methods.hh b/flower/include/virtual-methods.hh
index ceb12694e3..e56496605d 100644
--- a/flower/include/virtual-methods.hh
+++ b/flower/include/virtual-methods.hh
@@ -12,13 +12,13 @@
/** a macro to declare the classes name as a static and virtual function.
The static_name() can *not* be inlined (this might have the effect that
- s->name() != S::static_name(). Overlapping strings need not be merged in C++
+ s->name() != S::static_name (). Overlapping strings need not be merged in C++
*/
#define DECLARE_MY_RUNTIME_TYPEINFO \
static char const *static_name();\
-static bool static_is_type_b(const char*s);\
-virtual bool is_type_b(const char *s)const { return static_is_type_b(s); } \
-virtual char const *name() const{ return static_name(); } \
+static bool static_is_type_b (const char*s);\
+virtual bool is_type_b (const char *s)const { return static_is_type_b (s); } \
+virtual char const *name() const{ return static_name (); } \
int a_stupid_nonexistent_function_to_allow_the_semicolon_come_out()
#define IMPLEMENT_STATIC_NAME(c)\
@@ -38,22 +38,22 @@ int a_stupid_nonexistent_function_to_allow_the_semicolon_come_out()
#define IMPLEMENT_IS_TYPE_B(D) \
IMPLEMENT_STATIC_NAME(D)\
- bool D::static_is_type_b(const char *s) \
+ bool D::static_is_type_b (const char *s) \
{ \
return s == static_name(); \
}
#define IMPLEMENT_IS_TYPE_B1(D,B) \
IMPLEMENT_STATIC_NAME(D)\
- bool D::static_is_type_b(const char *s) \
+ bool D::static_is_type_b (const char *s) \
{ \
- return s == static_name() || B::static_is_type_b(s); \
+ return s == static_name() || B::static_is_type_b (s); \
}
#define IMPLEMENT_IS_TYPE_B2(D, BA, BB) \
IMPLEMENT_STATIC_NAME(D)\
- bool D::static_is_type_b(const char *s) \
+ bool D::static_is_type_b (const char *s) \
{ \
- return s == static_name() || BA::static_is_type_b(s) || BB::static_is_type_b(s); \
+ return s == static_name() || BA::static_is_type_b (s) || BB::static_is_type_b (s); \
}
#endif
diff --git a/flower/interval.cc b/flower/interval.cc
index 12152d6227..a50b10a464 100644
--- a/flower/interval.cc
+++ b/flower/interval.cc
@@ -10,7 +10,7 @@
#include "real.hh"
#include "interval.tcc"
-Interval__instantiate(Real);
+template INTERVAL__INSTANTIATE(Real);
Real
Interval_t<Real>::infinity()
diff --git a/flower/lgetopt.cc b/flower/lgetopt.cc
index afffc2f4b2..7ab4eb122b 100644
--- a/flower/lgetopt.cc
+++ b/flower/lgetopt.cc
@@ -13,8 +13,8 @@ Getopt_long::argument_to_i()
{
long l;
if (!optional_argument_ch_C_
- || sscanf(optional_argument_ch_C_, "%ld", &l) != 1)
- report(E_ILLEGALARG);
+ || sscanf (optional_argument_ch_C_, "%ld", &l) != 1)
+ report (E_ILLEGALARG);
return l;
}
@@ -23,23 +23,23 @@ const Long_option_init *
Getopt_long::parselong()
{
char const *optnm = arg_value_ch_a_a_[array_index_i_] + 2 ;
- assert(*optnm);
+ assert (*optnm);
- char const *endopt = strchr(optnm, '=');
- int searchlen = (endopt) ? endopt - optnm : strlen(optnm);
+ char const *endopt = strchr (optnm, '=');
+ int searchlen = (endopt) ? endopt - optnm : strlen (optnm);
found_option_l_=0;
for (int i=0; i< table_len_i_; i++) {
char const *ln = option_a_[i].longname;
- if (ln && !strncmp(ln, optnm, searchlen)) {
+ if (ln && !strncmp (ln, optnm, searchlen)) {
found_option_l_ = option_a_+i;
break;
}
}
if (!found_option_l_) {
- report(E_UNKNOWNOPTION);
+ report (E_UNKNOWNOPTION);
return 0;
}
array_index_i_++;
@@ -54,12 +54,12 @@ Getopt_long::parselong()
array_index_i_++;
}
if (!optional_argument_ch_C_)
- report(E_ARGEXPECT);
+ report (E_ARGEXPECT);
} else {
optional_argument_ch_C_ = 0;
if (endopt)
- report(E_NOARGEXPECT);
+ report (E_NOARGEXPECT);
}
return found_option_l_;
@@ -67,7 +67,7 @@ Getopt_long::parselong()
void
-Long_option_init::printon(ostream &errorout)const
+Long_option_init::printon (ostream &errorout)const
{
if (shortname)
errorout <<"-" << shortname;
@@ -79,7 +79,7 @@ Long_option_init::printon(ostream &errorout)const
// report an error, GNU style.
void
-Getopt_long::report(Errorcod c)
+Getopt_long::report (Errorcod c)
{
error_ = c;
if (!error_ostream_l_)
@@ -89,7 +89,7 @@ Getopt_long::report(Errorcod c)
switch (c) {
case E_ARGEXPECT:
*error_ostream_l_<< "option ";
- found_option_l_->printon(*error_ostream_l_);
+ found_option_l_->printon (*error_ostream_l_);
*error_ostream_l_ << "requires an argument"<<endl;
break;
case E_NOARGEXPECT:
@@ -107,12 +107,12 @@ Getopt_long::report(Errorcod c)
break;
case E_ILLEGALARG:
*error_ostream_l_ << "illegal argument `" << optional_argument_ch_C_ << "\'to option ";
- found_option_l_->printon(*error_ostream_l_);
+ found_option_l_->printon (*error_ostream_l_);
*error_ostream_l_ << '\n';
default:
- assert(false);
+ assert (false);
}
- exit(2);
+ exit (2);
}
const Long_option_init *
@@ -120,7 +120,7 @@ Getopt_long::parseshort()
{
char c=arg_value_ch_a_a_[array_index_i_][argument_index_i_];
found_option_l_=0;
- assert(c);
+ assert (c);
for (int i=0; i < table_len_i_; i++)
if (option_a_[i].shortname == c) {
@@ -129,7 +129,7 @@ Getopt_long::parseshort()
}
if (!found_option_l_){
- report(E_UNKNOWNOPTION);
+ report (E_UNKNOWNOPTION);
return 0;
}
@@ -148,7 +148,7 @@ Getopt_long::parseshort()
array_index_i_ ++;
}
if (!optional_argument_ch_C_) {
- report(E_ARGEXPECT);
+ report (E_ARGEXPECT);
}
return found_option_l_;
@@ -171,7 +171,7 @@ Getopt_long::operator()()
return 0;
if (argument_C[1] == '-') {// what to do with "command -- bla"
- if ( argument_C[2] )
+ if ( argument_C[2])
return parselong();
else
return 0;
@@ -185,7 +185,7 @@ Getopt_long::operator()()
}
}
-Getopt_long::Getopt_long(int c, char **v, Long_option_init *lo)
+Getopt_long::Getopt_long (int c, char **v, Long_option_init *lo)
{
option_a_ = lo;
error_ostream_l_ = &cerr;
diff --git a/flower/libc-extension.cc b/flower/libc-extension.cc
index 6e9a9b77a6..c786a51efe 100644
--- a/flower/libc-extension.cc
+++ b/flower/libc-extension.cc
@@ -13,21 +13,21 @@
char*
-strnlwr( char* start_l ,int n)
+strnlwr (char* start_l ,int n)
{
char * p = start_l + n;
while ( --p >= start_l) {
- *p = tolower( *p ); /* a macro on some compilers */
+ *p = tolower (*p); /* a macro on some compilers */
}
return start_l;
}
char*
-strnupr( char* start_l, int n)
+strnupr (char* start_l, int n)
{
char * p = start_l + n;
while ( --p >= start_l) {
- *p = toupper( *p ); /* a macro on some compilers */
+ *p = toupper (*p); /* a macro on some compilers */
}
return start_l;
}
@@ -39,7 +39,7 @@ strnupr( char* start_l, int n)
*/
char *
-memmem(Byte const * haystack, int haystack_len,
+memmem (Byte const * haystack, int haystack_len,
Byte const *needle,int needle_len)
{
Byte const * end_haystack = haystack + haystack_len - needle_len;
@@ -65,7 +65,7 @@ memmem(Byte const * haystack, int haystack_len,
#endif
Byte *
-memrchr(Byte const * p, int n, char c)
+memrchr (Byte const * p, int n, char c)
{
const Byte * q = p+n;
while (q > p) {
@@ -78,7 +78,7 @@ memrchr(Byte const * p, int n, char c)
template<class T>
inline void
-my_swap(T &t1, T &t2, T &tmp)
+my_swap (T &t1, T &t2, T &tmp)
{
tmp = t1;
t1 = t2;
@@ -86,27 +86,27 @@ my_swap(T &t1, T &t2, T &tmp)
}
Byte*
-strrev( Byte* byte_l, int length_i )
+strrev (Byte* byte_l, int length_i)
{
Byte tmp_byte;
Byte* left_l = byte_l;
Byte* right_l = byte_l + length_i;
- while ( right_l > left_l ) {
- my_swap(*right_l-- , *left_l++ , tmp_byte);
+ while ( right_l > left_l) {
+ my_swap (*right_l-- , *left_l++ , tmp_byte);
}
return byte_l;
}
#if ! HAVE_SNPRINTF
int snprintf ( char *str, size_t,
- char const *format, ... )
+ char const *format, ...)
{
va_list ap;
- va_start(ap, format);
- int i = vsprintf(str, format, ap);
- va_end(ap);
+ va_start (ap, format);
+ int i = vsprintf (str, format, ap);
+ va_end (ap);
return i;
}
#endif
diff --git a/flower/matrix-debug.cc b/flower/matrix-debug.cc
index 099a05beb9..7126c1378e 100644
--- a/flower/matrix-debug.cc
+++ b/flower/matrix-debug.cc
@@ -17,10 +17,10 @@ Matrix::operator String() const
String s;
#ifndef NPRINT
Matrix_storage const * stor_c_l = dat;
- s=String("matrix { (") + dat->name() + ")\n";
+ s=String ("matrix { (") + dat->name() + ")\n";
for (int i=0; i< rows(); i++){
for (int j = 0; j < cols(); j++) {
- s+= String(stor_c_l->elem(i,j), "%6f ");
+ s+= String (stor_c_l->elem (i,j), "%6f ");
}
s+="\n";
}
@@ -44,7 +44,7 @@ Vector::operator String() const
#ifndef NPRINT
s="vector [";
for (int i=0; i < dim(); i++) {
- s += String(dat[i], "%6f") + String(' ');
+ s += String (dat[i], "%6f") + String (' ');
}
s+="]";
#endif
diff --git a/flower/matrix-storage.cc b/flower/matrix-storage.cc
index 54deb7d673..5ebc0e9072 100644
--- a/flower/matrix-storage.cc
+++ b/flower/matrix-storage.cc
@@ -10,32 +10,32 @@
#include "diagonal-storage.hh"
void
-Matrix_storage::set_addition_result(Matrix_storage *&dat, Matrix_storage *right)
+Matrix_storage::set_addition_result (Matrix_storage *&dat, Matrix_storage *right)
{
- if (dat && dat->name() == Diagonal_storage::static_name()
- && right->name() == Diagonal_storage::static_name()) {
+ if (dat && dat->name() == Diagonal_storage::static_name ()
+ && right->name() == Diagonal_storage::static_name ()) {
Diagonal_storage *L = (Diagonal_storage*)dat;
Diagonal_storage* R = (Diagonal_storage*) right;
- if ( R->band_size_i() > L->band_size_i()) {
- L->set_band_size(R->band_size_i());
+ if ( R->band_size_i() > L->band_size_i ()) {
+ L->set_band_size (R->band_size_i());
}
return ;
}
- if (!dat || !dat->is_type_b(Full_storage::static_name() )) {
+ if (!dat || !dat->is_type_b (Full_storage::static_name())) {
- Matrix_storage *new_stor = (dat)? new Full_storage(dat) :
- new Full_storage( right->rows(), right->cols());
+ Matrix_storage *new_stor = (dat)? new Full_storage (dat) :
+ new Full_storage (right->rows(), right->cols ());
delete dat;
dat = new_stor;
}
}
Matrix_storage*
-Matrix_storage::get_product_result(Matrix_storage*left, Matrix_storage*right)
+Matrix_storage::get_product_result (Matrix_storage*left, Matrix_storage*right)
{
Matrix_storage* dest =0;
- set_product_result(dest, left,right);
+ set_product_result (dest, left,right);
return dest;
}
@@ -44,96 +44,96 @@ Matrix_storage::get_product_result(Matrix_storage*left, Matrix_storage*right)
hairy
*/
void
-Matrix_storage::set_product_result(Matrix_storage*&dest,
+Matrix_storage::set_product_result (Matrix_storage*&dest,
Matrix_storage*left, Matrix_storage*right)
{
- if ( left->name() == Diagonal_storage::static_name()
- && right->name() == Diagonal_storage::static_name()) {
+ if ( left->name() == Diagonal_storage::static_name ()
+ && right->name() == Diagonal_storage::static_name ()) {
Diagonal_storage *L = (Diagonal_storage*)left;
Diagonal_storage* R = (Diagonal_storage*) right;
- if (L->band_size_i() + R->band_size_i() < L->dim()/2 ) {
- if (dest ->name() != Diagonal_storage::static_name()){
+ if (L->band_size_i() + R->band_size_i () < L->dim ()/2) {
+ if (dest ->name() != Diagonal_storage::static_name ()){
delete dest;
dest = new Diagonal_storage;
}
- dest->set_size(L->dim());
+ dest->set_size (L->dim());
return;
}
}
- if ( dest && dest->name() == Full_storage::static_name()) {
- dest->set_size(left->rows(), right->cols());
+ if ( dest && dest->name() == Full_storage::static_name ()) {
+ dest->set_size (left->rows(), right->cols ());
} else {
delete dest;
- dest = new Full_storage( left->rows(), right->cols());
+ dest = new Full_storage (left->rows(), right->cols ());
}
}
IMPLEMENT_IS_TYPE_B(Matrix_storage);
Matrix_storage *
-Matrix_storage::get_full(int n, int m)
+Matrix_storage::get_full (int n, int m)
{
- return new Full_storage(n,m);
+ return new Full_storage (n,m);
}
bool
-Matrix_storage::try_right_multiply(Matrix_storage *,
+Matrix_storage::try_right_multiply (Matrix_storage *,
const Matrix_storage *)const
{
return false;
}
Array<Real>
-Matrix_storage::row(int n) const
+Matrix_storage::row (int n) const
{
Array<Real> r;
for (int j = 0; j < cols(); j++)
- r.push(elem(n,j));
+ r.push (elem (n,j));
return r;
}
Array<Real>
-Matrix_storage::column(int n) const
+Matrix_storage::column (int n) const
{
Array<Real> r;
for (int i = 0; i < rows(); i++)
- r.push(elem(i,n));
+ r.push (elem (i,n));
return r;
}
void
-Matrix_storage::set_size(int rows, int cols)
+Matrix_storage::set_size (int rows, int cols)
{
- resize(rows,cols);
+ resize (rows,cols);
}
void
-Matrix_storage::set_size(int rows)
+Matrix_storage::set_size (int rows)
{
- resize(rows);
+ resize (rows);
}
void
-Matrix_storage::set_band(Matrix_storage *&mat, int b)
+Matrix_storage::set_band (Matrix_storage *&mat, int b)
{
- Matrix_storage* ns = new Diagonal_storage(mat, b);
+ Matrix_storage* ns = new Diagonal_storage (mat, b);
delete mat;
mat=ns;
}
void
-Matrix_storage::set_full(Matrix_storage *&mat)
+Matrix_storage::set_full (Matrix_storage *&mat)
{
- Matrix_storage* ns = new Full_storage(mat);
+ Matrix_storage* ns = new Full_storage (mat);
delete mat;
mat=ns;
}
diff --git a/flower/matrix.cc b/flower/matrix.cc
index 7e1854827b..fdb6085f7c 100644
--- a/flower/matrix.cc
+++ b/flower/matrix.cc
@@ -13,14 +13,14 @@
bool
Matrix::band_b()const
{
- return dat->is_type_b( Diagonal_storage::static_name());
+ return dat->is_type_b (Diagonal_storage::static_name());
}
void
Matrix::set_full() const
{
- if ( dat->name() != Full_storage::static_name()) {
- Matrix_storage::set_full( ((Matrix*)this)->dat );
+ if ( dat->name() != Full_storage::static_name ()) {
+ Matrix_storage::set_full (((Matrix*)this)->dat);
}
}
@@ -35,65 +35,65 @@ Matrix::try_set_band()const
return;
// it only looks constant
Matrix*self = (Matrix*)this;
- Matrix_storage::set_band(self->dat,b);
+ Matrix_storage::set_band (self->dat,b);
}
Real
Matrix::norm() const
{
Real r =0.0;
- for (int i=0, j=0; dat->mult_ok(i,j); dat->mult_next(i,j))
- r += sqr(dat->elem(i,j));
- return sqrt(r);
+ for (int i=0, j=0; dat->mult_ok (i,j); dat->mult_next (i,j))
+ r += sqr (dat->elem (i,j));
+ return sqrt (r);
}
void
-Matrix::fill(Real r)
+Matrix::fill (Real r)
{
- for (int i=0, j=0; dat->mult_ok(i,j); dat->mult_next(i,j))
- dat->elem(i,j)=r;
+ for (int i=0, j=0; dat->mult_ok (i,j); dat->mult_next (i,j))
+ dat->elem (i,j)=r;
}
void
-Matrix::set_diag(Real r)
+Matrix::set_diag (Real r)
{
- for (int i=0, j=0; dat->mult_ok(i,j); dat->mult_next(i,j))
- dat->elem(i,j)=(i==j) ? r: 0.0;
+ for (int i=0, j=0; dat->mult_ok (i,j); dat->mult_next (i,j))
+ dat->elem (i,j)=(i==j) ? r: 0.0;
}
void
-Matrix::set_diag(Vector d)
+Matrix::set_diag (Vector d)
{
- for (int i=0, j=0; dat->mult_ok(i,j); dat->mult_next(i,j))
- dat->elem(i,j)=(i==j) ? d(i): 0.0;
+ for (int i=0, j=0; dat->mult_ok (i,j); dat->mult_next (i,j))
+ dat->elem (i,j)=(i==j) ? d (i): 0.0;
}
void
Matrix::operator+=(Matrix const &m)
{
- Matrix_storage::set_addition_result(dat, m.dat);
- assert(m.cols() == cols());
- assert(m.rows() == rows());
- for (int i=0, j=0; dat->mult_ok(i,j); dat->mult_next(i,j))
- dat->elem(i,j) += m(i,j);
+ Matrix_storage::set_addition_result (dat, m.dat);
+ assert (m.cols() == cols ());
+ assert (m.rows() == rows ());
+ for (int i=0, j=0; dat->mult_ok (i,j); dat->mult_next (i,j))
+ dat->elem (i,j) += m (i,j);
}
void
Matrix::operator-=(Matrix const &m)
{
- Matrix_storage::set_addition_result(dat, m.dat);
- assert(m.cols() == cols());
- assert(m.rows() == rows());
- for (int i=0, j=0; dat->mult_ok(i,j); dat->mult_next(i,j))
- dat->elem(i,j) -= m(i,j);
+ Matrix_storage::set_addition_result (dat, m.dat);
+ assert (m.cols() == cols ());
+ assert (m.rows() == rows ());
+ for (int i=0, j=0; dat->mult_ok (i,j); dat->mult_next (i,j))
+ dat->elem (i,j) -= m (i,j);
}
void
Matrix::operator*=(Real a)
{
- for (int i=0, j=0; dat->mult_ok(i,j); dat->mult_next(i,j))
- dat->elem(i,j) *= a;
+ for (int i=0, j=0; dat->mult_ok (i,j); dat->mult_next (i,j))
+ dat->elem (i,j) *= a;
}
void
@@ -108,17 +108,17 @@ Matrix::operator=(Matrix const &m)
int
Matrix::band_i()const
{
- if ( band_b() ) {
+ if ( band_b()) {
Diagonal_storage const * diag = (Diagonal_storage*) dat;
return diag->band_size_i();
}
int starty = dim();
- while (starty >= 0 ) {
- for ( int i = starty, j = 0; i < dim(); i++, j++ )
- if (dat->elem( i,j ))
+ while (starty >= 0) {
+ for ( int i = starty, j = 0; i < dim(); i++, j++)
+ if (dat->elem (i,j))
goto gotcha;
for ( int i=0, j = starty; j < dim(); i++,j++)
- if (dat->elem(i,j))
+ if (dat->elem (i,j))
goto gotcha;
starty --;
}
@@ -126,7 +126,7 @@ gotcha:
return starty;
}
-Matrix::Matrix(Matrix const &m)
+Matrix::Matrix (Matrix const &m)
{
m.OK();
@@ -134,78 +134,78 @@ Matrix::Matrix(Matrix const &m)
}
-Matrix::Matrix(int n, int m)
+Matrix::Matrix (int n, int m)
{
- dat = Matrix_storage::get_full(n,m);
- fill(0);
+ dat = Matrix_storage::get_full (n,m);
+ fill (0);
}
-Matrix::Matrix(Matrix_storage*stor_p)
+Matrix::Matrix (Matrix_storage*stor_p)
{
dat = stor_p;
}
-Matrix::Matrix(int n)
+Matrix::Matrix (int n)
{
- dat = Matrix_storage::get_full(n,n);
- fill(0);
+ dat = Matrix_storage::get_full (n,n);
+ fill (0);
}
-Matrix::Matrix(Vector v, Vector w)
+Matrix::Matrix (Vector v, Vector w)
{
- dat = Matrix_storage::get_full(v.dim(), w.dim());
- for (int i=0, j=0; dat->mult_ok(i,j); dat->mult_next(i,j))
- dat->elem(i,j)=v(i)*w(j);
+ dat = Matrix_storage::get_full (v.dim(), w.dim ());
+ for (int i=0, j=0; dat->mult_ok (i,j); dat->mult_next (i,j))
+ dat->elem (i,j)=v (i)*w (j);
}
Vector
-Matrix::row(int k) const
+Matrix::row (int k) const
{
int n=cols();
- Vector v(n);
- for(int i=0; i < n; i++)
- v(i)=dat->elem(k,i);
+ Vector v (n);
+ for (int i=0; i < n; i++)
+ v (i)=dat->elem (k,i);
return v;
}
Vector
-Matrix::col(int k) const
+Matrix::col (int k) const
{
int n=rows();
- Vector v(n);
- for(int i=0; i < n; i++)
- v(i)=dat->elem(i,k);
+ Vector v (n);
+ for (int i=0; i < n; i++)
+ v (i)=dat->elem (i,k);
return v;
}
Vector
-Matrix::left_multiply(Vector const & v) const
+Matrix::left_multiply (Vector const & v) const
{
- Vector dest(v.dim());
- assert(dat->cols()==v.dim());
- for (int i=0, j=0; dat->mult_ok(i,j); dat->mult_next(i,j))
- dest(i)+= dat->elem(j,i)*v(j);
+ Vector dest (v.dim());
+ assert (dat->cols()==v.dim ());
+ for (int i=0, j=0; dat->mult_ok (i,j); dat->mult_next (i,j))
+ dest (i)+= dat->elem (j,i)*v (j);
return dest;
}
Vector
Matrix::operator *(Vector const & v) const
{
- Vector dest(rows());
- assert(dat->cols()==v.dim());
- for (int i=0, j=0; dat->mult_ok(i,j); dat->mult_next(i,j))
- dest(i)+= dat->elem(i,j)*v(j);
+ Vector dest (rows());
+ assert (dat->cols()==v.dim ());
+ for (int i=0, j=0; dat->mult_ok (i,j); dat->mult_next (i,j))
+ dest (i)+= dat->elem (i,j)*v (j);
return dest;
}
Matrix
operator /(Matrix const& m1,Real a)
{
- Matrix m(m1);
+ Matrix m (m1);
m /= a;
return m;
}
@@ -217,12 +217,12 @@ void
Matrix::transpose() // delegate to storage?
{
#if 1
- for (int i=0, j=0; dat->mult_ok(i,j); dat->mult_next(i,j)) {
+ for (int i=0, j=0; dat->mult_ok (i,j); dat->mult_next (i,j)) {
if (i >= j)
continue;
- Real r=dat->elem(i,j);
- dat->elem(i,j) = dat->elem(j,i);
- dat->elem(j,i)=r;
+ Real r=dat->elem (i,j);
+ dat->elem (i,j) = dat->elem (j,i);
+ dat->elem (j,i)=r;
}
#endif
}
@@ -231,7 +231,7 @@ Matrix
Matrix::operator-() const
{
OK();
- Matrix m(*this);
+ Matrix m (*this);
m*=-1.0;
return m;
}
@@ -239,7 +239,7 @@ Matrix::operator-() const
Matrix
Matrix::transposed() const
{
- Matrix m(*this);
+ Matrix m (*this);
m.transpose();
return m;
}
@@ -247,62 +247,62 @@ Matrix::transposed() const
Matrix
operator *(Matrix const &m1, Matrix const &m2)
{
- Matrix result(Matrix_storage::get_product_result(m1.dat, m2.dat));
+ Matrix result (Matrix_storage::get_product_result (m1.dat, m2.dat));
- result.set_product(m1,m2);
+ result.set_product (m1,m2);
return result;
}
void
-Matrix::set_product(Matrix const &m1, Matrix const &m2)
+Matrix::set_product (Matrix const &m1, Matrix const &m2)
{
- assert(m1.cols()==m2.rows());
- assert(cols()==m2.cols() && rows()==m1.rows());
+ assert (m1.cols()==m2.rows ());
+ assert (cols()==m2.cols () && rows ()==m1.rows ());
- if (m1.dat->try_right_multiply(dat, m2.dat))
+ if (m1.dat->try_right_multiply (dat, m2.dat))
return;
- for (int i=0, j=0; dat->mult_ok(i,j);
- dat->mult_next(i,j)) {
+ for (int i=0, j=0; dat->mult_ok (i,j);
+ dat->mult_next (i,j)) {
Real r=0.0;
for (int k = 0; k < m1.cols(); k++)
r += m1(i,k)*m2(k,j);
- dat->elem(i,j)=r;
+ dat->elem (i,j)=r;
}
}
void
-Matrix::insert_row(Vector v, int k)
+Matrix::insert_row (Vector v, int k)
{
int c = cols();
- assert(v.dim()==cols());
- dat->insert_row(k);
+ assert (v.dim()==cols ());
+ dat->insert_row (k);
for (int j=0; j < c; j++)
- dat->elem(k,j)=v(j);
+ dat->elem (k,j)=v (j);
}
void
-Matrix::swap_columns(int c1, int c2)
+Matrix::swap_columns (int c1, int c2)
{
- assert(c1>=0&& c1 < cols()&&c2 < cols() && c2 >=0);
+ assert (c1>=0&& c1 < cols()&&c2 < cols () && c2 >=0);
int r = rows();
for (int i=0; i< r; i++) {
- Real r=dat->elem(i,c1);
- dat->elem(i,c1) = dat->elem(i,c2);
- dat->elem(i,c2)=r;
+ Real r=dat->elem (i,c1);
+ dat->elem (i,c1) = dat->elem (i,c2);
+ dat->elem (i,c2)=r;
}
}
void
-Matrix::swap_rows(int c1, int c2)
+Matrix::swap_rows (int c1, int c2)
{
- assert(c1>=0&& c1 < rows()&&c2 < rows() && c2 >=0);
+ assert (c1>=0&& c1 < rows()&&c2 < rows () && c2 >=0);
int c = cols();
for (int i=0; i< c; i++) {
- Real r=dat->elem(c1,i);
- dat->elem(c1,i) = dat->elem(c2,i);
- dat->elem(c2,i)=r;
+ Real r=dat->elem (c1,i);
+ dat->elem (c1,i) = dat->elem (c2,i);
+ dat->elem (c2,i)=r;
}
}
@@ -310,7 +310,7 @@ Matrix::swap_rows(int c1, int c2)
int
Matrix::dim() const
{
- assert(cols() == rows());
+ assert (cols() == rows ());
return rows();
}
diff --git a/flower/path.cc b/flower/path.cc
index 5674ca90a3..be5f56a7f0 100644
--- a/flower/path.cc
+++ b/flower/path.cc
@@ -14,33 +14,33 @@
@return 4 components of the path. They can be empty
*/
void
-split_path(String path,
+split_path (String path,
String &drive, String &dirs, String &filebase, String &extension)
{
// peel off components, one by one.
- int di = path.index_i(':');
+ int di = path.index_i (':');
if (di >= 0)
{
- drive = path.left_str(di + 1);
- path = path.right_str(path.len() - di -1);
+ drive = path.left_str (di + 1);
+ path = path.right_str (path.len() - di -1);
}
else
drive = "";
- di = path.index_last_i(PATHSEP);
+ di = path.index_last_i (PATHSEP);
if (di >=0)
{
- dirs = path.left_str(di + 1);
- path = path.right_str(path.len()-di -1);
+ dirs = path.left_str (di + 1);
+ path = path.right_str (path.len()-di -1);
}
else
dirs = "";
- di = path.index_last_i('.');
+ di = path.index_last_i ('.');
if (di >= 0)
{
- filebase = path.left_str(di);
- extension =path.right_str(path.len()-di);
+ filebase = path.left_str (di);
+ extension =path.right_str (path.len()-di);
}
else
{
@@ -54,22 +54,25 @@ split_path(String path,
in any other added path, in this order.
*/
String
-File_path::find(String nm)const
+File_path::find (String nm)const
{
fdebug << "looking for " << nm << ": ";
- if ( !nm.length_i() || ( nm == "-" ) )
+ if ( !nm.length_i() || ( nm == "-") )
return nm;
for (int i=0; i < size(); i++) {
- String path = (*this)[i];
- path+= String(path.length_i()? "/":"")+nm;
+ String path = elem(i);
+ if ( path.length_i() )
+ path += "/";
+
+ path += nm;
fdebug << path << "? ";
- FILE *f = fopen(path.ch_C(), "r"); // ugh!
+ FILE *f = fopen (path.ch_C(), "r"); // ugh!
if (f) {
fdebug << "found\n";
- fclose(f);
+ fclose (f);
return path;
}
}
diff --git a/flower/rational.cc b/flower/rational.cc
index b1056c2430..5b36be916c 100644
--- a/flower/rational.cc
+++ b/flower/rational.cc
@@ -10,9 +10,9 @@
#include "string.hh"
void
-print_rat(Rational const &m)
+print_rat (Rational const &m)
{
- cout << String(m) << flush;
+ cout << String (m) << flush;
}
diff --git a/flower/scalar.cc b/flower/scalar.cc
index da86835063..1a5e54ec27 100644
--- a/flower/scalar.cc
+++ b/flower/scalar.cc
@@ -2,22 +2,22 @@
#include <stdio.h>
#include "scalar.hh"
-Scalar::Scalar(Rational r)
- :String(r)
+Scalar::Scalar (Rational r)
+ :String (r)
{
}
Scalar::operator Rational()
{
- int p = index_i('/');
+ int p = index_i ('/');
if (p == -1)
- return int(*this);
+ return int (*this);
- String s2 = right_str(len()-p-1);
- String s1 = left_str(p);
+ String s2 = right_str (len()-p-1);
+ String s1 = left_str (p);
- return Rational(s1.value_i(), s2.value_i());
+ return Rational (s1.value_i(), s2.value_i ());
}
bool
@@ -26,7 +26,7 @@ Scalar::isnum()
int conv = false;
if (len()) {
long l =0;
- conv = sscanf(strh_.ch_C(), "%ld", &l);
+ conv = sscanf (strh_.ch_C(), "%ld", &l);
}
return len() && conv;
}
diff --git a/flower/string-convert.cc b/flower/string-convert.cc
index d1a9fe0575..2f5ab5bfa3 100644
--- a/flower/string-convert.cc
+++ b/flower/string-convert.cc
@@ -25,24 +25,24 @@
static const int STRING_BUFFER_LEN=1024;
String
-String_convert::bin2hex_str( String bin_str )
+String_convert::bin2hex_str (String bin_str)
{
String str;
Byte const* byte_C = bin_str.byte_C();
- for ( int i = 0; i < bin_str.length_i(); i++ ) {
- str += (char)nibble2hex_byte( *byte_C >> 4 );
- str += (char)nibble2hex_byte( *byte_C++ );
+ for ( int i = 0; i < bin_str.length_i(); i++) {
+ str += (char)nibble2hex_byte (*byte_C >> 4);
+ str += (char)nibble2hex_byte (*byte_C++);
}
return str;
}
int
-String_convert::bin2_i( String bin_str )
+String_convert::bin2_i (String bin_str)
{
- assert( bin_str.length_i() <= 4 );
+ assert (bin_str.length_i() <= 4);
int result_i = 0;
- for ( int i = 0; i < bin_str.length_i(); i++ ) {
+ for ( int i = 0; i < bin_str.length_i(); i++) {
result_i <<= 8;
result_i += (Byte)bin_str[ i ];
}
@@ -51,76 +51,76 @@ String_convert::bin2_i( String bin_str )
// breendet imp from String
int
-String_convert::dec2_i( String dec_str )
+String_convert::dec2_i (String dec_str)
{
- if ( !dec_str.length_i() )
+ if ( !dec_str.length_i())
return 0;
long l = 0;
- int conv = sscanf( dec_str.ch_C(), "%ld", &l );
- assert( conv );
+ int conv = sscanf (dec_str.ch_C(), "%ld", &l);
+ assert (conv);
return (int)l;
}
String
-String_convert::i64_str( I64 i64, char const* fmt)
+String_convert::i64_str (I64 i64, char const* fmt)
{
char buffer[STRING_BUFFER_LEN];
- snprintf(buffer, STRING_BUFFER_LEN,
- (fmt ? fmt : "%Ld"), i64 ); // assume radix 10
- return String(buffer);
+ snprintf (buffer, STRING_BUFFER_LEN,
+ (fmt ? fmt : "%Ld"), i64); // assume radix 10
+ return String (buffer);
}
// breendet imp from String
double
-String_convert::dec2_f( String dec_str )
+String_convert::dec2_f (String dec_str)
{
- if ( !dec_str.length_i() )
+ if ( !dec_str.length_i())
return 0;
double d = 0;
- int conv = sscanf( dec_str.ch_C(), "%lf", &d );
- assert( conv );
+ int conv = sscanf (dec_str.ch_C(), "%lf", &d);
+ assert (conv);
return d;
}
int
-String_convert::hex2bin_i( String hex_str, String& bin_str_r )
+String_convert::hex2bin_i (String hex_str, String& bin_str_r)
{
- if ( hex_str.length_i() % 2 )
+ if ( hex_str.length_i() % 2)
hex_str = "0" + hex_str;
bin_str_r = "";
Byte const* byte_C= hex_str.byte_C();
int i = 0;
- while ( i < hex_str.length_i() ) {
- int high_i = hex2nibble_i( *byte_C++ );
- int low_i = hex2nibble_i( *byte_C++ );
- if ( high_i < 0 || low_i < 0 )
+ while ( i < hex_str.length_i()) {
+ int high_i = hex2nibble_i (*byte_C++);
+ int low_i = hex2nibble_i (*byte_C++);
+ if ( high_i < 0 || low_i < 0)
return 1; // illegal char
- bin_str_r += String( (char)( high_i << 4 | low_i ), 1 );
+ bin_str_r += String ((char)( high_i << 4 | low_i), 1 );
i += 2;
}
return 0;
}
String
-String_convert::hex2bin_str( String hex_str )
+String_convert::hex2bin_str (String hex_str)
{
String str;
// silly, asserts should alway be "on"!
-// assert( !hex2bin_i( hex_str, str ) );
- int error_i = hex2bin_i( hex_str, str );
- assert( !error_i );
+// assert (!hex2bin_i (hex_str, str) );
+ int error_i = hex2bin_i (hex_str, str);
+ assert (!error_i);
return str;
}
int
-String_convert::hex2nibble_i( Byte byte )
+String_convert::hex2nibble_i (Byte byte)
{
- if ( byte >= '0' && byte <= '9' )
+ if ( byte >= '0' && byte <= '9')
return byte - '0';
- if ( byte >= 'A' && byte <= 'F' )
+ if ( byte >= 'A' && byte <= 'F')
return byte - 'A' + 10;
if ( byte >= 'a' && byte <= 'f')
return byte - 'a' + 10;
@@ -129,57 +129,57 @@ String_convert::hex2nibble_i( Byte byte )
// stupido. Should use int_str()
String
-String_convert::i2dec_str( int i, int length_i, char ch )
+String_convert::i2dec_str (int i, int length_i, char ch)
{
char fill_ch = ch;
if ( fill_ch)
fill_ch = '0';
// ugh
- String dec_str( i );
+ String dec_str (i);
// ugh
- return String( fill_ch, length_i - dec_str.length_i() ) + dec_str;
+ return String (fill_ch, length_i - dec_str.length_i()) + dec_str;
}
// stupido. Should use int_str()
String
-String_convert::u2hex_str( unsigned u, int length_i, char fill_ch )
+String_convert::u2hex_str (unsigned u, int length_i, char fill_ch)
{
String str;
- if ( !u )
+ if ( !u)
str = "0";
#if 1 // both go...
- while ( u ) {
- str = String( (char)( ( u % 16 )["0123456789abcdef"] ) ) + str;
+ while ( u) {
+ str = String ((char)( ( u % 16)["0123456789abcdef"] ) ) + str;
u /= 16;
}
#else
- str += int_str( u, "%x" ); // hmm. %lx vs. %x -> portability?
+ str += int_str (u, "%x"); // hmm. %lx vs. %x -> portability?
#endif
- str = String( fill_ch, length_i - str.length_i() ) + str;
- while ( ( str.length_i() > length_i ) && ( str[ 0 ] == 'f' ) )
- str = str.mid_str( 2, INT_MAX );
+ str = String (fill_ch, length_i - str.length_i()) + str;
+ while ( ( str.length_i() > length_i) && ( str[ 0 ] == 'f' ) )
+ str = str.mid_str (2, INT_MAX);
return str;
}
String
-String_convert::i2hex_str( int i, int length_i, char fill_ch )
+String_convert::i2hex_str (int i, int length_i, char fill_ch)
{
- return u2hex_str( (unsigned)i, length_i, fill_ch );
+ return u2hex_str ((unsigned)i, length_i, fill_ch);
}
Byte
-String_convert::nibble2hex_byte( Byte byte )
+String_convert::nibble2hex_byte (Byte byte)
{
- if ( ( byte & 0x0f ) <= 9 )
- return ( byte & 0x0f ) + '0';
+ if ( ( byte & 0x0f) <= 9 )
+ return ( byte & 0x0f) + '0';
else
- return ( byte & 0x0f ) - 10 + 'a';
+ return ( byte & 0x0f) - 10 + 'a';
}
/**
Convert an integer to a string
@@ -188,12 +188,12 @@ String_convert::nibble2hex_byte( Byte byte )
#fmt# is a printf style format, default assumes "%d" as format.
*/
String
-String_convert::int_str(int i, char const* fmt)
+String_convert::int_str (int i, char const* fmt)
{
char buffer[STRING_BUFFER_LEN];
- snprintf(buffer, STRING_BUFFER_LEN,
- (fmt ? fmt : "%d"), i ); // assume radix 10
- return String(buffer);
+ snprintf (buffer, STRING_BUFFER_LEN,
+ (fmt ? fmt : "%d"), i); // assume radix 10
+ return String (buffer);
}
/**
@@ -202,12 +202,12 @@ String_convert::int_str(int i, char const* fmt)
@param #fmt# is a printf style format, default assumes "%lf" as format
*/
String
-String_convert::double_str(double f, char const* fmt)
+String_convert::double_str (double f, char const* fmt)
{
char buf[STRING_BUFFER_LEN];
- snprintf(buf, STRING_BUFFER_LEN, fmt ? fmt : "%f", f);
- return String(buf);
+ snprintf (buf, STRING_BUFFER_LEN, fmt ? fmt : "%f", f);
+ return String (buf);
}
/**
@@ -217,25 +217,25 @@ String_convert::double_str(double f, char const* fmt)
#n# is a repetition count, default value is 1
*/
String
-String_convert::char_str(char c, int n)
+String_convert::char_str (char c, int n)
{
n = n >= 0 ? n : 0;
char* ch_p = new char[ n ];
- memset( ch_p, c, n );
- String s((Byte*)ch_p, n);
+ memset (ch_p, c, n);
+ String s ((Byte*)ch_p, n);
delete ch_p;
return s;
}
String
-String_convert::rational_str(Rational r)
+String_convert::rational_str (Rational r)
{
- char * n = Itoa(r.numerator()); // LEAK????
+ char * n = Itoa (r.numerator()); // LEAK????
String s = n;
if (r.denominator() != 1) {
- char * d = Itoa(r.denominator());
- s += String( '/' ) + String(d);
+ char * d = Itoa (r.denominator());
+ s += String ('/') + String (d);
//delete d;
}
/* delete n;
@@ -244,9 +244,9 @@ String_convert::rational_str(Rational r)
}
String
-String_convert::pointer_str(void const *l)
+String_convert::pointer_str (void const *l)
{
char buffer[STRING_BUFFER_LEN];
- snprintf(buffer, STRING_BUFFER_LEN, "%p", l ); // assume radix 10
- return String(buffer);
+ snprintf (buffer, STRING_BUFFER_LEN, "%p", l); // assume radix 10
+ return String (buffer);
}
diff --git a/flower/string.cc b/flower/string.cc
index d66951c931..1bd236114c 100644
--- a/flower/string.cc
+++ b/flower/string.cc
@@ -17,7 +17,7 @@
#include "string-convert.hh"
#ifdef STRING_DEBUG
-void* mymemmove( void* dest, void const* src, size_t n );
+void* mymemmove (void* dest, void const* src, size_t n);
#define memmove mymemmove
#endif
@@ -27,16 +27,16 @@ String::copy_byte_p() const
{
Byte const* src = strh_.byte_C();
Byte* dest = new Byte[strh_.length_i() + 1];
- memcpy( dest, src, strh_.length_i() + 1 );
+ memcpy (dest, src, strh_.length_i() + 1);
return dest;
}
void
-String::print_on(ostream& os) const
+String::print_on (ostream& os) const
{
if (!strh_.is_binary_bo())
os << ch_C();
else
- for ( int i = 0; i < length_i(); i++ )
+ for ( int i = 0; i < length_i(); i++)
os << (Byte)(*this)[ i ];
}
@@ -44,24 +44,24 @@ String::print_on(ostream& os) const
copying, constructing.
*/
String&
-String::operator = (String const&source )
+String::operator = (String const&source)
{
strh_ = source.strh_;
return *this;
}
-String::String(Rational r)
+String::String (Rational r)
{
- *this = String_convert::rational_str(r);
+ *this = String_convert::rational_str (r);
}
String::String (double f, char const* fmt)
{
- *this= String_convert::double_str(f,fmt);
+ *this= String_convert::double_str (f,fmt);
}
-String::String( char c, int n )
+String::String (char c, int n)
{
*this = String_convert::char_str (c,n);
}
@@ -70,40 +70,40 @@ String::String( char c, int n )
@see
String_convert::int_str
*/
-String::String(int i, char const * format )
+String::String (int i, char const * format)
{
- *this = String_convert::int_str(i,format);
+ *this = String_convert::int_str (i,format);
}
String::String (bool b)
{
- *this = (char const* ) (b ? "true" : "false");
+ *this = (char const*) (b ? "true" : "false");
}
-String::String( char const* source )
+String::String (char const* source)
{
- assert(source);
+ assert (source);
strh_ = source;
}
-String::String( Byte const* byte_l, int length_i )
+String::String (Byte const* byte_l, int length_i)
{
- strh_.set( byte_l, length_i );
+ strh_.set (byte_l, length_i);
}
void
-String::append(String s)
+String::append (String s)
{
- strh_.append( s.byte_C(), s.length_i() );
+ strh_.append (s.byte_C(), s.length_i());
}
void
String::operator +=(String s)
{
- append(s);
+ append (s);
}
void
-String::prepend(String s)
+String::prepend (String s)
{
s += *this;
*this = s;
@@ -143,50 +143,50 @@ String::ch_l()
Do a signed comparison, analogous to memcmp;
*/
int
-String::compare_i(String const& s1, String const& s2 )
+String::compare_i (String const& s1, String const& s2)
{
Byte const* p1 = s1.byte_C();
Byte const* p2 = s2.byte_C();
- if ( p1 == p2 )
+ if ( p1 == p2)
return 0;
int i1 = s1.length_i();
int i2 = s2.length_i();
- int result= memcmp( p1, p2, i1 <? i2 );
+ int result= memcmp (p1, p2, i1 <? i2);
return result ? result : i1-i2;
}
int
-String::index_last_i( char const c ) const
+String::index_last_i (char const c) const
{
- if ( !length_i() )
+ if ( !length_i())
return -1;
char const* me = strh_.ch_C();
- char const* p = memrchr(me, length_i(), c );
- if ( p )
+ char const* p = memrchr (me, length_i(), c);
+ if ( p)
return p - me;
return -1;
}
int
-String::index_last_i( char const* string ) const // UGK!
+String::index_last_i (char const* string) const // UGK!
{
- assert(false); // broken
- int length = strlen( string ); // ugrh
- if ( !length_i() || !length )
+ assert (false); // broken
+ int length = strlen (string); // ugrh
+ if ( !length_i() || !length)
return -1;
- int next_i = index_i( string );
- if ( next_i == -1 )
+ int next_i = index_i (string);
+ if ( next_i == -1)
return -1;
int index_i = 0;
- while( next_i >= 0 ) {
+ while (next_i >= 0) {
index_i += next_i;
- next_i = right_str( length_i() - index_i - length ).index_i( string );
+ next_i = right_str (length_i() - index_i - length).index_i (string );
}
return index_i;
}
@@ -197,14 +197,14 @@ String::index_last_i( char const* string ) const // UGK!
the index of the leftmost character #c# (0 <= return < length_i()),
or -1 if not found.
- ? should return length_i()?, as in string.left_str(index_i(delimiter))
+ ? should return length_i()?, as in string.left_str (index_i (delimiter))
*/
int
-String::index_i(char c ) const
+String::index_i (char c) const
{
char const* me = strh_.ch_C();
- char const* p = (char const *) memchr( me,c, length_i());
- if ( p )
+ char const* p = (char const *) memchr (me,c, length_i());
+ if ( p)
return p - me;
return -1;
}
@@ -216,13 +216,13 @@ String::index_i(char c ) const
index of leftmost occurrence of #searchfor#
*/
int
-String::index_i( String searchfor ) const
+String::index_i (String searchfor) const
{
char const* me = strh_.ch_C();
- char const* p = (char const *) memmem(
- me, length_i(), searchfor.ch_C(), searchfor.length_i());
+ char const* p = (char const *) memmem (
+ me, length_i(), searchfor.ch_C(), searchfor.length_i ());
- if ( p )
+ if ( p)
return p - me;
else
return -1;
@@ -234,15 +234,15 @@ String::index_i( String searchfor ) const
the index of the leftmost occurance of an element of #set#
*/
int
-String::index_any_i( String set ) const
+String::index_any_i (String set) const
{
int n = length_i();
- if ( !n )
+ if ( !n)
return -1;
void const * me_l = (void const *) strh_.ch_C();
for (int i=0; i < set.length_i(); i++) {
- char * found=(char*) memchr(me_l, set[i], n );
+ char * found=(char*) memchr (me_l, set[i], n );
if (found) {
return found - me_l;
}
@@ -251,7 +251,7 @@ String::index_any_i( String set ) const
}
String
-String::left_str( int n ) const
+String::left_str (int n) const
{
if (n >= length_i())
return *this;
@@ -261,12 +261,12 @@ String::left_str( int n ) const
return retval;
retval = *this;
- retval.strh_.trunc(n);
+ retval.strh_.trunc (n);
return retval;
}
String
-String::right_str( int n ) const
+String::right_str (int n) const
{
if (n > length_i())
return *this;
@@ -274,14 +274,14 @@ String::right_str( int n ) const
if ( n < 1)
return "";
- return String( strh_.byte_C() + length_i() - n, n );
+ return String (strh_.byte_C() + length_i() - n, n);
}
String
-String::nomid_str( int index_i, int n ) const
+String::nomid_str (int index_i, int n) const
{
- if ( index_i < 0 ) {
+ if ( index_i < 0) {
n += index_i;
index_i = 0;
}
@@ -289,28 +289,28 @@ String::nomid_str( int index_i, int n ) const
return *this;
return
- left_str( index_i ) +
- right_str( length_i() - index_i - n ) ;
+ left_str (index_i) +
+ right_str (length_i() - index_i - n) ;
}
/*
proposal: change to "cut()"
*/
String
-String::mid_str( int index_i, int n ) const
+String::mid_str (int index_i, int n) const
{
if (index_i <0) {
n += index_i;
index_i=0;
}
- if ( !length_i() || ( index_i < 0 ) || ( index_i >= length_i() ) || ( n < 1 ) )
+ if ( !length_i() || ( index_i < 0) || ( index_i >= length_i () ) || ( n < 1 ) )
return String();
- if ( ( n > length_i() ) || ( index_i + n > length_i() ) )
+ if ( ( n > length_i()) || ( index_i + n > length_i () ) )
n = length_i() - index_i;
- return String( byte_C() + index_i, n );
+ return String (byte_C() + index_i, n);
}
String
@@ -324,14 +324,14 @@ void
String::to_upper()
{
char *s = (char*)strh_.byte_l();
- strnupr( s ,length_i());
+ strnupr (s ,length_i());
}
void
String::to_lower()
{
char* s = strh_.ch_l();
- strnlwr(s,length_i());
+ strnlwr (s,length_i());
}
@@ -346,20 +346,20 @@ String
String::reversed_str() const
{
String str = *this;
- strrev( str.byte_l(), str.length_i() );
+ strrev (str.byte_l(), str.length_i ());
return str;
}
int
String::value_i() const
{
- return String_convert::dec2_i( *this );
+ return String_convert::dec2_i (*this);
}
double
String::value_f() const
{
- return String_convert::dec2_f( *this );
+ return String_convert::dec2_f (*this);
}
diff --git a/flower/stringtest.cc b/flower/stringtest.cc
index 0bbde77c99..b415de36e2 100644
--- a/flower/stringtest.cc
+++ b/flower/stringtest.cc
@@ -13,11 +13,11 @@ ctors()
{
cout << "constructors"<<endl;
- String str( "hai" );
+ String str ("hai");
String def;
- String fromi(10);
- String fromc('c');
- String fromf(1.32e-2, "%g");
+ String fromi (10);
+ String fromc ('c');
+ String fromf (1.32e-2, "%g");
cout << str << endl;
cout << def << endl;
@@ -30,11 +30,11 @@ void
cmp()
{
Array<String> a;
- a.push("abcd");
- a.push("zxy");
- a.push("abc");
- a.push("");
- a.sort(String::compare_i);
+ a.push ("abcd");
+ a.push ("zxy");
+ a.push ("abc");
+ a.push ("");
+ a.sort (String::compare_i);
cout << "compares: "<<endl;
for (int i=0; i < a.size(); i++)
cout << a[i] << endl;
@@ -50,12 +50,12 @@ searching()
String cstr =c;
String set = "bar";
cout << "hay = \"" << hay << "\" len="<< hay.length_i()<<endl;
- cout << "index_i('"<< c<<"') " << c << "= " << hay.index_i(c) <<endl;
- cout << "last_index_i('"<< c<<"') " << c << "= " << hay.index_last_i(c) <<endl;
-// cout << "last index of cstr " << c << ": " << hay.index_last_i(cstr) <<endl;
-// cout << "index_last_i(\""<<set<<"\"): " << hay.index_last_i(set) <<endl;
- cout << "index_i(\""<<set<<"\"): " << hay.index_i(set) <<endl;
- cout << "index_any(\"" << set << "\"): " << cstr << ": " << hay.index_any_i(cstr) <<endl;
+ cout << "index_i ('"<< c<<"') " << c << "= " << hay.index_i (c) <<endl;
+ cout << "last_index_i ('"<< c<<"') " << c << "= " << hay.index_last_i (c) <<endl;
+// cout << "last index of cstr " << c << ": " << hay.index_last_i (cstr) <<endl;
+// cout << "index_last_i (\""<<set<<"\"): " << hay.index_last_i (set) <<endl;
+ cout << "index_i (\""<<set<<"\"): " << hay.index_i (set) <<endl;
+ cout << "index_any (\"" << set << "\"): " << cstr << ": " << hay.index_any_i (cstr) <<endl;
@@ -65,15 +65,15 @@ searching()
void
kutenpeer()
{
- String str( "hai" );
+ String str ("hai");
for (int i=-1; i < str.length_i()+2; i++) {
- cout<<" left_str(" << i<<"): " << str.left_str( i ) << endl;
- cout<<" right_str( "<<i<<"): " << str.right_str( i ) << endl;
+ cout<<" left_str (" << i<<"): " << str.left_str (i) << endl;
+ cout<<" right_str ("<<i<<"): " << str.right_str (i) << endl;
}
str = "blonde haren";
cout << str<<endl;
- cout << "mid(2,6)="<<str.mid_str(2,3)<<endl;
- cout << "nomid(2,6)="<<str.nomid_str(2,3)<<endl;
+ cout << "mid (2,6)="<<str.mid_str (2,3)<<endl;
+ cout << "nomid (2,6)="<<str.nomid_str (2,3)<<endl;
}
int
@@ -83,35 +83,35 @@ main()
cmp();
searching();
kutenpeer();
- String str( "hai" );
+ String str ("hai");
cout << str << endl;
cout << "left" << endl;
str += " daar";
cout << str << endl;
- str = String( "Hallo" ) + " daaR" + '!';
+ str = String ("Hallo") + " daaR" + '!';
cout << str << endl;
- cout << "up: " << str.upper_str() << " down: " << str.lower_str()<<endl;
+ cout << "up: " << str.upper_str() << " down: " << str.lower_str ()<<endl;
- if ( str == String( "" ) )
+ if ( str == String ("") )
cout << str << " is empty" << endl;
else
cout << str << " is not empty"<<endl;
String fn = "";
- if ( fn == "" )
+ if ( fn == "")
cout << fn << " is empty" << endl;
else
- assert(false);
+ assert (false);
fn = "";
fn += "";
delete fn.copy_byte_p();
delete str.copy_byte_p();
- cout << String_convert::bin2hex_str( String( (char)0xff ) ) << endl;
+ cout << String_convert::bin2hex_str (String ((char)0xff) ) << endl;
}
#endif STRING_TEST
diff --git a/flower/stringutil.cc b/flower/stringutil.cc
index d73e4f14d3..d1db31b160 100644
--- a/flower/stringutil.cc
+++ b/flower/stringutil.cc
@@ -10,9 +10,9 @@
#include <sys/types.h>
#include <memory.h>
void*
-mymemmove( void* dest, void const* src, size_t n )
+mymemmove (void* dest, void const* src, size_t n)
{
- return memcpy( dest, src, n ); // wohltempererit: 69006
+ return memcpy (dest, src, n); // wohltempererit: 69006
}
#define memmove mymemmove
#endif
diff --git a/flower/text-db.cc b/flower/text-db.cc
index ebfc992ff2..3624d46ff7 100644
--- a/flower/text-db.cc
+++ b/flower/text-db.cc
@@ -28,20 +28,20 @@ Text_db::get_record()
while (1) {
String s;
Array<String> fields;
- assert(!eof());
+ assert (!eof());
while ((s = get_word()) != "")
{
- fields.push(s);
+ fields.push (s);
gobble_white();
}
if (get_line() != "")
- assert(false);
+ assert (false);
assert (fields.size());
- return Text_record(fields, get_name(), line());
+ return Text_record (fields, get_name(), line ());
}
}
diff --git a/flower/text-stream.cc b/flower/text-stream.cc
index a2d3e4b119..a8eb695ea2 100644
--- a/flower/text-stream.cc
+++ b/flower/text-stream.cc
@@ -1,6 +1,6 @@
#include "text-stream.hh"
-Text_stream::Text_stream(String fn)
+Text_stream::Text_stream (String fn)
{
ios::sync_with_stdio();
if (fn == "")
@@ -12,20 +12,20 @@ Text_stream::Text_stream(String fn)
else
{
name = fn;
- f = fopen(fn, "r");
+ f = fopen (fn, "r");
}
if (!f) {
cerr <<__FUNCTION__<< ": can't open `" << fn << "'\n";
- exit(1);
+ exit (1);
}
line_no = 1;
}
void
-Text_stream::message(String s)
+Text_stream::message (String s)
{
- cerr << "\n"<<get_name() << ": " << line()<<": "<<s<<endl;
+ cerr << "\n"<<get_name() << ": " << line ()<<": "<<s<<endl;
}
diff --git a/flower/unionfind.cc b/flower/unionfind.cc
index e7b0831dd1..1108f1459a 100644
--- a/flower/unionfind.cc
+++ b/flower/unionfind.cc
@@ -3,9 +3,9 @@
see a book on data structures
*/
-Union_find::Union_find(int n)
+Union_find::Union_find (int n)
{
- classes.set_size(n);
+ classes.set_size (n);
for (int i=0; i < n; i++) {
classes[i] = i;
@@ -13,7 +13,7 @@ Union_find::Union_find(int n)
}
int
-Union_find::find(int i)
+Union_find::find (int i)
{
int rep = i;
while (classes[rep] != rep)
@@ -27,9 +27,9 @@ Union_find::find(int i)
}
void
-Union_find::connect(int i, int j)
+Union_find::connect (int i, int j)
{
- i = find(i);
- j = find(j);
+ i = find (i);
+ j = find (j);
classes[i] = j;
}
diff --git a/flower/vector.cc b/flower/vector.cc
index 5cb2666e79..ebe2a729d6 100644
--- a/flower/vector.cc
+++ b/flower/vector.cc
@@ -1,25 +1,25 @@
#include "vector.hh"
-Vector::Vector(Array<Real> d)
- : dat(d)
+Vector::Vector (Array<Real> d)
+ : dat (d)
{
}
-Vector::Vector(Vector const &n)
- : dat(n.dat)
+Vector::Vector (Vector const &n)
+ : dat (n.dat)
{
}
Vector
Vector::operator-() const
{
- Vector v(*this);
+ Vector v (*this);
v*=-1;
return v;
}
void
-Vector::set_unit(int j)
+Vector::set_unit (int j)
{
- fill(0.0);
+ fill (0.0);
dat[j] = 1.0;
}
diff --git a/input/gallina.ly b/input/gallina.ly
index 08f9b997b0..89b4298679 100644
--- a/input/gallina.ly
+++ b/input/gallina.ly
@@ -217,12 +217,8 @@ bc=\melodic{
\bc
>
\paper{
- geometric=1.2;
- unitspace=8.\mm;
linewidth=18.\cm;
- gourlay_maxmeasures=4.;
- gourlay_energybound = 70000.;
- basicspace = 2.8\pt;
+ gourlay_maxmeasures=5.;
}
}
diff --git a/input/s.ly b/input/s.ly
new file mode 100644
index 0000000000..f3aba775c0
--- /dev/null
+++ b/input/s.ly
@@ -0,0 +1,43 @@
+
+vi1=\melodic{
+ \meter 4/4;
+ \octave c'';
+
+ B8 G G G16 A B8 G G G16 A |
+
+}
+
+vi2=\melodic{
+ \meter 4/4;
+ \octave c'';
+
+% r16
+ r1
+}
+
+%{
+bc=\melodic{
+ \clef "bass";
+ \meter 4/4;
+ \octave c;
+
+ G1 |
+}
+%}
+
+\score{
+ < \multi 3;
+ \vi1
+ \vi2
+
+ >
+
+ \paper{
+ geometric=1.2;
+ unitspace=8.\mm;
+ linewidth=18.\cm;
+ gourlay_maxmeasures=4.;
+ gourlay_energybound = 70000.;
+ basicspace = 2.8\pt;
+ }
+}
diff --git a/input/standchen.tex b/input/standchen.tex
index 9890a2c8ff..be919a0ac8 100644
--- a/input/standchen.tex
+++ b/input/standchen.tex
@@ -10,7 +10,6 @@
\begin{document}
\input lilyponddefs
\input titledefs
-\def\interstaffline{\vskip1mm}
\def\interscoreline{\vskip3mm}
\title{St\"andchen\normalsize\\[2ex](Serenade)}
\composer{Franz Schubert (1797-1828)}
diff --git a/input/wohltemperirt.ly b/input/wohltemperirt.ly
index b3c6234a82..95ad2fc3ab 100644
--- a/input/wohltemperirt.ly
+++ b/input/wohltemperirt.ly
@@ -9,7 +9,6 @@
copyright: Public Domain
Tested Features: stem direction, multivoice, forced accidentals.
-
%}
\version "0.1.1";
@@ -176,7 +175,10 @@ bassdux =
>
>
- \paper{}
+ \paper{
+ gourlay_maxmeasures =4.;
+
+ }
\midi {
\tempo 4 = 84;
}
diff --git a/lib/duration.cc b/lib/duration.cc
index f81b3c2be9..fab55e756c 100644
--- a/lib/duration.cc
+++ b/lib/duration.cc
@@ -27,13 +27,6 @@ Duration::Duration()
ticks_i_ = 0;
}
-Duration::Duration( int type_i, int dots_i = 0 )
-{
- type_i_ = type_i;
- dots_i_ = dots_i;
- ticks_i_ = 0;
-}
-
bool
Duration::duration_type_b(int t)
{
diff --git a/lib/include/duration.hh b/lib/include/duration.hh
index 0c5b313e4b..c46fc5a7c0 100644
--- a/lib/include/duration.hh
+++ b/lib/include/duration.hh
@@ -41,7 +41,6 @@ struct Duration {
Ctor of Duration. type_i should be a power of 2.
*/
Duration();
- Duration( int type_i, int dots_i = 0 );
/// is the "plet factor" of this note != 1 ?
bool plet_b();
String str()const;
diff --git a/lib/include/source.hh b/lib/include/source.hh
index 1d199671ff..96fb10193e 100644
--- a/lib/include/source.hh
+++ b/lib/include/source.hh
@@ -5,10 +5,8 @@
#ifndef SOURCE_HH
#define SOURCE_HH
-
-#include "proto.hh"
#include "plist.hh"
-
+#include "proto.hh"
class Sources
{
public:
diff --git a/lib/template.cc b/lib/template.cc
index 2e3d527baf..4fefc0b563 100644
--- a/lib/template.cc
+++ b/lib/template.cc
@@ -1,6 +1,16 @@
+/*
+ template.cc -- instantiate Pointer_list<Source_file*>
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
#include "source-file.hh"
#include "plist.tcc"
#include "pcursor.tcc"
+#include "cursor.tcc"
+#include "list.tcc"
-
-IPL_instantiate(Source_file);
+template L_INSTANTIATE(void *);
+template IPL_INSTANTIATE(Source_file);
diff --git a/lily/VERSION b/lily/VERSION
index c04453cdaa..d87385f587 100644
--- a/lily/VERSION
+++ b/lily/VERSION
@@ -1,6 +1,6 @@
MAJOR_VERSION = 0
MINOR_VERSION = 1
-PATCH_LEVEL = 7
+PATCH_LEVEL = 8
# use to send patches, always empty for released version:
# include separator: ".postfix", "-pl" makes rpm barf
diff --git a/lily/atom.cc b/lily/atom.cc
index 0d8eb44f44..ac3c246a03 100644
--- a/lily/atom.cc
+++ b/lily/atom.cc
@@ -17,19 +17,19 @@ void
Atom::print() const
{
#ifndef NPRINT
- mtor << "texstring: " <<sym_.tex<<"\n";
+ DOUT << "texstring: " <<sym_.tex<<"\n";
#endif
}
Box
Atom::extent() const
{
- Box b( sym_.dim);
- b.translate(off_);
+ Box b (sym_.dim);
+ b.translate (off_);
return b;
}
-Atom::Atom(Symbol s)
+Atom::Atom (Symbol s)
{
sym_=s;
}
@@ -39,14 +39,14 @@ String
Atom::TeX_string() const
{
/* infinity checks. */
- assert( abs(off_.x()) < 100 CM);
- assert( abs(off_.y()) < 100 CM);
+ assert (abs (off_.x()) < 100 CM);
+ assert (abs (off_.y()) < 100 CM);
// whugh.. Hard coded...
- String s("\\placebox{%}{%}{%}");
+ String s ("\\placebox{%}{%}{%}");
Array<String> a;
- a.push(print_dimen(off_.y()));
- a.push(print_dimen(off_.x()));
- a.push(sym_.tex);
- return substitute_args(s, a);
+ a.push (print_dimen (off_.y()));
+ a.push (print_dimen (off_.x()));
+ a.push (sym_.tex);
+ return substitute_args (s, a);
}
diff --git a/lily/audio-column.cc b/lily/audio-column.cc
index 0bda45c592..e0d87b1a99 100644
--- a/lily/audio-column.cc
+++ b/lily/audio-column.cc
@@ -12,16 +12,16 @@
#include "debug.hh"
-Audio_column::Audio_column( Moment at_mom )
+Audio_column::Audio_column (Moment at_mom)
{
at_mom_ = at_mom;
audio_score_l_ = 0;
}
void
-Audio_column::add( Audio_item* l )
+Audio_column::add (Audio_item* l)
{
- audio_item_l_list_.bottom().add( l );
+ audio_item_l_list_.bottom().add (l);
l->audio_column_l_ = this;
}
@@ -35,9 +35,9 @@ void
Audio_column::print() const
{
#ifndef NPRINT
- mtor << "Audio_column {";
- mtor << "at: " << at_mom_ << "\n";
- mtor << "}\n";
+ DOUT << "Audio_column {";
+ DOUT << "at: " << at_mom_ << "\n";
+ DOUT << "}\n";
#endif
}
diff --git a/lily/audio-item.cc b/lily/audio-item.cc
index 4e05735013..125541202e 100644
--- a/lily/audio-item.cc
+++ b/lily/audio-item.cc
@@ -9,8 +9,8 @@
#include "audio-item.hh"
#include "midi-item.hh"
-Audio_instrument::Audio_instrument( String instrument_str )
- : Audio_item( 0 )
+Audio_instrument::Audio_instrument (String instrument_str)
+ : Audio_item (0)
{
str_ = instrument_str;
}
@@ -18,40 +18,40 @@ Audio_instrument::Audio_instrument( String instrument_str )
Midi_item*
Audio_instrument::midi_item_p()
{
- return str_.length_i() ? new Midi_instrument( 0, str_ ) : 0;
+ return new Midi_instrument (0, str_);
}
-Audio_item::Audio_item( Request* req_l )
+Audio_item::Audio_item (Request* req_l)
{
audio_column_l_ = 0;
req_l_ = req_l;
}
-Audio_key::Audio_key( Request* req_l )
- : Audio_item( req_l )
+Audio_key::Audio_key (Request* req_l)
+ : Audio_item (req_l)
{
}
Midi_item*
Audio_key::midi_item_p()
{
- return new Midi_key( this );
+ return new Midi_key (this);
}
-Audio_note::Audio_note( Request* req_l )
- : Audio_item( req_l )
+Audio_note::Audio_note (Request* req_l)
+ : Audio_item (req_l)
{
}
Midi_item*
Audio_note::midi_item_p()
{
- return new Midi_note( this );
+ return new Midi_note (this);
}
-Audio_tempo::Audio_tempo( int per_minute_4_i )
- : Audio_item( 0 )
+Audio_tempo::Audio_tempo (int per_minute_4_i)
+ : Audio_item (0)
{
per_minute_4_i_ = per_minute_4_i;
}
@@ -59,22 +59,22 @@ Audio_tempo::Audio_tempo( int per_minute_4_i )
Midi_item*
Audio_tempo::midi_item_p()
{
- return new Midi_tempo( this );
+ return new Midi_tempo (this);
}
-Audio_meter::Audio_meter( Request* req_l )
- : Audio_item( req_l )
+Audio_meter::Audio_meter (Request* req_l)
+ : Audio_item (req_l)
{
}
Midi_item*
Audio_meter::midi_item_p()
{
- return new Midi_meter( this );
+ return new Midi_meter (this);
}
-Audio_text::Audio_text( Audio_text::Type type, String text_str )
- : Audio_item( 0 )
+Audio_text::Audio_text (Audio_text::Type type, String text_str)
+ : Audio_item (0)
{
text_str_ = text_str;
type_ = type;
@@ -83,7 +83,7 @@ Audio_text::Audio_text( Audio_text::Type type, String text_str )
Midi_item*
Audio_text::midi_item_p()
{
- return text_str_.length_i() ? new Midi_text( this ) : 0;
+ return new Midi_text (this);
}
diff --git a/lily/audio-score.cc b/lily/audio-score.cc
index 27f82a0746..57f012e233 100644
--- a/lily/audio-score.cc
+++ b/lily/audio-score.cc
@@ -19,89 +19,89 @@
#include "audio-score.hh"
#include "score.hh"
-Audio_score::Audio_score( Score* l )
+Audio_score::Audio_score (Score* l)
{
score_l_ = l;
}
void
-Audio_score::add( Audio_column* p )
+Audio_score::add (Audio_column* p)
{
p->audio_score_l_ = this;
- audio_column_p_list_.bottom().add(p);
+ audio_column_p_list_.bottom().add (p);
}
void
-Audio_score::output( Midi_stream& midi_stream_r )
+Audio_score::output (Midi_stream& midi_stream_r)
{
int tracks_i = audio_staff_l_list_.size() + 1;
// ugh
int clocks_per_4_i = 384;
- midi_stream_r << Midi_header( 1, tracks_i, clocks_per_4_i );
- output_header_track( midi_stream_r );
+ midi_stream_r << Midi_header (1, tracks_i, clocks_per_4_i);
+ output_header_track (midi_stream_r);
int n = 1;
- for ( PCursor<Audio_staff*> i( audio_staff_l_list_ ); i.ok(); i++ )
- i->output( midi_stream_r, n++ );
+ for ( PCursor<Audio_staff*> i (audio_staff_l_list_); i.ok(); i++ )
+ i->output (midi_stream_r, n++);
}
void
-Audio_score::output_header_track( Midi_stream& midi_stream_r )
+Audio_score::output_header_track (Midi_stream& midi_stream_r)
{
Midi_track midi_track;
- time_t t = time( 0 );
+ time_t t = time (0);
// perhaps multiple text events?
- String str = String( "Creator: " ) + get_version_str() + "\n";
+ String str = String ("Creator: ") + get_version_str() + "\n";
- Midi_text creator( Midi_text::TEXT, str );
- midi_track.add( Moment( 0 ), &creator );
+ Midi_text creator (Midi_text::TEXT, str);
+ midi_track.add (Moment (0), &creator );
str = "Automatically generated at ";
- str += ctime( &t );
- str = str.left_str( str.length_i() - 1 );
+ str += ctime (&t);
+ str = str.left_str (str.length_i() - 1);
str += "\n";
- Midi_text generate( Midi_text::TEXT, str );
- midi_track.add( Moment( 0 ), &generate );
+ Midi_text generate (Midi_text::TEXT, str);
+ midi_track.add (Moment (0), &generate );
str = "from musical definition: ";
str += score_l_->location_str();
- Midi_text from( Midi_text::TEXT, str );
- midi_track.add( Moment( 0 ), &from );
+ Midi_text from (Midi_text::TEXT, str);
+ midi_track.add (Moment (0), &from );
- Midi_text track_name( Midi_text::TRACK_NAME, "Track "
- + String_convert::i2dec_str( 0, 0, '0' ) );
- midi_track.add( Moment( 0 ), &track_name );
+ Midi_text track_name (Midi_text::TRACK_NAME, "Track "
+ + String_convert::i2dec_str (0, 0, '0') );
+ midi_track.add (Moment (0), &track_name );
- Midi_tempo tempo( score_l_->midi_p_->get_tempo_i( Moment( 1, 4 ) ) );
- midi_track.add( Moment(0), &tempo);
+ Midi_tempo tempo (score_l_->midi_p_->get_tempo_i (Moment (1, 4) ) );
+ midi_track.add (Moment (0), &tempo);
midi_stream_r << midi_track;
}
void
-Audio_score::add_staff( Audio_staff* l )
+Audio_score::add_staff (Audio_staff* l)
{
- audio_staff_l_list_.bottom().add( l );
+ audio_staff_l_list_.bottom().add (l);
}
void
-Audio_score::add(Audio_element *p)
+Audio_score::add (Audio_element *p)
{
- audio_elem_p_list_.bottom().add( p);
+ audio_elem_p_list_.bottom().add (p);
}
void
Audio_score::print() const
{
#ifndef NPRINT
- mtor << "Audio_score { ";
+ DOUT << "Audio_score { ";
score_l_->midi_p_->print();
- mtor << "\ncolumns: ";
- for ( PCursor<Audio_column*> i( audio_column_p_list_ ); i.ok(); i++ )
+ DOUT << "\ncolumns: ";
+ for ( PCursor<Audio_column*> i (audio_column_p_list_); i.ok(); i++ )
i->print();
- mtor << "}\n";
+ DOUT << "}\n";
#endif
}
diff --git a/lily/audio-staff.cc b/lily/audio-staff.cc
index 8dcae84e66..c23b339b2b 100644
--- a/lily/audio-staff.cc
+++ b/lily/audio-staff.cc
@@ -13,17 +13,17 @@
#include "midi-walker.hh"
void
-Audio_staff::add( Audio_item* l )
+Audio_staff::add (Audio_item* l)
{
- audio_item_l_list_.bottom().add( l );
+ audio_item_l_list_.bottom().add (l);
}
void
-Audio_staff::output( Midi_stream& midi_stream_r, int track_i )
+Audio_staff::output (Midi_stream& midi_stream_r, int track_i)
{
Midi_track midi_track;
midi_track.number_i_ = track_i;
- for ( Midi_walker i( this, &midi_track ); i.ok(); i++ )
+ for ( Midi_walker i (this, &midi_track); i.ok(); i++ )
i.process();
midi_stream_r << midi_track;
}
diff --git a/lily/axis-group-item.cc b/lily/axis-group-item.cc
index bc1bffd00a..c39a12c673 100644
--- a/lily/axis-group-item.cc
+++ b/lily/axis-group-item.cc
@@ -16,10 +16,10 @@ Axis_group_item::OK() const
Link_array<Score_elem> elems = axis_admin_.elem_l_arr_;
for (int i=0; i < elems.size(); i++) {
Item * it_l = elems[i]->item();
- assert(it_l);
+ assert (it_l);
// somebody probably broke it in pieces
- assert (it_l->pcol_l_ == pcol_l_ );
+ assert (it_l->pcol_l_ == pcol_l_);
}
}
@@ -36,8 +36,8 @@ Axis_group_item::do_breakable_col_processing()
for (int i=0; i < elems.size(); i++) {
Item* it_l = elems[i]->item();
for ( int j=0; j < 2; j++) {
- Item *new_l = it_l->find_prebroken_piece(broken_to_a_[j]->pcol_l_);
- ((Axis_group_item*)broken_to_a_[j])->add_element( new_l );
+ Item *new_l = it_l->find_prebroken_piece (broken_to_a_[j]->pcol_l_);
+ ((Axis_group_item*)broken_to_a_[j])->add_element (new_l);
}
}
Item::do_breakable_col_processing();
diff --git a/lily/axis-group-spanner.cc b/lily/axis-group-spanner.cc
index 94aab236b6..a7fd4fa62b 100644
--- a/lily/axis-group-spanner.cc
+++ b/lily/axis-group-spanner.cc
@@ -27,10 +27,10 @@ Axis_group_spanner::do_break_processing_if_unbroken()
&& item_l->break_status_i() == 0) {
// last two checks are paranoia
Item * broken_item_l =
- item_l->find_prebroken_piece( my_line );
- add_element( broken_item_l );
+ item_l->find_prebroken_piece (my_line);
+ add_element (broken_item_l);
}
- remove_element( elems[i] );
+ remove_element (elems[i]);
}
}
@@ -46,7 +46,7 @@ Axis_group_spanner::do_break_processing()
return;
}
- break_into_pieces( true );
+ break_into_pieces (true);
Link_array<Score_elem> loose_elems = axis_admin_.elem_l_arr_;
remove_all();
@@ -54,7 +54,7 @@ Axis_group_spanner::do_break_processing()
Score_elem * elt = loose_elems[i];
Line_of_score *elt_line = elt->line_l();
- if ( ! elt_line ){
+ if ( ! elt_line){
/* this piece doesn't know where it belongs.
Find out if it was broken, and use the broken remains
*/
@@ -66,28 +66,28 @@ Axis_group_spanner::do_break_processing()
= (Axis_group_spanner*)broken_into_l_arr_[j];
Spanner * broken_span_l
- = sp->find_broken_piece(
+ = sp->find_broken_piece (
((Score_elem*)my_broken_l)->line_l());
if (broken_span_l)
- my_broken_l->add_element(broken_span_l );
+ my_broken_l->add_element (broken_span_l);
}
} else if (elt->item()
&& elt->item()->breakable_b_
- && elt->item()->break_status_i() == 0) {
+ && elt->item()->break_status_i () == 0) {
// broken items
for (int j =0; j < 2; j++) {
Item * my_item = elt->item()->broken_to_a_[j];
Line_of_score * item_line_l = my_item->line_l() ;
- if ( ! item_line_l )
+ if ( ! item_line_l)
continue;
Axis_group_spanner * v
- = (Axis_group_spanner*)find_broken_piece( item_line_l );
+ = (Axis_group_spanner*)find_broken_piece (item_line_l);
if (v)
- v->add_element( my_item );
+ v->add_element (my_item);
}
}
@@ -96,8 +96,8 @@ Axis_group_spanner::do_break_processing()
Put it in appropriate piece of this spanner
*/
Axis_group_spanner * my_broken_l
- = (Axis_group_spanner*)find_broken_piece( elt->line_l() );
- my_broken_l->add_element( elt );
+ = (Axis_group_spanner*)find_broken_piece (elt->line_l());
+ my_broken_l->add_element (elt);
}
}
diff --git a/lily/axis-group.cc b/lily/axis-group.cc
index b6b5eec4fc..4e09739471 100644
--- a/lily/axis-group.cc
+++ b/lily/axis-group.cc
@@ -12,31 +12,31 @@
/** don't copy anything: an element can only be in one
Axis_group_element at one time. */
-Axis_group_administration::Axis_group_administration(
+Axis_group_administration::Axis_group_administration (
Axis_group_administration const&)
{
}
bool
-Axis_group_administration::contains_b(Score_elem const *e)const
+Axis_group_administration::contains_b (Score_elem const *e)const
{
- return elem_l_arr_.find_l(e);
+ return elem_l_arr_.find_l (e);
}
Interval
-Axis_group_administration::extent(Axis axis)const
+Axis_group_administration::extent (Axis axis)const
{
Interval r;
for (int i=0; i < elem_l_arr_.size(); i++)
- r.unite(elem_l_arr_[i]->extent(axis));
+ r.unite (elem_l_arr_[i]->extent (axis));
return r;
}
void
-Axis_group_administration::add_element(Score_elem*e,
+Axis_group_administration::add_element (Score_elem*e,
Axis_group_element*g, Axis a1, Axis a2)
{
- assert( ! e->axis_group_l_a_[a1] && !e->axis_group_l_a_[a2] );
+ assert (! e->axis_group_l_a_[a1] && !e->axis_group_l_a_[a2]);
e->axis_group_l_a_[a1] = g;
e->axis_group_l_a_[a2] = g;
elem_l_arr_.push ( e);
@@ -45,17 +45,17 @@ Axis_group_administration::add_element(Score_elem*e,
void
-Axis_group_administration::remove_element(Score_elem*e, Axis a1, Axis a2)
+Axis_group_administration::remove_element (Score_elem*e, Axis a1, Axis a2)
{
- assert( contains_b( e));
- elem_l_arr_.unordered_substitute(e,0);
+ assert (contains_b (e));
+ elem_l_arr_.unordered_substitute (e,0);
e->axis_group_l_a_[a1] = 0;
e->axis_group_l_a_[a2] = 0;
}
void
-Axis_group_administration::remove_all(Axis a1, Axis a2)
+Axis_group_administration::remove_all (Axis a1, Axis a2)
{
for (int i=0; i < elem_l_arr_.size(); i++) {
Score_elem*e=elem_l_arr_[i];
@@ -71,6 +71,6 @@ Axis_group_administration::print() const
{
#ifndef NPRINT
for (int i=0; i < elem_l_arr_.size(); i++)
- mtor << elem_l_arr_[i]->name() << ' ';
+ DOUT << elem_l_arr_[i]->name() << ' ';
#endif
}
diff --git a/lily/axis.cc b/lily/axis.cc
index eddfd0c9b5..8217484340 100644
--- a/lily/axis.cc
+++ b/lily/axis.cc
@@ -10,7 +10,7 @@
#include "string.hh"
String
-axis_name_str(Axis a)
+axis_name_str (Axis a)
{
return String (a + 'x');
}
diff --git a/lily/bar-column-grav.cc b/lily/bar-column-grav.cc
index 1dda5113ca..19b523cf78 100644
--- a/lily/bar-column-grav.cc
+++ b/lily/bar-column-grav.cc
@@ -21,29 +21,29 @@ Bar_column_engraver::Bar_column_engraver()
void
-Bar_column_engraver::acknowledge_element(Score_elem_info info)
+Bar_column_engraver::acknowledge_element (Score_elem_info info)
{
- if (info.elem_l_->is_type_b(Script::static_name())
+ if (info.elem_l_->is_type_b (Script::static_name())
&& info.req_l_->command()
&& info.origin_grav_l_arr_.size() == 1) {
- script_l_arr_.push( (Script*)info.elem_l_->item());
+ script_l_arr_.push ((Script*)info.elem_l_->item());
} else {
if (info.origin_grav_l_arr_.size() == 1
- && info.elem_l_->is_type_b(Bar::static_name()))
+ && info.elem_l_->is_type_b (Bar::static_name()))
bar_l_ = (Bar*)info.elem_l_->item();
}
- if ( bar_l_ && !barcol_p_ ) {
+ if ( bar_l_ && !barcol_p_) {
barcol_p_ = new Bar_column;
barcol_p_->breakable_b_ =true;
- barcol_p_->set_bar( bar_l_ );
- announce_element(Score_elem_info(barcol_p_, 0));
+ barcol_p_->set_bar (bar_l_);
+ announce_element (Score_elem_info (barcol_p_, 0));
}
- if (barcol_p_ ) {
+ if (barcol_p_) {
for (int i=0; i < script_l_arr_.size(); i++) {
script_l_arr_[i]->breakable_b_ = true;
- barcol_p_->add(script_l_arr_[i]);
+ barcol_p_->add (script_l_arr_[i]);
}
script_l_arr_.clear();
}
@@ -53,7 +53,7 @@ void
Bar_column_engraver::do_pre_move_processing()
{
if (barcol_p_) {
- typeset_element( barcol_p_ );
+ typeset_element (barcol_p_);
barcol_p_ =0;
}
}
diff --git a/lily/bar-column.cc b/lily/bar-column.cc
index 123b512ed4..5f5dbf894b 100644
--- a/lily/bar-column.cc
+++ b/lily/bar-column.cc
@@ -16,17 +16,17 @@ Bar_column::Bar_column()
}
void
-Bar_column::set_bar(Bar*b)
+Bar_column::set_bar (Bar*b)
{
- Script_column::add_support( b );
+ Script_column::add_support (b);
bar_l_ = b;
}
void
-Bar_column::do_substitute_dependency(Score_elem*o,Score_elem*n)
+Bar_column::do_substitute_dependency (Score_elem*o,Score_elem*n)
{
- Script_column::do_substitute_dependency(o,n);
- if ( o == bar_l_ ) {
+ Script_column::do_substitute_dependency (o,n);
+ if ( o == bar_l_) {
bar_l_ = n ? (Bar*)n->item() : 0;
}
}
diff --git a/lily/bar-grav.cc b/lily/bar-grav.cc
index 3847e9a5ba..740f5d5d04 100644
--- a/lily/bar-grav.cc
+++ b/lily/bar-grav.cc
@@ -18,13 +18,13 @@ Bar_engraver::Bar_engraver()
}
bool
-Bar_engraver::do_try_request(Request*r_l)
+Bar_engraver::do_try_request (Request*r_l)
{
Command_req* c_l = r_l->command();
if (!c_l|| !c_l->bar())
return false;
Bar_req * b= c_l->bar();
- if (bar_req_l_ && bar_req_l_->equal_b(b))
+ if (bar_req_l_ && bar_req_l_->equal_b (b))
return false;
bar_req_l_ = b;
@@ -35,7 +35,7 @@ Bar_engraver::do_try_request(Request*r_l)
void
Bar_engraver::do_process_requests()
{
- if (bar_req_l_ ) {
+ if (bar_req_l_) {
bar_p_ = new Bar;
bar_p_->type_str_=bar_req_l_->type_str_;
} else if (!get_staff_info().time_C_->whole_in_measure_) {
@@ -43,10 +43,10 @@ Bar_engraver::do_process_requests()
}
if (bar_p_){
- announce_element(Score_elem_info(bar_p_, bar_req_l_) );
+ announce_element (Score_elem_info (bar_p_, bar_req_l_));
} else {
Disallow_break_req r;
- daddy_grav_l_->try_request(&r);
+ daddy_grav_l_->try_request (&r);
}
}
@@ -55,7 +55,7 @@ void
Bar_engraver::do_pre_move_processing()
{
if (bar_p_) {
- typeset_element(bar_p_);
+ typeset_element (bar_p_);
bar_p_ =0;
}
}
diff --git a/lily/bar-number-grav.cc b/lily/bar-number-grav.cc
index 4b0535f5a4..e824462a76 100644
--- a/lily/bar-number-grav.cc
+++ b/lily/bar-number-grav.cc
@@ -22,10 +22,10 @@ Bar_number_grav::Bar_number_grav()
static Command_script_req dummy;
void
-Bar_number_grav::acknowledge_element(Score_elem_info i)
+Bar_number_grav::acknowledge_element (Score_elem_info i)
{
if (i.origin_grav_l_arr_.size() == 1 &&
- i.elem_l_->is_type_b( Bar::static_name()) && !script_p_) {
+ i.elem_l_->is_type_b (Bar::static_name()) && !script_p_) {
script_p_ = new Script;
Text_def *td_p =new Text_def;
@@ -34,15 +34,15 @@ Bar_number_grav::acknowledge_element(Score_elem_info i)
script_p_->breakable_b_ = true;
script_p_->dir_i_ = 1;
- announce_element(Score_elem_info( script_p_, &dummy));
+ announce_element (Score_elem_info (script_p_, &dummy));
}
}
void
Bar_number_grav::do_pre_move_processing()
{
- if ( script_p_ ) {
- typeset_element(script_p_);
+ if ( script_p_) {
+ typeset_element (script_p_);
script_p_ =0;
}
}
diff --git a/lily/bar.cc b/lily/bar.cc
index 2342d227b2..2f4b47b3b5 100644
--- a/lily/bar.cc
+++ b/lily/bar.cc
@@ -27,16 +27,16 @@ IMPLEMENT_IS_TYPE_B1(Bar,Item);
void
Bar::do_print()const
{
- mtor << type_str_;
+ DOUT << type_str_;
}
Molecule*
Bar::brew_molecule_p()const
{
Paper_def *p = paper();
- Symbol s = p->lookup_l()->bar( type_str_,
- p->get_var("bar_size") );
- Molecule*output = new Molecule(Atom(s));
+ Symbol s = p->lookup_l()->bar (type_str_,
+ p->get_var ("bar_size"));
+ Molecule*output = new Molecule (Atom (s));
return output;
}
diff --git a/lily/beam.cc b/lily/beam.cc
index 4dd852f188..1f595cddb6 100644
--- a/lily/beam.cc
+++ b/lily/beam.cc
@@ -38,14 +38,14 @@ struct Stem_info {
int beams_i_;
Stem_info(){}
- Stem_info(Stem const *);
+ Stem_info (Stem const *);
};
-Stem_info::Stem_info(Stem const *s)
+Stem_info::Stem_info (Stem const *s)
{
x = s->hpos_f();
dir_i_ = s->dir_i_;
- beams_i_ = intlog2( s->flag_i_ ) - 2;
+ beams_i_ = intlog2( s->flag_i_) - 2;
/*
[todo]
@@ -64,14 +64,14 @@ Stem_info::Stem_info(Stem const *s)
*/
- Real notehead_y = s->paper()->interline_f();
+ Real notehead_y = s->paper()->interline_f ();
// huh? why do i need the / 2
-// Real interbeam_f = s->paper()->interbeam_f();
- Real interbeam_f = s->paper()->interbeam_f() / 2;
+// Real interbeam_f = s->paper()->interbeam_f ();
+ Real interbeam_f = s->paper()->interbeam_f () / 2;
/* well eh, huh?
idealy_f_ = dir_i_ * s->stem_start_f() + beams_i_ * interbeam_f;
- if ( beams_i_ < 3 )
+ if ( beams_i_ < 3)
idealy_f_ += 2 * interline_f;
else
idealy_f_ += 1.5 * interline_f;
@@ -82,7 +82,7 @@ Stem_info::Stem_info(Stem const *s)
miny_f_ = dir_i_ * s->stem_start_f() + notehead_y + beams_i_ * interbeam_f;
idealy_f_ = miny_f_ >? idealy_f_;
-// assert(miny_f_ <= idealy_f_);
+// assert (miny_f_ <= idealy_f_);
}
@@ -92,8 +92,8 @@ Stem_info::Stem_info(Stem const *s)
Offset
Beam::center()const
{
- Real w=(paper()->note_width() + width().length())/2.0;
- return Offset(w, (left_pos + w* slope)*paper()->internote_f());
+ Real w=(paper()->note_width () + width ().length ())/2.0;
+ return Offset (w, (left_pos + w* slope)*paper()->internote_f ());
}
@@ -104,10 +104,10 @@ Beam::Beam()
}
void
-Beam::add(Stem*s)
+Beam::add (Stem*s)
{
- stems.push(s);
- s->add_dependency(this);
+ stems.push (s);
+ s->add_dependency (this);
s->print_flag_b_ = false;
}
@@ -164,10 +164,10 @@ Beam::solve_slope()
if (i->invisible_b())
continue;
- Stem_info info(i);
- sinfo.push(info);
+ Stem_info info (i);
+ sinfo.push (info);
}
- if (! sinfo.size() )
+ if (! sinfo.size())
slope = left_pos = 0;
else if (sinfo.size() == 1) {
slope = 0;
@@ -178,10 +178,10 @@ Beam::solve_slope()
Least_squares l;
for (int i=0; i < sinfo.size(); i++) {
sinfo[i].x -= leftx;
- l.input.push(Offset(sinfo[i].x, sinfo[i].idealy_f_));
+ l.input.push (Offset (sinfo[i].x, sinfo[i].idealy_f_));
}
- l.minimise(slope, left_pos);
+ l.minimise (slope, left_pos);
}
Real dy = 0.0;
@@ -198,15 +198,15 @@ Beam::solve_slope()
slope *= dir_i_;
/*
- This neat trick is by Werner Lemberg, damped = tanh(slope) corresponds
+ This neat trick is by Werner Lemberg, damped = tanh (slope) corresponds
with some tables in [Wanske]
*/
- slope = 0.6 * tanh(slope);
+ slope = 0.6 * tanh (slope);
// ugh
- Real sl = slope*paper()->internote_f();
- paper()->lookup_l()->beam(sl, 20 PT);
- slope = sl /paper()->internote_f();
+ Real sl = slope*paper()->internote_f ();
+ paper()->lookup_l ()->beam (sl, 20 PT);
+ slope = sl /paper()->internote_f ();
}
void
@@ -217,7 +217,7 @@ Beam::set_stemlens()
Stem *s = stems[j];
Real x = s->hpos_f()-x0;
- s->set_stemend(left_pos + slope * x);
+ s->set_stemend (left_pos + slope * x);
}
}
@@ -226,7 +226,7 @@ void
Beam::do_post_processing()
{
if ( stems.size() < 2) {
- warning("Beam with less than 2 stems");
+ warning ("Beam with less than 2 stems");
transparent_b_ = true;
return ;
}
@@ -235,13 +235,13 @@ Beam::do_post_processing()
}
void
-Beam::set_grouping(Rhythmic_grouping def, Rhythmic_grouping cur)
+Beam::set_grouping (Rhythmic_grouping def, Rhythmic_grouping cur)
{
def.OK();
cur.OK();
- assert(cur.children.size() == stems.size());
+ assert (cur.children.size() == stems.size ());
- cur.split(def);
+ cur.split (def);
Array<int> b;
{
@@ -249,18 +249,18 @@ Beam::set_grouping(Rhythmic_grouping def, Rhythmic_grouping cur)
for (int j=0; j <stems.size(); j++) {
Stem *s = stems[j];
- int f = intlog2(abs(s->flag_i_))-2;
- assert(f>0);
- flags.push(f);
+ int f = intlog2(abs (s->flag_i_))-2;
+ assert (f>0);
+ flags.push (f);
}
int fi =0;
- b= cur.generate_beams(flags, fi);
- b.insert(0,0);
- b.push(0);
- assert(stems.size() == b.size()/2);
+ b= cur.generate_beams (flags, fi);
+ b.insert (0,0);
+ b.push (0);
+ assert (stems.size() == b.size ()/2);
}
- for (int j=0, i=0; i < b.size() && j <stems.size(); i+= 2, j++) {
+ for (int j=0, i=0; i < b.size() && j <stems.size (); i+= 2, j++) {
Stem *s = stems[j];
s->beams_left_i_ = b[i];
s->beams_right_i_ = b[i+1];
@@ -279,23 +279,23 @@ Beam::do_pre_processing()
Interval
Beam::do_width() const
{
- return Interval( stems[0]->hpos_f(),
- stems.top()->hpos_f() );
+ return Interval (stems[0]->hpos_f(),
+ stems.top()->hpos_f ());
}
/*
beams to go with one stem.
*/
Molecule
-Beam::stem_beams(Stem *here, Stem *next, Stem *prev)const
+Beam::stem_beams (Stem *here, Stem *next, Stem *prev)const
{
- assert( !next || next->hpos_f() > here->hpos_f() );
- assert( !prev || prev->hpos_f() < here->hpos_f() );
-// Real dy=paper()->internote_f()*2;
- Real dy = paper()->interbeam_f();
- Real stemdx = paper()->rule_thickness();
- Real sl = slope*paper()->internote_f();
- paper()->lookup_l()->beam(sl, 20 PT);
+ assert (!next || next->hpos_f() > here->hpos_f () );
+ assert (!prev || prev->hpos_f() < here->hpos_f () );
+// Real dy=paper()->internote_f ()*2;
+ Real dy = paper()->interbeam_f ();
+ Real stemdx = paper()->rule_thickness ();
+ Real sl = slope*paper()->internote_f ();
+ paper()->lookup_l ()->beam (sl, 20 PT);
Molecule leftbeams;
Molecule rightbeams;
@@ -304,16 +304,16 @@ Beam::stem_beams(Stem *here, Stem *next, Stem *prev)const
if (prev) {
int lhalfs= lhalfs = here->beams_left_i_ - prev->beams_right_i_ ;
int lwholebeams= here->beams_left_i_ <? prev->beams_right_i_ ;
- Real w = (here->hpos_f() - prev->hpos_f())/4;
+ Real w = (here->hpos_f() - prev->hpos_f ())/4;
Symbol dummy;
- Atom a(dummy);
+ Atom a (dummy);
if (lhalfs) // generates warnings if not
- a = paper()->lookup_l()->beam(sl, w);
- a.translate(Offset (-w, -w * sl));
+ a = paper()->lookup_l ()->beam (sl, w);
+ a.translate (Offset (-w, -w * sl));
for (int j = 0; j < lhalfs; j++) {
- Atom b(a);
- b.translate( -dir_i_ * dy * (lwholebeams+j), Y_AXIS);
- leftbeams.add( b );
+ Atom b (a);
+ b.translate (-dir_i_ * dy * (lwholebeams+j), Y_AXIS);
+ leftbeams.add (b);
}
}
@@ -321,28 +321,28 @@ Beam::stem_beams(Stem *here, Stem *next, Stem *prev)const
int rhalfs = here->beams_right_i_ - next->beams_left_i_;
int rwholebeams = here->beams_right_i_ <? next->beams_left_i_;
- Real w = next->hpos_f() - here->hpos_f();
- Atom a = paper()->lookup_l()->beam(sl, w + stemdx);
+ Real w = next->hpos_f() - here->hpos_f ();
+ Atom a = paper()->lookup_l ()->beam (sl, w + stemdx);
int j = 0;
for (; j < rwholebeams; j++) {
- Atom b(a);
- b.translate( -dir_i_ * dy * j, Y_AXIS);
- rightbeams.add( b );
+ Atom b (a);
+ b.translate (-dir_i_ * dy * j, Y_AXIS);
+ rightbeams.add (b);
}
w /= 4;
if (rhalfs)
- a = paper()->lookup_l()->beam(sl, w);
+ a = paper()->lookup_l ()->beam (sl, w);
for (; j < rwholebeams + rhalfs; j++) {
- Atom b(a);
- b.translate( -dir_i_ * dy * j, Y_AXIS);
- rightbeams.add(b );
+ Atom b (a);
+ b.translate (-dir_i_ * dy * j, Y_AXIS);
+ rightbeams.add (b);
}
}
- leftbeams.add(rightbeams);
+ leftbeams.add (rightbeams);
return leftbeams;
}
@@ -353,20 +353,20 @@ Beam::brew_molecule_p() const
Molecule *mol_p = new Molecule;
// huh? inter-what
-// Real inter_f = paper()->interbeam_f();
- Real inter_f = paper()->internote_f();
+// Real inter_f = paper()->interbeam_f ();
+ Real inter_f = paper()->internote_f ();
Real x0 = stems[0]->hpos_f();
for (int j=0; j <stems.size(); j++) {
Stem *i = stems[j];
Stem * prev = (j > 0)? stems[j-1] : 0;
Stem * next = (j < stems.size()-1) ? stems[j+1] :0;
- Molecule sb = stem_beams(i, next, prev);
+ Molecule sb = stem_beams (i, next, prev);
Real x = i->hpos_f()-x0;
- sb.translate(Offset(x, (x * slope + left_pos)* inter_f));
- mol_p->add(sb);
+ sb.translate (Offset (x, (x * slope + left_pos)* inter_f));
+ mol_p->add (sb);
}
- mol_p->translate(x0 - left_col_l_->hpos_f_, X_AXIS);
+ mol_p->translate (x0 - left_col_l_->hpos_f_, X_AXIS);
return mol_p;
}
@@ -377,15 +377,15 @@ void
Beam::do_print()const
{
#ifndef NPRINT
- mtor << "slope " <<slope << "left ypos " << left_pos;
+ DOUT << "slope " <<slope << "left ypos " << left_pos;
Spanner::do_print();
#endif
}
void
-Beam::do_substitute_dependent(Score_elem*o,Score_elem*n)
+Beam::do_substitute_dependent (Score_elem*o,Score_elem*n)
{
- if (o->is_type_b( Stem::static_name() )) {
- stems.substitute( (Stem*)o->item(), n?(Stem*) n->item():0);
+ if (o->is_type_b (Stem::static_name())) {
+ stems.substitute ((Stem*)o->item(), n?(Stem*) n->item ():0);
}
}
diff --git a/lily/bow.cc b/lily/bow.cc
index 46707624af..728f9817a6 100644
--- a/lily/bow.cc
+++ b/lily/bow.cc
@@ -23,9 +23,9 @@ Bow::center() const
{
int dy = right_pos_i_-left_pos_i_;
- Real w = width().length();
+ Real w = width().length ();
- return Offset(w/2,dy * paper()->internote_f());
+ return Offset (w/2,dy * paper()->internote_f ());
}
@@ -33,25 +33,25 @@ Molecule*
Bow::brew_molecule_p() const
{
Molecule*output = new Molecule;
- Real w = width().length();
+ Real w = width().length ();
int dy = right_pos_i_ - left_pos_i_;
- Real nw_f = paper()->note_width();
- Real nh_f = paper()->internote_f();
+ Real nw_f = paper()->note_width ();
+ Real nh_f = paper()->internote_f ();
w+= (right_dx_f_ - left_dx_f_) * nw_f ;
Real round_w = w; // slur lookup rounds the slurwidth .
- Symbol sl = paper()->lookup_l()->slur(dy , round_w, dir_i_);
+ Symbol sl = paper()->lookup_l ()->slur (dy , round_w, dir_i_);
Real error = w-round_w;
- Atom a(sl);
- a.translate(Offset((left_dx_f_ + 0.5 )*nw_f + error/2,
+ Atom a (sl);
+ a.translate (Offset ((left_dx_f_ + 0.5)*nw_f + error/2,
left_pos_i_ * nh_f));
- output->add(a);
+ output->add (a);
return output;
}
diff --git a/lily/boxes.cc b/lily/boxes.cc
index d06bfd2165..756ce87757 100644
--- a/lily/boxes.cc
+++ b/lily/boxes.cc
@@ -6,7 +6,7 @@ Box::Box()
{
}
-Box::Box(Interval ix, Interval iy)
+Box::Box (Interval ix, Interval iy)
{
x() = ix;
y() = iy;
diff --git a/lily/break.cc b/lily/break.cc
index 8edb91a8b6..2fb1935dfe 100644
--- a/lily/break.cc
+++ b/lily/break.cc
@@ -17,16 +17,16 @@
String
Col_stats::str() const {
- String s(count_i_);
+ String s (count_i_);
s += " lines";
if (count_i_)
- s += String(Real(cols_i_)/count_i_, ", (with an average of %.1f columns)");
+ s += String (Real (cols_i_)/count_i_, ", (with an average of %.1f columns)");
return s;
}
void
-Col_stats::add(Line_of_cols const& line)
+Col_stats::add (Line_of_cols const& line)
{
count_i_++;
cols_i_ += line.size();
@@ -45,10 +45,10 @@ Line_of_cols
Break_algorithm::all_cols()const
{
Line_of_cols retval;
- for (PCursor<PCol*> c(pscore_l_->col_p_list_.top());
+ for (PCursor<PCol*> c (pscore_l_->col_p_list_.top());
c.ok(); c++) {
- retval.push(c);
+ retval.push (c);
}
return retval;
}
@@ -56,16 +56,16 @@ Break_algorithm::all_cols()const
Array<int>
Break_algorithm::find_break_indices() const
{
- Line_of_cols all(all_cols());
+ Line_of_cols all (all_cols());
Array<int> retval;
for (int i=0; i < all.size(); i++)
if (all[i]->breakable_b())
- retval.push(i);
+ retval.push (i);
if ( linelength <=0)
while ( retval.size() >2)
- retval.del(1);
+ retval.del (1);
return retval;
}
@@ -74,17 +74,17 @@ Break_algorithm::find_break_indices() const
Line_of_cols
Break_algorithm::find_breaks() const
{
- Line_of_cols all(all_cols());
+ Line_of_cols all (all_cols());
Line_of_cols retval;
for (int i=0; i < all.size(); i++)
if (all[i]->breakable_b())
- retval.push(all[i]);
+ retval.push (all[i]);
if ( linelength <=0)
while ( retval.size() >2)
- retval.del(1);
+ retval.del (1);
return retval;
}
@@ -94,19 +94,19 @@ Break_algorithm::find_breaks() const
Line_spacer*
-Break_algorithm::generate_spacing_problem(Line_of_cols curline)const
+Break_algorithm::generate_spacing_problem (Line_of_cols curline)const
{
Line_spacer * sp= (*get_line_spacer)();
sp->paper_l_ = pscore_l_->paper_l_;
- sp->add_column(curline[0], true, 0.0);
+ sp->add_column (curline[0], true, 0.0);
for (int i=1; i< curline.size()-1; i++)
- sp->add_column(curline[i]);
+ sp->add_column (curline[i]);
if ( linelength > 0)
- sp->add_column(curline.top(), true, linelength);
+ sp->add_column (curline.top(), true, linelength);
else
- sp->add_column(curline.top());
+ sp->add_column (curline.top());
sp->prepare();
return sp;
@@ -120,7 +120,7 @@ Break_algorithm::Break_algorithm()
}
void
-Break_algorithm::set_pscore(Paper_score*s)
+Break_algorithm::set_pscore (Paper_score*s)
{
pscore_l_ = s;
linelength = s->paper_l_->linewidth_f();
@@ -128,14 +128,14 @@ Break_algorithm::set_pscore(Paper_score*s)
}
bool
-Break_algorithm::feasible(Line_of_cols curline) const
+Break_algorithm::feasible (Line_of_cols curline) const
{
if (linelength <= 0)
return true;
Real l =0;
for (int i=0; i < curline.size(); i++)
- l +=curline[i]->width().length();
+ l +=curline[i]->width().length ();
return l < linelength;
}
@@ -143,7 +143,7 @@ void
Break_algorithm::problem_OK() const
{
if (!pscore_l_->col_p_list_.size())
- error("Score does not have any columns");
+ error ("Score does not have any columns");
OK();
}
@@ -151,11 +151,11 @@ void
Break_algorithm::OK()const
{
#ifndef NDEBUG
- iter_top(pscore_l_->col_p_list_,start);
+ iter_top (pscore_l_->col_p_list_,start);
PCursor<PCol *> end (pscore_l_->col_p_list_.bottom());
- assert(start->breakable_b());
- assert(end->breakable_b());
+ assert (start->breakable_b());
+ assert (end->breakable_b());
#endif
}
diff --git a/lily/clef-grav.cc b/lily/clef-grav.cc
index a4426bcea2..93abaf2931 100644
--- a/lily/clef-grav.cc
+++ b/lily/clef-grav.cc
@@ -19,11 +19,11 @@ Clef_engraver::Clef_engraver()
clef_p_ = 0;
clef_req_l_ =0;
- set_type("violin");
+ set_type ("violin");
}
bool
-Clef_engraver::set_type(String s)
+Clef_engraver::set_type (String s)
{
clef_type_str_ = s;
if (clef_type_str_ == "violin") {
@@ -41,23 +41,23 @@ Clef_engraver::set_type(String s)
}
void
-Clef_engraver::fill_staff_info(Staff_info &i)
+Clef_engraver::fill_staff_info (Staff_info &i)
{
i.c0_position_i_l_ = &c0_position_i_;
}
void
-Clef_engraver::read_req(Clef_change_req*c_l)
+Clef_engraver::read_req (Clef_change_req*c_l)
{
- if (!set_type(c_l->clef_str_))
- c_l->error("unknown clef type ");
+ if (!set_type (c_l->clef_str_))
+ c_l->error ("unknown clef type ");
}
void
-Clef_engraver::acknowledge_element(Score_elem_info info)
+Clef_engraver::acknowledge_element (Score_elem_info info)
{
- if (info.elem_l_->name() == Bar::static_name() ) {
+ if (info.elem_l_->name() == Bar::static_name ()) {
create_clef();
- if ( !clef_req_l_ )
+ if ( !clef_req_l_)
clef_p_->default_b_ = true;
}
}
@@ -70,7 +70,7 @@ Clef_engraver::do_creation_processing()
}
bool
-Clef_engraver::do_try_request(Request * r_l)
+Clef_engraver::do_try_request (Request * r_l)
{
Command_req* creq_l= r_l->command();
if (!creq_l || !creq_l->clefchange())
@@ -78,7 +78,7 @@ Clef_engraver::do_try_request(Request * r_l)
clef_req_l_ = creq_l->clefchange();
- read_req(clef_req_l_);
+ read_req (clef_req_l_);
return true;
}
@@ -87,9 +87,9 @@ Clef_engraver::create_clef()
{
if (!clef_p_) {
clef_p_ = new Clef_item;
- announce_element(Score_elem_info(clef_p_,clef_req_l_));
+ announce_element (Score_elem_info (clef_p_,clef_req_l_));
}
- clef_p_->read(*this);
+ clef_p_->read (*this);
}
void
@@ -106,7 +106,7 @@ Clef_engraver::do_pre_move_processing()
{
if (!clef_p_)
return;
- typeset_element(clef_p_);
+ typeset_element (clef_p_);
clef_p_ = 0;
}
diff --git a/lily/clef-item.cc b/lily/clef-item.cc
index 67742488ca..b1a9c4a665 100644
--- a/lily/clef-item.cc
+++ b/lily/clef-item.cc
@@ -30,11 +30,11 @@ Clef_item::Clef_item()
breakable_b_ =true;
default_b_ = false;
change_b_ = true;
- read("violin");
+ read ("violin");
}
void
-Clef_item::read(String t)
+Clef_item::read (String t)
{
type_= t;
if (type_ == "violin")
@@ -47,9 +47,9 @@ Clef_item::read(String t)
y_off = 6;
}
void
-Clef_item::read(Clef_engraver const &k)
+Clef_item::read (Clef_engraver const &k)
{
- read(k.clef_type_str_);
+ read (k.clef_type_str_);
}
Molecule*
@@ -58,9 +58,9 @@ Clef_item::brew_molecule_p()const
String t = type_;
if (change_b_)
t += "_change";
- Symbol s = paper()->lookup_l()->clef(t);
- Molecule*output = new Molecule(Atom(s));
- output->translate( paper()->internote_f() * y_off, Y_AXIS);
+ Symbol s = paper()->lookup_l ()->clef (t);
+ Molecule*output = new Molecule (Atom (s));
+ output->translate (paper()->internote_f () * y_off, Y_AXIS);
return output;
}
diff --git a/lily/col-info.cc b/lily/col-info.cc
index e54d421b3a..deb2dee730 100644
--- a/lily/col-info.cc
+++ b/lily/col-info.cc
@@ -14,19 +14,19 @@ void
Colinfo::print() const
{
#ifndef NPRINT
- mtor << "column { ";
+ DOUT << "column { ";
if (fixed())
- mtor << "fixed at " << fixed_position()<<", ";
- assert(pcol_l_);
- mtor << "[" << minleft() << ", " << minright() << "]";
- mtor <<"}\n";
+ DOUT << "fixed at " << fixed_position()<<", ";
+ assert (pcol_l_);
+ DOUT << "[" << minleft() << ", " << minright () << "]";
+ DOUT <<"}\n";
#endif
}
-Colinfo::Colinfo(PCol *col_l, Real const *fixed_C)
+Colinfo::Colinfo (PCol *col_l, Real const *fixed_C)
{
if (fixed_C)
- fixpos_p_.set_l(fixed_C);
+ fixpos_p_.set_l (fixed_C);
ugh_b_ = false;
pcol_l_ = col_l;
width = pcol_l_->width();
diff --git a/lily/colhpos.cc b/lily/colhpos.cc
index aade26ac49..23d42e65ff 100644
--- a/lily/colhpos.cc
+++ b/lily/colhpos.cc
@@ -26,19 +26,19 @@ Col_hpositions::~Col_hpositions()
}
void
-Col_hpositions::add( PCol*c)
+Col_hpositions::add (PCol*c)
{
- cols.push(c);
+ cols.push (c);
}
void
Col_hpositions::print() const
{
#ifndef NPRINT
- mtor << "energy : " << energy_f_ << '\n';
- mtor << "line of " << config.size() << " cols\n";
- Vector v(config);
- mtor << v;
+ DOUT << "energy : " << energy_f_ << '\n';
+ DOUT << "line of " << config.size() << " cols\n";
+ Vector v (config);
+ DOUT << v;
#endif
}
@@ -46,7 +46,7 @@ void
Col_hpositions::OK()const
{
#ifndef NDEBUG
- assert(config.size() == cols.size());
+ assert (config.size() == cols.size ());
#endif
}
@@ -61,14 +61,14 @@ Col_hpositions::stupid_solution()
void
Col_hpositions::solve_line()
{
- spacer_l_->solve(this);
+ spacer_l_->solve (this);
}
void
Col_hpositions::approximate_solve_line()
{
- spacer_l_->lower_bound_solution(this);
+ spacer_l_->lower_bound_solution (this);
}
diff --git a/lily/collision-grav.cc b/lily/collision-grav.cc
index 8eaa7cd30f..600703bcd2 100644
--- a/lily/collision-grav.cc
+++ b/lily/collision-grav.cc
@@ -11,23 +11,23 @@
#include "collision.hh"
void
-Collision_engraver::acknowledge_element(Score_elem_info i)
+Collision_engraver::acknowledge_element (Score_elem_info i)
{
- if (!(i.elem_l_->name() == Note_column::static_name()))
+ if (!(i.elem_l_->name() == Note_column::static_name ()))
return;
if (!col_p_) {
col_p_ = new Collision;
- announce_element(Score_elem_info(col_p_,0));
+ announce_element (Score_elem_info (col_p_,0));
}
- col_p_->add((Note_column*)i.elem_l_->item());
+ col_p_->add ((Note_column*)i.elem_l_->item());
}
void
Collision_engraver::do_pre_move_processing()
{
if (col_p_) {
- typeset_element(col_p_);
+ typeset_element (col_p_);
col_p_ =0;
}
}
diff --git a/lily/collision.cc b/lily/collision.cc
index 0af68c462e..798c74be45 100644
--- a/lily/collision.cc
+++ b/lily/collision.cc
@@ -13,25 +13,24 @@
Collision::Collision()
{
- empty_b_ = transparent_b_ =true;
}
void
-Collision::add(Note_column* ncol_l)
+Collision::add (Note_column* ncol_l)
{
- clash_l_arr_.push(ncol_l);
- add_element( ncol_l );
- add_dependency(ncol_l);
+ clash_l_arr_.push (ncol_l);
+ add_element (ncol_l);
+ add_dependency (ncol_l);
}
/**
should derive of Array.
*/
static
-int idx(int dir, bool h_shift_b)
+int idx (int dir, bool h_shift_b)
{
- assert(abs (dir) == 1);
+ assert (abs (dir) == 1);
int j = dir > 0 ? 0 : 3;
- if ( h_shift_b )
+ if ( h_shift_b)
j += dir;
return j;
}
@@ -63,21 +62,21 @@ Collision::do_pre_processing()
}
int d = (c_l->dir_i_);
- clash_group_arr_a[idx(d, c_l->h_shift_b_)].push(c_l);
+ clash_group_arr_a[idx (d, c_l->h_shift_b_)].push (c_l);
}
for (int j=0; j < 4; j++) {
if (clash_group_arr_a[j].size() > 1) {
- warning("Too many clashing notecolumns. Ignoring them.");
+ warning ("Too many clashing notecolumns. Ignoring them.");
return;
}
}
int d = 1;
do {
- if (!clash_group_arr_a[idx(d, false)].size()){
- clash_group_arr_a[idx(d, false)] = clash_group_arr_a[idx(d, true)];
- clash_group_arr_a[idx(d, true)].clear();
+ if (!clash_group_arr_a[idx (d, false)].size()){
+ clash_group_arr_a[idx (d, false)] = clash_group_arr_a[idx (d, true)];
+ clash_group_arr_a[idx (d, true)].clear();
}
} while ((d *= -1) != 1);
@@ -103,44 +102,44 @@ Collision::do_pre_processing()
}
do {
- x_off[idx(d, true)] = d*0.5;
+ x_off[idx (d, true)] = d*0.5;
} while ((d *= -1) != 1);
// y_extent: smallest y-pos noteball interval containing all balls
// 4 (0..3) groups: stem up/down; shift on/off;
- Interval_t<int> middle( y_extent[idx(-1,0)].max(),
- y_extent[idx(1,0)].min() );
- Interval_t<int> open_middle( y_extent[idx(-1,0)].max()+1, y_extent[idx(1,0)].min()-1);
+ Interval_t<int> middle (y_extent[idx (-1,0)].max(),
+ y_extent[idx (1,0)].min());
+ Interval_t<int> open_middle (y_extent[idx (-1,0)].max()+1, y_extent[idx (1,0)].min ()-1);
do{
- if (!open_middle.contains_b(y_extent[idx(d,true)]))
- x_off[idx(d, true)] = d *1.0 ;
+ if (!open_middle.contains_b (y_extent[idx (d,true)]))
+ x_off[idx (d, true)] = d *1.0 ;
} while ((d *= -1) != 1);
if (!middle.empty_b()
- && middle.length() < 2 && col_l_a[idx(1,0)] && col_l_a[idx(-1,0)]) {
+ && middle.length() < 2 && col_l_a[idx (1,0)] && col_l_a[idx (-1,0)]) {
// reproduction of bugfix at 3am ?
- Note_head * nu_l= col_l_a[idx(1,0)]->head_l_arr_[0];
- Note_head * nd_l = col_l_a[idx(-1,0)]->head_l_arr_.top();
+ Note_head * nu_l= col_l_a[idx (1,0)]->head_l_arr_[0];
+ Note_head * nd_l = col_l_a[idx (-1,0)]->head_l_arr_.top();
if (! (nu_l->balltype_i_ == nd_l->balltype_i_
- && nu_l->dots_i_ == nd_l->dots_i_ && middle.length() == 0 )) {
- x_off[idx(1,0)] -= 0.5;
- x_off[idx(1,1)] -= 0.5;
- x_off[idx(-1,1)] += 0.5;
- x_off[idx(-1,0)] += 0.5;
+ && nu_l->dots_i_ == nd_l->dots_i_ && middle.length() == 0)) {
+ x_off[idx (1,0)] -= 0.5;
+ x_off[idx (1,1)] -= 0.5;
+ x_off[idx (-1,1)] += 0.5;
+ x_off[idx (-1,0)] += 0.5;
}
}
- Real inter_f = paper()->internote_f();
- Real wid_f = paper()->note_width();
+ Real inter_f = paper()->internote_f ();
+ Real wid_f = paper()->note_width ();
for (int j=0; j < 4; j++) {
if (col_l_a[j]) {
/* collision.cc:138: request for method `translate' is ambiguous
(shaddup)
*/
- Offset o(x_off[j] * wid_f, y_off[j] * inter_f);
- ((Score_elem*)col_l_a[j])->translate(o);
+ Offset o (x_off[j] * wid_f, y_off[j] * inter_f);
+ ((Score_elem*)col_l_a[j])->translate (o);
}
}
}
@@ -149,8 +148,8 @@ Collision::do_pre_processing()
IMPLEMENT_IS_TYPE_B1(Collision, Item);
void
-Collision::do_substitute_dependency(Score_elem*o_l,Score_elem*n_l)
+Collision::do_substitute_dependency (Score_elem*o_l,Score_elem*n_l)
{
- clash_l_arr_.substitute((Note_column*)o_l->item(),
+ clash_l_arr_.substitute ((Note_column*)o_l->item(),
(Note_column*)(n_l?n_l->item():0));
}
diff --git a/lily/command-request.cc b/lily/command-request.cc
index 9fe1c9118b..1c77d60f0f 100644
--- a/lily/command-request.cc
+++ b/lily/command-request.cc
@@ -24,19 +24,19 @@ void
Cadenza_req::do_print()const
{
#ifndef NPRINT
- mtor << on_b_;
+ DOUT << on_b_;
#endif
}
bool
-Cadenza_req::do_equal_b(Request*r)const
+Cadenza_req::do_equal_b (Request*r)const
{
- Cadenza_req*cad = r->command()->timing()->cadenza();
+ Cadenza_req*cad = r->command()->timing ()->cadenza ();
return cad->on_b_ == on_b_;
}
-Cadenza_req::Cadenza_req(bool b)
+Cadenza_req::Cadenza_req (bool b)
{
on_b_ =b;
}
@@ -44,9 +44,9 @@ Cadenza_req::Cadenza_req(bool b)
bool
-Bar_req::do_equal_b(Request*r)const
+Bar_req::do_equal_b (Request*r)const
{
- Bar_req * b = r->command()->bar();
+ Bar_req * b = r->command()->bar ();
return type_str_ == b->type_str_;
}
@@ -56,23 +56,23 @@ IMPLEMENT_IS_TYPE_B1(Bar_req,Command_req);
void
Bar_req::do_print() const
{
- mtor << type_str_;
+ DOUT << type_str_;
}
-Bar_req::Bar_req(String s)
+Bar_req::Bar_req (String s)
{
type_str_ = s;
}
-Partial_measure_req::Partial_measure_req(Moment m)
+Partial_measure_req::Partial_measure_req (Moment m)
{
duration_ =m;
}
bool
-Partial_measure_req::do_equal_b(Request* r)const
+Partial_measure_req::do_equal_b (Request* r)const
{
- Partial_measure_req *p = r->command()->timing()->partial();
+ Partial_measure_req *p = r->command()->timing ()->partial ();
return p->duration_ == duration_;
}
@@ -103,7 +103,7 @@ void
Barcheck_req::do_print() const{}
bool
-Barcheck_req::do_equal_b(Request*)const
+Barcheck_req::do_equal_b (Request*)const
{
return true;
}
@@ -115,11 +115,11 @@ void
Clef_change_req::do_print() const
{
#ifndef NPRINT
- mtor << clef_str_ ;
+ DOUT << clef_str_ ;
#endif
}
-Clef_change_req::Clef_change_req(String s)
+Clef_change_req::Clef_change_req (String s)
{
clef_str_ = s;
}
@@ -131,7 +131,7 @@ void
Group_feature_req::do_print() const
{
#ifndef NPRINT
- mtor << type_str_ << "=" << value_str_;
+ DOUT << type_str_ << "=" << value_str_;
#endif
}
@@ -143,7 +143,7 @@ IMPLEMENT_IS_TYPE_B1(Partial_measure_req,Timing_req);
void
Partial_measure_req::do_print() const
{
- mtor << duration_;
+ DOUT << duration_;
}
@@ -153,14 +153,14 @@ void
Meter_change_req::do_print() const
{
#ifndef NPRINT
- mtor << beats_i_ << "/" << one_beat_i_;
+ DOUT << beats_i_ << "/" << one_beat_i_;
#endif
}
bool
-Meter_change_req::do_equal_b(Request * r)const
+Meter_change_req::do_equal_b (Request * r)const
{
- Meter_change_req * m = r->command()->timing()->meterchange();
+ Meter_change_req * m = r->command()->timing ()->meterchange ();
return m->beats_i_ == beats_i_
&& one_beat_i_ == m->one_beat_i_;
@@ -173,7 +173,7 @@ Meter_change_req::Meter_change_req()
}
void
-Meter_change_req::set(int b,int o)
+Meter_change_req::set (int b,int o)
{
beats_i_=b;
one_beat_i_=o;
@@ -189,16 +189,16 @@ Tempo_req::Tempo_req()
void
Tempo_req::do_print()const
{
- mtor << dur_.str() << " = " <<metronome_i_ ;
+ DOUT << dur_.str() << " = " <<metronome_i_ ;
}
IMPLEMENT_IS_TYPE_B1(Tempo_req, Timing_req);
bool
-Tempo_req::do_equal_b(Request *r)const
+Tempo_req::do_equal_b (Request *r)const
{
- Tempo_req *t = r->command()->timing()->tempo();
+ Tempo_req *t = r->command()->timing ()->tempo ();
- return t->dur_.length()== dur_.length() && metronome_i_ == t->metronome_i_;
+ return t->dur_.length()== dur_.length () && metronome_i_ == t->metronome_i_;
}
/* *************** */
@@ -210,13 +210,13 @@ void
Measure_grouping_req::do_print() const
{
for (int i=0; i < elt_length_arr_.size(); i++) {
- mtor << beat_i_arr_[i] <<"*" << elt_length_arr_[i]<<" ";
+ DOUT << beat_i_arr_[i] <<"*" << elt_length_arr_[i]<<" ";
}
}
bool
-Measure_grouping_req::do_equal_b(Request*)const
+Measure_grouping_req::do_equal_b (Request*)const
{
return false; // todo
}
@@ -224,11 +224,11 @@ Measure_grouping_req::do_equal_b(Request*)const
/* *************** */
void
-Key_change_req::transpose(Melodic_req const & d)const
+Key_change_req::transpose (Melodic_req const & d)const
{
WARN << "don't know how to transpose a key. \n";
for (int i=0; i < melodic_p_arr_.size(); i++) {
- melodic_p_arr_[i]->transpose(d);
+ melodic_p_arr_[i]->transpose (d);
}
}
@@ -258,10 +258,10 @@ Key_change_req::Key_change_req()
multi_octave_b_= false;
}
-Key_change_req::Key_change_req(Key_change_req const&c)
+Key_change_req::Key_change_req (Key_change_req const&c)
{
for (int i=0; i < c.melodic_p_arr_.size(); i++)
- melodic_p_arr_.push( c.melodic_p_arr_[i]->clone()->musical()->melodic() );
+ melodic_p_arr_.push (c.melodic_p_arr_[i]->clone()->musical ()->melodic ());
minor_b_ = c.minor_b_;
multi_octave_b_ = c.multi_octave_b_;
}
@@ -276,10 +276,10 @@ int
Key_change_req::flats_i()
{
int flats_i = 0;
- for ( int i = 0; i < melodic_p_arr_.size(); i++ ) {
+ for ( int i = 0; i < melodic_p_arr_.size(); i++) {
Melodic_req* mel_l = melodic_p_arr_[i]->melodic();
- assert( mel_l );
- if ( mel_l->accidental_i_ < 0 )
+ assert (mel_l);
+ if ( mel_l->accidental_i_ < 0)
flats_i -= mel_l->accidental_i_;
}
return flats_i;
@@ -295,10 +295,10 @@ int
Key_change_req::sharps_i()
{
int sharps_i = 0;
- for ( int i = 0; i < melodic_p_arr_.size(); i++ ) {
+ for ( int i = 0; i < melodic_p_arr_.size(); i++) {
Melodic_req* mel_l = melodic_p_arr_[i]->melodic();
- assert( mel_l );
- if ( mel_l->accidental_i_ > 0 )
+ assert (mel_l);
+ if ( mel_l->accidental_i_ > 0)
sharps_i+= mel_l->accidental_i_;
}
return sharps_i;
diff --git a/lily/crescendo.cc b/lily/crescendo.cc
index 8f604dbcba..574b91c9ff 100644
--- a/lily/crescendo.cc
+++ b/lily/crescendo.cc
@@ -32,20 +32,20 @@ static Real absdyn_dim = 10 PT; // ugh
Symbol
Crescendo::get_symbol()const
{
- Real w_dim = width().length();
- if ( left_dyn_b_ ) {
+ Real w_dim = width().length ();
+ if ( left_dyn_b_) {
w_dim -= absdyn_dim;
}
- if ( right_dyn_b_ ) {
+ if ( right_dyn_b_) {
w_dim -= absdyn_dim;
}
if (w_dim < 0) {
- warning("Crescendo too small");
+ warning ("Crescendo too small");
w_dim = 0;
}
- return Symbol( paper()->lookup_l()->hairpin( w_dim, grow_dir_i_ < 0) );
+ return Symbol (paper()->lookup_l ()->hairpin (w_dim, grow_dir_i_ < 0));
}
Molecule*
@@ -57,9 +57,9 @@ Crescendo::brew_molecule_p() const
x_off_dim += absdyn_dim;
m_p = new Molecule;
- Symbol s(get_symbol());
- m_p->add(Atom(s));
- m_p->translate(Offset(x_off_dim, pos_i_ * paper()->internote_f()));
+ Symbol s (get_symbol());
+ m_p->add (Atom (s));
+ m_p->translate (Offset (x_off_dim, pos_i_ * paper()->internote_f ()));
return m_p;
}
diff --git a/lily/debug.cc b/lily/debug.cc
index 654578dcb1..964353f348 100644
--- a/lily/debug.cc
+++ b/lily/debug.cc
@@ -14,8 +14,8 @@ ostream * nulldev =0;
// ugh
struct _Dinit {
_Dinit() {
- nulldev = new ofstream("/dev/null");
- monitor = new Dstream(&cout,".dstreamrc");
+ nulldev = new ofstream ("/dev/null");
+ monitor = new Dstream (&cout,".dstreamrc");
}
~_Dinit() {
delete nulldev;
@@ -31,14 +31,14 @@ struct _Dinit {
void
mynewhandler()
{
- assert(false);
+ assert (false);
}
void
-float_handler(int)
+float_handler (int)
{
cerr << "Floating point exception .. \n"<< flush;
- assert(false);
+ assert (false);
}
/// just to make sure print_rat is linked in
@@ -49,20 +49,20 @@ debug_init()
{
rat_printer = print_rat;
#ifndef NDEBUG
- set_new_handler(&mynewhandler);
+ set_new_handler (&mynewhandler);
#endif
- set_flower_debug(*monitor, check_debug);
+ set_flower_debug (*monitor, check_debug);
- signal(SIGFPE, float_handler);
+ signal (SIGFPE, float_handler);
}
bool check_debug=false;
void
-set_debug(bool b)
+set_debug (bool b)
{
check_debug =b;
- set_flower_debug(*monitor, check_debug);
+ set_flower_debug (*monitor, check_debug);
}
diff --git a/lily/dimen.cc b/lily/dimen.cc
index e609836a46..4809adb951 100644
--- a/lily/dimen.cc
+++ b/lily/dimen.cc
@@ -4,20 +4,20 @@
#include "string.hh"
Real
-parse_dimen(String dim)
+parse_dimen (String dim)
{
int i=dim.length_i()-1;
char const *s = dim;
- while (i > 0 && (isspace(s[i]) || isalpha(s[i])) ){
+ while (i > 0 && (isspace (s[i]) || isalpha (s[i]))){
i--;
}
- String unit(s + i+1);
- return convert_dimen(dim.value_f(), unit);
+ String unit (s + i+1);
+ return convert_dimen (dim.value_f(), unit);
}
Real
-convert_dimen(Real quant, String unit)
+convert_dimen (Real quant, String unit)
{
if (unit == "cm")
return quant * CM_TO_PT;
@@ -31,9 +31,9 @@ convert_dimen(Real quant, String unit)
}
String
-print_dimen(Real r)
+print_dimen (Real r)
{
- String s(r, "%.3f");
+ String s (r, "%.3f");
s += "pt ";
return s;
}
diff --git a/lily/dynamic-grav.cc b/lily/dynamic-grav.cc
index 72d76607df..6bfe5585d7 100644
--- a/lily/dynamic-grav.cc
+++ b/lily/dynamic-grav.cc
@@ -32,12 +32,12 @@ Dynamic_engraver::do_post_move_processing()
}
bool
-Dynamic_engraver::do_try_request(Request * r)
+Dynamic_engraver::do_try_request (Request * r)
{
Musical_req * m = r->musical();
if (!m || !m->dynamic())
return false;
- dynamic_req_l_arr_.push(m->dynamic());
+ dynamic_req_l_arr_.push (m->dynamic());
return true;
}
void
@@ -49,40 +49,40 @@ Dynamic_engraver::do_process_requests()
if (dreq_l->absdynamic()) {
Text_def * td_p = new Text_def;
td_p->align_i_ = 0;
- String loud =Dynamic_req::loudness_str(
+ String loud =Dynamic_req::loudness_str (
dreq_l->absdynamic()->loudness_);
- td_p->text_str_ = paper()->lookup_l()->dynamic(loud).tex;
+ td_p->text_str_ = paper()->lookup_l ()->dynamic (loud).tex;
td_p->style_str_ = "dynamic";
assert (!dynamic_p_) ; // TODO
- dynamic_p_ = new Text_item(td_p);
- announce_element(Score_elem_info(dynamic_p_, dreq_l));
+ dynamic_p_ = new Text_item (td_p);
+ announce_element (Score_elem_info (dynamic_p_, dreq_l));
} else if (dreq_l->span_dynamic()) {
Span_dynamic_req* span_l = dreq_l->span_dynamic();
if (span_l->spantype == Span_req::STOP) {
if (!cresc_p_) {
- span_l->warning("Can't find cresc to end " );
+ span_l->warning ("Can't find cresc to end ");
} else {
- assert(!to_end_cresc_p_);
+ assert (!to_end_cresc_p_);
to_end_cresc_p_ =cresc_p_;
cresc_p_ = 0;
}
} else if (span_l->spantype == Span_req::START) {
cresc_req_l_ = span_l;
- assert(!new_cresc_p);
+ assert (!new_cresc_p);
new_cresc_p = new Crescendo;
new_cresc_p->grow_dir_i_ = span_l->dynamic_dir_i_;
- announce_element(Score_elem_info(new_cresc_p, span_l));
+ announce_element (Score_elem_info (new_cresc_p, span_l));
}
}
}
- if ( new_cresc_p ) {
+ if ( new_cresc_p) {
cresc_p_ = new_cresc_p;
- cresc_p_->left_col_l_ = get_staff_info().musical_l();
+ cresc_p_->left_col_l_ = get_staff_info().musical_l ();
if (dynamic_p_) {
cresc_p_->left_dyn_b_ = true;
}
@@ -94,23 +94,23 @@ Dynamic_engraver::do_pre_move_processing()
{
Staff_symbol* s_l = get_staff_info().staff_sym_l_;
if (dynamic_p_) {
- dynamic_p_->set_staffsym(s_l);
- typeset_element(dynamic_p_);
+ dynamic_p_->set_staffsym (s_l);
+ typeset_element (dynamic_p_);
dynamic_p_ = 0;
}
if ( to_end_cresc_p_) {
if (dynamic_p_)
to_end_cresc_p_->right_dyn_b_=true;
- to_end_cresc_p_->right_col_l_ = get_staff_info().musical_l();
- to_end_cresc_p_->set_staffsym(s_l);
- typeset_element(to_end_cresc_p_);
+ to_end_cresc_p_->right_col_l_ = get_staff_info().musical_l ();
+ to_end_cresc_p_->set_staffsym (s_l);
+ typeset_element (to_end_cresc_p_);
to_end_cresc_p_ = 0;
}
}
void
-Dynamic_engraver::set_feature(Feature i)
+Dynamic_engraver::set_feature (Feature i)
{
if (i.type_ == "vdir")
dir_i_ = i.value_;
@@ -125,18 +125,18 @@ Dynamic_engraver::~Dynamic_engraver()
delete dynamic_p_;
delete to_end_cresc_p_;
if (cresc_p_) {
- cresc_req_l_->warning("unended crescendo");
+ cresc_req_l_->warning ("unended crescendo");
}
delete cresc_p_;
}
void
-Dynamic_engraver::acknowledge_element(Score_elem_info i)
+Dynamic_engraver::acknowledge_element (Score_elem_info i)
{
- if (i.elem_l_->name() == Note_column::static_name()) {
- if (dynamic_p_) dynamic_p_->add_support(i.elem_l_);
+ if (i.elem_l_->name() == Note_column::static_name ()) {
+ if (dynamic_p_) dynamic_p_->add_support (i.elem_l_);
if (to_end_cresc_p_)
- to_end_cresc_p_->add_support(i.elem_l_);
+ to_end_cresc_p_->add_support (i.elem_l_);
if (cresc_p_)
- cresc_p_->add_support(i.elem_l_);
+ cresc_p_->add_support (i.elem_l_);
}
}
diff --git a/lily/elem-group.cc b/lily/elem-group.cc
index 5115c5c70b..e1902867ad 100644
--- a/lily/elem-group.cc
+++ b/lily/elem-group.cc
@@ -19,9 +19,9 @@ Axis_group_element::do_unlink()
bool
-Axis_group_element::contains_b(Score_elem const*e)const
+Axis_group_element::contains_b (Score_elem const*e)const
{
- return axis_admin_.contains_b(e);
+ return axis_admin_.contains_b (e);
}
Link_array<Score_elem>
@@ -40,53 +40,53 @@ Axis_group_element::do_print()const
void
-Vertical_group_element::add_element(Score_elem*e)
+Vertical_group_element::add_element (Score_elem*e)
{
- axis_admin_.add_element(e, this, Y_AXIS, Y_AXIS);
+ axis_admin_.add_element (e, this, Y_AXIS, Y_AXIS);
}
void
-Vertical_group_element::remove_element(Score_elem*e)
+Vertical_group_element::remove_element (Score_elem*e)
{
- axis_admin_.remove_element(e, Y_AXIS, Y_AXIS);
+ axis_admin_.remove_element (e, Y_AXIS, Y_AXIS);
}
Interval
Vertical_group_element::do_height() const
{
- return axis_admin_.extent(Y_AXIS);
+ return axis_admin_.extent (Y_AXIS);
}
void
Vertical_group_element::remove_all()
{
- axis_admin_.remove_all(Y_AXIS,Y_AXIS);
+ axis_admin_.remove_all (Y_AXIS,Y_AXIS);
}
// ****************
void
Horizontal_group_element::remove_all()
{
- axis_admin_.remove_all(X_AXIS,X_AXIS);
+ axis_admin_.remove_all (X_AXIS,X_AXIS);
}
void
-Horizontal_group_element::add_element(Score_elem*e)
+Horizontal_group_element::add_element (Score_elem*e)
{
- axis_admin_.add_element(e,this, X_AXIS,X_AXIS);
+ axis_admin_.add_element (e,this, X_AXIS,X_AXIS);
}
void
-Horizontal_group_element::remove_element(Score_elem*e)
+Horizontal_group_element::remove_element (Score_elem*e)
{
- axis_admin_.remove_element(e,X_AXIS,X_AXIS);
+ axis_admin_.remove_element (e,X_AXIS,X_AXIS);
}
Interval
Horizontal_group_element::do_width()const
{
- return axis_admin_.extent(X_AXIS);
+ return axis_admin_.extent (X_AXIS);
}
@@ -95,18 +95,18 @@ Horizontal_group_element::do_width()const
void
Horizontal_vertical_group_element::remove_all()
{
- axis_admin_.remove_all(X_AXIS,Y_AXIS);
+ axis_admin_.remove_all (X_AXIS,Y_AXIS);
}
void
-Horizontal_vertical_group_element::add_element(Score_elem *e)
+Horizontal_vertical_group_element::add_element (Score_elem *e)
{
- axis_admin_.add_element(e, this, X_AXIS, Y_AXIS);
+ axis_admin_.add_element (e, this, X_AXIS, Y_AXIS);
}
void
-Horizontal_vertical_group_element::remove_element(Score_elem*e)
+Horizontal_vertical_group_element::remove_element (Score_elem*e)
{
- axis_admin_.remove_element(e, X_AXIS, Y_AXIS);
+ axis_admin_.remove_element (e, X_AXIS, Y_AXIS);
}
diff --git a/lily/engraver-group.cc b/lily/engraver-group.cc
index 69038b5024..acf0c2587e 100644
--- a/lily/engraver-group.cc
+++ b/lily/engraver-group.cc
@@ -15,7 +15,7 @@
#include "score-elem.hh"
#include "input-translator.hh"
-Engraver* get_engraver_p(String);
+Engraver* get_engraver_p (String);
void
Engraver_group_engraver::print()const
@@ -25,16 +25,16 @@ Engraver_group_engraver::print()const
Engraver_group_engraver::~Engraver_group_engraver()
{
- assert(removable_b());
+ assert (removable_b());
}
void
Engraver_group_engraver::check_removal()
{
- for (int i =0; i < group_l_arr_.size(); ) {
+ for (int i =0; i < group_l_arr_.size();) {
group_l_arr_[i]->check_removal();
if (group_l_arr_[i]->removable_b())
- terminate_engraver(group_l_arr_[i]);
+ terminate_engraver (group_l_arr_[i]);
else
i++;
}
@@ -52,21 +52,21 @@ Engraver_group_engraver::Engraver_group_engraver()
}
void
-Engraver_group_engraver::set_feature(Feature d)
+Engraver_group_engraver::set_feature (Feature d)
{
- PCursor<Engraver*> i(grav_list_.top());
+ PCursor<Engraver*> i (grav_list_.top());
// why the while construct?
while (i.ok()) {
// this construction to ensure clean deletion
Engraver *grav_l = i++;
- grav_l->set_feature(d);
+ grav_l->set_feature (d);
}
}
void
Engraver_group_engraver::sync_features()
{
- PCursor<Engraver*> i(grav_list_.top());
+ PCursor<Engraver*> i (grav_list_.top());
while (i.ok()) {
Engraver *grav_l = i++;
grav_l->sync_features();
@@ -76,7 +76,7 @@ Engraver_group_engraver::sync_features()
void
Engraver_group_engraver::do_pre_move_processing()
{
- PCursor<Engraver*> i(grav_list_.top());
+ PCursor<Engraver*> i (grav_list_.top());
while (i.ok()) {
Engraver *grav_l = i++;
grav_l->pre_move_processing();
@@ -86,7 +86,7 @@ Engraver_group_engraver::do_pre_move_processing()
void
Engraver_group_engraver::do_process_requests()
{
- PCursor<Engraver*> i(grav_list_.top());
+ PCursor<Engraver*> i (grav_list_.top());
while (i.ok()) {
Engraver *grav_l = i++;
grav_l->process_requests();
@@ -97,7 +97,7 @@ Engraver_group_engraver::do_process_requests()
void
Engraver_group_engraver::do_post_move_processing()
{
- PCursor<Engraver*> i(grav_list_.top());
+ PCursor<Engraver*> i (grav_list_.top());
while (i.ok()) {
// this construction to ensure clean deletion
Engraver *grav_l = i++;
@@ -107,14 +107,14 @@ Engraver_group_engraver::do_post_move_processing()
bool
-Engraver_group_engraver::contains_b(Engraver* grav_l)const
+Engraver_group_engraver::contains_b (Engraver* grav_l)const
{
- bool parent_b = Engraver::contains_b(grav_l);
+ bool parent_b = Engraver::contains_b (grav_l);
if (parent_b)
return true;
- for (PCursor<Engraver*> i(grav_list_.top()); i.ok(); i++)
- if (i->contains_b(grav_l))
+ for (PCursor<Engraver*> i (grav_list_.top()); i.ok (); i++)
+ if (i->contains_b (grav_l))
return true;
return false;
}
@@ -122,52 +122,52 @@ Engraver_group_engraver::contains_b(Engraver* grav_l)const
bool
-Engraver_group_engraver::do_try_request(Request*req_l)
+Engraver_group_engraver::do_try_request (Request*req_l)
{
bool hebbes_b =false;
for (int i =0; !hebbes_b && i < nongroup_l_arr_.size() ; i++)
- hebbes_b =nongroup_l_arr_[i]->try_request(req_l);
+ hebbes_b =nongroup_l_arr_[i]->try_request (req_l);
if (!hebbes_b && daddy_grav_l_)
- hebbes_b = daddy_grav_l_->try_request(req_l);
+ hebbes_b = daddy_grav_l_->try_request (req_l);
return hebbes_b ;
}
bool
-Engraver_group_engraver::try_request(Request* r)
+Engraver_group_engraver::try_request (Request* r)
{
- return Engraver::try_request(r);
+ return Engraver::try_request (r);
}
void
-Engraver_group_engraver::add(Engraver *grav_p)
+Engraver_group_engraver::add (Engraver *grav_p)
{
- grav_list_.bottom().add(grav_p);
+ grav_list_.bottom().add (grav_p);
grav_p->daddy_grav_l_ = this;
- if (grav_p->is_type_b(Engraver_group_engraver::static_name())) {
- group_l_arr_.push((Engraver_group_engraver*)grav_p);
+ if (grav_p->is_type_b (Engraver_group_engraver::static_name())) {
+ group_l_arr_.push ((Engraver_group_engraver*)grav_p);
} else {
- nongroup_l_arr_ .push(grav_p);
+ nongroup_l_arr_ .push (grav_p);
}
}
Engraver *
-Engraver_group_engraver::remove_engraver_p(Engraver*grav_l)
+Engraver_group_engraver::remove_engraver_p (Engraver*grav_l)
{
- group_l_arr_.substitute((Engraver_group_engraver*)grav_l,0);
- nongroup_l_arr_.substitute(grav_l,0);
- PCursor<Engraver*> grav_cur( grav_list_.find(grav_l) );
+ group_l_arr_.substitute ((Engraver_group_engraver*)grav_l,0);
+ nongroup_l_arr_.substitute (grav_l,0);
+ PCursor<Engraver*> grav_cur (grav_list_.find (grav_l));
return grav_cur.remove_p();
}
void
-Engraver_group_engraver::terminate_engraver(Engraver*r_l)
+Engraver_group_engraver::terminate_engraver (Engraver*r_l)
{
- mtor << "Removing " << r_l->name() << " at " << get_staff_info().when() << "\n";
+ DOUT << "Removing " << r_l->name() << " at " << get_staff_info ().when () << "\n";
r_l->removal_processing();
- Engraver * grav_p =remove_engraver_p(r_l);
+ Engraver * grav_p =remove_engraver_p (r_l);
delete grav_p;
}
@@ -182,51 +182,51 @@ Engraver_group_engraver::do_print()const
#ifndef NPRINT
if ( !check_debug)
return ;
- mtor << "ID: " << id_str_ ;
- mtor << " iterators: " << iterator_count_<< "\n";
- for (PCursor<Engraver*> i(grav_list_.top()); i.ok(); i++)
+ DOUT << "ID: " << id_str_ ;
+ DOUT << " iterators: " << iterator_count_<< "\n";
+ for (PCursor<Engraver*> i (grav_list_.top()); i.ok (); i++)
i->print();
#endif
}
Engraver_group_engraver*
-Engraver_group_engraver::find_engraver_l(String n, String id)
+Engraver_group_engraver::find_engraver_l (String n, String id)
{
if (name() == n && id_str_ == id)
return this;
Engraver_group_engraver * r = 0;
for (int i =0; !r && i< group_l_arr_.size(); i++) {
- r = group_l_arr_[i]->find_engraver_l(n,id);
+ r = group_l_arr_[i]->find_engraver_l (n,id);
}
return r;
}
Translator*
-Engraver_group_engraver::find_get_translator_l(String n,String id)
+Engraver_group_engraver::find_get_translator_l (String n,String id)
{
Translator * ret=0;
- Input_translator * itrans_l= itrans_l_-> recursive_find ( n );
- if (itrans_l ) {
- ret = find_engraver_l(n,id);
+ Input_translator * itrans_l= itrans_l_-> recursive_find ( n);
+ if (itrans_l) {
+ ret = find_engraver_l (n,id);
if (!ret) {
Engraver_group_engraver * group =
itrans_l-> get_group_engraver_p();
- add(group);
+ add (group);
ret = group;
- if (group->itrans_l_->is_name_b( n ) )
+ if (group->itrans_l_->is_name_b (n) )
ret ->id_str_ = id;
else
- return ret->find_get_translator_l(n,id);
+ return ret->find_get_translator_l (n,id);
}
} else if (daddy_grav_l_)
- ret =daddy_grav_l_->find_get_translator_l(n,id);
+ ret =daddy_grav_l_->find_get_translator_l (n,id);
else {
- warning("Can't find or create `" + n + "' called `" + id + "'\n");
+ warning ("Can't find or create `" + n + "' called `" + id + "'\n");
ret =0;
}
return ret;
@@ -239,19 +239,19 @@ Engraver_group_engraver::depth_i()const
}
Translator*
-Engraver_group_engraver::ancestor_l(int l)
+Engraver_group_engraver::ancestor_l (int l)
{
if (!l || !daddy_grav_l_)
return this;
- return daddy_grav_l_->ancestor_l(l-1);
+ return daddy_grav_l_->ancestor_l (l-1);
}
void
-Engraver_group_engraver::announce_element(Score_elem_info info)
+Engraver_group_engraver::announce_element (Score_elem_info info)
{
- announce_info_arr_.push(info);
- Engraver::announce_element(info);
+ announce_info_arr_.push (info);
+ Engraver::announce_element (info);
}
void
@@ -270,7 +270,7 @@ Engraver_group_engraver::do_announces()
info.req_l_ = &dummy_req;
for (int i=0; i < nongroup_l_arr_.size(); i++) { // Is this good enough?6
if (nongroup_l_arr_[i] != info.origin_grav_l_arr_[0])
- nongroup_l_arr_[i]->acknowledge_element(info);
+ nongroup_l_arr_[i]->acknowledge_element (info);
}
}
announce_info_arr_.clear();
@@ -280,7 +280,7 @@ Engraver_group_engraver::do_announces()
void
Engraver_group_engraver::do_removal_processing()
{
- for (PCursor<Engraver*> i(grav_list_.top()); i.ok(); i++)
+ for (PCursor<Engraver*> i (grav_list_.top()); i.ok (); i++)
i->removal_processing();
}
@@ -290,7 +290,7 @@ Engraver_group_engraver::get_staff_info()const
Staff_info inf = Engraver::get_staff_info();
for (int i=0; i < nongroup_l_arr_.size(); i++)
- nongroup_l_arr_[i]->fill_staff_info(inf);
+ nongroup_l_arr_[i]->fill_staff_info (inf);
return inf;
}
@@ -299,12 +299,12 @@ Translator*
Engraver_group_engraver::get_default_interpreter()
{
// ?
- if ( is_bottom_engraver_b() )
+ if ( is_bottom_engraver_b())
return daddy_grav_l_->get_default_interpreter();
Engraver_group_engraver *grav_p= itrans_l_->
- get_default_itrans_l()->get_group_engraver_p();
- add(grav_p );
+ get_default_itrans_l()->get_group_engraver_p ();
+ add (grav_p);
if (grav_p->is_bottom_engraver_b())
return grav_p;
else
@@ -318,14 +318,14 @@ Engraver_group_engraver::is_bottom_engraver_b()const
}
Engraver*
-Engraver_group_engraver::get_simple_engraver(char const *type)const
+Engraver_group_engraver::get_simple_engraver (char const *type)const
{
for (int i=0; i < nongroup_l_arr_.size(); i++) {
- if (nongroup_l_arr_[i]->name() == type )
+ if (nongroup_l_arr_[i]->name() == type)
return nongroup_l_arr_[i];
}
- if ( daddy_grav_l_ )
- return daddy_grav_l_->get_simple_engraver(type);
+ if ( daddy_grav_l_)
+ return daddy_grav_l_->get_simple_engraver (type);
return 0;
}
diff --git a/lily/engraver.cc b/lily/engraver.cc
index 697a4844a2..f3cf488c0c 100644
--- a/lily/engraver.cc
+++ b/lily/engraver.cc
@@ -29,19 +29,19 @@ Engraver::post_move_processing()
void
Engraver::removal_processing()
{
- if ( status < CREATION_INITED )
+ if ( status < CREATION_INITED)
do_creation_processing();
do_removal_processing();
}
bool
-Engraver::try_request(Request * r)
+Engraver::try_request (Request * r)
{
if (status < MOVE_INITED)
post_move_processing();
- return do_try_request(r);
+ return do_try_request (r);
}
void
@@ -64,19 +64,19 @@ Engraver::pre_move_processing()
}
void
-Engraver::fill_staff_info(Staff_info&)
+Engraver::fill_staff_info (Staff_info&)
{
}
Scalar
-Engraver::get_feature(String t)
+Engraver::get_feature (String t)
{
- return daddy_grav_l_->get_feature(t);
+ return daddy_grav_l_->get_feature (t);
}
bool
-Engraver::do_try_request(Request*)
+Engraver::do_try_request (Request*)
{
return false;
}
@@ -88,16 +88,16 @@ Engraver::Engraver()
}
void
-Engraver::announce_element(Score_elem_info i)
+Engraver::announce_element (Score_elem_info i)
{
- i.origin_grav_l_arr_.push(this);
- daddy_grav_l_->announce_element(i);
+ i.origin_grav_l_arr_.push (this);
+ daddy_grav_l_->announce_element (i);
}
void
-Engraver::typeset_element(Score_elem*p)
+Engraver::typeset_element (Score_elem*p)
{
- daddy_grav_l_->typeset_element(p);
+ daddy_grav_l_->typeset_element (p);
}
Paper_def*
@@ -107,7 +107,7 @@ Engraver::paper()const
}
bool
-Engraver::contains_b(Engraver *grav_l)const
+Engraver::contains_b (Engraver *grav_l)const
{
return this == grav_l;
}
@@ -122,9 +122,9 @@ void
Engraver::print() const
{
#ifndef NPRINT
- mtor << "\n" << name() << " {";
+ DOUT << "\n" << name() << " {";
do_print();
- mtor << "}";
+ DOUT << "}";
#endif
}
diff --git a/lily/general-script-def.cc b/lily/general-script-def.cc
index e755af94c5..06b678a965 100644
--- a/lily/general-script-def.cc
+++ b/lily/general-script-def.cc
@@ -33,16 +33,16 @@ General_script_def::inside_b()const
}
bool
-General_script_def::equal_b(General_script_def const&g)const
+General_script_def::equal_b (General_script_def const&g)const
{
- if (name() != g.name())
+ if (name() != g.name ())
return false;
- return do_equal_b(&g);
+ return do_equal_b (&g);
}
bool
-General_script_def::do_equal_b(General_script_def const*)const
+General_script_def::do_equal_b (General_script_def const*)const
{
return true;
}
@@ -51,9 +51,9 @@ General_script_def::do_equal_b(General_script_def const*)const
void
General_script_def::print() const
{
- mtor << name() << "{";
+ DOUT << name() << "{";
do_print();
- mtor << "}";
+ DOUT << "}";
}
void
@@ -62,10 +62,10 @@ General_script_def::do_print() const
}
Atom
-General_script_def::get_atom(Paper_def*, int)const
+General_script_def::get_atom (Paper_def*, int)const
{
Symbol s;
- return Atom(s);
+ return Atom (s);
}
IMPLEMENT_IS_TYPE_B(General_script_def);
diff --git a/lily/global-gravs.cc b/lily/global-gravs.cc
index 6ffbc175ad..df0df5322a 100644
--- a/lily/global-gravs.cc
+++ b/lily/global-gravs.cc
@@ -15,7 +15,7 @@
struct Engraver_table_entry {
String name_str_;
Grav_ctor ctor_l_;
- Engraver_table_entry(String s, Grav_ctor f) {
+ Engraver_table_entry (String s, Grav_ctor f) {
name_str_ =s;
ctor_l_ = f;
}
@@ -28,23 +28,23 @@ struct Engraver_table_entry {
static Array<Engraver_table_entry> *grav_table=0;
void
-add_engraver(String s, Grav_ctor f)
+add_engraver (String s, Grav_ctor f)
{
if (!grav_table)
grav_table = new Array<Engraver_table_entry>;
- grav_table->push(Engraver_table_entry(s, f));
+ grav_table->push (Engraver_table_entry (s, f));
}
Engraver*
-get_engraver_p(String s)
+get_engraver_p (String s)
{
for (int i=0; i < grav_table->size(); i++) {
if ((*grav_table)[i].name_str_ == s)
return (*(*grav_table)[i].ctor_l_)();
}
- error("Unknown engraver `" + s +"\'");
+ error ("Unknown engraver `" + s +"\'");
return 0;
}
@@ -54,7 +54,7 @@ struct Performer_table_entry
{
String name_str_;
Perf_ctor ctor_l_;
- Performer_table_entry(String s, Perf_ctor f) {
+ Performer_table_entry (String s, Perf_ctor f) {
name_str_ =s;
ctor_l_ = f;
}
@@ -67,23 +67,23 @@ struct Performer_table_entry
static Array<Performer_table_entry> *perf_table=0;
void
-add_performer(String s, Perf_ctor f)
+add_performer (String s, Perf_ctor f)
{
if (!perf_table)
perf_table = new Array<Performer_table_entry>;
- perf_table->push(Performer_table_entry(s, f));
+ perf_table->push (Performer_table_entry (s, f));
}
Performer*
-get_performer_p(String s)
+get_performer_p (String s)
{
for (int i=0; i < perf_table->size(); i++) {
if ((*perf_table)[i].name_str_ == s)
return (*(*perf_table)[i].ctor_l_)();
}
- error("Unknown performer `" + s +"\'");
+ error ("Unknown performer `" + s +"\'");
return 0;
}
#endif
diff --git a/lily/global-performers.cc b/lily/global-performers.cc
index 0a975f6698..126a109319 100644
--- a/lily/global-performers.cc
+++ b/lily/global-performers.cc
@@ -16,7 +16,7 @@
struct Performer_table_entry {
String name_str_;
Perf_ctor ctor_l_;
- Performer_table_entry(String s, Perf_ctor f) {
+ Performer_table_entry (String s, Perf_ctor f) {
name_str_ =s;
ctor_l_ = f;
}
@@ -29,22 +29,22 @@ struct Performer_table_entry {
static Array<Performer_table_entry> *perf_table=0;
void
-add_Performer(String s, Perf_ctor f)
+add_Performer (String s, Perf_ctor f)
{
if (!perf_table)
perf_table = new Array<Performer_table_entry>;
- perf_table->push(Performer_table_entry(s, f));
+ perf_table->push (Performer_table_entry (s, f));
}
Performer*
-get_performer_p(String s)
+get_performer_p (String s)
{
for (int i=0; i < perf_table->size(); i++) {
if ((*perf_table)[i].name_str_ == s)
return (*(*perf_table)[i].ctor_l_)();
}
- error("Unknown performer `" + s +"\'");
+ error ("Unknown performer `" + s +"\'");
return 0;
}
diff --git a/lily/global-translator.cc b/lily/global-translator.cc
index 78fa0a0ff7..39cc56bc3d 100644
--- a/lily/global-translator.cc
+++ b/lily/global-translator.cc
@@ -18,13 +18,13 @@ Global_translator::Global_translator()
}
Translator*
-Global_translator::ancestor_l(int)
+Global_translator::ancestor_l (int)
{
return this;
}
void
-Global_translator::add_moment_to_process(Moment m)
+Global_translator::add_moment_to_process (Moment m)
{
if (m > last_mom_)
return;
@@ -32,7 +32,7 @@ Global_translator::add_moment_to_process(Moment m)
for (int i=0; i < extra_mom_pq_.size(); i++)
if (extra_mom_pq_[i] == m)
return;
- extra_mom_pq_.insert(m);
+ extra_mom_pq_.insert (m);
}
int
@@ -42,14 +42,14 @@ Global_translator::depth_i()const
}
void
-Global_translator::set_score(Score *s)
+Global_translator::set_score (Score *s)
{
score_l_ = s;
- last_mom_ = score_l_->music_p_->time_int().max();
+ last_mom_ = score_l_->music_p_->time_int().max ();
}
void
-Global_translator::modify_next(Moment &w)
+Global_translator::modify_next (Moment &w)
{
while (extra_mom_pq_.size() &&
extra_mom_pq_.front() <= w)
@@ -64,7 +64,7 @@ Global_translator::moments_left_i()const
}
void
-Global_translator::prepare(Moment)
+Global_translator::prepare (Moment)
{
}
diff --git a/lily/gourlay-breaking.cc b/lily/gourlay-breaking.cc
index 6a0d2376a4..85533c517b 100644
--- a/lily/gourlay-breaking.cc
+++ b/lily/gourlay-breaking.cc
@@ -45,7 +45,7 @@ Gourlay_breaking::do_solve()const
Line_of_cols all = all_cols();
Array<int> breaks = find_break_indices();
- optimal_paths.set_size(breaks.size());
+ optimal_paths.set_size (breaks.size());
Break_node first_node ;
first_node.prev_break_i_ = -1;
@@ -64,7 +64,7 @@ Gourlay_breaking::do_solve()const
start with a short line, add measures. At some point
the line becomes infeasible. Then we don't try to add more
*/
- for (int start_idx = break_idx; start_idx--; ){
+ for (int start_idx = break_idx; start_idx--;){
if (break_idx - start_idx > max_measures_i_)
break;
@@ -73,31 +73,31 @@ Gourlay_breaking::do_solve()const
continue;
- Line_of_cols line = all.slice(breaks[start_idx], breaks[break_idx]+1);
+ Line_of_cols line = all.slice (breaks[start_idx], breaks[break_idx]+1);
line[0] = line[0]->postbreak_p_;
- line.top() = line.top()->prebreak_p_;
+ line.top() = line.top ()->prebreak_p_;
- if (!feasible(line))
+ if (!feasible (line))
break;
Col_hpositions approx;
approx.cols = line;
- approx.spacer_l_ = generate_spacing_problem( line );
- spacer_p_list.bottom().add(approx.spacer_l_);
+ approx.spacer_l_ = generate_spacing_problem (line);
+ spacer_p_list.bottom().add (approx.spacer_l_);
- ((Break_algorithm*)this)->approx_stats_.add( approx.cols );
- approx.approximate_solve_line( );
+ ((Break_algorithm*)this)->approx_stats_.add (approx.cols);
+ approx.approximate_solve_line();
- if (approx.energy_f_ > energy_bound_f_ ){
+ if (approx.energy_f_ > energy_bound_f_){
continue;
}
// this is a likely candidate. Store it.
- candidate_lines.push( approx );
- candidates.push( start_idx );
+ candidate_lines.push (approx);
+ candidates.push (start_idx);
}
@@ -111,15 +111,15 @@ Gourlay_breaking::do_solve()const
continue;
if ( !candidate_lines[j].satisfies_constraints_b_) {
- candidate_lines[j].solve_line( );
- ((Break_algorithm*)this)->exact_stats_.add ( candidate_lines[j].cols );
+ candidate_lines[j].solve_line();
+ ((Break_algorithm*)this)->exact_stats_.add ( candidate_lines[j].cols);
}
Real this_energy
= optimal_paths[start].line_config_.energy_f_
+ candidate_lines[j].energy_f_ ;
- if ( this_energy < minimal_energy ) {
+ if ( this_energy < minimal_energy) {
minimal_j = j;
minimal_energy = this_energy;
}
@@ -133,7 +133,7 @@ Gourlay_breaking::do_solve()const
optimal_paths[break_idx].line_config_ = candidate_lines[minimal_j];
}
- if ( !(break_idx % HAPPY_DOTS_I) )
+ if ( !(break_idx % HAPPY_DOTS_I))
*mlog << "[" << break_idx << "]"<<flush;
}
@@ -147,18 +147,18 @@ Gourlay_breaking::do_solve()const
Array<Col_hpositions> lines;
/* skip 0-th element, since it is a "dummy" elt*/
- for (int i = optimal_paths.size()-1; i> 0; ) {
- final_breaks.push ( i );
+ for (int i = optimal_paths.size()-1; i> 0;) {
+ final_breaks.push ( i);
assert ( i > optimal_paths[i].prev_break_i_);
// there was no "feasible path"
- if (!optimal_paths[i].line_config_.config.size() )
+ if (!optimal_paths[i].line_config_.config.size())
return lines;
i = optimal_paths[i].prev_break_i_;
}
- for (int i= final_breaks.size(); i--; )
- lines.push ( optimal_paths[final_breaks[i]].line_config_ );
+ for (int i= final_breaks.size(); i--;)
+ lines.push ( optimal_paths[final_breaks[i]].line_config_);
return lines;
@@ -175,7 +175,7 @@ Gourlay_breaking::Gourlay_breaking()
void
Gourlay_breaking::do_set_pscore()
{
- energy_bound_f_ = pscore_l_->paper_l_->get_var( "gourlay_energybound");
- max_measures_i_ =int (rint( pscore_l_->paper_l_->get_var( "gourlay_maxmeasures")));
+ energy_bound_f_ = pscore_l_->paper_l_->get_var ("gourlay_energybound");
+ max_measures_i_ =int (rint (pscore_l_->paper_l_->get_var ("gourlay_maxmeasures")));
}
diff --git a/lily/grouping.cc b/lily/grouping.cc
index f35ae8e354..ffda40e14f 100644
--- a/lily/grouping.cc
+++ b/lily/grouping.cc
@@ -21,12 +21,12 @@ void
Rhythmic_grouping::OK()const
{
#ifndef NDEBUG
- assert(bool(children.size()) != bool(interval_));
+ assert (bool (children.size()) != bool (interval_));
for (int i= 0; i < children.size(); i++) {
children[i]->OK();
if (i>0)
- assert(children[i-1]->interval().right ==
+ assert (children[i-1]->interval().right ==
children[i]->interval().left);
}
#endif
@@ -35,7 +35,7 @@ Rhythmic_grouping::OK()const
Moment
Rhythmic_grouping::length() const
{
- return interval().length();
+ return interval().length ();
}
MInterval
@@ -45,23 +45,23 @@ Rhythmic_grouping::interval()const
return *interval_;
else
return
- MInterval(children[0]->interval().left,
- children.top()->interval().right);
+ MInterval (children[0]->interval().left,
+ children.top()->interval ().right);
}
void
-Rhythmic_grouping::split(Rhythmic_grouping r)
+Rhythmic_grouping::split (Rhythmic_grouping r)
{
if (interval_)
return ;
- r.intersect(interval());
- split(r.intervals());
+ r.intersect (interval());
+ split (r.intervals());
for (int i= 0; i < children.size(); i++) {
if (!children[i]->interval_) {
- Rhythmic_grouping here(r);
- children[i]->split(here);
+ Rhythmic_grouping here (r);
+ children[i]->split (here);
}
}
}
@@ -72,37 +72,37 @@ Rhythmic_grouping::intervals()
{
Array<MInterval> r;
if (interval_ || children.size() == 1) {
- MInterval i(interval());
+ MInterval i (interval());
MInterval r1(i), r2(i);
r1.right = r2.left = i.center();
- r.push(r1); r.push(r2);
+ r.push (r1); r.push (r2);
} else {
for (int i=0; i < children.size(); i++)
- r.push(children[i]->interval());
+ r.push (children[i]->interval());
}
return r;
}
void
-Rhythmic_grouping::intersect(MInterval t)
+Rhythmic_grouping::intersect (MInterval t)
{
if (interval_) {
- interval_->intersect(t);
+ interval_->intersect (t);
return;
}
for (int i=0; i < children.size(); i++) {
- MInterval inter = intersection(t, children[i]->interval());
- if (inter.empty_b() || inter.length() <= Rational( 0 )) {
+ MInterval inter = intersection (t, children[i]->interval());
+ if (inter.empty_b() || inter.length () <= Rational (0)) {
delete children[i];
children[i] =0;
} else {
- children[i]->intersect(t);
+ children[i]->intersect (t);
}
}
- for (int i=0; i < children.size(); ) {
+ for (int i=0; i < children.size();) {
if (!children[i])
- children.del(i);
+ children.del (i);
else
i++;
}
@@ -118,31 +118,31 @@ Rhythmic_grouping::intersect(MInterval t)
*/
void
-Rhythmic_grouping::split(Array<MInterval> splitpoints)
+Rhythmic_grouping::split (Array<MInterval> splitpoints)
{
//check on splitpoints..
int j = 0, i = 0, starti = 0, startj = 0;
Array<Rhythmic_grouping*> ch;
while (1) {
- if ( i >= children.size() || j >= splitpoints.size())
+ if ( i >= children.size() || j >= splitpoints.size ())
break;
- assert(
+ assert (
children[starti]->interval().left== splitpoints[startj].left);
if (children[i]->interval().right < splitpoints[j].right) {
i ++;
- } else if (children[i]->interval().right > splitpoints[j].right ) {
+ } else if (children[i]->interval().right > splitpoints[j].right) {
j ++;
} else {
if (i == starti) {
- ch.push(children[i]);
+ ch.push (children[i]);
} else {
- Rhythmic_grouping *newchild=new Rhythmic_grouping(
- children.slice(starti, i+1));
+ Rhythmic_grouping *newchild=new Rhythmic_grouping (
+ children.slice (starti, i+1));
- ch.push(newchild);
+ ch.push (newchild);
}
i ++;
j++;
@@ -157,22 +157,22 @@ Rhythmic_grouping::split(Array<MInterval> splitpoints)
}
-Rhythmic_grouping::Rhythmic_grouping(MInterval t, int n)
+Rhythmic_grouping::Rhythmic_grouping (MInterval t, int n)
{
init();
if (n == 1 || !n) {
- interval_ = new MInterval(t);
+ interval_ = new MInterval (t);
return;
}
- Moment dt = t.length()/Rational(n);
- MInterval basic = MInterval(t.left, t.left+dt);
+ Moment dt = t.length()/Rational (n);
+ MInterval basic = MInterval (t.left, t.left+dt);
for (int i= 0; i < n; i++)
- children.push(new Rhythmic_grouping( dt*Rational(i) + basic ));
+ children.push (new Rhythmic_grouping (dt*Rational (i) + basic));
}
-Rhythmic_grouping::Rhythmic_grouping(Array<Rhythmic_grouping*> r)
- :children(r)
+Rhythmic_grouping::Rhythmic_grouping (Array<Rhythmic_grouping*> r)
+ :children (r)
{
interval_ =0;
}
@@ -183,24 +183,24 @@ Rhythmic_grouping::~Rhythmic_grouping()
}
void
-Rhythmic_grouping::copy(Rhythmic_grouping const&s)
+Rhythmic_grouping::copy (Rhythmic_grouping const&s)
{
- interval_ = (s.interval_)? new MInterval(*s.interval_) : 0;
+ interval_ = (s.interval_)? new MInterval (*s.interval_) : 0;
for (int i=0; i < s.children.size(); i++)
- children.push(new Rhythmic_grouping(*s.children[i]));
+ children.push (new Rhythmic_grouping (*s.children[i]));
}
void
Rhythmic_grouping::operator=(Rhythmic_grouping const &s)
{
junk();
- copy(s);
+ copy (s);
}
-Rhythmic_grouping::Rhythmic_grouping(Rhythmic_grouping const&s)
+Rhythmic_grouping::Rhythmic_grouping (Rhythmic_grouping const&s)
{
init();
- copy(s);
+ copy (s);
}
void
@@ -216,32 +216,32 @@ void
Rhythmic_grouping::print()const
{
#ifndef NPRINT
- mtor << "{ \n";
+ DOUT << "{ \n";
if (interval_)
- mtor<<" Interval "<< interval_->str();
+ DOUT <<" Interval "<< interval_->str();
for (int i=0; i < children.size(); i++) {
children[i]->print();
}
- mtor << "}\n";
+ DOUT << "}\n";
#endif
}
bool
-Rhythmic_grouping::child_fit_b(Moment start)
+Rhythmic_grouping::child_fit_b (Moment start)
{
if (children.size())
- return ( children.top()->interval().right== start);
+ return ( children.top()->interval ().right== start);
return true;
}
void
-Rhythmic_grouping::add_child(Moment start, Moment len)
+Rhythmic_grouping::add_child (Moment start, Moment len)
{
Moment stop = start+len;
- assert(child_fit_b(start));
- children.push(new Rhythmic_grouping(MInterval(start, stop)));
+ assert (child_fit_b (start));
+ children.push (new Rhythmic_grouping (MInterval (start, stop)));
}
Rhythmic_grouping::Rhythmic_grouping()
@@ -250,7 +250,7 @@ Rhythmic_grouping::Rhythmic_grouping()
}
int
-min_elt(Array<int> v)
+min_elt (Array<int> v)
{
int i = 1000; // ugh
for (int j = 0 ; j < v.size(); j++)
@@ -259,7 +259,7 @@ min_elt(Array<int> v)
}
Array<int>
-Rhythmic_grouping::generate_beams(Array<int> flags, int &flagidx)
+Rhythmic_grouping::generate_beams (Array<int> flags, int &flagidx)
{
assert (!interval_) ;
@@ -268,12 +268,12 @@ Rhythmic_grouping::generate_beams(Array<int> flags, int &flagidx)
Array<int> child_beams;
if (children[i]->interval_) {
int f = flags[flagidx++];
- child_beams.push(f);
+ child_beams.push (f);
} else {
child_beams = children[i]->
- generate_beams(flags, flagidx);
+ generate_beams (flags, flagidx);
}
- children_beams.push(child_beams);
+ children_beams.push (child_beams);
}
Array<int> beams;
int lastm, m, nextm;
@@ -282,69 +282,69 @@ Rhythmic_grouping::generate_beams(Array<int> flags, int &flagidx)
bool add_right = (i < children_beams.size() -1);
if (!i)
- m = min_elt(children_beams[i]);
+ m = min_elt (children_beams[i]);
if (add_right)
- nextm = min_elt(children_beams[i+1]);
+ nextm = min_elt (children_beams[i+1]);
if (children_beams[i].size() == 1) {
if (add_right)
- beams.push(m);
+ beams.push (m);
if (add_left)
- beams.push(m);
+ beams.push (m);
} else {
if (add_left)
- beams.push(lastm <? m);
- beams.concat(children_beams[i]);
+ beams.push (lastm <? m);
+ beams.concat (children_beams[i]);
if (add_right)
- beams.push(m <? nextm);
+ beams.push (m <? nextm);
}
lastm = m;
m = nextm;
}
- assert(!(beams.size()%2));
+ assert (!(beams.size()%2));
return beams;
}
void
-Rhythmic_grouping::translate(Moment m)
+Rhythmic_grouping::translate (Moment m)
{
if (interval_)
*interval_ += m;
else
for (int i=0; i < children.size(); i++)
- children[i]->translate(m);
+ children[i]->translate (m);
}
void
-Rhythmic_grouping::extend(MInterval m)const
+Rhythmic_grouping::extend (MInterval m)const
{
- assert(m.left >= interval().left);
- while (m.right >interval().right ) {
- Array<Rhythmic_grouping*> a(children);
+ assert (m.left >= interval().left);
+ while (m.right >interval().right) {
+ Array<Rhythmic_grouping*> a (children);
for (int i=0; i < a.size(); i++) {
- a[i] =new Rhythmic_grouping(*children[i]);
- a[i]->translate(children.top()->interval().right);
+ a[i] =new Rhythmic_grouping (*children[i]);
+ a[i]->translate (children.top()->interval ().right);
}
- ((Rhythmic_grouping*)this)->children.concat(a);
+ ((Rhythmic_grouping*)this)->children.concat (a);
}
- assert(m.right <= interval().right);
+ assert (m.right <= interval().right);
OK();
}
Rhythmic_grouping
-parse_grouping(Array<int> beat_i_arr, Array<Moment> elt_length_arr)
+parse_grouping (Array<int> beat_i_arr, Array<Moment> elt_length_arr)
{
Moment here =0;
- assert(beat_i_arr.size() == elt_length_arr.size());
+ assert (beat_i_arr.size() == elt_length_arr.size ());
Array<Rhythmic_grouping*> children;
for (int i=0; i < beat_i_arr.size(); i++) {
Moment last = here;
- here += elt_length_arr[i] * Moment(beat_i_arr[i]);
- children.push(
- new Rhythmic_grouping(MInterval(last, here),
- beat_i_arr[i] ));
+ here += elt_length_arr[i] * Moment (beat_i_arr[i]);
+ children.push (
+ new Rhythmic_grouping (MInterval (last, here),
+ beat_i_arr[i]));
}
- return Rhythmic_grouping(children);
+ return Rhythmic_grouping (children);
}
diff --git a/lily/head-column.cc b/lily/head-column.cc
index 2d978bb60e..af7001db90 100644
--- a/lily/head-column.cc
+++ b/lily/head-column.cc
@@ -19,12 +19,12 @@ Head_column::Head_column()
}
void
-Head_column::do_substitute_dependency(Score_elem*o,
+Head_column::do_substitute_dependency (Score_elem*o,
Score_elem*n)
{
- Script_column::do_substitute_dependency(o,n);
- if (o->name() == Note_head::static_name()) {
- head_l_arr_.substitute( (Note_head*)o->item(),
+ Script_column::do_substitute_dependency (o,n);
+ if (o->name() == Note_head::static_name ()) {
+ head_l_arr_.substitute ((Note_head*)o->item(),
(n)? (Note_head*)n->item() : 0);
}
if (stem_l_ == o) {
@@ -34,26 +34,26 @@ Head_column::do_substitute_dependency(Score_elem*o,
void
-Head_column::set(Stem*stem_l)
+Head_column::set (Stem*stem_l)
{
stem_l_ = stem_l;
- Score_elem::add_dependency(stem_l);
+ Score_elem::add_dependency (stem_l);
for (int i=0; script_l_arr_.size(); i++)
- script_l_arr_[i]->set_stem( stem_l );
+ script_l_arr_[i]->set_stem (stem_l);
}
void
-Head_column::add(Script *script_l)
+Head_column::add (Script *script_l)
{
- Script_column::add(script_l) ;
- if (stem_l_ )
- script_l->set_stem( stem_l_ );
+ Script_column::add (script_l) ;
+ if (stem_l_)
+ script_l->set_stem (stem_l_);
}
void
-Head_column::add(Note_head *n_l)
+Head_column::add (Note_head *n_l)
{
- add_support(n_l);
- head_l_arr_.push(n_l);
+ add_support (n_l);
+ head_l_arr_.push (n_l);
}
@@ -64,7 +64,7 @@ void
Head_column::do_print() const
{
#ifndef NPRINT
- mtor << "heads: " << head_l_arr_.size();
+ DOUT << "heads: " << head_l_arr_.size();
#endif
}
diff --git a/lily/head-grav.cc b/lily/head-grav.cc
index 2db5d4ac0b..d1aaaed0af 100644
--- a/lily/head-grav.cc
+++ b/lily/head-grav.cc
@@ -16,13 +16,13 @@ Note_head_engraver::Note_head_engraver()
}
bool
-Note_head_engraver::do_try_request(Request *req_l)
+Note_head_engraver::do_try_request (Request *req_l)
{
if (note_req_l_)
return false;
- if (req_l->musical() && (req_l->musical()->note() || req_l->musical()->rest()))
- note_req_l_=req_l->musical()->rhythmic();
+ if (req_l->musical() && (req_l->musical ()->note () || req_l->musical ()->rest ()))
+ note_req_l_=req_l->musical()->rhythmic ();
else
return false;
@@ -35,12 +35,12 @@ Note_head_engraver::do_process_requests()
if (!note_req_l_)
return;
- Note_head*n_p = new Note_head(8); // ugh
+ Note_head*n_p = new Note_head (8); // ugh
note_p_ = n_p;
- n_p->set_rhythmic(note_req_l_->rhythmic());
+ n_p->set_rhythmic (note_req_l_->rhythmic());
if (note_req_l_->note()) {
- n_p->position_i_ = note_req_l_->note()->height();
+ n_p->position_i_ = note_req_l_->note()->height ();
Staff_info inf = get_staff_info();
if (inf.c0_position_i_l_)
n_p->position_i_ += *inf.c0_position_i_l_;
@@ -48,15 +48,15 @@ Note_head_engraver::do_process_requests()
n_p->rest_b_ = true;
}
- Score_elem_info itinf(note_p_,note_req_l_);
- announce_element(itinf);
+ Score_elem_info itinf (note_p_,note_req_l_);
+ announce_element (itinf);
}
void
Note_head_engraver::do_pre_move_processing()
{
if (note_p_) {
- typeset_element(note_p_);
+ typeset_element (note_p_);
note_p_ = 0;
}
}
diff --git a/lily/horizontal-align-item.cc b/lily/horizontal-align-item.cc
index 8b4427fc0d..de24eed51d 100644
--- a/lily/horizontal-align-item.cc
+++ b/lily/horizontal-align-item.cc
@@ -14,32 +14,32 @@ void
Horizontal_align_item::OK() const
{
for (int i =0; i < item_l_arr_.size(); i++)
- assert ( pcol_l_ == item_l_arr_[i]->pcol_l_ );
+ assert ( pcol_l_ == item_l_arr_[i]->pcol_l_);
}
bool
-Horizontal_align_item::contains_b(Item *i)const
+Horizontal_align_item::contains_b (Item *i)const
{
- return item_l_arr_.find_l(i);
+ return item_l_arr_.find_l (i);
}
void
-Horizontal_align_item::add(Item *i,int p)
+Horizontal_align_item::add (Item *i,int p)
{
- assert(! contains_b(i));
- priority_i_arr_.push(p);
- item_l_arr_.push(i);
- add_dependency(i);
+ assert (! contains_b (i));
+ priority_i_arr_.push (p);
+ item_l_arr_.push (i);
+ add_dependency (i);
}
void
-Horizontal_align_item::do_substitute_dependency(Score_elem*o,Score_elem*n)
+Horizontal_align_item::do_substitute_dependency (Score_elem*o,Score_elem*n)
{
int i;
- while ((i = item_l_arr_.find_i(o->item())) >=0) {
+ while ((i = item_l_arr_.find_i (o->item())) >=0) {
if (n)
item_l_arr_[i] = n->item();
else
- item_l_arr_.del(i);
+ item_l_arr_.del (i);
}
}
@@ -50,7 +50,7 @@ struct Horizontal_align_item_content {
Horizontal_align_item_content const &h2) {
return h1.priority_i_ - h2.priority_i_;
}
- Horizontal_align_item_content(Item*i, int p) {
+ Horizontal_align_item_content (Item*i, int p) {
priority_i_ = p;
item_l_ = i;
}
@@ -65,15 +65,15 @@ Horizontal_align_item::do_pre_processing()
{
Array<Horizontal_align_item_content> content;
for (int i =0; i < item_l_arr_.size(); i++)
- content.push(
- Horizontal_align_item_content(
+ content.push (
+ Horizontal_align_item_content (
item_l_arr_[i], priority_i_arr_[i]));
- content.sort(Horizontal_align_item_content::compare);
+ content.sort (Horizontal_align_item_content::compare);
item_l_arr_.clear();
priority_i_arr_.clear();
for (int i =0; i < content.size(); i++) {
- item_l_arr_.push( content[i].item_l_ );
- priority_i_arr_.push( content[i].priority_i_);
+ item_l_arr_.push (content[i].item_l_);
+ priority_i_arr_.push (content[i].priority_i_);
}
}
@@ -83,9 +83,9 @@ Horizontal_align_item::do_pre_processing()
Interval item_width= item_l_arr_[i]->width();
if (item_width.empty_b()) {
- item_width = Interval(0,0);
+ item_width = Interval (0,0);
}
- dims.push( item_width);
+ dims.push (item_width);
total += item_width.length();
}
@@ -93,21 +93,21 @@ Horizontal_align_item::do_pre_processing()
Real center_dx_f = 0;
for ( int i=0 ; i < item_l_arr_.size(); i++) {
Real dx = where_f -dims[i][-1];
- item_l_arr_[i]->translate( dx , X_AXIS);
+ item_l_arr_[i]->translate (dx , X_AXIS);
if (item_l_arr_[i] == center_l_)
center_dx_f = where_f;
where_f += dims[i].length();
}
- if (center_dx_f && !align_i_ )
+ if (center_dx_f && !align_i_)
for ( int i=0 ; i < item_l_arr_.size(); i++)
- item_l_arr_[i]->translate( - center_dx_f , X_AXIS);
+ item_l_arr_[i]->translate (- center_dx_f , X_AXIS);
}
Interval
Horizontal_align_item::do_width() const
{
- return Interval(0,0);
+ return Interval (0,0);
}
void
diff --git a/lily/idealspacing.cc b/lily/idealspacing.cc
index 9713f255db..1209cc22f5 100644
--- a/lily/idealspacing.cc
+++ b/lily/idealspacing.cc
@@ -15,9 +15,9 @@ void
Idealspacing::print() const
{
#ifndef NPRINT
- mtor << "idealspacing {" ;
- mtor << "distance "<<space_f_<< " strength " << hooke_f_ ;
- mtor << "left " << left_i_ << " right " << right_i_ << "}\n";
+ DOUT << "idealspacing {" ;
+ DOUT << "distance "<<space_f_<< " strength " << hooke_f_ ;
+ DOUT << "left " << left_i_ << " right " << right_i_ << "}\n";
#endif
}
@@ -32,5 +32,5 @@ Idealspacing::Idealspacing()
void
Idealspacing::OK() const
{
- assert(hooke_f_ >= 0);
+ assert (hooke_f_ >= 0);
}
diff --git a/lily/identifier.cc b/lily/identifier.cc
index bbeea7ef78..ff75e93311 100644
--- a/lily/identifier.cc
+++ b/lily/identifier.cc
@@ -13,7 +13,6 @@
#include "identifier.hh"
#include "my-lily-lexer.hh"
#include "debug.hh"
-
#include "symtable.hh"
#include "lookup.hh"
#include "script-def.hh"
@@ -26,21 +25,19 @@ IMPLEMENT_IS_TYPE_B(Identifier);
Identifier::~Identifier()
{
if (!accessed_b_ && !init_b_)
- warning("Variable not used");
+ warning ("Variable not used");
}
void
-Identifier::error(String expect)
+Identifier::error (String expect)
{
- String e("Wrong identifier type: ");
- e += String(name()) + "(expected " + expect + ")";
- ::error(e);
+ String e ("Wrong identifier type: ");
+ e += String (name()) + "(expected " + expect + ")";
+ ::error (e);
}
-Identifier::Identifier(String n, int code)
- : name_str_(n)
+Identifier::Identifier ( int code)
{
token_code_i_ = code;
- data = 0;
accessed_b_ = 0;
init_b_ = 0;
}
@@ -48,7 +45,7 @@ Identifier::Identifier(String n, int code)
void
Identifier::print()const
{
- mtor << "identifier \'" << name_str_ << "\'=";
+ DOUT << "identifier ";
do_print();
}
@@ -56,7 +53,7 @@ Identifier::print()const
#define DEFAULT_PRINT(Class, Content_type, accessor) \
void \
Class::do_print() const { \
- ((Class*)this)->accessor(false)->print(); \
+ ((Class*)this)->accessor()->print(); \
} \
class Class
@@ -74,67 +71,61 @@ DEFAULT_PRINT(Paper_def_id,Paper_def, paperdef);
void
Real_id::do_print() const
{
- mtor << *((Real_id*)this)->real(false)<< "\n";
+ DOUT << *data_p_<< "\n";
}
void
Int_id::do_print() const
{
- mtor << *((Int_id*)this)->intid(false)<< "\n";
+ DOUT << *data_p_<< "\n";
}
-#define default_accessor(Idclass, Class, accessor)\
+#define DEFAULT_ACCESSOR(Idclass, Class, accessor)\
Class*\
-Idclass::accessor(bool copy) {\
- if (copy){ \
- accessed_b_ = true;\
- return new Class(* (Class*) data);\
- }else\
- return (Class*) data;\
- }\
-
-#define virtual_accessor(Idclass, Class, accessor)\
+Idclass::accessor () {\
+ accessed_b_ = true;\
+ return new Class (*data_p_);\
+}
+
+#define VIRTUAL_ACCESSOR(Idclass, Class, accessor)\
Class*\
-Idclass::accessor(bool copy) {\
- if (copy){ \
- accessed_b_ = true;\
- return (Class*) ((Class*) data)->clone();\
- }else\
- return (Class*) data;\
- }\
-
-
-#define implement_id_class(Idclass, Class, accessor) \
-IMPLEMENT_IS_TYPE_B1(Idclass,Identifier)\
-Idclass::~Idclass() { delete accessor(false); }\
-Idclass::Idclass(String s, Class*st, int code):Identifier(s,code) { data = st; }\
-
-
-implement_id_class(Input_translator_id, Input_translator, input_translator);
-implement_id_class(Int_id, int, intid);
-implement_id_class(Real_id, Real, real);
-implement_id_class(Script_id, General_script_def, script);
-implement_id_class(Lookup_id, Lookup, lookup);
-implement_id_class(Symtables_id, Symtables, symtables);
-implement_id_class(Music_id, Music, music);
-implement_id_class(Score_id, Score, score);
-implement_id_class(Request_id, Request, request);
-implement_id_class(Midi_def_id, Midi_def, mididef);
-implement_id_class(Paper_def_id, Paper_def, paperdef);
-
-Identifier::Identifier(Identifier const&)
+Idclass::accessor () {\
+ accessed_b_ = true;\
+ return (Class*)data_p_->clone();\
+}
+
+#define IMPLEMENT_ID_CLASS(Idclass, Class, accessor) \
+ IMPLEMENT_IS_TYPE_B1(Idclass,Identifier)\
+ Idclass::~Idclass() { delete data_p_; }\
+ Idclass::Idclass (Class*st, int code):Identifier (code) { data_p_ = st; }\
+
+
+IMPLEMENT_ID_CLASS(Input_translator_id, Input_translator, input_translator);
+IMPLEMENT_ID_CLASS(Int_id, int, intid);
+IMPLEMENT_ID_CLASS(Real_id, Real, real);
+IMPLEMENT_ID_CLASS(Script_id, General_script_def, script);
+IMPLEMENT_ID_CLASS(Lookup_id, Lookup, lookup);
+IMPLEMENT_ID_CLASS(Symtables_id, Symtables, symtables);
+IMPLEMENT_ID_CLASS(Music_id, Music, music);
+IMPLEMENT_ID_CLASS(Score_id, Score, score);
+IMPLEMENT_ID_CLASS(Request_id, Request, request);
+IMPLEMENT_ID_CLASS(Midi_def_id, Midi_def, mididef);
+IMPLEMENT_ID_CLASS(Paper_def_id, Paper_def, paperdef);
+
+Identifier::Identifier (Identifier const&)
{
- assert(false);
+ assert (false);
}
-default_accessor(Input_translator_id,Input_translator, input_translator);
-default_accessor(Int_id, int, intid);
-default_accessor(Real_id, Real, real);
-virtual_accessor(Script_id, General_script_def, script);
-default_accessor(Lookup_id, Lookup, lookup);
-default_accessor(Symtables_id, Symtables, symtables);
-virtual_accessor(Music_id, Music, music);
-default_accessor(Score_id, Score, score);
-virtual_accessor(Request_id, Request, request);
-default_accessor(Midi_def_id, Midi_def, mididef);
-default_accessor(Paper_def_id, Paper_def, paperdef);
+
+DEFAULT_ACCESSOR(Input_translator_id,Input_translator, input_translator);
+DEFAULT_ACCESSOR(Int_id, int, intid);
+DEFAULT_ACCESSOR(Real_id, Real, real);
+VIRTUAL_ACCESSOR(Script_id, General_script_def, script);
+DEFAULT_ACCESSOR(Lookup_id, Lookup, lookup);
+DEFAULT_ACCESSOR(Symtables_id, Symtables, symtables);
+VIRTUAL_ACCESSOR(Music_id, Music, music);
+DEFAULT_ACCESSOR(Score_id, Score, score);
+VIRTUAL_ACCESSOR(Request_id, Request, request);
+DEFAULT_ACCESSOR(Midi_def_id, Midi_def, mididef);
+DEFAULT_ACCESSOR(Paper_def_id, Paper_def, paperdef);
diff --git a/lily/include/audio-column.hh b/lily/include/audio-column.hh
index c3d353615e..b5f09403f8 100644
--- a/lily/include/audio-column.hh
+++ b/lily/include/audio-column.hh
@@ -19,9 +19,9 @@
class Audio_column {
public:
- Audio_column( Moment at_mom );
+ Audio_column (Moment at_mom);
- void add( Audio_item* i_l );
+ void add (Audio_item* i_l);
Moment at_mom() const;
void print() const;
@@ -29,7 +29,7 @@ public:
Audio_score * audio_score_l_;
private:
- Audio_column( Audio_column const& );
+ Audio_column (Audio_column const&);
Moment at_mom_;
};
diff --git a/lily/include/audio-item.hh b/lily/include/audio-item.hh
index 1b0a4fccf9..61c24d3a49 100644
--- a/lily/include/audio-item.hh
+++ b/lily/include/audio-item.hh
@@ -23,7 +23,7 @@
virtual CSound_item* score_item_p() = 0;
*/
struct Audio_item : public Audio_element {
- Audio_item( Request* req_l );
+ Audio_item (Request* req_l);
/// Create a midi-item from myself.
virtual Midi_item* midi_item_p() = 0;
@@ -34,24 +34,24 @@ struct Audio_item : public Audio_element {
DECLARE_MY_RUNTIME_TYPEINFO;
private:
- Audio_item( Audio_item const& );
- Audio_item& operator=( Audio_item const& );
+ Audio_item (Audio_item const&);
+ Audio_item& operator=( Audio_item const&);
};
struct Audio_key : public Audio_item {
- Audio_key( Request* req_l );
+ Audio_key (Request* req_l);
virtual Midi_item* midi_item_p();
};
struct Audio_instrument : public Audio_item {
- Audio_instrument( String instrument_str );
+ Audio_instrument (String instrument_str);
virtual Midi_item* midi_item_p();
String str_;
};
struct Audio_note : public Audio_item {
- Audio_note( Request* req_l );
+ Audio_note (Request* req_l);
virtual Midi_item* midi_item_p();
};
@@ -61,7 +61,7 @@ struct Audio_text : Audio_item {
MARKER, CUE_POINT
};
- Audio_text( Audio_text::Type type, String text_str );
+ Audio_text (Audio_text::Type type, String text_str);
virtual Midi_item* midi_item_p();
Type type_;
@@ -69,14 +69,14 @@ struct Audio_text : Audio_item {
};
struct Audio_tempo : Audio_item {
- Audio_tempo( int per_minute_4_i );
+ Audio_tempo (int per_minute_4_i);
virtual Midi_item* midi_item_p();
int per_minute_4_i_;
};
struct Audio_meter : Audio_item {
- Audio_meter( Request* req_l );
+ Audio_meter (Request* req_l);
virtual Midi_item* midi_item_p();
};
diff --git a/lily/include/audio-score.hh b/lily/include/audio-score.hh
index 407a7b412d..5fad1355f2 100644
--- a/lily/include/audio-score.hh
+++ b/lily/include/audio-score.hh
@@ -17,15 +17,15 @@
class Audio_score {
public:
- Audio_score( Score* l );
+ Audio_score (Score* l);
- void add( Audio_column* );
- void add_staff( Audio_staff* l );
- void add(Audio_element*p);
+ void add (Audio_column*);
+ void add_staff (Audio_staff* l);
+ void add (Audio_element*p);
- void output( Midi_stream& midi_stream_r );
- void output_header_track( Midi_stream& midi_stream_r );
+ void output (Midi_stream& midi_stream_r);
+ void output_header_track (Midi_stream& midi_stream_r);
void print() const;
void process();
diff --git a/lily/include/audio-staff.hh b/lily/include/audio-staff.hh
index 7e91d7fd0b..430c5f2c8a 100644
--- a/lily/include/audio-staff.hh
+++ b/lily/include/audio-staff.hh
@@ -13,8 +13,8 @@
#include "audio-element.hh"
struct Audio_staff : public Audio_element {
- void add( Audio_item* l);
- void output( Midi_stream& midi_stream_r, int track_i );
+ void add (Audio_item* l);
+ void output (Midi_stream& midi_stream_r, int track_i);
Link_list<Audio_item*> audio_item_l_list_;
DECLARE_MY_RUNTIME_TYPEINFO;
diff --git a/lily/include/axes.hh b/lily/include/axes.hh
index 7dfe8fbf7a..a9dbb3c5e1 100644
--- a/lily/include/axes.hh
+++ b/lily/include/axes.hh
@@ -19,6 +19,6 @@ enum Axis {
class String;
-String axis_name_str(Axis);
+String axis_name_str (Axis);
#endif // AXES_HH
diff --git a/lily/include/axis-group.hh b/lily/include/axis-group.hh
index bdf758cb42..92d0cd8806 100644
--- a/lily/include/axis-group.hh
+++ b/lily/include/axis-group.hh
@@ -21,15 +21,15 @@ axis-group.hh -- declare Axis_group_administration, Axis_group_element
struct Axis_group_administration {
Link_array<Score_elem> elem_l_arr_;
- Interval extent(Axis)const;
+ Interval extent (Axis)const;
void print() const ;
- Axis_group_administration(Axis_group_administration const&);
+ Axis_group_administration (Axis_group_administration const&);
Axis_group_administration(){}
- void remove_all(Axis a1,Axis a2);
+ void remove_all (Axis a1,Axis a2);
- bool contains_b(Score_elem const *)const;
- void add_element(Score_elem*, Axis_group_element*, Axis a1, Axis a2);
- void remove_element(Score_elem*, Axis a1, Axis a2);
+ bool contains_b (Score_elem const *)const;
+ void add_element (Score_elem*, Axis_group_element*, Axis a1, Axis a2);
+ void remove_element (Score_elem*, Axis a1, Axis a2);
};
/**
@@ -45,9 +45,9 @@ protected:
public:
virtual void remove_all()=0;
- virtual void add_element(Score_elem*)=0;
- virtual void remove_element(Score_elem*)=0;
- virtual bool contains_b(Score_elem const *)const;
+ virtual void add_element (Score_elem*)=0;
+ virtual void remove_element (Score_elem*)=0;
+ virtual bool contains_b (Score_elem const *)const;
DECLARE_MY_RUNTIME_TYPEINFO;
};
#endif // Axis_group_administration_HH
diff --git a/lily/include/bar-column-grav.hh b/lily/include/bar-column-grav.hh
index 70b7bcf63a..d7d8ba2c43 100644
--- a/lily/include/bar-column-grav.hh
+++ b/lily/include/bar-column-grav.hh
@@ -20,7 +20,7 @@ class Bar_column_engraver :public Engraver {
Bar *bar_l_;
protected:
- virtual void acknowledge_element(Score_elem_info);
+ virtual void acknowledge_element (Score_elem_info);
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
public:
diff --git a/lily/include/bar-column.hh b/lily/include/bar-column.hh
index 7c7fb426ad..43fac9672d 100644
--- a/lily/include/bar-column.hh
+++ b/lily/include/bar-column.hh
@@ -20,10 +20,10 @@ class Bar_column : public Script_column {
public:
Bar_column();
- void set_bar( Bar*);
+ void set_bar (Bar*);
protected:
SCORE_ELEM_CLONE(Bar_column);
- void do_substitute_dependency(Score_elem*,Score_elem*);
+ void do_substitute_dependency (Score_elem*,Score_elem*);
DECLARE_MY_RUNTIME_TYPEINFO;
};
diff --git a/lily/include/bar-grav.hh b/lily/include/bar-grav.hh
index f159d2973a..bb7cfb061b 100644
--- a/lily/include/bar-grav.hh
+++ b/lily/include/bar-grav.hh
@@ -23,7 +23,7 @@ public:
protected:
- virtual bool do_try_request(Request *req_l);
+ virtual bool do_try_request (Request *req_l);
virtual void do_process_requests();
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
diff --git a/lily/include/bar-number-grav.hh b/lily/include/bar-number-grav.hh
index 287706b6ee..ad1956648a 100644
--- a/lily/include/bar-number-grav.hh
+++ b/lily/include/bar-number-grav.hh
@@ -20,7 +20,7 @@ class Bar_number_grav : public Engraver {
int number_i_;
protected:
- void acknowledge_element(Score_elem_info);
+ void acknowledge_element (Score_elem_info);
void do_pre_move_processing();
public:
Bar_number_grav();
diff --git a/lily/include/beam.hh b/lily/include/beam.hh
index 1e6a36fe15..48b4f9bb4c 100644
--- a/lily/include/beam.hh
+++ b/lily/include/beam.hh
@@ -26,9 +26,9 @@ public:
/* *************** */
DECLARE_MY_RUNTIME_TYPEINFO;
Beam();
- void add(Stem*);
+ void add (Stem*);
- void set_grouping(Rhythmic_grouping def, Rhythmic_grouping current);
+ void set_grouping (Rhythmic_grouping def, Rhythmic_grouping current);
void set_stemlens();
SCORE_ELEM_CLONE(Beam);
protected:
@@ -37,12 +37,12 @@ protected:
virtual void set_default_dir();
virtual void do_pre_processing();
virtual void do_post_processing();
- virtual void do_substitute_dependent(Score_elem*, Score_elem*);
+ virtual void do_substitute_dependent (Score_elem*, Score_elem*);
virtual void do_print() const;
private:
- Molecule stem_beams(Stem *here, Stem *next, Stem *prev)const;
+ Molecule stem_beams (Stem *here, Stem *next, Stem *prev)const;
void solve_slope();
Molecule*brew_molecule_p()const;
};
diff --git a/lily/include/boxes.hh b/lily/include/boxes.hh
index 8161a84518..36db4b88ba 100644
--- a/lily/include/boxes.hh
+++ b/lily/include/boxes.hh
@@ -18,22 +18,22 @@ struct Box {
Interval &y(){ return interval_a_[Y_AXIS]; }
Interval x()const{ return interval_a_[X_AXIS]; }
Interval y()const{return interval_a_[Y_AXIS]; }
- Interval operator[](Axis a ) {
+ Interval operator[](Axis a) {
return interval_a_[a];
}
- void translate(Offset o) {
- x().translate(o.x());
- y().translate(o.y());
+ void translate (Offset o) {
+ x().translate (o.x ());
+ y().translate (o.y ());
}
/// smallest box enclosing #b#
- void unite(Box b) {
- x().unite(b.x());
- y().unite(b.y());
+ void unite (Box b) {
+ x().unite (b.x ());
+ y().unite (b.y ());
}
Box();
- Box(Interval ix, Interval iy);
+ Box (Interval ix, Interval iy);
};
diff --git a/lily/include/break.hh b/lily/include/break.hh
index 0a9fafe68c..000ef3ec92 100644
--- a/lily/include/break.hh
+++ b/lily/include/break.hh
@@ -23,7 +23,7 @@ struct Col_stats
int cols_i_;
Col_stats();
- void add(Line_of_cols const&l);
+ void add (Line_of_cols const&l);
String str()const;
};
@@ -47,16 +47,16 @@ protected:
/// helper: solve for the columns in #curline#.
- void solve_line(Col_hpositions*) const;
+ void solve_line (Col_hpositions*) const;
/// helper: approximate the energyv
- void approximate_solve_line(Col_hpositions*) const;
+ void approximate_solve_line (Col_hpositions*) const;
/// does curline fit on the paper?
- bool feasible(Line_of_cols)const;
+ bool feasible (Line_of_cols)const;
- Line_spacer* generate_spacing_problem(Line_of_cols)const;
+ Line_spacer* generate_spacing_problem (Line_of_cols)const;
virtual Array<Col_hpositions> do_solve()const=0;
void print_stats()const;
@@ -69,7 +69,7 @@ public:
Line_spacer* (*get_line_spacer)();
Break_algorithm();
- void set_pscore(Paper_score*);
+ void set_pscore (Paper_score*);
/// check if the spacing/breaking problem is well-stated
void problem_OK()const;
diff --git a/lily/include/clef-grav.hh b/lily/include/clef-grav.hh
index 2f974eeadb..624e7bdf20 100644
--- a/lily/include/clef-grav.hh
+++ b/lily/include/clef-grav.hh
@@ -16,17 +16,17 @@ class Clef_engraver : public Engraver {
Clef_item *clef_p_;
Clef_change_req * clef_req_l_;
void create_clef();
- void read_req(Clef_change_req*);
- bool set_type(String);
+ void read_req (Clef_change_req*);
+ bool set_type (String);
protected:
virtual void do_process_requests();
- virtual void fill_staff_info(Staff_info&);
+ virtual void fill_staff_info (Staff_info&);
virtual void do_pre_move_processing();
virtual void do_removal_processing();
virtual void do_creation_processing();
virtual void do_post_move_processing();
- virtual bool do_try_request(Request*);
- virtual void acknowledge_element(Score_elem_info);
+ virtual bool do_try_request (Request*);
+ virtual void acknowledge_element (Score_elem_info);
public:
int c0_position_i_;
String clef_type_str_;
diff --git a/lily/include/clef-item.hh b/lily/include/clef-item.hh
index face7e818d..ad8a674242 100644
--- a/lily/include/clef-item.hh
+++ b/lily/include/clef-item.hh
@@ -30,8 +30,8 @@ public:
DECLARE_MY_RUNTIME_TYPEINFO;
SCORE_ELEM_CLONE(Clef_item);
Clef_item();
- void read(Clef_engraver const&);
- void read(String);
+ void read (Clef_engraver const&);
+ void read (String);
};
#endif // CLEFITEM_HH
diff --git a/lily/include/col-info.hh b/lily/include/col-info.hh
index 985df3b69d..36a2f73f72 100644
--- a/lily/include/col-info.hh
+++ b/lily/include/col-info.hh
@@ -24,7 +24,7 @@ struct Colinfo {
bool ugh_b_;
/* *************** */
Colinfo();
- Colinfo(PCol *,Real const *);
+ Colinfo (PCol *,Real const *);
void print() const;
bool fixed() const { return fixpos_p_.get_C();}
diff --git a/lily/include/colhpos.hh b/lily/include/colhpos.hh
index a8891ea004..3f198f2ca1 100644
--- a/lily/include/colhpos.hh
+++ b/lily/include/colhpos.hh
@@ -30,7 +30,7 @@ struct Col_hpositions {
constraints. should always work */
void stupid_solution();
Col_hpositions();
- void add( PCol*c);
+ void add (PCol*c);
void print() const;
};
diff --git a/lily/include/collision-grav.hh b/lily/include/collision-grav.hh
index be3880de62..b04d9fe746 100644
--- a/lily/include/collision-grav.hh
+++ b/lily/include/collision-grav.hh
@@ -16,7 +16,7 @@ class Collision_engraver : public Engraver {
Collision* col_p_;
protected:
- virtual void acknowledge_element(Score_elem_info);
+ virtual void acknowledge_element (Score_elem_info);
virtual void do_pre_move_processing();
public:
Collision_engraver();
diff --git a/lily/include/collision.hh b/lily/include/collision.hh
index 162c5fe385..6ab5db3fad 100644
--- a/lily/include/collision.hh
+++ b/lily/include/collision.hh
@@ -22,7 +22,7 @@
*/
class Collision : public Horizontal_vertical_group_item {
protected:
- virtual void do_substitute_dependency(Score_elem*,Score_elem*);
+ virtual void do_substitute_dependency (Score_elem*,Score_elem*);
virtual void do_pre_processing();
public:
Link_array<Note_column> clash_l_arr_;
diff --git a/lily/include/command-request.hh b/lily/include/command-request.hh
index 5d173ca9f9..1a78f14d75 100644
--- a/lily/include/command-request.hh
+++ b/lily/include/command-request.hh
@@ -65,16 +65,16 @@ public:
Tempo_req();
REQUESTMETHODS(Tempo_req, tempo);
- bool do_equal_b(Request *)const;
+ bool do_equal_b (Request *)const;
};
class Partial_measure_req : public Timing_req {
public:
Moment duration_;
- Partial_measure_req(Moment);
+ Partial_measure_req (Moment);
REQUESTMETHODS(Partial_measure_req, partial);
- bool do_equal_b(Request*)const;
+ bool do_equal_b (Request*)const;
};
/**
@@ -85,8 +85,8 @@ public:
int beats_i_, one_beat_i_;
Meter_change_req();
- void set(int,int);
- bool do_equal_b(Request*)const;
+ void set (int,int);
+ bool do_equal_b (Request*)const;
REQUESTMETHODS(Meter_change_req, meterchange);
};
@@ -95,15 +95,15 @@ class Cadenza_req : public Timing_req {
public:
/// turn on?
bool on_b_;
- bool do_equal_b(Request*)const;
- Cadenza_req(bool);
+ bool do_equal_b (Request*)const;
+ Cadenza_req (bool);
REQUESTMETHODS(Cadenza_req,cadenza);
};
/// check if we're at start of a measure.
class Barcheck_req : public Timing_req {
public:
- bool do_equal_b(Request *)const;
+ bool do_equal_b (Request *)const;
REQUESTMETHODS(Barcheck_req,barcheck);
};
@@ -111,7 +111,7 @@ class Measure_grouping_req : public Timing_req {
public:
Array<int> beat_i_arr_;
Array<Moment> elt_length_arr_;
- bool do_equal_b(Request *)const;
+ bool do_equal_b (Request *)const;
REQUESTMETHODS(Measure_grouping_req, measuregrouping);
};
@@ -120,8 +120,8 @@ public:
class Bar_req : public Command_req {
public:
String type_str_;
- Bar_req(String);
- bool do_equal_b(Request*)const;
+ Bar_req (String);
+ bool do_equal_b (Request*)const;
REQUESTMETHODS(Bar_req,bar);
};
@@ -148,7 +148,7 @@ public:
/// don't ignore the octaves in #melodic_p_arr_#?
bool multi_octave_b_;
Key_change_req();
- Key_change_req(Key_change_req const&);
+ Key_change_req (Key_change_req const&);
~Key_change_req();
REQUESTMETHODS(Key_change_req, keychange);
@@ -160,7 +160,7 @@ public:
/// return number of sharps in key
int sharps_i();
- void transpose(Melodic_req const & d) const;
+ void transpose (Melodic_req const & d) const;
/// is minor key?
int minor_b();
};
@@ -168,7 +168,7 @@ public:
class Clef_change_req : public Command_req {
public:
String clef_str_;
- Clef_change_req(String);
+ Clef_change_req (String);
REQUESTMETHODS(Clef_change_req, clefchange);
};
diff --git a/lily/include/debug.hh b/lily/include/debug.hh
index 18055e067f..aca896309d 100644
--- a/lily/include/debug.hh
+++ b/lily/include/debug.hh
@@ -12,8 +12,8 @@
#include "lily-proto.hh"
#include "warn.hh"
-void error_t(const String& s, Time_description const & t_tdes);
-void error_t(String const &s, const Moment &when);
+void error_t (const String& s, Time_description const & t_tdes);
+void error_t (String const &s, const Moment &when);
#define WARN warnout << "warning: "<<__FUNCTION__ << "(): "
extern ostream &warnout ;
@@ -24,11 +24,13 @@ extern ostream *mlog;
// debugging
extern Dstream *monitor; // monitor
-
#ifdef NPRINT
-#define mtor if (0) *monitor // clever hack
+/**
+ Global debug output. Compare with cin, cout, cerr, DOUT is DEBUG OUTPUT
+ */
+#define DOUT if (0) *monitor // clever hack
#else
-#define mtor if (check_debug) monitor->identify_as(__PRETTY_FUNCTION__)
+#define DOUT if (check_debug) monitor->identify_as (__PRETTY_FUNCTION__)
#endif
extern bool check_debug;
diff --git a/lily/include/dimen.hh b/lily/include/dimen.hh
index 71b0036b72..ac8267f187 100644
--- a/lily/include/dimen.hh
+++ b/lily/include/dimen.hh
@@ -14,8 +14,8 @@ const Real PT_TO_PT =1.0;
#define CM *CM_TO_PT
#define INCH *INCH_TO_PT
-Real parse_dimen(String);
-String print_dimen(Real);
-Real convert_dimen(Real, String);
+Real parse_dimen (String);
+String print_dimen (Real);
+Real convert_dimen (Real, String);
#endif
diff --git a/lily/include/dynamic-grav.hh b/lily/include/dynamic-grav.hh
index 389a468466..26556edf9d 100644
--- a/lily/include/dynamic-grav.hh
+++ b/lily/include/dynamic-grav.hh
@@ -25,12 +25,12 @@ public:
~Dynamic_engraver();
DECLARE_MY_RUNTIME_TYPEINFO;
protected:
- virtual void acknowledge_element(Score_elem_info);
- virtual bool do_try_request(Request *req_l);
+ virtual void acknowledge_element (Score_elem_info);
+ virtual bool do_try_request (Request *req_l);
virtual void do_process_requests();
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
- virtual void set_feature(Feature);
+ virtual void set_feature (Feature);
};
#endif // DYNAMIC_GRAV_HH
diff --git a/lily/include/elem-group-item.hh b/lily/include/elem-group-item.hh
index b1248cc990..8e0fcd5154 100644
--- a/lily/include/elem-group-item.hh
+++ b/lily/include/elem-group-item.hh
@@ -20,10 +20,10 @@
class Horizontal_vertical_group_item : public Axis_group_item, public Horizontal_vertical_group_element {
protected:
virtual void do_print() const;
- virtual void remove_all() { Horizontal_vertical_group_element::remove_all(); }
+ virtual void remove_all() { Horizontal_vertical_group_element::remove_all (); }
public:
- virtual void add_element(Score_elem*e) { Horizontal_vertical_group_element::add_element(e); }
- virtual void remove_element(Score_elem*e) { Horizontal_vertical_group_element::remove_element(e); }
+ virtual void add_element (Score_elem*e) { Horizontal_vertical_group_element::add_element (e); }
+ virtual void remove_element (Score_elem*e) { Horizontal_vertical_group_element::remove_element (e); }
DECLARE_MY_RUNTIME_TYPEINFO;
SCORE_ELEM_CLONE(Horizontal_vertical_group_item);
diff --git a/lily/include/elem-group.hh b/lily/include/elem-group.hh
index baf3010c09..61ad7519f3 100644
--- a/lily/include/elem-group.hh
+++ b/lily/include/elem-group.hh
@@ -26,8 +26,8 @@ protected:
public:
DECLARE_MY_RUNTIME_TYPEINFO;
- virtual void add_element(Score_elem*);
- virtual void remove_element(Score_elem*);
+ virtual void add_element (Score_elem*);
+ virtual void remove_element (Score_elem*);
};
/**
@@ -39,8 +39,8 @@ protected:
virtual void remove_all();
public:
- virtual void add_element(Score_elem*);
- virtual void remove_element(Score_elem*);
+ virtual void add_element (Score_elem*);
+ virtual void remove_element (Score_elem*);
DECLARE_MY_RUNTIME_TYPEINFO;
};
@@ -54,8 +54,8 @@ class Horizontal_vertical_group_element : public Vertical_group_element,
protected:
virtual void remove_all();
public:
- virtual void add_element(Score_elem*);
- virtual void remove_element(Score_elem*);
+ virtual void add_element (Score_elem*);
+ virtual void remove_element (Score_elem*);
DECLARE_MY_RUNTIME_TYPEINFO;
};
diff --git a/lily/include/engraver-group.hh b/lily/include/engraver-group.hh
index 2e3e4941bd..03e26c9610 100644
--- a/lily/include/engraver-group.hh
+++ b/lily/include/engraver-group.hh
@@ -33,7 +33,7 @@ protected:
virtual void do_print()const;
virtual bool removable_b()const;
public:
- Engraver*get_simple_engraver(char const*typeinfo)const;
+ Engraver*get_simple_engraver (char const*typeinfo)const;
virtual void print() const ;
Input_translator * itrans_l_;
@@ -49,7 +49,7 @@ public:
Pre:
#grav_l# is in #grav_list_#
*/
- virtual void terminate_engraver(Engraver * grav_l);
+ virtual void terminate_engraver (Engraver * grav_l);
DECLARE_MY_RUNTIME_TYPEINFO;
@@ -57,31 +57,31 @@ public:
/**
Remove #grav_l# from the list, and return it.
*/
- virtual Engraver * remove_engraver_p(Engraver*grav_l);
- virtual void set_feature(Feature i);
+ virtual Engraver * remove_engraver_p (Engraver*grav_l);
+ virtual void set_feature (Feature i);
virtual void sync_features();
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
virtual void do_removal_processing();
- virtual bool do_try_request(Request*);
- virtual bool try_request(Request*);
+ virtual bool do_try_request (Request*);
+ virtual bool try_request (Request*);
virtual void do_process_requests();
virtual Staff_info get_staff_info()const;
- virtual Engraver_group_engraver * find_engraver_l(String name,String id);
+ virtual Engraver_group_engraver * find_engraver_l (String name,String id);
virtual void do_announces();
- virtual void announce_element(Score_elem_info);
- virtual void add(Engraver* grav_p);
- virtual bool contains_b(Engraver*)const;
+ virtual void announce_element (Score_elem_info);
+ virtual void add (Engraver* grav_p);
+ virtual bool contains_b (Engraver*)const;
- virtual Translator* find_get_translator_l(String name, String id);
+ virtual Translator* find_get_translator_l (String name, String id);
virtual Translator * get_default_interpreter();
/**
Go up in the tree. default: choose next parent
*/
- Translator * ancestor_l(int l=1);
+ Translator * ancestor_l (int l=1);
int depth_i() const;
};
diff --git a/lily/include/engraver.hh b/lily/include/engraver.hh
index 60b8b95ca1..a750704437 100644
--- a/lily/include/engraver.hh
+++ b/lily/include/engraver.hh
@@ -31,7 +31,7 @@ class Engraver {
/**
You cannot copy a Engraver
*/
- Engraver(const Engraver&){}
+ Engraver (const Engraver&){}
enum {
VIRGIN,
@@ -61,13 +61,13 @@ protected:
virtual void do_post_move_processing(){}
- virtual void do_creation_processing () {}
+ virtual void do_creation_processing() {}
virtual void do_removal_processing() {}
/**
Invoke walker method to typeset element. Default: pass on to daddy.
*/
- virtual void typeset_element(Score_elem*elem_p);
+ virtual void typeset_element (Score_elem*elem_p);
/**
take note of item/spanner
@@ -75,31 +75,31 @@ protected:
Default: ignore the info
*/
- virtual void acknowledge_element(Score_elem_info) {}
+ virtual void acknowledge_element (Score_elem_info) {}
/**
Announce element. Default: pass on to daddy. Utility
*/
- virtual void announce_element(Score_elem_info);
+ virtual void announce_element (Score_elem_info);
/**
- Set Feature of the engraver(s). Default: ignore Feature.
+ Set Feature of the engraver (s). Default: ignore Feature.
*/
- virtual void set_feature(Feature){}
+ virtual void set_feature (Feature){}
/**
ask daddy for a feature
*/
- virtual Scalar get_feature(String type_str);
+ virtual Scalar get_feature (String type_str);
/**
Does this equal or contain a certain engraver?
*/
virtual void sync_features() {}
- virtual bool contains_b(Engraver*grav_l)const;
+ virtual bool contains_b (Engraver*grav_l)const;
/**
Get information on the staff. Default: ask daddy.
*/
virtual Staff_info get_staff_info()const;
- virtual void fill_staff_info(Staff_info&);
+ virtual void fill_staff_info (Staff_info&);
virtual void do_print()const;
@@ -107,7 +107,7 @@ protected:
@see{try_request}
Default: always return false
*/
- virtual bool do_try_request(Request *req_l);
+ virtual bool do_try_request (Request *req_l);
public:
void pre_move_processing();
void process_requests();
@@ -120,7 +120,7 @@ public:
true: request swallowed. Don't try to put the request elsewhere.
*/
- bool try_request(Request*);
+ bool try_request (Request*);
bool is_bottom_engraver() const;
void post_move_processing();
@@ -139,17 +139,17 @@ public:
*/
#define ADD_THIS_ENGRAVER(c) \
struct c ## init { \
- static Engraver * globalctor (){ \
+ static Engraver * globalctor(){ \
return new c; \
} \
- c ## init () { \
- add_engraver(c::static_name(), globalctor); \
+ c ## init() { \
+ add_engraver (c::static_name(), globalctor); \
\
} \
} _ ## c ## init;
typedef Engraver*(*Grav_ctor)(void);
-void add_engraver(String s, Grav_ctor f);
+void add_engraver (String s, Grav_ctor f);
#endif // ENGRAVER_HH
diff --git a/lily/include/general-script-def.hh b/lily/include/general-script-def.hh
index c384d4fa10..4f927b2dfd 100644
--- a/lily/include/general-script-def.hh
+++ b/lily/include/general-script-def.hh
@@ -25,12 +25,12 @@ public:
virtual int rel_stem_dir_i()const;
virtual int priority_i()const;
virtual bool inside_b()const;
- virtual Atom get_atom(Paper_def* p, int dir_i_)const;
- bool equal_b(General_script_def const&)const;
+ virtual Atom get_atom (Paper_def* p, int dir_i_)const;
+ bool equal_b (General_script_def const&)const;
virtual ~General_script_def() {}
protected:
- virtual bool do_equal_b(General_script_def const *)const;
+ virtual bool do_equal_b (General_script_def const *)const;
virtual void do_print()const;
};
diff --git a/lily/include/global-performers.hh b/lily/include/global-performers.hh
index b3e65743d9..0ed76e4c54 100644
--- a/lily/include/global-performers.hh
+++ b/lily/include/global-performers.hh
@@ -14,20 +14,20 @@
/**
A macro to automate administration of performers
*/
-#define ADD_THIS_PERFORMER( c ) \
+#define ADD_THIS_PERFORMER( c) \
struct c ## init { \
- static Performer* globalctor () \
+ static Performer* globalctor() \
{ \
return new c;\
} \
- c ## init () \
+ c ## init() \
{ \
- add_Performer( c::static_name(), globalctor ); \
+ add_Performer (c::static_name(), globalctor); \
} \
} _ ## c ## init;
// typedef Performer*(*Perf_ctor)(void); c++ ?
typedef Performer*(*Perf_ctor)();
-void add_Performer(String s, Perf_ctor f);
+void add_Performer (String s, Perf_ctor f);
#endif // GLOBAL_PERFORMER_HH
diff --git a/lily/include/global-translator.hh b/lily/include/global-translator.hh
index 112392a670..25f5968714 100644
--- a/lily/include/global-translator.hh
+++ b/lily/include/global-translator.hh
@@ -21,11 +21,11 @@ public:
Global_translator();
int moments_left_i()const;
- void modify_next(Moment&);
- void add_moment_to_process(Moment);
+ void modify_next (Moment&);
+ void add_moment_to_process (Moment);
- virtual void set_score(Score*);
- virtual void prepare(Moment);
+ virtual void set_score (Score*);
+ virtual void prepare (Moment);
virtual void process() {}
virtual void finish() {}
virtual void start() {}
@@ -35,7 +35,7 @@ protected:
virtual Global_translator *global_l() { return this; }
virtual int depth_i() const;
- virtual Translator *ancestor_l(int);
+ virtual Translator *ancestor_l (int);
};
diff --git a/lily/include/grouping.hh b/lily/include/grouping.hh
index 583f5d4529..13fcbd790a 100644
--- a/lily/include/grouping.hh
+++ b/lily/include/grouping.hh
@@ -23,39 +23,39 @@ struct Rhythmic_grouping {
Array<MInterval> intervals();
MInterval interval()const;
Moment length() const;
- void intersect(MInterval);
+ void intersect (MInterval);
void operator=(Rhythmic_grouping const&);
- Rhythmic_grouping(Rhythmic_grouping const&);
- Rhythmic_grouping(MInterval, int n=1);
+ Rhythmic_grouping (Rhythmic_grouping const&);
+ Rhythmic_grouping (MInterval, int n=1);
Rhythmic_grouping();
- Rhythmic_grouping(Array<Rhythmic_grouping*>);
+ Rhythmic_grouping (Array<Rhythmic_grouping*>);
~Rhythmic_grouping();
- void add_child(Moment start, Moment len);
- bool child_fit_b(Moment start);
- void split(Rhythmic_grouping r);
- void split(Array<MInterval>);
- void split(int n);
+ void add_child (Moment start, Moment len);
+ bool child_fit_b (Moment start);
+ void split (Rhythmic_grouping r);
+ void split (Array<MInterval>);
+ void split (int n);
void print() const;
void OK() const;
- Array<int> generate_beams(Array<int>, int&);
+ Array<int> generate_beams (Array<int>, int&);
/** multiply self to span #i#.
In implementation, this isn't really const, but conceptually it is.
*/
- void extend(MInterval i) const;
- void translate(Moment);
+ void extend (MInterval i) const;
+ void translate (Moment);
private:
void init();
void junk();
- void copy(Rhythmic_grouping const&);
+ void copy (Rhythmic_grouping const&);
};
-Rhythmic_grouping parse_grouping(Array<int> beat_i_arr, Array<Moment> elt_length_arr);
+Rhythmic_grouping parse_grouping (Array<int> beat_i_arr, Array<Moment> elt_length_arr);
#endif
diff --git a/lily/include/head-column.hh b/lily/include/head-column.hh
index f95733201b..57c560b18b 100644
--- a/lily/include/head-column.hh
+++ b/lily/include/head-column.hh
@@ -29,9 +29,9 @@ public:
int dir_i_;
Stem* stem_l_;
- void add(Note_head*);
- virtual void add(Script*s);
- virtual void set(Stem*);
+ void add (Note_head*);
+ virtual void add (Script*s);
+ virtual void set (Stem*);
Head_column();
DECLARE_MY_RUNTIME_TYPEINFO;
protected:
@@ -39,6 +39,6 @@ protected:
virtual void do_pre_processing();
virtual void do_print()const;
- virtual void do_substitute_dependency(Score_elem*,Score_elem*);
+ virtual void do_substitute_dependency (Score_elem*,Score_elem*);
};
#endif // HEAD_COLUMN_HH
diff --git a/lily/include/head-grav.hh b/lily/include/head-grav.hh
index 57711a27be..fdbbe7064c 100644
--- a/lily/include/head-grav.hh
+++ b/lily/include/head-grav.hh
@@ -20,7 +20,7 @@ public:
Note_head_engraver();
DECLARE_MY_RUNTIME_TYPEINFO;
protected:
- virtual bool do_try_request(Request *req_l) ;
+ virtual bool do_try_request (Request *req_l) ;
virtual void do_process_requests();
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
diff --git a/lily/include/horizontal-align-item.hh b/lily/include/horizontal-align-item.hh
index d66a85a99f..c1d6313657 100644
--- a/lily/include/horizontal-align-item.hh
+++ b/lily/include/horizontal-align-item.hh
@@ -17,7 +17,7 @@
- TODO: insert(order, elem)
+ TODO: insert (order, elem)
*/
class Horizontal_align_item : public Item {
protected:
@@ -34,16 +34,16 @@ public:
DECLARE_MY_RUNTIME_TYPEINFO;
SCORE_ELEM_CLONE(Horizontal_align_item);
- void add(Item*, int p);
+ void add (Item*, int p);
void OK()const;
Horizontal_align_item();
protected:
- virtual void do_substitute_dependency(Score_elem * , Score_elem *);
+ virtual void do_substitute_dependency (Score_elem * , Score_elem *);
/// do calculations before determining horizontal spacing
virtual void do_pre_processing();
virtual void do_print()const;
virtual Interval do_width()const;
- bool contains_b(Item*)const;
+ bool contains_b (Item*)const;
};
#endif // HORIZONTAL_ALIGN_ITEM_HH
diff --git a/lily/include/horizontal-group-item.hh b/lily/include/horizontal-group-item.hh
index f1fc8b3c9c..b9045a4bdb 100644
--- a/lily/include/horizontal-group-item.hh
+++ b/lily/include/horizontal-group-item.hh
@@ -15,11 +15,11 @@
class Horizontal_group_item : public Axis_group_item, public Horizontal_group_element {
protected:
- virtual void remove_all() { Horizontal_group_element::remove_all(); }
+ virtual void remove_all() { Horizontal_group_element::remove_all (); }
virtual void do_print() const;
public:
- virtual void add_element(Score_elem*e) { Horizontal_group_element::add_element(e); }
- virtual void remove_element(Score_elem*e) { Horizontal_group_element::remove_element(e); }
+ virtual void add_element (Score_elem*e) { Horizontal_group_element::add_element (e); }
+ virtual void remove_element (Score_elem*e) { Horizontal_group_element::remove_element (e); }
DECLARE_MY_RUNTIME_TYPEINFO;
SCORE_ELEM_CLONE(Horizontal_group_item);
diff --git a/lily/include/identifier.hh b/lily/include/identifier.hh
index 2088c841f7..08e8346e80 100644
--- a/lily/include/identifier.hh
+++ b/lily/include/identifier.hh
@@ -12,24 +12,25 @@
#include "input.hh"
#include "virtual-methods.hh"
-/* boolean argument to accesor is copy_b..*/
#define IDACCESSOR( Input_staff, staff)\
- virtual Input_staff * staff(bool) { error(#Input_staff); return 0; }
+ virtual Input_staff * staff () { error (#Input_staff); return 0; }
+/**
+ A declarable data structure in mudela.
+
+ */
struct Identifier : public Input {
- void *data;
- String name_str_;
bool init_b_;
bool accessed_b_;
int token_code_i_;
- Identifier(String n, int code) ;
+ Identifier (int code) ;
virtual ~Identifier() ;
void print()const;
DECLARE_MY_RUNTIME_TYPEINFO;
- void error(String);
+ void error (String);
IDACCESSOR(Input_translator, input_translator)
IDACCESSOR(Music, music)
IDACCESSOR(General_script_def, script)
@@ -45,28 +46,29 @@ struct Identifier : public Input {
protected:
virtual void do_print()const=0;
private:
- Identifier(Identifier const&);
+ Identifier (Identifier const&);
};
-#define declare_id_class(Idclass, Class, accessor) \
+#define DECLARE_ID_CLASS(Idclass, Class, accessor) \
struct Idclass : Identifier {\
+ Class *data_p_; \
DECLARE_MY_RUNTIME_TYPEINFO; \
- Idclass(String s, Class*st, int code);\
- virtual Class* accessor(bool copy);\
+ Idclass (Class*st, int code);\
+ virtual Class* accessor ();\
~Idclass();\
virtual void do_print()const; \
}\
-declare_id_class(Input_translator_id, Input_translator, input_translator);
-declare_id_class(Real_id, Real, real);
-declare_id_class(Script_id, General_script_def, script);
-declare_id_class(Lookup_id, Lookup, lookup);
-declare_id_class(Symtables_id, Symtables, symtables);
-declare_id_class(Music_id, Music, music);
-declare_id_class(Int_id, int, intid);
-declare_id_class(Score_id, Score, score);
-declare_id_class(Request_id, Request, request);
-declare_id_class(Paper_def_id,Paper_def, paperdef);
-declare_id_class(Midi_def_id,Midi_def, mididef);
+DECLARE_ID_CLASS(Input_translator_id, Input_translator, input_translator);
+DECLARE_ID_CLASS(Real_id, Real, real);
+DECLARE_ID_CLASS(Script_id, General_script_def, script);
+DECLARE_ID_CLASS(Lookup_id, Lookup, lookup);
+DECLARE_ID_CLASS(Symtables_id, Symtables, symtables);
+DECLARE_ID_CLASS(Music_id, Music, music);
+DECLARE_ID_CLASS(Int_id, int, intid);
+DECLARE_ID_CLASS(Score_id, Score, score);
+DECLARE_ID_CLASS(Request_id, Request, request);
+DECLARE_ID_CLASS(Paper_def_id,Paper_def, paperdef);
+DECLARE_ID_CLASS(Midi_def_id,Midi_def, mididef);
#endif // IDENTIFIER_
diff --git a/lily/include/ineq-constrained-qp.hh b/lily/include/ineq-constrained-qp.hh
index d3cab9322c..7e28fd7a82 100644
--- a/lily/include/ineq-constrained-qp.hh
+++ b/lily/include/ineq-constrained-qp.hh
@@ -29,13 +29,13 @@ public:
/**
use a KKT method to assert optimality of sol
*/
- void assert_solution(Vector sol) const;
+ void assert_solution (Vector sol) const;
/// solve the problem using a projected gradient method
- Vector constraint_solve(Vector)const;
+ Vector constraint_solve (Vector)const;
/**
Solve it. First try it the easy way.
*/
- Vector solve(Vector start) const;
+ Vector solve (Vector start) const;
/**
@return the number of variables in the problem
@@ -51,20 +51,20 @@ public:
c*vars >= r
PRE
- c.dim() == dim();
+ c.dim() == dim ();
*/
- void add_inequality_cons(Vector c, double r);
+ void add_inequality_cons (Vector c, double r);
/** set up matrices to go with the problem. */
- Ineq_constrained_qp(int novars);
+ Ineq_constrained_qp (int novars);
/**
evaluate the quadratic function for input #v#
*/
- Real eval(Vector v);
+ Real eval (Vector v);
- void eliminate_var(int idx, Real value);
+ void eliminate_var (int idx, Real value);
void OK()const;
void print() const;
diff --git a/lily/include/input-translator.hh b/lily/include/input-translator.hh
index 49f44bec01..14a35e507c 100644
--- a/lily/include/input-translator.hh
+++ b/lily/include/input-translator.hh
@@ -19,7 +19,7 @@
struct Input_translator_list : public Pointer_list<Input_translator*>
{
- Input_translator_list(Input_translator_list const &);
+ Input_translator_list (Input_translator_list const &);
Input_translator_list(){}
~Input_translator_list(){}
};
@@ -35,18 +35,18 @@ public:
String type_str_;
String default_id_str_;
- void add(Input_translator *);
- bool is_name_b(String);
+ void add (Input_translator *);
+ bool is_name_b (String);
bool accept_req_b();
- bool accepts_b(String);
+ bool accepts_b (String);
void print() const;
Engraver_group_engraver * get_group_engraver_p();
Performer_group_performer * get_group_performer_p();
Input_translator * get_default_itrans_l();
- Input_translator * recursive_find(String nm);
- Input_translator * find_itrans_l(String nm);
+ Input_translator * recursive_find (String nm);
+ Input_translator * find_itrans_l (String nm);
};
-Engraver* get_engraver_p(String);
-Performer* get_performer_p(String);
+Engraver* get_engraver_p (String);
+Performer* get_performer_p (String);
#endif // Input_translator_HH
diff --git a/lily/include/item.hh b/lily/include/item.hh
index 0768c5885e..e465931074 100644
--- a/lily/include/item.hh
+++ b/lily/include/item.hh
@@ -35,8 +35,8 @@ public:
int break_status_i_;
/// nobreak = 0, pre = -1, post = 1
int break_status_i()const;
- Item * find_prebroken_piece(PCol*)const;
- Item * find_prebroken_piece(Line_of_score*)const;
+ Item * find_prebroken_piece (PCol*)const;
+ Item * find_prebroken_piece (Line_of_score*)const;
virtual Item *item() { return this; }
Item();
diff --git a/lily/include/key-grav.hh b/lily/include/key-grav.hh
index 51a978e592..f60243fc8f 100644
--- a/lily/include/key-grav.hh
+++ b/lily/include/key-grav.hh
@@ -18,7 +18,7 @@
*/
class Key_engraver : public Engraver {
void create_key();
- void read_req(Key_change_req * r);
+ void read_req (Key_change_req * r);
public:
Key key_;
@@ -29,11 +29,11 @@ public:
bool change_key_b_;
protected:
- virtual bool do_try_request(Request *req_l);
+ virtual bool do_try_request (Request *req_l);
virtual void do_process_requests();
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
- virtual void acknowledge_element(Score_elem_info);
+ virtual void acknowledge_element (Score_elem_info);
public:
Key_engraver();
DECLARE_MY_RUNTIME_TYPEINFO;
diff --git a/lily/include/key-item.hh b/lily/include/key-item.hh
index b980e3ff0f..84d1ac709f 100644
--- a/lily/include/key-item.hh
+++ b/lily/include/key-item.hh
@@ -22,10 +22,10 @@ struct Key_item : Item {
DECLARE_MY_RUNTIME_TYPEINFO;
SCORE_ELEM_CLONE(Key_item);
- Key_item(int cposition);
- void add(int pitch, int acc);
- void read(const Key_engraver&);
- void set_c_position(int);
+ Key_item (int cposition);
+ void add (int pitch, int acc);
+ void read (const Key_engraver&);
+ void set_c_position (int);
protected:
virtual void do_pre_processing();
Molecule* brew_molecule_p()const;
diff --git a/lily/include/key-performer.hh b/lily/include/key-performer.hh
index 6b1cba48f8..f459ea9353 100644
--- a/lily/include/key-performer.hh
+++ b/lily/include/key-performer.hh
@@ -20,7 +20,7 @@ public:
protected:
void do_print() const;
- virtual bool do_try_request( Request* req_l );
+ virtual bool do_try_request (Request* req_l);
virtual void process_requests();
private:
diff --git a/lily/include/key.hh b/lily/include/key.hh
index d3d34a01ae..10c5779455 100644
--- a/lily/include/key.hh
+++ b/lily/include/key.hh
@@ -17,8 +17,8 @@ public:
Array<int> accidental_i_arr_;
Octave_key();
- void set(int i, int acc);
- int acc(int i)const { return accidental_i_arr_[i]; }
+ void set (int i, int acc);
+ int acc (int i)const { return accidental_i_arr_[i]; }
};
/// administration of accidentals
@@ -30,9 +30,9 @@ class Key
public:
bool multi_octave_b_;
- Octave_key&oct(int);
- void set(int name, int acc);
- void set(int oct, int name, int acc);
+ Octave_key&oct (int);
+ void set (int name, int acc);
+ void set (int oct, int name, int acc);
Key();
};
diff --git a/lily/include/keyword.hh b/lily/include/keyword.hh
index a38935b398..4b40a979fc 100644
--- a/lily/include/keyword.hh
+++ b/lily/include/keyword.hh
@@ -18,8 +18,8 @@ struct Keyword_table
{
Keyword_ent *table;
int maxkey;
- Keyword_table(Keyword_ent *);
- int lookup(char const *s) const;
+ Keyword_table (Keyword_ent *);
+ int lookup (char const *s) const;
};
diff --git a/lily/include/leastsquares.hh b/lily/include/leastsquares.hh
index 2e5c970fe5..c813f36bc4 100644
--- a/lily/include/leastsquares.hh
+++ b/lily/include/leastsquares.hh
@@ -15,7 +15,7 @@
*/
struct Least_squares {
Array<Offset> input;
- void minimise(Real &coef, Real &offset);
+ void minimise (Real &coef, Real &offset);
void OK() const;
};
diff --git a/lily/include/line-group-grav.hh b/lily/include/line-group-grav.hh
index 2c3393806f..65e35726df 100644
--- a/lily/include/line-group-grav.hh
+++ b/lily/include/line-group-grav.hh
@@ -21,7 +21,7 @@ class Line_group_engraver : public Engraver{
protected:
virtual void do_creation_processing();
virtual void do_removal_processing();
- virtual void acknowledge_element(Score_elem_info);
+ virtual void acknowledge_element (Score_elem_info);
public:
DECLARE_MY_RUNTIME_TYPEINFO;
diff --git a/lily/include/line-spacer.hh b/lily/include/line-spacer.hh
index 96ef38d42f..f6f6cfe5c7 100644
--- a/lily/include/line-spacer.hh
+++ b/lily/include/line-spacer.hh
@@ -31,17 +31,17 @@ public:
/** solve the spacing problem
*/
- virtual void solve(Col_hpositions *) const=0;
+ virtual void solve (Col_hpositions *) const=0;
/**
Approximate the spacing problem:
return a lower bound on the energy
*/
- virtual void lower_bound_solution(Col_hpositions *) const=0;
+ virtual void lower_bound_solution (Col_hpositions *) const=0;
/** add a col to the problem. columns have to be added left to
right. The column contains info on it's minimum width. */
- virtual void add_column(PCol *, bool fixed=false, Real fixpos=0.0)=0;
+ virtual void add_column (PCol *, bool fixed=false, Real fixpos=0.0)=0;
/**
can the posed problem be solved?
@@ -51,7 +51,7 @@ public:
prepare() was called
*/
- virtual bool check_constraints(Vector v) const=0;
+ virtual bool check_constraints (Vector v) const=0;
/**
generate a solution which can't fail
diff --git a/lily/include/linespace.hh b/lily/include/linespace.hh
index 60e52bed6c..415a5376be 100644
--- a/lily/include/linespace.hh
+++ b/lily/include/linespace.hh
@@ -46,9 +46,9 @@ class Spacing_problem {
Array<Colinfo> loose_col_arr_;
/// mark column #i# as being loose.
- void loosen_column(int i);
+ void loosen_column (int i);
/// the index of #c# in #cols#
- int col_id(PCol const *c) const;
+ int col_id (PCol const *c) const;
/// generate an (nonoptimal) solution
Vector find_initial_solution() const;
@@ -57,17 +57,17 @@ class Spacing_problem {
bool check_feasible() const;
/// does #this# contain the column #w#?
- bool contains(PCol const *w);
+ bool contains (PCol const *w);
/// make the energy function
- void make_matrices(Matrix &quad, Vector &lin,Real&) const;
+ void make_matrices (Matrix &quad, Vector &lin,Real&) const;
/// generate the LP constraints
- void make_constraints(Mixed_qp& lp) const;
+ void make_constraints (Mixed_qp& lp) const;
void handle_loose_cols();
- void position_loose_cols(Vector &) const;
+ void position_loose_cols (Vector &) const;
/**
add a idealspacing to the problem.
@@ -75,13 +75,13 @@ class Spacing_problem {
since they can be "summed" if the columns to which #i# refers are
not in this problem, the spacing is ignored.
*/
- void add_ideal(Idealspacing const *i);
- void print_ideal(Idealspacing const *)const;
+ void add_ideal (Idealspacing const *i);
+ void print_ideal (Idealspacing const *)const;
Vector try_initial_solution() const;
void calcideal();
- Score_column* scol_l(int);
- void connect(int i,int j, Real,Real);
+ Score_column* scol_l (int);
+ void connect (int i,int j, Real,Real);
public:
static Line_spacer *constructor() {
return new Line_spacer;
@@ -89,13 +89,13 @@ public:
Array<PCol*> error_pcol_l_arr() const;
virtual Array<Real> solve() const;
- virtual void add_column(PCol *, bool fixed=false, Real fixpos=0.0);
+ virtual void add_column (PCol *, bool fixed=false, Real fixpos=0.0);
virtual Vector default_solution() contains {
return try_initial_solution() ;
}
- virtual bool check_constraints(Vector v) const;
+ virtual bool check_constraints (Vector v) const;
virtual void OK() const;
virtual void print() const;
virtual void prepare();
diff --git a/lily/include/local-key-grav.hh b/lily/include/local-key-grav.hh
index 0530099634..e060dc6188 100644
--- a/lily/include/local-key-grav.hh
+++ b/lily/include/local-key-grav.hh
@@ -21,7 +21,7 @@ struct Local_key_engraver : Engraver {
Link_array<Item > tied_l_arr_;
/* *************** */
virtual void do_process_requests();
- virtual void acknowledge_element(Score_elem_info);
+ virtual void acknowledge_element (Score_elem_info);
virtual void do_pre_move_processing();
Local_key_engraver();
DECLARE_MY_RUNTIME_TYPEINFO;
diff --git a/lily/include/local-key-item.hh b/lily/include/local-key-item.hh
index 7316df60e7..467f331201 100644
--- a/lily/include/local-key-item.hh
+++ b/lily/include/local-key-item.hh
@@ -13,7 +13,7 @@ struct Local_acc {
int name_i_;
int accidental_i_;
int octave_i_;
- static int compare(Local_acc&, Local_acc&);
+ static int compare (Local_acc&, Local_acc&);
};
/**
@@ -36,13 +36,13 @@ public:
- Local_key_item(int c0position);
- void add_support(Item*);
- void add(int oct, int pitch, int acc);
- void add(Melodic_req*);
+ Local_key_item (int c0position);
+ void add_support (Item*);
+ void add (int oct, int pitch, int acc);
+ void add (Melodic_req*);
protected:
virtual void do_pre_processing();
- virtual void do_substitute_dependency(Score_elem*,Score_elem*);
+ virtual void do_substitute_dependency (Score_elem*,Score_elem*);
virtual Molecule* brew_molecule_p()const;
};
#endif // LOCALKEYITEM_HH
diff --git a/lily/include/lookup.hh b/lily/include/lookup.hh
index d5e0d07fd4..46155bded3 100644
--- a/lily/include/lookup.hh
+++ b/lily/include/lookup.hh
@@ -19,45 +19,45 @@ struct Lookup {
Symtables *symtables_;
String texsetting;
/* *************** */
- void add(String, Symtable*);
+ void add (String, Symtable*);
void print()const;
- Symbol linestaff(int n, Real w)const;
- Symbol fill(Box b)const;
- Symbol beam_element(int,int,Real=0)const;
+ Symbol linestaff (int n, Real w)const;
+ Symbol fill (Box b)const;
+ Symbol beam_element (int,int,Real=0)const;
/// round slope to closest TeXslope
- Symbol beam(Real&,Real)const;
+ Symbol beam (Real&,Real)const;
/**
pos == 3 : 3 lines above staff (extending below note)
pos == -3: below staff
*/
- Symbol streepjes(int pos)const;
+ Symbol streepjes (int pos)const;
- Symbol vbrace(Real &dy) const;
- Symbol meter(Array<Scalar>)const;
- Symbol stem(Real y1_pos, Real y2_pos)const;
- Symbol rule_symbol(Real height, Real width)const;
- Symbol accidental(int)const;
- Symbol ball(int)const;
- Symbol flag(int)const;
- Symbol rest(int, bool outside)const;
- Symbol clef(String)const;
- Symbol bar(String, Real height)const;
+ Symbol vbrace (Real &dy) const;
+ Symbol meter (Array<Scalar>)const;
+ Symbol stem (Real y1_pos, Real y2_pos)const;
+ Symbol rule_symbol (Real height, Real width)const;
+ Symbol accidental (int)const;
+ Symbol ball (int)const;
+ Symbol flag (int)const;
+ Symbol rest (int, bool outside)const;
+ Symbol clef (String)const;
+ Symbol bar (String, Real height)const;
- Symbol dots(int)const;
- Symbol slur(int dy, Real &dx, int dir)const;
- Symbol half_slur(int dy, Real &dx, int dir, int xpart)const;
- Symbol half_slur_middlepart(Real &dx, int dir)const;
- Symbol big_slur(int dy, Real &dx, int dir)const;
- Symbol text(String style, String text, int align = 1)const;
- Symbol script(String idx)const;
- Symbol hairpin(Real & width, bool decresc)const;
- Symbol dynamic(String)const;
+ Symbol dots (int)const;
+ Symbol slur (int dy, Real &dx, int dir)const;
+ Symbol half_slur (int dy, Real &dx, int dir, int xpart)const;
+ Symbol half_slur_middlepart (Real &dx, int dir)const;
+ Symbol big_slur (int dy, Real &dx, int dir)const;
+ Symbol text (String style, String text, int align = 1)const;
+ Symbol script (String idx)const;
+ Symbol hairpin (Real & width, bool decresc)const;
+ Symbol dynamic (String)const;
Lookup();
- Lookup(Lookup const &);
+ Lookup (Lookup const &);
~Lookup();
};
diff --git a/lily/include/lyric-engraver.hh b/lily/include/lyric-engraver.hh
index 8e18c8ed6a..632e9c571e 100644
--- a/lily/include/lyric-engraver.hh
+++ b/lily/include/lyric-engraver.hh
@@ -19,7 +19,7 @@ class Lyric_engraver : public Engraver {
Text_item *lyric_item_p_;
protected:
virtual void do_pre_move_processing();
- virtual bool do_try_request(Request*);
+ virtual bool do_try_request (Request*);
virtual void do_process_requests();
virtual void do_post_move_processing();
public:
diff --git a/lily/include/lyric-performer.hh b/lily/include/lyric-performer.hh
index c0321c2839..f03c4faaf0 100644
--- a/lily/include/lyric-performer.hh
+++ b/lily/include/lyric-performer.hh
@@ -22,7 +22,7 @@ public:
protected:
void do_print() const;
- virtual bool do_try_request( Request* req_l );
+ virtual bool do_try_request (Request* req_l);
virtual void process_requests();
private:
diff --git a/lily/include/main.hh b/lily/include/main.hh
index 0c461a36d6..79ac1e878e 100644
--- a/lily/include/main.hh
+++ b/lily/include/main.hh
@@ -3,12 +3,12 @@
#include "lily-proto.hh"
void debug_init();
-void set_debug(bool);
+void set_debug (bool);
void do_scores();
-void add_score(Score* s);
-void set_default_output(String s);
+void add_score (Score* s);
+void set_default_output (String s);
Input_score* current_iscore_l();
-String find_file(String);
+String find_file (String);
String get_version_str();
extern Sources* source_l_g;
extern bool only_midi;
diff --git a/lily/include/meter-grav.hh b/lily/include/meter-grav.hh
index d1085f63fe..9c1d72d820 100644
--- a/lily/include/meter-grav.hh
+++ b/lily/include/meter-grav.hh
@@ -24,8 +24,8 @@ public:
Meter_change_req * meter_req_l_;
Meter * meter_p_;
- virtual void fill_staff_info(Staff_info&);
- virtual bool do_try_request(Request *req_l);
+ virtual void fill_staff_info (Staff_info&);
+ virtual bool do_try_request (Request *req_l);
virtual void do_process_requests();
virtual void do_pre_move_processing();
virtual void do_creation_processing();
diff --git a/lily/include/meter-performer.hh b/lily/include/meter-performer.hh
index 3d972c10e8..51edbad020 100644
--- a/lily/include/meter-performer.hh
+++ b/lily/include/meter-performer.hh
@@ -20,7 +20,7 @@ public:
protected:
void do_print() const;
- virtual bool do_try_request( Request* req_l );
+ virtual bool do_try_request (Request* req_l);
virtual void process_requests();
private:
diff --git a/lily/include/meter.hh b/lily/include/meter.hh
index eb5f2b128e..8347b3fa2d 100644
--- a/lily/include/meter.hh
+++ b/lily/include/meter.hh
@@ -22,7 +22,7 @@ class Meter: public Item {
protected:
Molecule*brew_molecule_p() const;
public:
- Meter(Array<Scalar> args) ;
+ Meter (Array<Scalar> args) ;
DECLARE_MY_RUNTIME_TYPEINFO;
SCORE_ELEM_CLONE(Meter);
};
diff --git a/lily/include/midi-def.hh b/lily/include/midi-def.hh
index 89a7543567..bb96d961e8 100644
--- a/lily/include/midi-def.hh
+++ b/lily/include/midi-def.hh
@@ -32,15 +32,15 @@ struct Midi_def {
Real whole_seconds_f_;
Midi_def();
- Midi_def( Midi_def const& midi_c_r );
+ Midi_def (Midi_def const& midi_c_r);
~Midi_def();
- Real duration_to_seconds_f(Moment);
+ Real duration_to_seconds_f (Moment);
Global_translator* get_global_translator_p() const;
- int get_tempo_i( Moment moment );
+ int get_tempo_i (Moment moment);
void print() const;
- void set( Input_translator* itrans_p );
- void set_tempo( Moment moment, int count_per_minute_i );
+ void set (Input_translator* itrans_p);
+ void set_tempo (Moment moment, int count_per_minute_i);
};
#endif // MIDI_DEF_HH
diff --git a/lily/include/midi-item.hh b/lily/include/midi-item.hh
index 4906f27ba8..c422e04db8 100644
--- a/lily/include/midi-item.hh
+++ b/lily/include/midi-item.hh
@@ -19,17 +19,17 @@
*/
struct Midi_item {
DECLARE_MY_RUNTIME_TYPEINFO;
- Midi_item( Audio_item* audio_item_l );
- static String i2varint_str( int i );
- void output( Midi_stream* midi_stream_l ) const;
+ Midi_item (Audio_item* audio_item_l);
+ static String i2varint_str (int i);
+ void output (Midi_stream* midi_stream_l) const;
virtual String str() const = 0;
Audio_item* audio_item_l_;
int channel_i_;
private:
- Midi_item( Midi_item const& );
- Midi_item& operator =( Midi_item const& );
+ Midi_item (Midi_item const&);
+ Midi_item& operator =( Midi_item const&);
};
/**
@@ -39,8 +39,8 @@ struct Midi_chunk : Midi_item {
DECLARE_MY_RUNTIME_TYPEINFO;
Midi_chunk();
- void add( String str );
- void set( String header_str, String data_str, String footer_str );
+ void add (String str);
+ void set (String header_str, String data_str, String footer_str);
virtual String str() const;
private:
@@ -51,7 +51,7 @@ private:
struct Midi_duration : public Midi_item {
DECLARE_MY_RUNTIME_TYPEINFO;
- Midi_duration( Real seconds_f );
+ Midi_duration (Real seconds_f);
virtual String str() const;
Real seconds_f_;
@@ -60,7 +60,7 @@ struct Midi_duration : public Midi_item {
struct Midi_header : Midi_chunk {
DECLARE_MY_RUNTIME_TYPEINFO;
- Midi_header( int format_i, int tracks_i, int clocks_per_4_i );
+ Midi_header (int format_i, int tracks_i, int clocks_per_4_i);
};
@@ -69,7 +69,7 @@ struct Midi_header : Midi_chunk {
*/
struct Midi_instrument : public Midi_item {
DECLARE_MY_RUNTIME_TYPEINFO;
- Midi_instrument( int channel_i, String instrument_str );
+ Midi_instrument (int channel_i, String instrument_str);
virtual String str() const;
String instrument_str_;
@@ -78,7 +78,7 @@ struct Midi_instrument : public Midi_item {
struct Midi_key : public Midi_item {
DECLARE_MY_RUNTIME_TYPEINFO;
- Midi_key( Audio_item* audio_item_l );
+ Midi_key (Audio_item* audio_item_l);
virtual String str() const;
};
@@ -86,7 +86,7 @@ struct Midi_key : public Midi_item {
struct Midi_meter : Midi_item {
DECLARE_MY_RUNTIME_TYPEINFO;
- Midi_meter( Audio_item* audio_item_l );
+ Midi_meter (Audio_item* audio_item_l);
virtual String str() const;
int clocks_per_1_i_;
@@ -97,7 +97,7 @@ struct Midi_meter : Midi_item {
*/
struct Midi_note : public Midi_item {
DECLARE_MY_RUNTIME_TYPEINFO;
- Midi_note( Audio_item* audio_item_l );
+ Midi_note (Audio_item* audio_item_l);
Moment duration() const;
int pitch_i() const;
@@ -112,7 +112,7 @@ struct Midi_note : public Midi_item {
*/
struct Midi_note_off : public Midi_item {
DECLARE_MY_RUNTIME_TYPEINFO;
- Midi_note_off( Midi_note* midi_note_l );
+ Midi_note_off (Midi_note* midi_note_l);
int pitch_i() const;
virtual String str() const;
@@ -127,8 +127,8 @@ struct Midi_text : Midi_item {
TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC,
MARKER, CUE_POINT
};
- Midi_text( Midi_text::Type type, String text_str );
- Midi_text( Audio_item* audio_item_l );
+ Midi_text (Midi_text::Type type, String text_str);
+ Midi_text (Audio_item* audio_item_l);
virtual String str() const;
@@ -138,8 +138,8 @@ struct Midi_text : Midi_item {
struct Midi_tempo : Midi_item {
DECLARE_MY_RUNTIME_TYPEINFO;
- Midi_tempo( int per_minute_4_i );
- Midi_tempo( Audio_item* audio_item_l );
+ Midi_tempo (int per_minute_4_i);
+ Midi_tempo (Audio_item* audio_item_l);
virtual String str() const;
@@ -152,8 +152,8 @@ struct Midi_track : Midi_chunk {
Midi_track();
- void add( int delta_time_i, String event );
- void add( Moment delta_time_moment, Midi_item* mitem_l );
+ void add (int delta_time_i, String event);
+ void add (Moment delta_time_moment, Midi_item* mitem_l);
};
#endif // MIDI_ITEM_HH
diff --git a/lily/include/midi-stream.hh b/lily/include/midi-stream.hh
index 9fded298d5..87e8ec5d27 100644
--- a/lily/include/midi-stream.hh
+++ b/lily/include/midi-stream.hh
@@ -12,12 +12,12 @@
/// Midi outputfile
struct Midi_stream {
- Midi_stream( String filename_str );
+ Midi_stream (String filename_str);
~Midi_stream();
- Midi_stream& operator <<( String str );
- Midi_stream& operator <<( Midi_item const& mitem_c_r );
- Midi_stream& operator <<( int i );
+ Midi_stream& operator <<( String str);
+ Midi_stream& operator <<( Midi_item const& mitem_c_r);
+ Midi_stream& operator <<( int i);
void open();
diff --git a/lily/include/midi-walker.hh b/lily/include/midi-walker.hh
index a9ce619a09..313e21af3d 100644
--- a/lily/include/midi-walker.hh
+++ b/lily/include/midi-walker.hh
@@ -21,7 +21,7 @@ struct Midi_note_event : PQueue_ent<Moment, Midi_note_off*>
Midi_note_event();
};
-int compare(Midi_note_event const& left, Midi_note_event const& right );
+int compare (Midi_note_event const& left, Midi_note_event const& right);
/**
walk audio and output midi
@@ -29,15 +29,15 @@ int compare(Midi_note_event const& left, Midi_note_event const& right );
class Midi_walker : public PCursor<Audio_item*>
{
public:
- Midi_walker( Audio_staff* audio_staff_l, Midi_track* midi_track_l );
+ Midi_walker (Audio_staff* audio_staff_l, Midi_track* midi_track_l);
~Midi_walker();
void process();
private:
- void do_start_note( Midi_note* note_l );
- void do_stop_notes( Moment now_mom );
- void output_event( Moment now_mom, Midi_item* l );
+ void do_start_note (Midi_note* note_l);
+ void do_stop_notes (Moment now_mom);
+ void output_event (Moment now_mom, Midi_item* l);
Midi_track* track_l_;
PQueue<Midi_note_event> stop_note_queue;
diff --git a/lily/include/misc.hh b/lily/include/misc.hh
index 8ba5e10b78..0e8c148ef0 100644
--- a/lily/include/misc.hh
+++ b/lily/include/misc.hh
@@ -7,20 +7,20 @@
#include "scalar.hh"
#include "grouping.hh"
-Moment wholes(int dur, int dots);
+Moment wholes (int dur, int dots);
double log_2(double x) ;
int intlog2(int d);
inline int
-abs(int i){
+abs (int i){
return (i < 0)?-i:i;
}
inline int
-sign(int i) {
+sign (int i) {
if (i<0) return -1;
else if (i) return 1;
else return 0;
}
-Interval itemlist_width(const Array<Item*> &its);
+Interval itemlist_width (const Array<Item*> &its);
#endif
diff --git a/lily/include/molecule.hh b/lily/include/molecule.hh
index d1057bebf0..b031688e21 100644
--- a/lily/include/molecule.hh
+++ b/lily/include/molecule.hh
@@ -14,22 +14,22 @@ struct Molecule {
/* *************** */
Molecule() { }
- Molecule(Atom const &a) { add(a) ;}
+ Molecule (Atom const &a) { add (a) ;}
- void add_right(const Molecule &m);
- void add_left(const Molecule &m);
- void add_top(const Molecule &m);
- void add_bottom(const Molecule &m);
- void add(Molecule const &m);
- void translate(Offset);
- void translate(Real,Axis);
- void add(Atom const & a) ;
+ void add_right (const Molecule &m);
+ void add_left (const Molecule &m);
+ void add_top (const Molecule &m);
+ void add_bottom (const Molecule &m);
+ void add (Molecule const &m);
+ void translate (Offset);
+ void translate (Real,Axis);
+ void add (Atom const & a) ;
/// how big is #this#?
Box extent() const;
String TeX_string() const;
- Molecule(const Molecule&s);
+ Molecule (const Molecule&s);
void print() const;
private:
void operator=(const Molecule&);
diff --git a/lily/include/music-iterator.hh b/lily/include/music-iterator.hh
index c38340706e..636fc659c9 100644
--- a/lily/include/music-iterator.hh
+++ b/lily/include/music-iterator.hh
@@ -17,25 +17,25 @@
class Music_iterator {
Array<Translator *>report_to_l_arr_;
- void push_translator(Translator*);
+ void push_translator (Translator*);
void pop_translator();
protected:
bool first_b_;
virtual void do_print()const;
virtual Translator * get_req_translator_l();
- Music_iterator* get_iterator_p(Music*)const;
- void set_translator(Translator*);
+ Music_iterator* get_iterator_p (Music*)const;
+ void set_translator (Translator*);
Music_iterator *daddy_iter_l_;
public:
Translator *report_to_l()const;
DECLARE_MY_RUNTIME_TYPEINFO;
- static Music_iterator* static_get_iterator_p(Music*,Translator*);
+ static Music_iterator* static_get_iterator_p (Music*,Translator*);
Music_iterator();
- virtual void process_and_next(Moment until);
+ virtual void process_and_next (Moment until);
virtual Moment next_moment()const;
virtual bool ok()const;
virtual ~Music_iterator();
@@ -50,12 +50,12 @@ class Chord_iterator : public Music_iterator
Pointer_list<Music_iterator*> children_p_list_;
public:
~Chord_iterator();
- Chord_iterator(Chord const*);
+ Chord_iterator (Chord const*);
DECLARE_MY_RUNTIME_TYPEINFO;
protected:
virtual void do_print()const;
virtual void construct_children();
- virtual void process_and_next(Moment);
+ virtual void process_and_next (Moment);
virtual Moment next_moment()const;
virtual bool ok()const;
};
@@ -65,11 +65,11 @@ class Request_chord_iterator : public Music_iterator {
Moment elt_duration_;
bool last_b_;
public:
- Request_chord_iterator(Request_chord*);
+ Request_chord_iterator (Request_chord*);
DECLARE_MY_RUNTIME_TYPEINFO;
protected:
- virtual void process_and_next(Moment);
+ virtual void process_and_next (Moment);
virtual Moment next_moment()const;
virtual void construct_children();
virtual bool ok()const;
@@ -87,13 +87,13 @@ class Voice_iterator : private PCursor<Music*>, public Music_iterator
void set_voice_translator();
public:
- Voice_iterator(Voice const*);
+ Voice_iterator (Voice const*);
DECLARE_MY_RUNTIME_TYPEINFO;
protected:
virtual void do_print()const;
virtual void construct_children();
~Voice_iterator();
- virtual void process_and_next(Moment);
+ virtual void process_and_next (Moment);
virtual Moment next_moment()const;
virtual bool ok()const;
};
diff --git a/lily/include/music-list.hh b/lily/include/music-list.hh
index bcae7cff83..2ce9625999 100644
--- a/lily/include/music-list.hh
+++ b/lily/include/music-list.hh
@@ -22,12 +22,12 @@ class Music_list : public Music {
public:
int multi_level_i_;
- Music_list(Music_list const&);
+ Music_list (Music_list const&);
Music_list();
DECLARE_MY_RUNTIME_TYPEINFO;
VIRTUAL_COPY_CONS(Music_list,Music);
- virtual void add(Music*);
- virtual void transpose(Melodic_req const *);
+ virtual void add (Music*);
+ virtual void transpose (Melodic_req const *);
Pointer_list<Music*> music_p_list_;
protected:
@@ -44,7 +44,7 @@ public:
Chord();
DECLARE_MY_RUNTIME_TYPEINFO;
VIRTUAL_COPY_CONS(Chord,Music);
- virtual void translate(Moment dt);
+ virtual void translate (Moment dt);
virtual MInterval time_int()const;
};
@@ -70,7 +70,7 @@ public:
Voice();
DECLARE_MY_RUNTIME_TYPEINFO;
VIRTUAL_COPY_CONS(Voice, Music);
- virtual void translate(Moment dt);
+ virtual void translate (Moment dt);
virtual MInterval time_int()const;
};
diff --git a/lily/include/music.hh b/lily/include/music.hh
index 63ce4b8799..5aec401462 100644
--- a/lily/include/music.hh
+++ b/lily/include/music.hh
@@ -45,8 +45,8 @@ public:
virtual MInterval time_int()const;
virtual ~Music(){}
void print() const;
- virtual void transpose(Melodic_req const *);
- virtual void translate(Moment dt);
+ virtual void transpose (Melodic_req const *);
+ virtual void translate (Moment dt);
VIRTUAL_COPY_CONS(Music,Music);
DECLARE_MY_RUNTIME_TYPEINFO;
Music();
diff --git a/lily/include/musical-request.hh b/lily/include/musical-request.hh
index 6152be7782..2346d1625c 100644
--- a/lily/include/musical-request.hh
+++ b/lily/include/musical-request.hh
@@ -50,11 +50,11 @@ public:
Duration duration_;
/* *************** */
- void set_duration(Duration);
- bool do_equal_b(Request*)const;
+ void set_duration (Duration);
+ bool do_equal_b (Request*)const;
virtual Moment duration() const;
Rhythmic_req();
- static int compare(Rhythmic_req const&,Rhythmic_req const&);
+ static int compare (Rhythmic_req const&,Rhythmic_req const&);
REQUESTMETHODS(Rhythmic_req, rhythmic);
};
@@ -86,9 +86,9 @@ public:
Text_def *tdef_p_;
/* *************** */
- Text_req(int d, Text_def*);
+ Text_req (int d, Text_def*);
~Text_req();
- Text_req(Text_req const&);
+ Text_req (Text_req const&);
REQUESTMETHODS(Text_req,text);
};
@@ -98,7 +98,7 @@ public:
*/
class Lyric_req : public Rhythmic_req, public Text_req {
public:
- Lyric_req(Text_def* t_p);
+ Lyric_req (Text_def* t_p);
REQUESTMETHODS(Lyric_req, lreq_l);
};
@@ -117,12 +117,12 @@ struct Melodic_req :virtual Musical_req
int height()const;
/// transpose. #delta# is relative to central c.
- void transpose(Melodic_req const &delta);
+ void transpose (Melodic_req const &delta);
/// return pitch from central c (in halfnotes)
int pitch()const;
Melodic_req();
- bool do_equal_b(Request*)const;
- static int compare( Melodic_req const&,Melodic_req const&);
+ bool do_equal_b (Request*)const;
+ static int compare (Melodic_req const&,Melodic_req const&);
REQUESTMETHODS(Melodic_req,melodic);
};
@@ -133,8 +133,8 @@ public:
/// force/supress printing of accidental.
bool forceacc_b_;
Note_req();
- bool do_equal_b(Request*)const;
- Rhythmic_req* rhythmic() { return Rhythmic_req::rhythmic(); }
+ bool do_equal_b (Request*)const;
+ Rhythmic_req* rhythmic() { return Rhythmic_req::rhythmic (); }
REQUESTMETHODS(Note_req, note);
};
@@ -168,7 +168,7 @@ public:
enum {
NOSPAN, START, STOP
} spantype ;
- bool do_equal_b(Request*)const;
+ bool do_equal_b (Request*)const;
REQUESTMETHODS(Span_req,span);
Span_req();
@@ -214,7 +214,7 @@ public:
enum Loudness {
FFF, FF, F, MF, MP, P, PP, PPP
};
- static String loudness_str(Loudness);
+ static String loudness_str (Loudness);
REQUESTMETHODS(Dynamic_req, dynamic);
};
diff --git a/lily/include/my-lily-lexer.hh b/lily/include/my-lily-lexer.hh
index b214366e7e..d472a3ffa6 100644
--- a/lily/include/my-lily-lexer.hh
+++ b/lily/include/my-lily-lexer.hh
@@ -26,9 +26,9 @@ void set_lexer();
/// lexer for Mudela
class My_lily_lexer : public Includable_lexer {
- int lookup_keyword(String);
- int scan_bare_word(String);
- int scan_escaped_word(String);
+ int lookup_keyword (String);
+ int scan_bare_word (String);
+ int scan_escaped_word (String);
bool post_quotes_b_;
public:
@@ -42,18 +42,18 @@ public:
/* *************** */
void clear_notenames();
- Identifier*lookup_identifier(String s);
- Melodic_req* lookup_melodic_req_l(String s);
+ Identifier*lookup_identifier (String s);
+ Melodic_req* lookup_melodic_req_l (String s);
void push_note_state();
void push_lyric_state();
void pop_state();
- void LexerError(char const *);
+ void LexerError (char const *);
My_lily_lexer();
- void add_identifier(Identifier*i);
+ void set_identifier (String,Identifier*i);
~My_lily_lexer();
int yylex();
- void print_declarations(bool init_b) const;
- void add_notename(String, Melodic_req*);
+ void print_declarations (bool init_b) const;
+ void add_notename (String, Melodic_req*);
bool note_state_b() const;
bool lyric_state_b() const;
};
diff --git a/lily/include/my-lily-parser.hh b/lily/include/my-lily-parser.hh
index e606a0f4b3..8869ccb514 100644
--- a/lily/include/my-lily-parser.hh
+++ b/lily/include/my-lily-parser.hh
@@ -25,16 +25,16 @@ class My_lily_parser {
Array<Input> define_spot_array_;
String init_str_;
- void add_requests( Chord*v);
+ void add_requests (Chord*v);
- Chord * get_note_element(Note_req * ,Duration *);
- Chord* get_rest_element(String,Duration *);
- Chord* get_word_element(Text_def*, Duration*);
+ Chord * get_note_element (Note_req * ,Duration *);
+ Chord* get_rest_element (String,Duration *);
+ Chord* get_word_element (Text_def*, Duration*);
- void set_last_duration(Duration const *);
- void set_default_duration(Duration const *);
- void set_duration_mode(String s);
- friend int yyparse( void*);
+ void set_last_duration (Duration const *);
+ void set_default_duration (Duration const *);
+ void set_duration_mode (String s);
+ friend int yyparse (void*);
public:
int default_octave_i_;
Duration default_duration_;
@@ -51,7 +51,7 @@ public:
My_lily_lexer * lexer_p_;
Moment plet_mom();
- void add_notename(String, Melodic_req* req_p);
+ void add_notename (String, Melodic_req* req_p);
Input here_input()const;
void remember_spot();
Input pop_spot();
@@ -59,21 +59,21 @@ public:
Paper_def*default_paper();
Midi_def*default_midi();
void do_yyparse();
- void parser_error(String);
+ void parser_error (String);
void clear_notenames();
- Request* get_parens_request(char c);
+ Request* get_parens_request (char c);
void set_debug();
- void set_yydebug(bool);
+ void set_yydebug (bool);
void print_declarations();
bool ignore_version_b_;
public:
void do_init_file();
void parse_file ( String init_str, String file_str);
- My_lily_parser(Sources * sources_l);
+ My_lily_parser (Sources * sources_l);
~My_lily_parser();
- void set_version_check(bool ignore);
+ void set_version_check (bool ignore);
};
#endif // MY_LILY_PARSER_HH
diff --git a/lily/include/note-column-grav.hh b/lily/include/note-column-grav.hh
index 43ebda4432..43784776f9 100644
--- a/lily/include/note-column-grav.hh
+++ b/lily/include/note-column-grav.hh
@@ -24,10 +24,10 @@ class Note_column_engraver :public Engraver {
int dir_i_;
- bool acceptable_elem_b(Score_elem const*)const;
+ bool acceptable_elem_b (Score_elem const*)const;
protected:
- virtual void set_feature(Feature);
- virtual void acknowledge_element(Score_elem_info);
+ virtual void set_feature (Feature);
+ virtual void acknowledge_element (Score_elem_info);
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
public:
diff --git a/lily/include/note-column.hh b/lily/include/note-column.hh
index 2e297e88a4..3ee218ec12 100644
--- a/lily/include/note-column.hh
+++ b/lily/include/note-column.hh
@@ -14,7 +14,7 @@
#include "head-column.hh"
/** a struct for treating a group of noteheads (noteheads, stem
- (chord) and scripts ) as a single entity. */
+ (chord) and scripts) as a single entity. */
class Note_column : public Head_column {
protected:
virtual void do_pre_processing();
@@ -26,7 +26,7 @@ public:
DECLARE_MY_RUNTIME_TYPEINFO;
Note_column();
- virtual void set(Stem *);
+ virtual void set (Stem *);
void sort();
};
diff --git a/lily/include/note-head.hh b/lily/include/note-head.hh
index 14cd2491a8..6fab4812b5 100644
--- a/lily/include/note-head.hh
+++ b/lily/include/note-head.hh
@@ -37,14 +37,14 @@ public:
/* *************** */
- void set_rhythmic(Rhythmic_req *);
+ void set_rhythmic (Rhythmic_req *);
/**
position of top line (5 linestaff: 8)
*/
- Note_head(int staff_size);
+ Note_head (int staff_size);
void set_dots();
- static int compare(Note_head * const &a, Note_head *const &b) ;
+ static int compare (Note_head * const &a, Note_head *const &b) ;
protected:
virtual void do_print()const;
virtual void do_pre_processing();
diff --git a/lily/include/note-performer.hh b/lily/include/note-performer.hh
index 0fb8aecbd4..436b78bb2a 100644
--- a/lily/include/note-performer.hh
+++ b/lily/include/note-performer.hh
@@ -22,7 +22,7 @@ public:
protected:
virtual void process_requests();
- virtual bool do_try_request( Request *req_l ) ;
+ virtual bool do_try_request (Request *req_l) ;
virtual void do_print() const;
private:
diff --git a/lily/include/notename-table.hh b/lily/include/notename-table.hh
index 082dda366b..5e083a6d7c 100644
--- a/lily/include/notename-table.hh
+++ b/lily/include/notename-table.hh
@@ -17,8 +17,8 @@
class Notename_table : Assoc<String, P<Melodic_req> >{
public:
- void add(String, Melodic_req*);
- Melodic_req*get_l(String);
+ void add (String, Melodic_req*);
+ Melodic_req*get_l (String);
};
#endif // NOTENAME_TABLE_HH
diff --git a/lily/include/notename.hh b/lily/include/notename.hh
index e0125e1a0b..426f7e4564 100644
--- a/lily/include/notename.hh
+++ b/lily/include/notename.hh
@@ -12,12 +12,12 @@
struct Notename_tab {
String notetab[7*5];
- void set(int l, int s, String nm);
- void lookup(int &large, int &small, String s);
+ void set (int l, int s, String nm);
+ void lookup (int &large, int &small, String s);
};
-void set_notename_tab(Notename_tab*n);
-void lookup_notename(int &large, int &small, String s);
+void set_notename_tab (Notename_tab*n);
+void lookup_notename (int &large, int &small, String s);
#endif // NOTENAME_HH
diff --git a/lily/include/offset.hh b/lily/include/offset.hh
index 00bc73e0e2..b4ed5478ac 100644
--- a/lily/include/offset.hh
+++ b/lily/include/offset.hh
@@ -28,11 +28,11 @@ struct Offset {
}
Offset operator+=(Offset o) {
- x()+=o.x();
- y()+=o.y();
+ x()+=o.x ();
+ y()+=o.y ();
return *this;
}
- Offset(Real ix , Real iy) {
+ Offset (Real ix , Real iy) {
x()=ix;
y()=iy;
}
diff --git a/lily/include/p-col.hh b/lily/include/p-col.hh
index d66921dc87..797fde9584 100644
--- a/lily/include/p-col.hh
+++ b/lily/include/p-col.hh
@@ -60,7 +60,7 @@ public:
bool breakpoint_b() const;
void clean_breakable_items();
- void add(Item *i);
+ void add (Item *i);
/// Can this be broken? true eg. for bars.
bool breakable_b()const;
@@ -75,8 +75,8 @@ public:
@return < 0 if c1 < c2.
*/
- static int compare(const PCol &c1, const PCol &c2);
- void set_rank(int);
+ static int compare (const PCol &c1, const PCol &c2);
+ void set_rank (int);
void OK() const;
void set_breakable();
@@ -89,12 +89,12 @@ private:
-1 is uninitialised.
*/
int rank_i_;
- PCol(PCol const&){}
+ PCol (PCol const&){}
};
#include "compare.hh"
-instantiate_compare(PCol &, PCol::compare);
+INSTANTIATE_COMPARE(PCol &, PCol::compare);
#endif
diff --git a/lily/include/p-score.hh b/lily/include/p-score.hh
index 12ba8c77ad..7c497cd919 100644
--- a/lily/include/p-score.hh
+++ b/lily/include/p-score.hh
@@ -41,33 +41,33 @@ public:
/* *************** */
/* CONSTRUCTION */
- Paper_score(Paper_def*);
+ Paper_score (Paper_def*);
/// add a line to the broken stuff. Positions given in #config#
- void set_breaking(Array<Col_hpositions> const &);
+ void set_breaking (Array<Col_hpositions> const &);
/** add an item.
add the item in specified containers. If breakstatus is set
properly, add it to the {pre,post}break of the pcol.
*/
- void typeset_item(Item *item_p, PCol *pcol_l);
+ void typeset_item (Item *item_p, PCol *pcol_l);
/// add to bottom of pcols
- void add(PCol*);
+ void add (PCol*);
/**
@return argument as a cursor of the list
*/
- PCursor<PCol *> find_col(PCol const *)const;
+ PCursor<PCol *> find_col (PCol const *)const;
- Link_array<PCol> col_range(PCol *left_l, PCol *right_l) const;
- Link_array<PCol> breakable_col_range(PCol*,PCol*) const;
- Link_array<PCol> broken_col_range(PCol*,PCol*) const;
+ Link_array<PCol> col_range (PCol *left_l, PCol *right_l) const;
+ Link_array<PCol> breakable_col_range (PCol*,PCol*) const;
+ Link_array<PCol> broken_col_range (PCol*,PCol*) const;
/* MAIN ROUTINES */
void process();
/// last deed of this struct
- void output(Tex_stream &ts);
+ void output (Tex_stream &ts);
/* UTILITY ROUTINES */
@@ -76,10 +76,10 @@ public:
void OK()const;
void print() const;
~Paper_score();
- void typeset_element(Score_elem*);
- void typeset_broken_spanner(Spanner*);
+ void typeset_element (Score_elem*);
+ void typeset_broken_spanner (Spanner*);
/// add a Spanner
- void typeset_unbroken_spanner(Spanner*);
+ void typeset_unbroken_spanner (Spanner*);
private:
diff --git a/lily/include/paper-def.hh b/lily/include/paper-def.hh
index 44fc05e12a..cb75f8437f 100644
--- a/lily/include/paper-def.hh
+++ b/lily/include/paper-def.hh
@@ -43,15 +43,15 @@ public:
/* *************** */
- void set_var(String, Real);
+ void set_var (String, Real);
Real get_var (String)const;
void reinit();
Paper_def();
- void set(Lookup*);
- void set (Input_translator * );
+ void set (Lookup*);
+ void set (Input_translator *);
Global_translator * get_global_translator_p()const;
~Paper_def();
- Paper_def(Paper_def const&);
+ Paper_def (Paper_def const&);
/// The distance between beams
Real interbeam_f()const;
/**
@@ -77,7 +77,7 @@ public:
/** convert a duration to an idealspacing
influence using the geometric_ and parameters.
*/
- Real duration_to_dist(Moment);
+ Real duration_to_dist (Moment);
};
#endif // Paper_def_HH
diff --git a/lily/include/parseconstruct.hh b/lily/include/parseconstruct.hh
index 2059719880..1bcf0cc4f7 100644
--- a/lily/include/parseconstruct.hh
+++ b/lily/include/parseconstruct.hh
@@ -9,13 +9,13 @@
#include "lily-proto.hh"
-String * get_scriptdef(char c);
-Request* get_script_req(char);
-Request*get_script_req(int d , Script_def*def);
-Request*get_text_req(int d , Text_def*def);
-Request* get_stemdir_req(int);
-Request*get_grouping_req(Array<int> i_arr);
-Request* get_hshift_req(int);
+String * get_scriptdef (char c);
+Request* get_script_req (char);
+Request*get_script_req (int d , Script_def*def);
+Request*get_text_req (int d , Text_def*def);
+Request* get_stemdir_req (int);
+Request*get_grouping_req (Array<int> i_arr);
+Request* get_hshift_req (int);
#endif // PARSECONSTRUCT_HH
diff --git a/lily/include/performer-group-performer.hh b/lily/include/performer-group-performer.hh
index 4c57fc7af8..5c640cc636 100644
--- a/lily/include/performer-group-performer.hh
+++ b/lily/include/performer-group-performer.hh
@@ -23,18 +23,18 @@ public:
DECLARE_MY_RUNTIME_TYPEINFO;
Input_translator* itrans_l_;
- virtual void add( Performer* perf_p );
- virtual bool do_try_request( Request* req_l );
+ virtual void add (Performer* perf_p);
+ virtual bool do_try_request (Request* req_l);
virtual void print() const;
- virtual bool try_request(Request* r);
+ virtual bool try_request (Request* r);
protected:
virtual ~Performer_group_performer();
- virtual Translator* find_get_translator_l( String name, String id );
+ virtual Translator* find_get_translator_l (String name, String id);
virtual Translator* get_default_interpreter();
- Translator * ancestor_l( int l = 1 );
+ Translator * ancestor_l (int l = 1);
virtual int depth_i() const;
virtual void process_requests();
@@ -42,7 +42,7 @@ protected:
virtual void do_creation_processing();
bool is_bottom_performer_b() const;
- virtual Performer_group_performer* find_performer_l( String name, String id );
+ virtual Performer_group_performer* find_performer_l (String name, String id);
virtual void do_print()const;
private:
diff --git a/lily/include/performer.hh b/lily/include/performer.hh
index 0126c7b231..8e9553f08f 100644
--- a/lily/include/performer.hh
+++ b/lily/include/performer.hh
@@ -30,17 +30,17 @@ public:
void print() const;
virtual void process_requests();
- virtual bool try_request( Request* req_l );
+ virtual bool try_request (Request* req_l);
virtual void do_removal_processing();
void creation_processing();
protected:
virtual void do_creation_processing();
- virtual bool do_try_request(Request*);
+ virtual bool do_try_request (Request*);
virtual int get_tempo_i() const;
virtual void do_print() const;
- virtual void play( Audio_element * elem_p );
+ virtual void play (Audio_element * elem_p );
};
#include "global-performers.hh"
diff --git a/lily/include/qlp.hh b/lily/include/qlp.hh
index defcd3ee63..e40b34ff07 100644
--- a/lily/include/qlp.hh
+++ b/lily/include/qlp.hh
@@ -23,12 +23,12 @@ class Mixed_qp :public Ineq_constrained_qp {
Array<int> eq_cons;
Array<Real> eq_consrhs;
public:
- Mixed_qp(int n);
+ Mixed_qp (int n);
void OK() const;
void print() const;
- Vector solve(Vector start) const;
- void add_fixed_var(int i , Real value);
+ Vector solve (Vector start) const;
+ void add_fixed_var (int i , Real value);
/**
@@ -37,8 +37,8 @@ public:
c*vars == r
PRE
- c.dim()==dim();
+ c.dim()==dim ();
*/
- void add_equality_cons(Vector c, double r);
+ void add_equality_cons (Vector c, double r);
};
#endif
diff --git a/lily/include/qlpsolve.hh b/lily/include/qlpsolve.hh
index 56b84e2e16..3ef601188a 100644
--- a/lily/include/qlpsolve.hh
+++ b/lily/include/qlpsolve.hh
@@ -37,8 +37,8 @@ class Active_constraints {
public:
String status()const;
- Vector vec(int k) const { return opt->cons[k]; }
- Real rhs(int k) const { return opt->consrhs[k]; }
+ Vector vec (int k) const { return opt->cons[k]; }
+ Real rhs (int k) const { return opt->consrhs[k]; }
/** drop constraint. drop constraint k from the active set. k is the index of the
@@ -52,18 +52,18 @@ public:
add constraint j to the active set j is the index of the
constraint in #inactive#
*/
- void add(int j);
+ void add (int j);
/// exchange in and out.
- void exchange(int in, int out) { add(in); drop (out); }
+ void exchange (int in, int out) { add (in); drop (out); }
- Vector find_active_optimum(Vector g);
+ Vector find_active_optimum (Vector g);
/// get lagrange multipliers.
- Vector get_lagrange(Vector v);
+ Vector get_lagrange (Vector v);
- Active_constraints(Ineq_constrained_qp const *op);
+ Active_constraints (Ineq_constrained_qp const *op);
/** construct: no constraints active, n vars. Put the equalities
into the constraints. */
@@ -79,13 +79,13 @@ class Inactive_iter {
int j;
Active_constraints const* ac;
public:
- Inactive_iter(Active_constraints const &c) { ac=&c; j=0; }
+ Inactive_iter (Active_constraints const &c) { ac=&c; j=0; }
int idx() const { return j; }
void operator ++(int) { j++; }
int constraint_id() const { return ac->inactive[j]; }
- Vector vec() const { return ac->vec(constraint_id()); }
- Real rhs() const { return ac->rhs(constraint_id()); }
- bool ok() const { return j < ac->inactive.size(); }
+ Vector vec() const { return ac->vec (constraint_id ()); }
+ Real rhs() const { return ac->rhs (constraint_id ()); }
+ bool ok() const { return j < ac->inactive.size (); }
};
#endif // QLPSOLVE_HH
diff --git a/lily/include/request.hh b/lily/include/request.hh
index 07e480137e..3dc1eb9ba2 100644
--- a/lily/include/request.hh
+++ b/lily/include/request.hh
@@ -33,7 +33,7 @@ public:
VIRTUAL_COPY_CONS(Request,Music);
virtual MInterval time_int() const;
- virtual void transpose(Melodic_req const &){}
+ virtual void transpose (Melodic_req const &){}
virtual Moment duration() const { return 0; }
/* accessors for children
@@ -46,9 +46,9 @@ public:
virtual Blank_req * blank() { return 0; }
virtual Musical_req *musical() { return 0; }
virtual Command_req * command() { return 0; }
- bool equal_b(Request*) const;
+ bool equal_b (Request*) const;
protected:
- virtual bool do_equal_b(Request*) const;
+ virtual bool do_equal_b (Request*) const;
virtual void do_print()const;
};
@@ -69,12 +69,12 @@ public:
General_script_def *scriptdef_p_;
/* *************** */
- bool do_equal_b(Request*)const;
+ bool do_equal_b (Request*)const;
Script_req();
REQUESTMETHODS(Script_req,script);
~Script_req();
- Script_req(Script_req const&);
+ Script_req (Script_req const&);
};
diff --git a/lily/include/rest-collision-grav.hh b/lily/include/rest-collision-grav.hh
index 7a9eea4042..e5ea984324 100644
--- a/lily/include/rest-collision-grav.hh
+++ b/lily/include/rest-collision-grav.hh
@@ -15,9 +15,10 @@
class Rest_collision_engraver : public Engraver {
Rest_collision* rest_collision_p_;
- Array< Collision *> collision_l_arr_;
+
+ void make_collision();
protected:
- virtual void acknowledge_element(Score_elem_info);
+ virtual void acknowledge_element (Score_elem_info);
virtual void do_print() const;
virtual void do_pre_move_processing();
public:
diff --git a/lily/include/rest-collision.hh b/lily/include/rest-collision.hh
index 56589fe14f..84fe927e5b 100644
--- a/lily/include/rest-collision.hh
+++ b/lily/include/rest-collision.hh
@@ -17,15 +17,14 @@ class Rest_collision : public Item {
Link_array<Rest_column> rest_l_arr_;
Link_array<Note_column> ncol_l_arr_;
public:
- void add(Note_column*);
- void add(Rest_column*);
- void add(Collision*);
+ void add (Note_column*);
+ void add (Rest_column*);
DECLARE_MY_RUNTIME_TYPEINFO;
Rest_collision();
protected:
virtual void do_post_processing();
virtual void do_pre_processing();
virtual void do_print() const;
- virtual void do_substitute_dependency(Score_elem*,Score_elem*);
+ virtual void do_substitute_dependency (Score_elem*,Score_elem*);
};
#endif // REST_COLLISION_HH
diff --git a/lily/include/rest-column.hh b/lily/include/rest-column.hh
index 6dfdaf16c9..61fafc5bda 100644
--- a/lily/include/rest-column.hh
+++ b/lily/include/rest-column.hh
@@ -18,7 +18,7 @@
class Rest_column : public Head_column {
public:
DECLARE_MY_RUNTIME_TYPEINFO;
- void translate_heads(int dy);
+ void translate_heads (int dy);
};
#endif // REST_COLUMN_HH
diff --git a/lily/include/score-align-grav.hh b/lily/include/score-align-grav.hh
index 718137ecfa..dc6eae2b65 100644
--- a/lily/include/score-align-grav.hh
+++ b/lily/include/score-align-grav.hh
@@ -25,7 +25,7 @@ public:
Score_align_engraver();
DECLARE_MY_RUNTIME_TYPEINFO;
protected:
- virtual void acknowledge_element(Score_elem_info);
+ virtual void acknowledge_element (Score_elem_info);
virtual void do_pre_move_processing();
};
#endif // SCORE_ALIGN_GRAV_HH
diff --git a/lily/include/score-column.hh b/lily/include/score-column.hh
index e108bc8213..0e19baa461 100644
--- a/lily/include/score-column.hh
+++ b/lily/include/score-column.hh
@@ -38,8 +38,8 @@ public:
/* *************** */
Moment when() { return when_; }
- Score_column(Moment when);
- void add_duration(Moment );
+ Score_column (Moment when);
+ void add_duration (Moment);
void preprocess();
bool musical_b() { return musical_b_; }
void print() const;
diff --git a/lily/include/score-elem-info.hh b/lily/include/score-elem-info.hh
index 4e6b609ff2..17b8172ee6 100644
--- a/lily/include/score-elem-info.hh
+++ b/lily/include/score-elem-info.hh
@@ -23,7 +23,7 @@ struct Score_elem_info {
Array<Engraver*> origin_grav_l_arr_;
/* *** */
- Score_elem_info(Score_elem*, Request*);
+ Score_elem_info (Score_elem*, Request*);
Score_elem_info();
};
diff --git a/lily/include/score-elem.hh b/lily/include/score-elem.hh
index 82a6fbfe3d..7e7259f6a2 100644
--- a/lily/include/score-elem.hh
+++ b/lily/include/score-elem.hh
@@ -53,8 +53,8 @@ class Score_elem : private Directed_graph_node {
Status status_;
- Score_elem* dependency(int) const;
- Score_elem* dependent(int) const;
+ Score_elem* dependency (int) const;
+ Score_elem* dependent (int) const;
int dependent_size() const;
int dependency_size() const;
public:
@@ -70,9 +70,9 @@ public:
Paper_score *pscore_l_;
Axis_group_element * axis_group_l_a_[2];
- Score_elem(Score_elem const&);
- virtual String TeX_string () const ;
- String TeX_string_without_offset(Offset)const;
+ Score_elem (Score_elem const&);
+ virtual String TeX_string() const ;
+ String TeX_string_without_offset (Offset)const;
virtual void print() const;
Paper_def *paper() const;
@@ -81,7 +81,7 @@ public:
Score_elem();
DECLARE_MY_RUNTIME_TYPEINFO;
- Interval extent(Axis)const;
+ Interval extent (Axis)const;
Interval width() const;
Interval height() const;
Status status() const;
@@ -89,16 +89,16 @@ public:
/**
translate the symbol. The symbol does not have to be created yet.
*/
- void translate(Offset);
+ void translate (Offset);
/**
translate in one direction
*/
- void translate(Real, Axis);
- Real relative_coordinate(Axis_group_element*, Axis)const;
+ void translate (Real, Axis);
+ Real relative_coordinate (Axis_group_element*, Axis)const;
Offset absolute_offset()const;
- Real absolute_coordinate(Axis)const;
- Axis_group_element*common_group(Score_elem const* s, Axis a)const;
+ Real absolute_coordinate (Axis)const;
+ Axis_group_element*common_group (Score_elem const* s, Axis a)const;
void add_processing();
void OK() const;
@@ -114,13 +114,13 @@ public:
*/
void unlink();
void unlink_all();
- void substitute_dependency(Score_elem*,Score_elem*);
- void remove_dependency(Score_elem*);
+ void substitute_dependency (Score_elem*,Score_elem*);
+ void remove_dependency (Score_elem*);
/**
add a dependency. It may be the 0 pointer, in which case, it is ignored.
*/
- void add_dependency(Score_elem* );
- void copy_dependencies(Score_elem const&);
+ void add_dependency (Score_elem*);
+ void copy_dependencies (Score_elem const&);
/**
junk the dependency array. Don't do derived stuff.
*/
@@ -158,8 +158,8 @@ protected:
/// do calculations after determining horizontal spacing
virtual void do_post_processing();
- virtual void do_substitute_dependency(Score_elem * , Score_elem *);
- virtual void do_substitute_dependent(Score_elem *, Score_elem *);
+ virtual void do_substitute_dependency (Score_elem * , Score_elem *);
+ virtual void do_substitute_dependent (Score_elem *, Score_elem *);
virtual void do_break_processing();
virtual void handle_broken_dependencies();
virtual void handle_prebroken_dependencies();
diff --git a/lily/include/score-grav.hh b/lily/include/score-grav.hh
index 39941cda65..5cb3936bb5 100644
--- a/lily/include/score-grav.hh
+++ b/lily/include/score-grav.hh
@@ -31,7 +31,7 @@ class Score_engraver :
Score_column* musical_column_l_;
friend class Score;
- void set_columns(Score_column*,Score_column*);
+ void set_columns (Score_column*,Score_column*);
void typeset_all();
public:
@@ -41,22 +41,22 @@ public:
protected:
/* Global_translator interface */
- virtual void set_score(Score * score_l);
- virtual void prepare(Moment);
+ virtual void set_score (Score * score_l);
+ virtual void prepare (Moment);
virtual void finish();
virtual void process();
- virtual int depth_i() const { return Global_translator::depth_i();}
- virtual Translator* ancestor_l(int l) { return Global_translator::ancestor_l(l);}
+ virtual int depth_i() const { return Global_translator::depth_i ();}
+ virtual Translator* ancestor_l (int l) { return Global_translator::ancestor_l (l);}
protected:
/* Engraver_group_engraver interface */
virtual Staff_info get_staff_info()const;
- virtual bool do_try_request(Request*);
+ virtual bool do_try_request (Request*);
virtual void do_creation_processing();
virtual void do_removal_processing();
- virtual void announce_element(Score_elem_info);
+ virtual void announce_element (Score_elem_info);
virtual void do_announces();
- virtual void typeset_element(Score_elem*elem_p);
+ virtual void typeset_element (Score_elem*elem_p);
virtual Paper_def * paper() const;
virtual void do_pre_move_processing();
};
diff --git a/lily/include/score-halign-grav.hh b/lily/include/score-halign-grav.hh
index bfbc22f140..330cd310e2 100644
--- a/lily/include/score-halign-grav.hh
+++ b/lily/include/score-halign-grav.hh
@@ -16,7 +16,7 @@ public:
DECLARE_MY_RUNTIME_TYPEINFO;
Score_horizontal_align_engraver();
protected:
- virtual void acknowledge_element(Score_elem_info);
+ virtual void acknowledge_element (Score_elem_info);
virtual void do_pre_move_processing();
};
#endif // SCORE_HALIGN_GRAV_HH
diff --git a/lily/include/score-performer.hh b/lily/include/score-performer.hh
index b0b584e72a..1a56148425 100644
--- a/lily/include/score-performer.hh
+++ b/lily/include/score-performer.hh
@@ -23,19 +23,19 @@ public:
~Score_performer();
protected:
- virtual Translator* ancestor_l(int l);
+ virtual Translator* ancestor_l (int l);
virtual int depth_i() const;
virtual void finish();
- virtual void prepare(Moment mom);
+ virtual void prepare (Moment mom);
virtual void process();
- virtual void set_score(Score* score_l);
+ virtual void set_score (Score* score_l);
virtual void start();
virtual int get_tempo_i() const;
- virtual void play(Audio_element* p);
+ virtual void play (Audio_element* p);
private:
- void header(Midi_stream&);
+ void header (Midi_stream&);
Moment now_mom_;
Audio_column* audio_column_l_;
diff --git a/lily/include/score.hh b/lily/include/score.hh
index 058fb173b0..e99e448a05 100644
--- a/lily/include/score.hh
+++ b/lily/include/score.hh
@@ -35,24 +35,24 @@ public:
/// construction
Score();
- Score(Score const&);
+ Score (Score const&);
~Score();
/// do everything except outputting to file
void process();
/// output to file
- void output(String fn);
+ void output (String fn);
///
- void set(Midi_def* midi_p);
+ void set (Midi_def* midi_p);
///
- void set(Paper_def* midi_p);
+ void set (Paper_def* midi_p);
void print() const;
private:
- void run_translator(Global_translator*);
+ void run_translator (Global_translator*);
void midi_output();
void paper_output();
@@ -63,7 +63,7 @@ private:
void paper();
// utils:
- PCursor<Score_column*> create_cols(Moment, PCursor<Score_column*> &last);
+ PCursor<Score_column*> create_cols (Moment, PCursor<Score_column*> &last);
/**
make the pcol_l_ fields of each Score_column point to the correct PCol,
diff --git a/lily/include/scoreline.hh b/lily/include/scoreline.hh
index abde4af7a2..9b9cf7d33f 100644
--- a/lily/include/scoreline.hh
+++ b/lily/include/scoreline.hh
@@ -20,16 +20,16 @@ public:
DECLARE_MY_RUNTIME_TYPEINFO;
Line_of_score();
- void add(Score_elem *);
+ void add (Score_elem *);
/// is #c# contained in #*this#?
- bool contains_b(PCol const *c)const;
+ bool contains_b (PCol const *c)const;
Link_array<Line_of_score> get_lines()const;
- void set_breaking(Array<Col_hpositions> const&);
+ void set_breaking (Array<Col_hpositions> const&);
protected:
- virtual void break_into_pieces(bool);
+ virtual void break_into_pieces (bool);
virtual Interval do_width()const;
virtual void do_print() const;
SCORE_ELEM_CLONE(Line_of_score);
diff --git a/lily/include/script-column.hh b/lily/include/script-column.hh
index b3d73aac95..e5b83984b7 100644
--- a/lily/include/script-column.hh
+++ b/lily/include/script-column.hh
@@ -13,20 +13,20 @@
#include "elem-group-item.hh"
/** a struct for treating a group of noteheads (noteheads, stem
- (chord) and scripts ) as a single entity. */
+ (chord) and scripts) as a single entity. */
class Script_column : public Horizontal_vertical_group_item {
protected:
virtual void do_print() const;
- virtual void do_substitute_dependency(Score_elem*, Score_elem*);
+ virtual void do_substitute_dependency (Score_elem*, Score_elem*);
virtual void do_pre_processing() ;
public:
Link_array<Script> script_l_arr_;
Link_array<Item> support_l_arr_;
DECLARE_MY_RUNTIME_TYPEINFO;
- virtual void add(Script *);
- void add_support(Item*);
+ virtual void add (Script *);
+ void add_support (Item*);
};
#endif // SCRIPT_COLUMN_HH
diff --git a/lily/include/script-def.hh b/lily/include/script-def.hh
index 65898a0549..1dd72b7ec7 100644
--- a/lily/include/script-def.hh
+++ b/lily/include/script-def.hh
@@ -34,13 +34,13 @@ public:
virtual int rel_stem_dir_i()const;
virtual int priority_i()const;
virtual bool inside_b()const;
- virtual Atom get_atom(Paper_def* p, int dir_i_)const;
+ virtual Atom get_atom (Paper_def* p, int dir_i_)const;
DECLARE_MY_RUNTIME_TYPEINFO;
- virtual bool do_equal_b(General_script_def const *)const;
+ virtual bool do_equal_b (General_script_def const *)const;
virtual void do_print() const;
Script_def();
- void set_from_input(String, bool, int, int ,bool,int );
+ void set_from_input (String, bool, int, int ,bool,int);
protected:
VIRTUAL_COPY_CONS(Script_def,General_script_def);
diff --git a/lily/include/script-grav.hh b/lily/include/script-grav.hh
index ce72d40def..522fe5838a 100644
--- a/lily/include/script-grav.hh
+++ b/lily/include/script-grav.hh
@@ -19,7 +19,7 @@ public:
DECLARE_MY_RUNTIME_TYPEINFO;
Script_engraver();
protected:
- virtual bool do_try_request(Request*);
+ virtual bool do_try_request (Request*);
virtual void do_process_requests();
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
diff --git a/lily/include/script.hh b/lily/include/script.hh
index bd7a5cc086..c15eae6330 100644
--- a/lily/include/script.hh
+++ b/lily/include/script.hh
@@ -19,7 +19,7 @@ class Script : public Item, public Staff_side {
protected:
Molecule *brew_molecule_p()const;
- virtual void do_substitute_dependency(Score_elem*,Score_elem*);
+ virtual void do_substitute_dependency (Score_elem*,Score_elem*);
virtual void do_print() const;
virtual Interval symbol_height()const;
virtual void do_pre_processing();
@@ -31,9 +31,9 @@ private:
public:
General_script_def *specs_l_;
- static int compare(Script *const&, Script *const&) ;
+ static int compare (Script *const&, Script *const&) ;
Script();
- void set_stem(Stem*);
+ void set_stem (Stem*);
DECLARE_MY_RUNTIME_TYPEINFO;
};
diff --git a/lily/include/slur-grav.hh b/lily/include/slur-grav.hh
index 277a846b7f..35b2ca0df3 100644
--- a/lily/include/slur-grav.hh
+++ b/lily/include/slur-grav.hh
@@ -19,10 +19,10 @@ class Slur_engraver :public Engraver {
/* *************** */
protected:
virtual ~Slur_engraver();
- virtual bool do_try_request(Request*);
- virtual void set_feature(Feature);
+ virtual bool do_try_request (Request*);
+ virtual void set_feature (Feature);
virtual void do_process_requests();
- virtual void acknowledge_element(Score_elem_info);
+ virtual void acknowledge_element (Score_elem_info);
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
public:
diff --git a/lily/include/slur.hh b/lily/include/slur.hh
index af44eb1d73..083c073e75 100644
--- a/lily/include/slur.hh
+++ b/lily/include/slur.hh
@@ -18,11 +18,11 @@
class Slur : public Bow {
public:
Link_array<Note_column> encompass_arr_;
- void add(Note_column*);
+ void add (Note_column*);
protected:
virtual void set_default_dir();
virtual void do_post_processing();
- virtual void do_substitute_dependency(Score_elem*, Score_elem*);
+ virtual void do_substitute_dependency (Score_elem*, Score_elem*);
virtual void do_pre_processing();
SCORE_ELEM_CLONE(Slur);
DECLARE_MY_RUNTIME_TYPEINFO;
diff --git a/lily/include/span-bar-grav.hh b/lily/include/span-bar-grav.hh
index 03a63aaece..eda25e6ffa 100644
--- a/lily/include/span-bar-grav.hh
+++ b/lily/include/span-bar-grav.hh
@@ -29,7 +29,7 @@ public:
Span_bar_engraver();
protected:
- virtual void acknowledge_element(Score_elem_info);
+ virtual void acknowledge_element (Score_elem_info);
virtual void do_pre_move_processing();
virtual Span_bar* get_span_bar_p()const;
};
diff --git a/lily/include/span-bar.hh b/lily/include/span-bar.hh
index 724caa3b9f..644d9de0b4 100644
--- a/lily/include/span-bar.hh
+++ b/lily/include/span-bar.hh
@@ -20,16 +20,16 @@ public:
Span_bar();
DECLARE_MY_RUNTIME_TYPEINFO;
SCORE_ELEM_CLONE(Span_bar);
- void add(Bar* );
- void set( Vertical_align_element *);
+ void add (Bar*);
+ void set (Vertical_align_element *);
protected:
virtual Interval do_width()const;
virtual void do_pre_processing();
- virtual void do_substitute_dependency(Score_elem*,Score_elem*);
+ virtual void do_substitute_dependency (Score_elem*,Score_elem*);
virtual Molecule * brew_molecule_p()const;
- virtual Symbol get_bar_sym(Real dy) const;
+ virtual Symbol get_bar_sym (Real dy) const;
};
#endif // SPAN_BAR_HH
diff --git a/lily/include/span-score-bar.hh b/lily/include/span-score-bar.hh
index 675a6ec7a5..ace2c84dc9 100644
--- a/lily/include/span-score-bar.hh
+++ b/lily/include/span-score-bar.hh
@@ -32,7 +32,7 @@ public:
SCORE_ELEM_CLONE(Piano_brace);
protected:
virtual Interval do_width()const;
- virtual Symbol get_bar_sym(Real) const;
+ virtual Symbol get_bar_sym (Real) const;
};
#endif // SPAN_SCORE_BAR_HH
diff --git a/lily/include/spanner.hh b/lily/include/spanner.hh
index 79e1bd4cfd..1152be157b 100644
--- a/lily/include/spanner.hh
+++ b/lily/include/spanner.hh
@@ -39,7 +39,7 @@ public:
virtual Spanner* spanner() { return this; }
Spanner();
bool broken_b() const;
- Spanner* find_broken_piece(Line_of_score*)const;
+ Spanner* find_broken_piece (Line_of_score*)const;
protected:
void set_my_columns();
SCORE_ELEM_CLONE(Spanner);
@@ -47,7 +47,7 @@ protected:
/**
this is virtual; for instance, Line_of_score overrides it.
*/
- virtual void break_into_pieces(bool);
+ virtual void break_into_pieces (bool);
Link_array<Spanner> broken_into_l_arr_;
diff --git a/lily/include/spring-spacer.hh b/lily/include/spring-spacer.hh
index 0a38a2e255..27985d8e9e 100644
--- a/lily/include/spring-spacer.hh
+++ b/lily/include/spring-spacer.hh
@@ -48,9 +48,9 @@ class Spring_spacer : public Line_spacer {
Array<Colinfo> loose_col_arr_;
/// mark column #i# as being loose.
- void loosen_column(int i);
+ void loosen_column (int i);
/// the index of #c# in #cols#
- int col_id(PCol const *c) const;
+ int col_id (PCol const *c) const;
/// generate an (nonoptimal) solution
Vector find_initial_solution() const;
@@ -59,17 +59,17 @@ class Spring_spacer : public Line_spacer {
bool check_feasible() const;
/// does #this# contain the column #w#?
- bool contains(PCol const *w);
+ bool contains (PCol const *w);
/// make the energy function
- void make_matrices(Matrix &quad, Vector &lin,Real&) const;
+ void make_matrices (Matrix &quad, Vector &lin,Real&) const;
/// generate the LP constraints
- void make_constraints(Mixed_qp& lp) const;
+ void make_constraints (Mixed_qp& lp) const;
void handle_loose_cols();
- void position_loose_cols(Vector &) const;
+ void position_loose_cols (Vector &) const;
/**
add a idealspacing to the problem.
@@ -77,24 +77,24 @@ class Spring_spacer : public Line_spacer {
since they can be "summed" if the columns to which #i# refers are
not in this problem, the spacing is ignored.
*/
- void add_ideal(Idealspacing const *i);
+ void add_ideal (Idealspacing const *i);
Vector try_initial_solution() const;
void calc_idealspacing();
- void set_fixed_cols(Mixed_qp&)const;
+ void set_fixed_cols (Mixed_qp&)const;
- Score_column* scol_l(int);
- void connect(int i,int j, Real,Real);
+ Score_column* scol_l (int);
+ void connect (int i,int j, Real,Real);
Line_of_cols error_pcol_l_arr()const;
public:
static Line_spacer *constructor();
- virtual void solve(Col_hpositions*) const;
- virtual void lower_bound_solution(Col_hpositions*) const;
- virtual void add_column(PCol *, bool fixed=false, Real fixpos=0.0);
+ virtual void solve (Col_hpositions*) const;
+ virtual void lower_bound_solution (Col_hpositions*) const;
+ virtual void add_column (PCol *, bool fixed=false, Real fixpos=0.0);
virtual Vector default_solution() const;
- virtual bool check_constraints(Vector v) const;
+ virtual bool check_constraints (Vector v) const;
virtual void OK() const;
virtual void print() const;
virtual void prepare();
diff --git a/lily/include/staff-performer.hh b/lily/include/staff-performer.hh
index b73e9b9fe5..53aea0812a 100644
--- a/lily/include/staff-performer.hh
+++ b/lily/include/staff-performer.hh
@@ -10,6 +10,10 @@
#include "performer-group-performer.hh"
+/** Perform a staff. Individual notes should have their instrument
+ (staff-wide) set, so we override play()
+
+ */
class Staff_performer : public Performer_group_performer
{
public:
@@ -21,7 +25,7 @@ public:
String instrument_str();
protected:
- virtual void play( Audio_element* p );
+ virtual void play (Audio_element* p);
virtual void do_removal_processing();
virtual void do_creation_processing();
diff --git a/lily/include/staff-side.hh b/lily/include/staff-side.hh
index 73f174f105..7e7a75ea02 100644
--- a/lily/include/staff-side.hh
+++ b/lily/include/staff-side.hh
@@ -37,15 +37,15 @@ public:
int pos_i_;
- void set_staffsym(Staff_symbol * );
+ void set_staffsym (Staff_symbol * );
Staff_side();
- void add_support(Score_elem*);
+ void add_support (Score_elem*);
DECLARE_MY_RUNTIME_TYPEINFO;
protected:
virtual Interval symbol_height() const;
- virtual void do_substitute_dependency(Score_elem *, Score_elem*);
+ virtual void do_substitute_dependency (Score_elem *, Score_elem*);
virtual void do_post_processing();
};
#endif // STAFF_SIDE_HH
diff --git a/lily/include/staff-sym-grav.hh b/lily/include/staff-sym-grav.hh
index f839e545b2..3d3f1f3f83 100644
--- a/lily/include/staff-sym-grav.hh
+++ b/lily/include/staff-sym-grav.hh
@@ -22,8 +22,7 @@ public:
DECLARE_MY_RUNTIME_TYPEINFO;
protected:
virtual ~Staff_sym_engraver();
- virtual void do_process_requests();
- virtual void fill_staff_info(Staff_info&);
+ virtual void fill_staff_info (Staff_info&);
virtual void do_removal_processing();
virtual void do_creation_processing();
diff --git a/lily/include/staff-sym.hh b/lily/include/staff-sym.hh
index 513e0e2f35..705d92b0e5 100644
--- a/lily/include/staff-sym.hh
+++ b/lily/include/staff-sym.hh
@@ -22,9 +22,9 @@ class Staff_symbol : public Spanner
public:
- void set_extent(PCol* p1, PCol* p2);
+ void set_extent (PCol* p1, PCol* p2);
DECLARE_MY_RUNTIME_TYPEINFO;
- Staff_symbol(int lines);
+ Staff_symbol (int lines);
Real inter_note_f()const;
int steps_i()const;
protected:
diff --git a/lily/include/stem-beam-grav.hh b/lily/include/stem-beam-grav.hh
index d4a8749f09..c7fe5ff4e8 100644
--- a/lily/include/stem-beam-grav.hh
+++ b/lily/include/stem-beam-grav.hh
@@ -30,10 +30,10 @@ public:
protected:
~Stem_beam_engraver();
- virtual void set_feature(Feature dir_i_);
- virtual bool do_try_request(Request*);
+ virtual void set_feature (Feature dir_i_);
+ virtual bool do_try_request (Request*);
virtual void do_process_requests();
- virtual void acknowledge_element(Score_elem_info);
+ virtual void acknowledge_element (Score_elem_info);
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
};
diff --git a/lily/include/stem.hh b/lily/include/stem.hh
index 46228d089a..3ea7c35608 100644
--- a/lily/include/stem.hh
+++ b/lily/include/stem.hh
@@ -65,17 +65,17 @@ public:
/* *************** */
- Stem(int staff_size_i);
+ Stem (int staff_size_i);
/// ensure that this Stem also encompasses the Notehead #n#
- void add(Note_head*n);
+ void add (Note_head*n);
DECLARE_MY_RUNTIME_TYPEINFO;
Real hpos_f()const;
void do_print() const;
- void set_stemend(Real);
+ void set_stemend (Real);
int get_default_dir();
int get_center_distance_from_top();
int get_center_distance_from_bottom();
@@ -94,7 +94,7 @@ public:
int max_head_i() const;
int min_head_i() const;
protected:
- virtual void do_substitute_dependency(Score_elem*,Score_elem*);
+ virtual void do_substitute_dependency (Score_elem*,Score_elem*);
virtual void do_pre_processing();
virtual Interval do_width() const;
Molecule* brew_molecule_p() const;
diff --git a/lily/include/super-elem.hh b/lily/include/super-elem.hh
index c6b7360e05..eb12e833a1 100644
--- a/lily/include/super-elem.hh
+++ b/lily/include/super-elem.hh
@@ -18,11 +18,11 @@ class Super_elem : public Score_elem {
public:
Link_array<Line_of_score> lines_arr_;
Line_of_score * line_of_score_l_;
- void add_broken_line(Line_of_score*);
+ void add_broken_line (Line_of_score*);
Super_elem();
virtual String TeX_string()const;
protected:
- virtual void do_substitute_dependency(Score_elem*,Score_elem*);
+ virtual void do_substitute_dependency (Score_elem*,Score_elem*);
virtual void handle_broken_dependencies();
virtual void do_add_processing();
diff --git a/lily/include/swallow-grav.hh b/lily/include/swallow-grav.hh
index 9a0601a913..159f10707c 100644
--- a/lily/include/swallow-grav.hh
+++ b/lily/include/swallow-grav.hh
@@ -18,8 +18,8 @@
*/
class Swallow_engraver : public Engraver {
protected:
- bool acceptable_request_b(Request*) const;
- bool do_try_request(Request*) ;
+ bool acceptable_request_b (Request*) const;
+ bool do_try_request (Request*) ;
public:
DECLARE_MY_RUNTIME_TYPEINFO;
};
diff --git a/lily/include/swallow-perf.hh b/lily/include/swallow-perf.hh
index a2e4a15a49..9e7218aa88 100644
--- a/lily/include/swallow-perf.hh
+++ b/lily/include/swallow-perf.hh
@@ -16,7 +16,7 @@ class Swallow_performer : public Performer {
public:
DECLARE_MY_RUNTIME_TYPEINFO;
protected:
- virtual bool do_try_request (Request* ) { return true; }
+ virtual bool do_try_request (Request*) { return true; }
};
#endif // SWALLOW_PERF_HH
diff --git a/lily/include/symbol.hh b/lily/include/symbol.hh
index 3e2eafc7d3..f099fc657b 100644
--- a/lily/include/symbol.hh
+++ b/lily/include/symbol.hh
@@ -30,15 +30,15 @@ struct Atom {
/* *************** */
- void translate(Offset o) {
+ void translate (Offset o) {
off_ += o;
}
- void translate(Real r,Axis a){
+ void translate (Real r,Axis a){
off_[a] += r;
}
/// how big is #this#?
Box extent() const;
- Atom(Symbol s);
+ Atom (Symbol s);
void print() const;
diff --git a/lily/include/symtable.hh b/lily/include/symtable.hh
index 5f902c4913..43a21aa501 100644
--- a/lily/include/symtable.hh
+++ b/lily/include/symtable.hh
@@ -10,7 +10,7 @@
struct Symtable : public Assoc<String, Symbol> {
String id_str;
- Symbol lookup(String)const;
+ Symbol lookup (String)const;
void print()const;
};
@@ -20,8 +20,8 @@ struct Symtables : private Assoc<String, Symtable*> {
Symtable* operator()(String s);
~Symtables();
Symtables();
- Symtables(Symtables const&);
- void add(String, Symtable*);
+ Symtables (Symtables const&);
+ void add (String, Symtable*);
void print()const;
};
diff --git a/lily/include/tex-stream.hh b/lily/include/tex-stream.hh
index 5f0477a51a..e8011bb3ee 100644
--- a/lily/include/tex-stream.hh
+++ b/lily/include/tex-stream.hh
@@ -20,7 +20,7 @@ public:
int line_len_i_;
/// open a file for writing
- Tex_stream(String filename);
+ Tex_stream (String filename);
void header();
/// delegate conversion to string class.
Tex_stream &operator<<(String);
@@ -28,6 +28,6 @@ public:
/// close the file
~Tex_stream();
private:
- Tex_stream(Tex_stream const&);
+ Tex_stream (Tex_stream const&);
};
#endif
diff --git a/lily/include/tex.hh b/lily/include/tex.hh
index 386c9b29dd..80850cafa9 100644
--- a/lily/include/tex.hh
+++ b/lily/include/tex.hh
@@ -19,17 +19,17 @@
this function provides a simple macro mechanism:
if source == "tex%bla%", then
- substitute_args(source, {"X","Y"}) == "texXblaY"
+ substitute_args (source, {"X","Y"}) == "texXblaY"
*/
String
-substitute_args(String source, Array<String> args);
+substitute_args (String source, Array<String> args);
/// parameter substitution in TeX_strings
String
-substitute_args(String source, Array<Scalar> args);
+substitute_args (String source, Array<Scalar> args);
/// #h# is in points
-String vstrut(Real h);
+String vstrut (Real h);
#endif
diff --git a/lily/include/text-def.hh b/lily/include/text-def.hh
index 3f7d433246..3f13add205 100644
--- a/lily/include/text-def.hh
+++ b/lily/include/text-def.hh
@@ -14,7 +14,7 @@
class Text_def : public General_script_def {
protected:
- virtual Atom get_atom(Paper_def* p, int dir_i_)const;
+ virtual Atom get_atom (Paper_def* p, int dir_i_)const;
DECLARE_MY_RUNTIME_TYPEINFO;
VIRTUAL_COPY_CONS(Text_def,General_script_def);
public:
@@ -30,10 +30,10 @@ public:
virtual void do_print() const;
virtual ~Text_def() {};
- virtual bool do_equal_b(const General_script_def*)const;
+ virtual bool do_equal_b (const General_script_def*)const;
Text_def();
virtual void print() const;
- Interval width(Paper_def*) const;
+ Interval width (Paper_def*) const;
};
#endif // TEXT_DEF_HH
diff --git a/lily/include/text-grav.hh b/lily/include/text-grav.hh
index 4f3b3f23a5..80540bae26 100644
--- a/lily/include/text-grav.hh
+++ b/lily/include/text-grav.hh
@@ -15,12 +15,12 @@ class Text_engraver : public Engraver{
int dir_i_;
/* *************** */
protected:
- virtual void set_feature(Feature );
- virtual bool do_try_request(Request*);
+ virtual void set_feature (Feature);
+ virtual bool do_try_request (Request*);
virtual void do_process_requests();
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
- virtual void acknowledge_element(Score_elem_info);
+ virtual void acknowledge_element (Score_elem_info);
public:
Text_engraver();
DECLARE_MY_RUNTIME_TYPEINFO;
diff --git a/lily/include/text-item.hh b/lily/include/text-item.hh
index 0019a5f8e0..4543640540 100644
--- a/lily/include/text-item.hh
+++ b/lily/include/text-item.hh
@@ -15,7 +15,7 @@
print a fixed width text above or below the staff.
*/
class Text_item : public Item ,public Staff_side{
- void init(Text_def* tdef_l);
+ void init (Text_def* tdef_l);
public:
@@ -24,7 +24,7 @@ public:
/* ***************/
- Text_item(General_script_def*,int dir=0);
+ Text_item (General_script_def*,int dir=0);
virtual ~Text_item();
DECLARE_MY_RUNTIME_TYPEINFO;
diff --git a/lily/include/text-spanner.hh b/lily/include/text-spanner.hh
index ff06829345..3bed168787 100644
--- a/lily/include/text-spanner.hh
+++ b/lily/include/text-spanner.hh
@@ -20,13 +20,13 @@ public:
Offset text_off_;
DECLARE_MY_RUNTIME_TYPEINFO;
- void set_support(Directional_spanner*);
+ void set_support (Directional_spanner*);
Text_spanner();
- Text_spanner(Text_spanner const&);
+ Text_spanner (Text_spanner const&);
protected:
SCORE_ELEM_CLONE(Text_spanner);
~Text_spanner();
- virtual void do_substitute_dependency(Score_elem*,Score_elem*);
+ virtual void do_substitute_dependency (Score_elem*,Score_elem*);
virtual void do_pre_processing();
virtual void do_post_processing();
virtual Interval height() const ;
diff --git a/lily/include/tie-grav.hh b/lily/include/tie-grav.hh
index 8a07a27b75..63f472e3d8 100644
--- a/lily/include/tie-grav.hh
+++ b/lily/include/tie-grav.hh
@@ -24,14 +24,14 @@ class Tie_engraver : public Engraver {
protected:
virtual ~Tie_engraver();
- virtual void acknowledge_element(Score_elem_info);
- virtual bool do_try_request(Request*);
- virtual bool acceptable_request_b(Request*);
+ virtual void acknowledge_element (Score_elem_info);
+ virtual bool do_try_request (Request*);
+ virtual bool acceptable_request_b (Request*);
virtual void sync_features();
virtual void do_process_requests();
virtual void do_post_move_processing();
virtual void do_pre_move_processing();
- virtual void set_feature(Feature);
+ virtual void set_feature (Feature);
public:
Tie_engraver();
DECLARE_MY_RUNTIME_TYPEINFO;
diff --git a/lily/include/tie.hh b/lily/include/tie.hh
index 9d8c35496b..fde107fb81 100644
--- a/lily/include/tie.hh
+++ b/lily/include/tie.hh
@@ -19,13 +19,13 @@ class Tie : public Bow {
virtual void do_add_processing();
virtual void do_post_processing();
virtual void set_default_dir();
- virtual void do_substitute_dependency(Score_elem*,Score_elem*);
+ virtual void do_substitute_dependency (Score_elem*,Score_elem*);
public:
bool same_pitch_b_;
Note_head * left_head_l_;
Note_head * right_head_l_;
- void set_head(int, Note_head*head_l);
+ void set_head (int, Note_head*head_l);
Tie();
DECLARE_MY_RUNTIME_TYPEINFO;
diff --git a/lily/include/time-description.hh b/lily/include/time-description.hh
index a7ace609f1..cbc25ded74 100644
--- a/lily/include/time-description.hh
+++ b/lily/include/time-description.hh
@@ -34,29 +34,29 @@ struct Time_description {
int bars_i_;
/* *************** */
- void set_cadenza(bool);
+ void set_cadenza (bool);
void OK() const;
Time_description();
- void add(Moment dt);
+ void add (Moment dt);
bool allow_meter_change_b();
String str()const;
void print() const;
- void setpartial(Moment p);
- String try_set_partial_str(Moment)const;
+ void setpartial (Moment p);
+ String try_set_partial_str (Moment)const;
Moment barleft()const;
Moment next_bar_moment()const;
- void set_meter(int,int);
+ void set_meter (int,int);
static int compare (const Time_description&, const Time_description&);
};
#include "compare.hh"
-instantiate_compare(Time_description&,Time_description::compare);
+INSTANTIATE_COMPARE(Time_description&,Time_description::compare);
void
-process_timing_reqs(Time_description &time_,
+process_timing_reqs (Time_description &time_,
Rhythmic_grouping *default_grouping,
Array<Timing_req*> const& timing_req_l_arr);
#endif // Time_description_HH
diff --git a/lily/include/timing-grav.hh b/lily/include/timing-grav.hh
index 96abc5c865..d65a831689 100644
--- a/lily/include/timing-grav.hh
+++ b/lily/include/timing-grav.hh
@@ -25,8 +25,8 @@ class Timing_engraver : public Engraver
Link_array<Timing_req> timing_req_l_arr_;
- virtual void fill_staff_info(Staff_info&);
- virtual bool do_try_request(Request *req_l);
+ virtual void fill_staff_info (Staff_info&);
+ virtual bool do_try_request (Request *req_l);
virtual void do_process_requests();
virtual void do_pre_move_processing();
virtual void do_creation_processing();
diff --git a/lily/include/translator.hh b/lily/include/translator.hh
index 772b666ff5..17088c668f 100644
--- a/lily/include/translator.hh
+++ b/lily/include/translator.hh
@@ -26,9 +26,9 @@ public:
virtual void print()const;
virtual int depth_i()const=0;
virtual bool is_bottom_engraver_b() const { return false; }
- virtual bool try_request(Request*);
- virtual Translator *find_get_translator_l(String name, String id)=0;
- virtual Translator *ancestor_l(int l=1)=0;
+ virtual bool try_request (Request*);
+ virtual Translator *find_get_translator_l (String name, String id)=0;
+ virtual Translator *ancestor_l (int l=1)=0;
virtual ~Translator(){}
DECLARE_MY_RUNTIME_TYPEINFO;
Translator();
diff --git a/lily/include/vertical-align-elem.hh b/lily/include/vertical-align-elem.hh
index 0fc0029b5b..3683b304ba 100644
--- a/lily/include/vertical-align-elem.hh
+++ b/lily/include/vertical-align-elem.hh
@@ -18,12 +18,12 @@
class Vertical_align_element : virtual public Score_elem {
Link_array<Score_elem> elem_l_arr_;
public:
- void add(Score_elem*);
- bool contains_b(Score_elem const*)const;
+ void add (Score_elem*);
+ bool contains_b (Score_elem const*)const;
Vertical_align_element();
DECLARE_MY_RUNTIME_TYPEINFO;
protected:
- virtual void do_substitute_dependency(Score_elem*,Score_elem*);
+ virtual void do_substitute_dependency (Score_elem*,Score_elem*);
virtual void do_post_processing() ;
};
#endif // VERTICAL_ALIGN_ITEM_HH
diff --git a/lily/include/vertical-align-grav.hh b/lily/include/vertical-align-grav.hh
index 4df768bcdc..685073e242 100644
--- a/lily/include/vertical-align-grav.hh
+++ b/lily/include/vertical-align-grav.hh
@@ -19,7 +19,7 @@ public:
DECLARE_MY_RUNTIME_TYPEINFO;
Vertical_align_engraver();
protected:
- virtual void acknowledge_element(Score_elem_info);
+ virtual void acknowledge_element (Score_elem_info);
virtual void do_creation_processing();
virtual void do_removal_processing();
};
diff --git a/lily/include/vertical-align-spanner.hh b/lily/include/vertical-align-spanner.hh
index fefe52a302..489586505f 100644
--- a/lily/include/vertical-align-spanner.hh
+++ b/lily/include/vertical-align-spanner.hh
@@ -18,7 +18,7 @@ class Vertical_align_spanner : public Vertical_align_element, public Spanner
public:
DECLARE_MY_RUNTIME_TYPEINFO;
SCORE_ELEM_CLONE(Vertical_align_spanner);
- virtual void do_print() const { Vertical_align_element::do_print() ; }
+ virtual void do_print() const { Vertical_align_element::do_print () ; }
};
#endif // VERTICAL_ALIGN_SPANNER_HH
diff --git a/lily/include/vertical-group-spanner.hh b/lily/include/vertical-group-spanner.hh
index ab90bdb6b6..ee08375d6e 100644
--- a/lily/include/vertical-group-spanner.hh
+++ b/lily/include/vertical-group-spanner.hh
@@ -19,11 +19,11 @@ class Vertical_group_spanner : public Axis_group_spanner, public Vertical_group_
{
protected:
SCORE_ELEM_CLONE(Vertical_group_spanner);
- virtual void remove_all() { Vertical_group_element::remove_all(); }
+ virtual void remove_all() { Vertical_group_element::remove_all (); }
public:
DECLARE_MY_RUNTIME_TYPEINFO;
- virtual void add_element(Score_elem*e) { Vertical_group_element::add_element(e); }
- virtual void remove_element(Score_elem*e) { Vertical_group_element::remove_element(e); }
+ virtual void add_element (Score_elem*e) { Vertical_group_element::add_element (e); }
+ virtual void remove_element (Score_elem*e) { Vertical_group_element::remove_element (e); }
};
diff --git a/lily/include/voice-group-gravs.hh b/lily/include/voice-group-gravs.hh
index 843f2d571e..38f57d574d 100644
--- a/lily/include/voice-group-gravs.hh
+++ b/lily/include/voice-group-gravs.hh
@@ -13,7 +13,7 @@
#include "engraver-group.hh"
/**
- A group of voices which share certain characteristics (such as beams. ).
+ A group of voices which share certain characteristics (such as beams.).
*/
class Voice_group_engravers : public Engraver_group_engraver {
Moment termination_mom_;
@@ -21,13 +21,13 @@ class Voice_group_engravers : public Engraver_group_engraver {
protected:
virtual void do_print() const;
- virtual Scalar get_feature(String);
- virtual bool do_try_request(Request*);
+ virtual Scalar get_feature (String);
+ virtual bool do_try_request (Request*);
public:
DECLARE_MY_RUNTIME_TYPEINFO;
- static bool static_acceptable_request_b(Request*);
+ static bool static_acceptable_request_b (Request*);
Voice_group_engravers();
};
#endif // VOICEGROUPGRAVS_HH
diff --git a/lily/ineq-constrained-qp.cc b/lily/ineq-constrained-qp.cc
index 204c6a4b51..29905fd3ae 100644
--- a/lily/ineq-constrained-qp.cc
+++ b/lily/ineq-constrained-qp.cc
@@ -17,40 +17,40 @@
const int MAXITER=100; // qlpsolve.hh
/*
- assume x(idx) == value, and adjust constraints, lin and quad accordingly
+ assume x (idx) == value, and adjust constraints, lin and quad accordingly
TODO: add const_term
*/
void
-Ineq_constrained_qp::eliminate_var(int idx, Real value)
+Ineq_constrained_qp::eliminate_var (int idx, Real value)
{
- Vector row(quad.row(idx));
+ Vector row (quad.row (idx));
row*= value;
- quad.delete_row(idx);
+ quad.delete_row (idx);
- quad.delete_column(idx);
+ quad.delete_column (idx);
- lin.del(idx);
- row.del(idx);
+ lin.del (idx);
+ row.del (idx);
lin +=row ;
for (int i=0; i < cons.size(); i++) {
consrhs[i] -= cons[i](idx) *value;
- cons[i].del(idx);
+ cons[i].del (idx);
}
}
void
-Ineq_constrained_qp::add_inequality_cons(Vector c, double r)
+Ineq_constrained_qp::add_inequality_cons (Vector c, double r)
{
- cons.push(c);
- consrhs.push(r);
+ cons.push (c);
+ consrhs.push (r);
}
-Ineq_constrained_qp::Ineq_constrained_qp(int novars):
- quad(novars),
- lin(novars),
+Ineq_constrained_qp::Ineq_constrained_qp (int novars):
+ quad (novars),
+ lin (novars),
const_term (0.0)
{
}
@@ -58,10 +58,10 @@ Ineq_constrained_qp::Ineq_constrained_qp(int novars):
void
Ineq_constrained_qp::OK() const
{
-#if !defined(NDEBUG) && defined(PARANOID)
- assert(cons.size() == consrhs.size());
+#if !defined (NDEBUG) && defined (PARANOID)
+ assert (cons.size() == consrhs.size ());
Matrix Qdif= quad - quad.transposed();
- assert(Qdif.norm()/quad.norm() < EPS);
+ assert (Qdif.norm()/quad.norm () < EPS);
#endif
}
@@ -74,16 +74,16 @@ Ineq_constrained_qp::eval (Vector v)
int
-min_elt_index(Vector v)
+min_elt_index (Vector v)
{
Real m=infinity_f;
int idx=-1;
for (int i = 0; i < v.dim(); i++){
- if (v(i) < m) {
+ if (v (i) < m) {
idx = i;
- m = v(i);
+ m = v (i);
}
- assert(v(i) <= infinity_f);
+ assert (v (i) <= infinity_f);
}
return idx;
}
@@ -98,43 +98,43 @@ min_elt_index(Vector v)
the next point is found in a direction determined by projecting
the gradient onto the active constraints. (well, not really the
gradient. The optimal solution obeying the active constraints is
- tried. This is why H = Q^-1 in initialisation) )
+ tried. This is why H = Q^-1 in initialisation))
*/
Vector
-Ineq_constrained_qp::constraint_solve(Vector start) const
+Ineq_constrained_qp::constraint_solve (Vector start) const
{
if (!dim())
- return Vector(0);
+ return Vector (0);
// experimental
if (quad.dim() > 10)
quad.try_set_band();
- Active_constraints act(this);
+ Active_constraints act (this);
act.OK();
- Vector x(start);
+ Vector x (start);
Vector gradient=quad*x+lin;
// Real fvalue = x*quad*x/2 + lin*x + const_term;
// it's no use.
- Vector last_gradient(gradient);
+ Vector last_gradient (gradient);
int iterations=0;
while (iterations++ < MAXITER) {
- Vector direction= - act.find_active_optimum(gradient);
+ Vector direction= - act.find_active_optimum (gradient);
- mtor << "gradient "<< gradient<< "\ndirection " << direction<<"\n";
+ DOUT << "gradient "<< gradient<< "\ndirection " << direction<<"\n";
if (direction.norm() > EPS) {
- mtor << act.status() << '\n';
+ DOUT << act.status() << '\n';
Real minalf = infinity_f;
- Inactive_iter minidx(act);
+ Inactive_iter minidx (act);
/*
@@ -142,11 +142,11 @@ Ineq_constrained_qp::constraint_solve(Vector start) const
bump into the edges of the simplex
*/
- for (Inactive_iter ia(act); ia.ok(); ia++) {
+ for (Inactive_iter ia (act); ia.ok(); ia++) {
if (ia.vec() * direction >= 0)
continue;
- Real alfa= - (ia.vec()*x - ia.rhs())/
+ Real alfa= - (ia.vec()*x - ia.rhs ())/
(ia.vec()*direction);
if (minalf > alfa) {
@@ -155,19 +155,19 @@ Ineq_constrained_qp::constraint_solve(Vector start) const
}
}
Real unbounded_alfa = 1.0;
- Real optimal_step = min(minalf, unbounded_alfa);
+ Real optimal_step = min (minalf, unbounded_alfa);
Vector deltax=direction * optimal_step;
x += deltax;
gradient += optimal_step * (quad * deltax);
- mtor << "step = " << optimal_step<< " (|dx| = " <<
+ DOUT << "step = " << optimal_step<< " (|dx| = " <<
deltax.norm() << ")\n";
if (minalf < unbounded_alfa) {
/* bumped into an edge. try again, in smaller space. */
- act.add(minidx.idx());
- mtor << "adding cons "<< minidx.idx()<<'\n';
+ act.add (minidx.idx());
+ DOUT << "adding cons "<< minidx.idx()<<'\n';
continue;
}
/*ASSERT: we are at optimal solution for this "plane"*/
@@ -175,37 +175,37 @@ Ineq_constrained_qp::constraint_solve(Vector start) const
}
- Vector lagrange_mult=act.get_lagrange(gradient);
- int m= min_elt_index(lagrange_mult);
+ Vector lagrange_mult=act.get_lagrange (gradient);
+ int m= min_elt_index (lagrange_mult);
- if (m>=0 && lagrange_mult(m) > 0) {
+ if (m>=0 && lagrange_mult (m) > 0) {
break; // optimal sol.
} else if (m<0) {
- assert(gradient.norm() < EPS) ;
+ assert (gradient.norm() < EPS) ;
break;
}
- mtor << "dropping cons " << m<<'\n';
- act.drop(m);
+ DOUT << "dropping cons " << m<<'\n';
+ act.drop (m);
}
if (iterations >= MAXITER)
WARN<<"didn't converge!\n";
- mtor << ": found " << x<<" in " << iterations <<" iterations\n";
- assert_solution(x);
+ DOUT << ": found " << x<<" in " << iterations <<" iterations\n";
+ assert_solution (x);
return x;
}
Vector
-Ineq_constrained_qp::solve(Vector start)const
+Ineq_constrained_qp::solve (Vector start)const
{
/* no hassle if no constraints*/
- if ( ! cons.size() ) {
- Choleski_decomposition chol( quad );
- return - chol.solve(lin);
+ if ( ! cons.size()) {
+ Choleski_decomposition chol (quad);
+ return - chol.solve (lin);
} else {
- return constraint_solve( start );
+ return constraint_solve (start);
}
}
diff --git a/lily/input-translator.cc b/lily/input-translator.cc
index 47e93160fb..ddc0163053 100644
--- a/lily/input-translator.cc
+++ b/lily/input-translator.cc
@@ -15,7 +15,7 @@
#include "performer-group-performer.hh"
bool
-Input_translator::is_name_b(String n)
+Input_translator::is_name_b (String n)
{
for (int i=0; i < alias_str_arr_.size(); i++)
if (alias_str_arr_[i] == n)
@@ -29,31 +29,31 @@ Input_translator::print() const
#ifndef NPRINT
if ( ! check_debug)
return ;
- mtor << base_str_ <<" " << type_str_<<" {\n";
- mtor << "Consists of ";
+ DOUT << base_str_ <<" " << type_str_<<" {\n";
+ DOUT << "Consists of ";
for (int i=0; i< consists_str_arr_.size(); i++)
- mtor << consists_str_arr_[i] << ',';
+ DOUT << consists_str_arr_[i] << ',';
if (contains_itrans_p_list_.size())
- mtor << "\nContains " ;
- for (PCursor<Input_translator*> i(contains_itrans_p_list_.top()); i.ok(); i++)
+ DOUT << "\nContains " ;
+ for (PCursor<Input_translator*> i (contains_itrans_p_list_.top()); i.ok (); i++)
i->print();
- mtor << "}\n";
+ DOUT << "}\n";
#endif
}
Input_translator *
-Input_translator::recursive_find(String nm)
+Input_translator::recursive_find (String nm)
{
- if ( is_name_b( nm) )
+ if ( is_name_b (nm))
return this;
Input_translator * r =0;
// what bout for() ?
- PCursor<Input_translator*> i(contains_itrans_p_list_.top());
+ PCursor<Input_translator*> i (contains_itrans_p_list_.top());
for (; !r &&i.ok(); i++) {
- if (i->recursive_find(nm))
+ if (i->recursive_find (nm))
r = i.ptr();
}
@@ -61,10 +61,10 @@ Input_translator::recursive_find(String nm)
}
Input_translator *
-Input_translator::find_itrans_l(String nm)
+Input_translator::find_itrans_l (String nm)
{
- for (PCursor<Input_translator*> i(contains_itrans_p_list_.top()); i.ok(); i++)
- if (i->is_name_b( nm))
+ for (PCursor<Input_translator*> i (contains_itrans_p_list_.top()); i.ok (); i++)
+ if (i->is_name_b (nm))
return i;
return 0;
@@ -76,10 +76,10 @@ Input_translator::get_group_engraver_p()
{
assert (base_str_ == "Engraver");
Engraver_group_engraver * grav_p = (Engraver_group_engraver*)
- get_engraver_p(type_str_);
+ get_engraver_p (type_str_);
for (int i=0; i < consists_str_arr_.size(); i++) {
- grav_p->add( get_engraver_p( consists_str_arr_[i]) );
+ grav_p->add (get_engraver_p (consists_str_arr_[i]));
}
grav_p->itrans_l_ = this;
grav_p->id_str_ = default_id_str_;
@@ -91,10 +91,10 @@ Input_translator::get_group_performer_p()
{
assert (base_str_ == "Performer");
Performer_group_performer * perf_p = (Performer_group_performer*)
- get_performer_p(type_str_);
+ get_performer_p (type_str_);
for (int i=0; i < consists_str_arr_.size(); i++) {
- perf_p->add( get_performer_p( consists_str_arr_[i]) );
+ perf_p->add (get_performer_p (consists_str_arr_[i]));
}
perf_p->itrans_l_ = this;
perf_p->id_str_ = default_id_str_;
@@ -108,26 +108,26 @@ Input_translator::accept_req_b()
}
void
-Input_translator::add(Input_translator *ip)
+Input_translator::add (Input_translator *ip)
{
- contains_itrans_p_list_.bottom().add(ip);
+ contains_itrans_p_list_.bottom().add (ip);
}
Input_translator*
Input_translator::get_default_itrans_l()
{
- if ( contains_itrans_p_list_.size() )
+ if ( contains_itrans_p_list_.size())
return contains_itrans_p_list_.top();
else
return 0;
}
-Input_translator_list::Input_translator_list(Input_translator_list const &s)
+Input_translator_list::Input_translator_list (Input_translator_list const &s)
{
- for (PCursor<Input_translator*> pc(s); pc.ok(); pc++) {
+ for (PCursor<Input_translator*> pc (s); pc.ok(); pc++) {
Input_translator *q = pc;
- Input_translator *p=new Input_translator(*q) ;
- bottom().add(p);
+ Input_translator *p=new Input_translator (*q) ;
+ bottom().add (p);
}
}
diff --git a/lily/item.cc b/lily/item.cc
index 7553b8cf6b..b47ac190e9 100644
--- a/lily/item.cc
+++ b/lily/item.cc
@@ -26,7 +26,7 @@ void
Item::do_print() const
{
#ifndef NPRINT
- mtor << "(unknown)";
+ DOUT << "(unknown)";
#endif
}
@@ -34,7 +34,7 @@ Item::do_print() const
Real
Item::hpos_f()const
{
- return pcol_l_->hpos_f_ + absolute_coordinate(X_AXIS);
+ return pcol_l_->hpos_f_ + absolute_coordinate (X_AXIS);
}
Line_of_score *
@@ -52,15 +52,15 @@ Item::break_status_i() const
void
Item::copy_breakable_items()
{
- if ( broken_to_a_[0] || broken_to_a_[1] )
+ if ( broken_to_a_[0] || broken_to_a_[1])
return;
Item *new_copies[2];
for (int i=0; i < 2; i++) {
- Item * item_p = clone()->item();
- item_p->copy_dependencies(*this);
+ Item * item_p = clone()->item ();
+ item_p->copy_dependencies (*this);
item_p->break_status_i_ = -1+ 2*i;
- pscore_l_->typeset_item(item_p, pcol_l_);
+ pscore_l_->typeset_item (item_p, pcol_l_);
item_p->handle_prebroken_dependencies();
new_copies[i] =item_p;
}
@@ -79,13 +79,13 @@ Item::do_breakable_col_processing()
/*
Otherwise the broken items won't be pre_process()'ed.
*/
- add_dependency( broken_to_a_[0] );
- add_dependency( broken_to_a_[1] );
+ add_dependency (broken_to_a_[0]);
+ add_dependency (broken_to_a_[1]);
}
Item*
-Item::find_prebroken_piece(Line_of_score*l) const
+Item::find_prebroken_piece (Line_of_score*l) const
{
if (line_l() == l)
return (Item*)this;
@@ -98,9 +98,9 @@ Item::find_prebroken_piece(Line_of_score*l) const
}
Item*
-Item::find_prebroken_piece(PCol*c)const
+Item::find_prebroken_piece (PCol*c)const
{
- if (c == pcol_l_ )
+ if (c == pcol_l_)
return (Item *) this; // ugh
if (c == pcol_l_->prebreak_p_)
@@ -108,12 +108,12 @@ Item::find_prebroken_piece(PCol*c)const
else if (c==pcol_l_->postbreak_p_)
return (Item *)broken_to_a_[1];
- assert(false);
+ assert (false);
}
void
Item::handle_prebroken_dependencies()
{
- if ( breakable_b_ )
+ if ( breakable_b_)
Score_elem::handle_prebroken_dependencies();
}
diff --git a/lily/key-grav.cc b/lily/key-grav.cc
index 5de204bd25..a29879bbf4 100644
--- a/lily/key-grav.cc
+++ b/lily/key-grav.cc
@@ -34,14 +34,14 @@ Key_engraver::create_key()
if (inf.c0_position_i_l_)
c0_i = *get_staff_info().c0_position_i_l_;
- kit_p_ = new Key_item(c0_i);
- announce_element(Score_elem_info(kit_p_,keyreq_l_));
- kit_p_->read(*this);
+ kit_p_ = new Key_item (c0_i);
+ announce_element (Score_elem_info (kit_p_,keyreq_l_));
+ kit_p_->read (*this);
}
}
bool
-Key_engraver::do_try_request(Request * req_l)
+Key_engraver::do_try_request (Request * req_l)
{
Command_req* creq_l= req_l->command();
if (!creq_l|| !creq_l->keychange())
@@ -50,17 +50,17 @@ Key_engraver::do_try_request(Request * req_l)
if (keyreq_l_)
return false; // TODO
keyreq_l_ = creq_l->keychange();
- read_req(keyreq_l_);
+ read_req (keyreq_l_);
return true;
}
void
-Key_engraver::acknowledge_element(Score_elem_info info)
+Key_engraver::acknowledge_element (Score_elem_info info)
{
Command_req * r_l = info.req_l_->command() ;
if (r_l && r_l->clefchange()) {
create_key();
- } else if (info.elem_l_->name() == Bar::static_name()) {
+ } else if (info.elem_l_->name() == Bar::static_name ()) {
if ( !keyreq_l_)
default_key_b_ = true;
create_key();
@@ -72,7 +72,7 @@ void
Key_engraver::do_process_requests()
{
if (key_.multi_octave_b_) {
- assert(false); // TODO .
+ assert (false); // TODO .
} else if (keyreq_l_) {
create_key();
}
@@ -83,7 +83,7 @@ Key_engraver::do_pre_move_processing()
{
if (kit_p_) {
kit_p_->default_b_ = default_key_b_;
- typeset_element( kit_p_);
+ typeset_element (kit_p_);
kit_p_ = 0;
}
}
@@ -91,7 +91,7 @@ Key_engraver::do_pre_move_processing()
void
-Key_engraver::read_req(Key_change_req * r)
+Key_engraver::read_req (Key_change_req * r)
{
key_.multi_octave_b_ = r->multi_octave_b_;
accidental_idx_arr_.clear();
@@ -101,10 +101,10 @@ Key_engraver::read_req(Key_change_req * r)
int a_i = m_l->accidental_i_;
int o_i = m_l->octave_i_;
if (r->multi_octave_b_)
- key_.set(o_i, n_i, a_i);
+ key_.set (o_i, n_i, a_i);
else
- key_.set(n_i, a_i);
- accidental_idx_arr_.push(n_i);
+ key_.set (n_i, a_i);
+ accidental_idx_arr_.push (n_i);
}
}
diff --git a/lily/key-item.cc b/lily/key-item.cc
index 299695561f..c765fd0206 100644
--- a/lily/key-item.cc
+++ b/lily/key-item.cc
@@ -20,43 +20,43 @@
const int FLAT_TOP_PITCH=2; /* fes,ges,as and bes typeset in lower octave */
const int SHARP_TOP_PITCH=4; /* ais and bis typeset in lower octave */
-Key_item::Key_item(int c)
+Key_item::Key_item (int c)
{
breakable_b_ =true;
default_b_ = false;
- set_c_position(c);
+ set_c_position (c);
}
void
-Key_item::read(Key_engraver const & key_grav_r)
+Key_item::read (Key_engraver const & key_grav_r)
{
- assert(!key_grav_r.key_.multi_octave_b_);
+ assert (!key_grav_r.key_.multi_octave_b_);
const Array<int> &idx_arr =key_grav_r.accidental_idx_arr_;
for (int i = 0 ; i< idx_arr.size(); i++) {
int note = idx_arr[i];
- int acc = ((Key &) key_grav_r.key_).oct(0).acc(note);
+ int acc = ((Key &) key_grav_r.key_).oct (0).acc (note);
- add(note, acc);
+ add (note, acc);
}
}
void
-Key_item::set_c_position(int c0)
+Key_item::set_c_position (int c0)
{
- int octaves =(abs(c0) / 7) +1 ;
+ int octaves =(abs (c0) / 7) +1 ;
c_position=(c0 + 7*octaves)%7;
}
void
-Key_item::add(int p, int a)
+Key_item::add (int p, int a)
{
if ((a<0 && p>FLAT_TOP_PITCH) ||
(a>0 && p>SHARP_TOP_PITCH)) {
p -= 7; /* Typeset below c_position */
}
- pitch.push(p);
- acc.push(a);
+ pitch.push (p);
+ acc.push (a);
}
@@ -64,21 +64,21 @@ Molecule*
Key_item::brew_molecule_p()const
{
Molecule*output = new Molecule;
- Real inter = paper()->internote_f();
+ Real inter = paper()->internote_f ();
for (int i =0; i < pitch.size(); i++) {
- Symbol s= paper()->lookup_l()->accidental(acc[i]);
- Atom a(s);
- a.translate((c_position + pitch[i]) * inter, Y_AXIS);
- Molecule m(a);
- output->add_right(m);
+ Symbol s= paper()->lookup_l ()->accidental (acc[i]);
+ Atom a (s);
+ a.translate ((c_position + pitch[i]) * inter, Y_AXIS);
+ Molecule m (a);
+ output->add_right (m);
}
- if ( pitch.size() ) {
- Molecule m(paper()->lookup_l()->fill(Box(
- Interval(0, paper()->note_width()),
- Interval(0,0))));
+ if ( pitch.size()) {
+ Molecule m (paper()->lookup_l ()->fill (Box (
+ Interval (0, paper()->note_width ()),
+ Interval (0,0))));
- output->add_right(m);
+ output->add_right (m);
}
return output;
}
@@ -88,7 +88,7 @@ IMPLEMENT_IS_TYPE_B1(Key_item,Item);
void
Key_item::do_pre_processing()
{
- if (default_b_ ) {
+ if (default_b_) {
empty_b_ = transparent_b_ = (break_status_i() != 1);
}
}
diff --git a/lily/key-performer.cc b/lily/key-performer.cc
index 5affa0c1f3..0dfe7092f1 100644
--- a/lily/key-performer.cc
+++ b/lily/key-performer.cc
@@ -28,7 +28,7 @@ void
Key_performer::do_print() const
{
#ifndef NPRINT
- if ( key_req_l_ )
+ if ( key_req_l_)
key_req_l_->print();
#endif
}
@@ -36,21 +36,21 @@ Key_performer::do_print() const
void
Key_performer::process_requests()
{
- if ( key_req_l_ )
- play( new Audio_key( key_req_l_ ) );
+ if ( key_req_l_)
+ play (new Audio_key (key_req_l_) );
key_req_l_ = 0;
}
bool
-Key_performer::do_try_request( Request* req_l )
+Key_performer::do_try_request (Request* req_l)
{
- if ( key_req_l_ )
+ if ( key_req_l_)
return false;
- if ( req_l->command() )
- key_req_l_ = req_l->command()->keychange();
+ if ( req_l->command())
+ key_req_l_ = req_l->command()->keychange ();
- if ( key_req_l_ )
+ if ( key_req_l_)
return true;
return false;
diff --git a/lily/key.cc b/lily/key.cc
index 827b01c2c3..d755b68b3d 100644
--- a/lily/key.cc
+++ b/lily/key.cc
@@ -16,7 +16,7 @@ const int ZEROOCTAVE=7;
Octave_key::Octave_key()
{
- accidental_i_arr_.set_size(7);
+ accidental_i_arr_.set_size (7);
for (int i= 0; i < 7 ; i++)
accidental_i_arr_[i] = 0;
}
@@ -24,32 +24,32 @@ Octave_key::Octave_key()
Key::Key()
{
multi_octave_b_ = false;
- octaves.set_size(OCTAVES);
+ octaves.set_size (OCTAVES);
}
Octave_key&
-Key::oct(int i)
+Key::oct (int i)
{
return octaves[i+ZEROOCTAVE];
}
void
-Octave_key::set(int i, int a)
+Octave_key::set (int i, int a)
{
- assert(a > -3 && a < 3);
+ assert (a > -3 && a < 3);
accidental_i_arr_[i]=a;
}
void
-Key::set(int o, int n , int a)
+Key::set (int o, int n , int a)
{
- octaves[o + ZEROOCTAVE].set(n,a);
+ octaves[o + ZEROOCTAVE].set (n,a);
}
void
Key::set (int n, int a)
{
for (int i= 0; i < OCTAVES ; i++)
- octaves[i].set(n,a);
+ octaves[i].set (n,a);
}
diff --git a/lily/keyword.cc b/lily/keyword.cc
index 1e4385f14a..4eec8b4f72 100644
--- a/lily/keyword.cc
+++ b/lily/keyword.cc
@@ -17,20 +17,20 @@ struct Keyword_table
{
Keyword_ent *table;
int maxkey;
- Keyword_table(Keyword_ent *);
- int lookup(char const *s) const;
+ Keyword_table (Keyword_ent *);
+ int lookup (char const *s) const;
};
/* for qsort */
int
- tabcmp(void const * p1, void const * p2)
+ tabcmp (void const * p1, void const * p2)
{
- return strcmp(((Keyword_ent const *) p1)->name,
+ return strcmp (((Keyword_ent const *) p1)->name,
((Keyword_ent const *) p2)->name);
}
-Keyword_table::Keyword_table(Keyword_ent *tab)
+Keyword_table::Keyword_table (Keyword_ent *tab)
{
table = tab;
@@ -38,14 +38,14 @@ Keyword_table::Keyword_table(Keyword_ent *tab)
for (maxkey = 0; table[maxkey].name; maxkey++);
/* sort them */
- qsort(table, maxkey, sizeof(Keyword_ent), tabcmp);
+ qsort (table, maxkey, sizeof (Keyword_ent), tabcmp);
}
/*
lookup with binsearch, return tokencode.
*/
int
-Keyword_table::lookup(char const *s)const
+Keyword_table::lookup (char const *s)const
{
int lo,
hi,
@@ -59,7 +59,7 @@ Keyword_table::lookup(char const *s)const
{
cmp = (lo + hi) / 2;
- result = strcmp(s, table[cmp].name);
+ result = strcmp (s, table[cmp].name);
if (result < 0)
hi = cmp;
@@ -67,7 +67,7 @@ Keyword_table::lookup(char const *s)const
lo = cmp;
}
while (hi - lo > 1);
- if (!strcmp(s, table[lo].name))
+ if (!strcmp (s, table[lo].name))
{
return table[lo].tokcode;
} else
diff --git a/lily/leastsquares.cc b/lily/leastsquares.cc
index 04dd26bdcc..7f274bf4d1 100644
--- a/lily/leastsquares.cc
+++ b/lily/leastsquares.cc
@@ -2,15 +2,15 @@
void
Least_squares::OK() const
{
- assert( input.size() > 1 );
+ assert (input.size() > 1);
Real dx = 0.0;
for (int i=1; i < input.size(); i++)
- dx += abs (input[i-1].x() - input[i].x());
+ dx += abs (input[i-1].x() - input[i].x ());
- assert(dx);
+ assert (dx);
}
void
-Least_squares::minimise(Real &coef, Real &offset)
+Least_squares::minimise (Real &coef, Real &offset)
{
OK();
Real sx = 0.0;
@@ -23,13 +23,13 @@ Least_squares::minimise(Real &coef, Real &offset)
Real y = input[i].y();
sx += x;
sy += y;
- sqx += sqr(x);
+ sqx += sqr (x);
sxy += x*y;
}
int N = input.size();
- coef = (N * sxy - sx*sy )/(N*sqx - sqr(sx));
+ coef = (N * sxy - sx*sy)/(N*sqx - sqr (sx));
offset = (sy - coef * sx)/N;
}
diff --git a/lily/lexer.l b/lily/lexer.l
index 0634e76c4a..0372e75e98 100644
--- a/lily/lexer.l
+++ b/lily/lexer.l
@@ -120,7 +120,7 @@ LYRICS ({AA}|{NATIONAL})[^0-9 \t\n\f]*
<incl>\"[^"]*\" { /* got the include file name */
String s (YYText()+1);
s = s.left_str(s.length_i()-1);
- mtor << "#include `" << s << "\'\n";
+ DOUT << "#include `" << s << "\'\n";
new_input(s,source_l_g);
yy_pop_state();
}
@@ -131,7 +131,7 @@ LYRICS ({AA}|{NATIONAL})[^0-9 \t\n\f]*
<notes>{RESTNAME} {
const char *s = YYText();
yylval.string = new String (s);
- mtor << "rest:"<< yylval.string;
+ DOUT << "rest:"<< yylval.string;
return RESTNAME;
}
<INITIAL,lyrics,notes>\\\${BLACK}*{WHITE} {
@@ -198,7 +198,7 @@ LYRICS ({AA}|{NATIONAL})[^0-9 \t\n\f]*
*yylval.string += YYText();
}
\" {
- mtor << "quoted string: `" << *yylval.string << "'\n";
+ DOUT << "quoted string: `" << *yylval.string << "'\n";
yy_pop_state();
return STRING;
}
@@ -228,7 +228,7 @@ LYRICS ({AA}|{NATIONAL})[^0-9 \t\n\f]*
s = s.left_str(i+2) + " " + s.right_str(s.length_i()-i-2);
}
yylval.string = new String(s);
- mtor << "lyric : `" << s << "'\n";
+ DOUT << "lyric : `" << s << "'\n";
return STRING;
}
. {
@@ -237,7 +237,7 @@ LYRICS ({AA}|{NATIONAL})[^0-9 \t\n\f]*
}
<<EOF>> {
- mtor << "<<eof>>";
+ DOUT << "<<eof>>";
if (! close_input()) {
yyterminate(); // can't move this, since it actually rets a YY_NULL
@@ -253,7 +253,7 @@ LYRICS ({AA}|{NATIONAL})[^0-9 \t\n\f]*
Real r;
int cnv=sscanf (YYText(), "%lf", &r);
assert(cnv == 1);
- mtor << "REAL" << r<<'\n';
+ DOUT << "REAL" << r<<'\n';
yylval.real = r;
return REAL;
}
@@ -265,12 +265,12 @@ LYRICS ({AA}|{NATIONAL})[^0-9 \t\n\f]*
[{}] {
- mtor << "parens\n";
+ DOUT << "parens\n";
return YYText()[0];
}
[*:=] {
char c = YYText()[0];
- mtor << "misc char" <<c<<"\n";
+ DOUT << "misc char" <<c<<"\n";
return c;
}
@@ -320,28 +320,28 @@ My_lily_lexer::pop_state()
int
My_lily_lexer::scan_escaped_word(String str)
{
- mtor << "\\word: `" << str<<"'\n";
+ DOUT << "\\word: `" << str<<"'\n";
int l = lookup_keyword(str);
if (l != -1) {
- mtor << "(keyword)\n";
+ DOUT << "(keyword)\n";
return l;
}
Identifier * id = lookup_identifier(str);
if (id) {
- mtor << "(identifier)\n";
+ DOUT << "(identifier)\n";
yylval.id = id;
return id->token_code_i_;
}
if ( YYSTATE != notes ) {
Melodic_req * mel_l = lookup_melodic_req_l(str);
if (mel_l) {
- mtor << "(notename)\n";
+ DOUT << "(notename)\n";
yylval.melreq = mel_l;
return NOTENAME_ID;
}
}
LexerError( "Unknown escaped string: `" + str + "'");
- mtor << "(string)";
+ DOUT << "(string)";
String *sp = new String( str);
yylval.string=sp;
return STRING;
@@ -350,11 +350,11 @@ My_lily_lexer::scan_escaped_word(String str)
int
My_lily_lexer::scan_bare_word(String str)
{
- mtor << "word: `" << str<< "'\n";
+ DOUT << "word: `" << str<< "'\n";
if (YYSTATE == notes){
Melodic_req * mel_l = lookup_melodic_req_l(str);
if (mel_l) {
- mtor << "(notename)\n";
+ DOUT << "(notename)\n";
yylval.melreq = mel_l;
return NOTENAME_ID;
}
diff --git a/lily/lily-version.cc b/lily/lily-version.cc
index 2890cd3e8a..65d8c72548 100644
--- a/lily/lily-version.cc
+++ b/lily/lily-version.cc
@@ -11,6 +11,6 @@ char const *
lily_version_sz()
{
static char v[1024]; // ugh
- sprintf(v, s, build);
+ sprintf (v, s, build);
return v;
}
diff --git a/lily/line-group-grav.cc b/lily/line-group-grav.cc
index 3fc21f2472..f023df2e1a 100644
--- a/lily/line-group-grav.cc
+++ b/lily/line-group-grav.cc
@@ -19,18 +19,18 @@ Line_group_engraver::Line_group_engraver()
}
void
-Line_group_engraver::acknowledge_element(Score_elem_info elem)
+Line_group_engraver::acknowledge_element (Score_elem_info elem)
{
- if ( !elem.elem_l_->axis_group_l_a_[Y_AXIS] )
- staffline_p_->add_element(elem.elem_l_);
+ if ( !elem.elem_l_->axis_group_l_a_[Y_AXIS])
+ staffline_p_->add_element (elem.elem_l_);
}
void
Line_group_engraver::do_removal_processing()
{
- staffline_p_->right_col_l_ = get_staff_info().command_pcol_l();
- typeset_element(staffline_p_);
+ staffline_p_->right_col_l_ = get_staff_info().command_pcol_l ();
+ typeset_element (staffline_p_);
staffline_p_ = 0;
}
@@ -38,10 +38,10 @@ void
Line_group_engraver::do_creation_processing()
{
staffline_p_ = new Vertical_group_spanner ;
- staffline_p_->left_col_l_ = get_staff_info().command_pcol_l();
+ staffline_p_->left_col_l_ = get_staff_info().command_pcol_l ();
// don't broadcast to self.
- announce_element(Score_elem_info(staffline_p_,0));
+ announce_element (Score_elem_info (staffline_p_,0));
}
diff --git a/lily/local-key-grav.cc b/lily/local-key-grav.cc
index bd474f4d2b..b1e6cb6b90 100644
--- a/lily/local-key-grav.cc
+++ b/lily/local-key-grav.cc
@@ -29,12 +29,12 @@ Local_key_engraver::do_pre_move_processing()
Item * support_l = support_l_arr_[i];
Note_req * note_l = mel_l_arr_[i];
- if (tied_l_arr_.find_l(support_l) &&
+ if (tied_l_arr_.find_l (support_l) &&
!note_l->forceacc_b_)
continue;
- if( !note_l->forceacc_b_ &&
- local_key_.oct(note_l->octave_i_).acc(note_l->notename_i_)
+ if (!note_l->forceacc_b_ &&
+ local_key_.oct (note_l->octave_i_).acc (note_l->notename_i_)
== note_l->accidental_i_)
continue;
@@ -47,21 +47,21 @@ Local_key_engraver::do_pre_move_processing()
if (inf.c0_position_i_l_)
c0_i = *get_staff_info().c0_position_i_l_;
- key_item_p = new Local_key_item(c0_i);
+ key_item_p = new Local_key_item (c0_i);
}
- key_item_p->add(note_l);
- key_item_p->add_support(support_l);
- local_key_.oct(note_l->octave_i_)
- .set(note_l->notename_i_, note_l->accidental_i_);
+ key_item_p->add (note_l);
+ key_item_p->add_support (support_l);
+ local_key_.oct (note_l->octave_i_)
+ .set (note_l->notename_i_, note_l->accidental_i_);
}
}
if (key_item_p) {
- for(int i=0; i < support_l_arr_.size(); i++)
- key_item_p->add_support(support_l_arr_[i]);
+ for (int i=0; i < support_l_arr_.size(); i++)
+ key_item_p->add_support (support_l_arr_[i]);
- announce_element(Score_elem_info(key_item_p, 0)); // ugh ugh ugh
- typeset_element(key_item_p);
+ announce_element (Score_elem_info (key_item_p, 0)); // ugh ugh ugh
+ typeset_element (key_item_p);
}
mel_l_arr_.clear();
@@ -73,30 +73,30 @@ Local_key_engraver::do_pre_move_processing()
whoah .. this looks hairy!
*/
void
-Local_key_engraver::acknowledge_element(Score_elem_info info)
+Local_key_engraver::acknowledge_element (Score_elem_info info)
{
Score_elem * elem_l = info.elem_l_;
- if (info.req_l_->musical() && info.req_l_->musical()->note()) {
- Note_req * note_l = info.req_l_->musical()->note();
+ if (info.req_l_->musical() && info.req_l_->musical ()->note ()) {
+ Note_req * note_l = info.req_l_->musical()->note ();
Item * item_l = info.elem_l_->item();
- mel_l_arr_.push(note_l );
- support_l_arr_.push(item_l);
+ mel_l_arr_.push (note_l);
+ support_l_arr_.push (item_l);
} else if (info.req_l_->command()
- && info.req_l_->command()->keychange()) {
+ && info.req_l_->command()->keychange ()) {
Key_engraver * key_grav_l =
(Key_engraver*)info.origin_grav_l_arr_[0];
key_C_ = &key_grav_l->key_;
local_key_ = *key_C_;
- } else if (elem_l->name() == Key_item::static_name()) {
+ } else if (elem_l->name() == Key_item::static_name ()) {
Key_engraver * key_grav_l =
(Key_engraver*)info.origin_grav_l_arr_[0];
key_C_ = &key_grav_l->key_;
- } else if (elem_l->name() == Tie::static_name()) {
+ } else if (elem_l->name() == Tie::static_name ()) {
Tie * tie_l = (Tie*)elem_l->spanner();
if (tie_l->same_pitch_b_)
- tied_l_arr_.push(tie_l-> right_head_l_ );
+ tied_l_arr_.push (tie_l-> right_head_l_);
}
}
diff --git a/lily/local-key-item.cc b/lily/local-key-item.cc
index 6f84c2d40d..51464e9eb6 100644
--- a/lily/local-key-item.cc
+++ b/lily/local-key-item.cc
@@ -17,22 +17,22 @@
-Local_key_item::Local_key_item(int i)
+Local_key_item::Local_key_item (int i)
{
c0_position = i;
}
void
-Local_key_item::add_support(Item*head_l)
+Local_key_item::add_support (Item*head_l)
{
- support_items_.push(head_l);
- add_dependency(head_l);
+ support_items_.push (head_l);
+ add_dependency (head_l);
}
void
-Local_key_item::add(Melodic_req*m_l)
+Local_key_item::add (Melodic_req*m_l)
{
- add(m_l->octave_i_, m_l->notename_i_, m_l->accidental_i_);
+ add (m_l->octave_i_, m_l->notename_i_, m_l->accidental_i_);
}
void
@@ -43,16 +43,16 @@ Local_key_item::add (int o, int p , int a)
l.name_i_ = p;
l.accidental_i_ = a;
for (int i=0; i< accs.size(); i++)
- if (!Local_acc::compare(l, accs[i]))
+ if (!Local_acc::compare (l, accs[i]))
return;
- accs.push(l);
+ accs.push (l);
}
void
Local_key_item::do_pre_processing()
{
- accs.sort(Local_acc::compare);
+ accs.sort (Local_acc::compare);
}
Molecule*
@@ -65,37 +65,37 @@ Local_key_item::brew_molecule_p()const
// do one octave
if (accs[i].octave_i_ != lastoct) {
if (octmol){
- Real dy =lastoct*7*paper()->internote_f();
- octmol->translate( dy, Y_AXIS);
- output->add(*octmol);
+ Real dy =lastoct*7*paper()->internote_f ();
+ octmol->translate (dy, Y_AXIS);
+ output->add (*octmol);
delete octmol;
}
octmol= new Molecule;
}
lastoct = accs[i].octave_i_;
- Symbol s =paper()->lookup_l()->accidental(accs[i].accidental_i_);
- Atom a(s);
- Real dy = (accs[i].name_i_ + c0_position) * paper()->internote_f();
- a.translate(dy, Y_AXIS);
+ Symbol s =paper()->lookup_l ()->accidental (accs[i].accidental_i_);
+ Atom a (s);
+ Real dy = (accs[i].name_i_ + c0_position) * paper()->internote_f ();
+ a.translate (dy, Y_AXIS);
- octmol->add_right(a);
+ octmol->add_right (a);
}
if (octmol){
- Real dy =lastoct*7*paper()->internote_f();
- octmol->translate( dy, Y_AXIS);
- output->add(*octmol);
+ Real dy =lastoct*7*paper()->internote_f ();
+ octmol->translate (dy, Y_AXIS);
+ output->add (*octmol);
delete octmol;
}
- Interval head_width=itemlist_width(support_items_);
- output->translate(-output->extent().x().right + head_width.left , X_AXIS);
+ Interval head_width=itemlist_width (support_items_);
+ output->translate (-output->extent().x ().right + head_width.left , X_AXIS);
return output;
}
int
-Local_acc::compare(Local_acc&a, Local_acc&b)
+Local_acc::compare (Local_acc&a, Local_acc&b)
{
if (a.octave_i_ - b.octave_i_)
return a.octave_i_ - b.octave_i_;
@@ -108,10 +108,10 @@ Local_acc::compare(Local_acc&a, Local_acc&b)
IMPLEMENT_IS_TYPE_B1(Local_key_item,Item);
void
-Local_key_item::do_substitute_dependency(Score_elem*o,Score_elem*n)
+Local_key_item::do_substitute_dependency (Score_elem*o,Score_elem*n)
{
Item* o_l = o->item();
Item* n_l = n?n->item():0;
- support_items_.substitute(o_l, n_l);
+ support_items_.substitute (o_l, n_l);
}
diff --git a/lily/lookup.cc b/lily/lookup.cc
index e51a3e8b89..6cdf835604 100644
--- a/lily/lookup.cc
+++ b/lily/lookup.cc
@@ -27,11 +27,11 @@ Lookup::Lookup()
symtables_ = new Symtables;
}
-Lookup::Lookup(Lookup const &s)
+Lookup::Lookup (Lookup const &s)
{
paper_l_ = s.paper_l_;
texsetting = s.texsetting;
- symtables_ = new Symtables(*s.symtables_);
+ symtables_ = new Symtables (*s.symtables_);
}
Lookup::~Lookup()
{
@@ -39,32 +39,32 @@ Lookup::~Lookup()
}
void
-Lookup::add(String s, Symtable*p)
+Lookup::add (String s, Symtable*p)
{
- symtables_->add(s, p);
+ symtables_->add (s, p);
}
void
Lookup::print()const
{
#ifndef NPRINT
- mtor << "Lookup: " << texsetting << " {\n";
+ DOUT << "Lookup: " << texsetting << " {\n";
symtables_->print();
- mtor << "}\n";
+ DOUT << "}\n";
#endif
}
Symbol
-Lookup::text(String style, String text, int dir) const
+Lookup::text (String style, String text, int dir) const
{
Array<String> a;
- a.push(text);
- Symbol tsym = (*symtables_)("style")->lookup(style);
- a[0] = substitute_args(tsym.tex,a);
+ a.push (text);
+ Symbol tsym = (*symtables_)("style")->lookup (style);
+ a[0] = substitute_args (tsym.tex,a);
- Symbol s = (*symtables_)("align")->lookup(dir);
- s.tex = substitute_args(s.tex,a);
+ Symbol s = (*symtables_)("align")->lookup (dir);
+ s.tex = substitute_args (s.tex,a);
s.dim = tsym.dim;
return s;
}
@@ -72,85 +72,85 @@ Lookup::text(String style, String text, int dir) const
Symbol
-Lookup::ball(int j) const
+Lookup::ball (int j) const
{
if (j > 4)
j = 4;
Symtable * st = (*symtables_)("balls");
- return st->lookup(String(j));
+ return st->lookup (String (j));
}
Symbol
-Lookup::rest(int j, bool o) const
+Lookup::rest (int j, bool o) const
{
- return (*symtables_)("rests")->lookup(String(j) + (o ? "o" : "") );
+ return (*symtables_)("rests")->lookup (String (j) + (o ? "o" : ""));
}
Symbol
-Lookup::fill(Box b) const
+Lookup::fill (Box b) const
{
- Symbol s( (*symtables_)("param")->lookup("fill"));
+ Symbol s ((*symtables_)("param")->lookup ("fill"));
s.dim = b;
return s;
}
Symbol
-Lookup::accidental(int j) const
+Lookup::accidental (int j) const
{
- return (*symtables_)("accidentals")->lookup(String(j));
+ return (*symtables_)("accidentals")->lookup (String (j));
}
Symbol
-Lookup::bar(String s, Real h) const
+Lookup::bar (String s, Real h) const
{
Array<String> a;
- a.push(print_dimen( h));
- Symbol ret=(*symtables_)("bars")->lookup(s);;
- ret.tex = substitute_args(ret.tex, a);
- ret.dim.y() = Interval( 0, h);
+ a.push (print_dimen (h));
+ Symbol ret=(*symtables_)("bars")->lookup (s);;
+ ret.tex = substitute_args (ret.tex, a);
+ ret.dim.y() = Interval (0, h);
return ret;
}
Symbol
-Lookup::script(String s) const
+Lookup::script (String s) const
{
- return (*symtables_)("scripts")->lookup(s);
+ return (*symtables_)("scripts")->lookup (s);
}
Symbol
-Lookup::dynamic(String s) const
+Lookup::dynamic (String s) const
{
- return (*symtables_)("dynamics")->lookup(s);
+ return (*symtables_)("dynamics")->lookup (s);
}
Symbol
-Lookup::clef(String s) const
+Lookup::clef (String s) const
{
- return (*symtables_)("clefs")->lookup(s);
+ return (*symtables_)("clefs")->lookup (s);
}
Symbol
-Lookup::dots(int j) const
+Lookup::dots (int j) const
{
if (j>3) {
j = 3;
- warning("max 3 dots"); // todo
+ warning ("max 3 dots"); // todo
}
- return (*symtables_)("dots")->lookup(j);
+ return (*symtables_)("dots")->lookup (j);
}
Symbol
-Lookup::flag(int j) const
+Lookup::flag (int j) const
{
- return (*symtables_)("flags")->lookup(j);
+ return (*symtables_)("flags")->lookup (j);
}
Symbol
-Lookup::streepjes(int i) const
+Lookup::streepjes (int i) const
{
- assert(i);
+ assert (i);
int arg;
String idx;
@@ -162,64 +162,64 @@ Lookup::streepjes(int i) const
arg = i;
idx = "toplines";
}
- Symbol ret = (*symtables_)("streepjes")->lookup(idx);
+ Symbol ret = (*symtables_)("streepjes")->lookup (idx);
Array<String> a;
- a.push(arg);
- ret.tex = substitute_args(ret.tex, a);
+ a.push (arg);
+ ret.tex = substitute_args (ret.tex, a);
return ret;
}
Symbol
-Lookup::hairpin(Real &wid, bool decresc) const
+Lookup::hairpin (Real &wid, bool decresc) const
{
- int idx = int(rint(wid / 6 PT));
- if(!idx) idx ++;
+ int idx = int (rint (wid / 6 PT));
+ if (!idx) idx ++;
wid = idx*6 PT;
String idxstr = (decresc)? "decrescendosym" : "crescendosym";
- Symbol ret=(*symtables_)("param")->lookup(idxstr);
+ Symbol ret=(*symtables_)("param")->lookup (idxstr);
Array<String> a;
- a.push(idx);
- ret.tex = substitute_args(ret.tex, a);
- ret.dim.x() = Interval(0,wid);
+ a.push (idx);
+ ret.tex = substitute_args (ret.tex, a);
+ ret.dim.x() = Interval (0,wid);
return ret;
}
Symbol
-Lookup::linestaff(int lines, Real wid) const
+Lookup::linestaff (int lines, Real wid) const
{
Real internote_f = paper_l_ ->internote_f();
Symbol s;
Real dy = (lines >0) ? (lines-1)*internote_f : 0;
- s.dim = Box(Interval(0,wid), Interval(0,dy));
+ s.dim = Box (Interval (0,wid), Interval (0,dy));
Array<String> a;
- a.push(lines);
- a.push(print_dimen(wid));
+ a.push (lines);
+ a.push (print_dimen (wid));
- s.tex = (*symtables_)("param")->lookup("linestaf").tex;
- s.tex = substitute_args(s.tex, a);
+ s.tex = (*symtables_)("param")->lookup ("linestaf").tex;
+ s.tex = substitute_args (s.tex, a);
return s;
}
Symbol
-Lookup::meter(Array<Scalar> a) const
+Lookup::meter (Array<Scalar> a) const
{
Symbol s;
- s.dim.x() = Interval( 0 PT, 10 PT);
- s.dim.y() = Interval(0, 20 PT); // todo
- String src = (*symtables_)("param")->lookup("meter").tex;
- s.tex = substitute_args(src,a);
+ s.dim.x() = Interval (0 PT, 10 PT);
+ s.dim.y() = Interval (0, 20 PT); // todo
+ String src = (*symtables_)("param")->lookup ("meter").tex;
+ s.tex = substitute_args (src,a);
return s;
}
Symbol
-Lookup::stem(Real y1,Real y2) const
+Lookup::stem (Real y1,Real y2) const
{
if (y1 > y2) {
Real t = y1;
@@ -228,15 +228,15 @@ Lookup::stem(Real y1,Real y2) const
}
Symbol s;
- s.dim.x() = Interval(0,0);
- s.dim.y() = Interval(y1,y2);
+ s.dim.x() = Interval (0,0);
+ s.dim.y() = Interval (y1,y2);
Array<String> a;
- a.push(print_dimen(y1));
- a.push(print_dimen(y2));
+ a.push (print_dimen (y1));
+ a.push (print_dimen (y2));
- String src = (*symtables_)("param")->lookup("stem").tex;
- s.tex = substitute_args(src,a);
+ String src = (*symtables_)("param")->lookup ("stem").tex;
+ s.tex = substitute_args (src,a);
return s;
}
@@ -244,32 +244,32 @@ Lookup::stem(Real y1,Real y2) const
should be handled via TeX code and Lookup::bar()
*/
Symbol
-Lookup::vbrace(Real &y) const
+Lookup::vbrace (Real &y) const
{
if (y < 2* 20 PT) {
- warning ( "piano brace too small (" + print_dimen(y)+ ")");
+ warning ( "piano brace too small (" + print_dimen (y)+ ")");
y = 2*20 PT;
}
if (y > 67 * 2 PT) {
- warning ( "piano brace too big (" + print_dimen(y)+ ")");
+ warning ( "piano brace too big (" + print_dimen (y)+ ")");
y = 67 *2 PT;
}
- int idx = int(rint((y/2.0 - 20 ) + 148));
+ int idx = int (rint ((y/2.0 - 20) + 148));
- Symbol s = (*symtables_)("param")->lookup("brace");
+ Symbol s = (*symtables_)("param")->lookup ("brace");
{
Array<String> a;
- a.push(idx);
- s.tex = substitute_args(s.tex,a);
- s.dim.y() = Interval(0,y);
+ a.push (idx);
+ s.tex = substitute_args (s.tex,a);
+ s.dim.y() = Interval (0,y);
}
{
Array<String> a;
- a.push(print_dimen( y/2 ));
- a.push(print_dimen(0));
- a.push(s.tex);
- s.tex = substitute_args("\\placebox{%}{%}{%}", a);
+ a.push (print_dimen (y/2));
+ a.push (print_dimen (0));
+ a.push (s.tex);
+ s.tex = substitute_args ("\\placebox{%}{%}{%}", a);
}
diff --git a/lily/lyric-grav.cc b/lily/lyric-grav.cc
index 0ab6b79204..c4a09ac34c 100644
--- a/lily/lyric-grav.cc
+++ b/lily/lyric-grav.cc
@@ -20,7 +20,7 @@ Lyric_engraver::Lyric_engraver()
}
bool
-Lyric_engraver::do_try_request(Request*r)
+Lyric_engraver::do_try_request (Request*r)
{
Musical_req * m =r->musical();
if (!m || ! m->lreq_l())
@@ -33,13 +33,13 @@ Lyric_engraver::do_try_request(Request*r)
void
Lyric_engraver::do_process_requests()
{
- if ( lreq_l_ ) {
- lyric_item_p_ = new Text_item(lreq_l_->tdef_p_ );
+ if ( lreq_l_) {
+ lyric_item_p_ = new Text_item (lreq_l_->tdef_p_);
- lyric_item_p_->translate( paper()->note_width()/2 , X_AXIS);
+ lyric_item_p_->translate (paper()->note_width ()/2 , X_AXIS);
lyric_item_p_->dir_i_ = -1;
lyric_item_p_->fat_b_ = true;
- announce_element( Score_elem_info( lyric_item_p_, lreq_l_));
+ announce_element (Score_elem_info (lyric_item_p_, lreq_l_));
}
}
@@ -52,8 +52,8 @@ Lyric_engraver::do_post_move_processing()
void
Lyric_engraver::do_pre_move_processing()
{
- if ( lyric_item_p_ ){
- typeset_element( lyric_item_p_);
+ if ( lyric_item_p_){
+ typeset_element (lyric_item_p_);
lyric_item_p_ =0;
}
}
diff --git a/lily/lyric-performer.cc b/lily/lyric-performer.cc
index 248f8a83bb..b440939393 100644
--- a/lily/lyric-performer.cc
+++ b/lily/lyric-performer.cc
@@ -28,7 +28,7 @@ void
Lyric_performer::do_print() const
{
#ifndef NPRINT
- if ( lreq_arr_.size() )
+ if ( lreq_arr_.size())
lreq_arr_[ 0 ]->print();
#endif
}
@@ -36,18 +36,18 @@ Lyric_performer::do_print() const
void
Lyric_performer::process_requests()
{
- if ( lreq_arr_.size() && lreq_arr_[ 0 ]->tdef_p_->text_str_.length_i() )
- play( new Audio_text( Audio_text::LYRIC, lreq_arr_[ 0 ]->tdef_p_->text_str_ ) );
+ if ( lreq_arr_.size())
+ play (new Audio_text (Audio_text::LYRIC, lreq_arr_[ 0 ]->tdef_p_->text_str_) );
lreq_arr_.clear();
}
bool
-Lyric_performer::do_try_request( Request* req_l )
+Lyric_performer::do_try_request (Request* req_l)
{
Musical_req* m_l = req_l->musical();
- if ( !m_l || ! m_l->lreq_l() )
+ if ( !m_l || ! m_l->lreq_l())
return false;
- lreq_arr_.push( m_l->lreq_l() );
+ lreq_arr_.push (m_l->lreq_l());
return true;
}
diff --git a/lily/main.cc b/lily/main.cc
index eff3d6cc81..a32b0a6a86 100644
--- a/lily/main.cc
+++ b/lily/main.cc
@@ -25,7 +25,7 @@ bool only_midi = false;
bool version_ignore_b_ = false;
int exit_status_i_;
-void destill_inname( String &name_str_r);
+void destill_inname (String &name_str_r);
Long_option_init theopts[] = {
{1, "output", 'o'},
@@ -104,24 +104,24 @@ notice()
static File_path path;
void
-do_one_file(String init_str, String file_str)
+do_one_file (String init_str, String file_str)
{
- if ( init_str != "" && "" == path.find( init_str ) ) {
+ if ( init_str != "" && "" == path.find (init_str) ) {
error ( "Can not find `" + init_str +"\'");
return ;
}
- if ( file_str!= "" && path.find( file_str ) == "" ) {
+ if ( file_str!= "" && path.find (file_str) == "" ) {
error ( "Can not find `" + file_str + "'");
return ;
}
Sources sources;
source_l_g = &sources;
- source_l_g->set_path(&path);
+ source_l_g->set_path (&path);
{
- My_lily_parser parser(source_l_g);
- parser.set_version_check(version_ignore_b_);
- parser.parse_file(init_str, file_str);
+ My_lily_parser parser (source_l_g);
+ parser.set_version_check (version_ignore_b_);
+ parser.parse_file (init_str, file_str);
}
do_scores();
source_l_g = 0;
@@ -134,63 +134,63 @@ main (int argc, char **argv)
// must override (come before) "/usr/local/share/lilypond"!
- char const * env_l=getenv("LILYINCLUDE");
+ char const * env_l=getenv ("LILYINCLUDE");
if (env_l) {
- path.add(env_l);
+ path.add (env_l);
}
- path.add( "" );
- path.add( String( DIR_DATADIR ) + "/init/" );
+ path.add ("");
+ path.add (String (DIR_DATADIR) + "/init/" );
- path.push(DIR_DATADIR );
+ path.push (DIR_DATADIR);
- Getopt_long oparser(argc, argv,theopts);
+ Getopt_long oparser (argc, argv,theopts);
cout << get_version_str() << endl;
- String init_str("symbol.ly");
+ String init_str ("symbol.ly");
while (Long_option_init const * opt = oparser()) {
switch ( opt->shortname){
case 'o':
- set_default_output(oparser.optional_argument_ch_C_);
+ set_default_output (oparser.optional_argument_ch_C_);
break;
case 'w':
notice();
- exit(0);
+ exit (0);
break;
case 'I':
- path.push(oparser.optional_argument_ch_C_);
+ path.push (oparser.optional_argument_ch_C_);
break;
case 'i':
init_str = oparser.optional_argument_ch_C_;
break;
case 'h':
usage();
- exit(0);
+ exit (0);
break;
case 'V':
version_ignore_b_ = true;
break;
case 'd':
- set_debug(true);
+ set_debug (true);
break;
case 'M':
only_midi = true;
break;
default:
- assert(false);
+ assert (false);
break;
}
}
int p=0;
const char *arg ;
- while ( (arg= oparser.get_next_arg()) ) {
- String f(arg);
- destill_inname(f);
- do_one_file(init_str,f);
+ while ( (arg= oparser.get_next_arg())) {
+ String f (arg);
+ destill_inname (f);
+ do_one_file (init_str,f);
p++;
}
if (!p) {
- do_one_file(init_str, "");
+ do_one_file (init_str, "");
}
return exit_status_i_;
@@ -198,14 +198,14 @@ main (int argc, char **argv)
/// make input file name: add default extension. "" is stdin.
void
-destill_inname( String &name_str_r)
+destill_inname (String &name_str_r)
{
- if ( name_str_r.length_i() )
+ if ( name_str_r.length_i())
{
- if( name_str_r[ 0 ] != '-' )
+ if (name_str_r[ 0 ] != '-')
{
String a,b,c,d;
- split_path(name_str_r,a,b,c,d);
+ split_path (name_str_r,a,b,c,d);
// add extension if not present.
if (d == "")
diff --git a/lily/meter-grav.cc b/lily/meter-grav.cc
index d65e5cfae2..eff12b4a6c 100644
--- a/lily/meter-grav.cc
+++ b/lily/meter-grav.cc
@@ -15,57 +15,57 @@ Meter_engraver::Meter_engraver()
{
meter_req_l_ = 0;
meter_p_ =0;
- default_grouping_ = Rhythmic_grouping(MInterval(0,4),4); // ugh
+ default_grouping_ = Rhythmic_grouping (MInterval (0,4),4); // ugh
}
void
-Meter_engraver::fill_staff_info(Staff_info&inf)
+Meter_engraver::fill_staff_info (Staff_info&inf)
{
inf.time_C_ = &time_;
inf.rhythmic_C_ = &default_grouping_;
}
bool
-Meter_engraver::do_try_request(Request*r)
+Meter_engraver::do_try_request (Request*r)
{
bool gotcha = false;
- if (r->command() && r->command()->timing()) {
+ if (r->command() && r->command ()->timing ()) {
gotcha = true;
- Timing_req * tr_l = r->command()->timing();
+ Timing_req * tr_l = r->command()->timing ();
Meter_change_req *m_l = tr_l->meterchange();
if (m_l) {
meter_req_l_ = m_l;
int b_i= m_l->beats_i_;
int o_i = m_l->one_beat_i_;
- if (! time_.allow_meter_change_b() )
- tr_l->warning("Meter change not allowed here");
+ if (! time_.allow_meter_change_b())
+ tr_l->warning ("Meter change not allowed here");
else{
- time_.set_meter(b_i, o_i);
+ time_.set_meter (b_i, o_i);
default_grouping_ =
- Rhythmic_grouping(MInterval(0,Moment(b_i, o_i)), b_i);
+ Rhythmic_grouping (MInterval (0,Moment (b_i, o_i)), b_i);
}
} else if (tr_l->partial()) {
Moment m = tr_l->partial()->duration_;
- String error = time_.try_set_partial_str(m);
+ String error = time_.try_set_partial_str (m);
if (error != "") {
- tr_l->warning(error);
+ tr_l->warning (error);
} else
- time_.setpartial(m);
+ time_.setpartial (m);
} else if (tr_l->barcheck()) {
if (time_.whole_in_measure_) {
- tr_l ->warning( "Barcheck failed");
+ tr_l ->warning ("Barcheck failed");
time_.whole_in_measure_ = 0; // resync
time_.error_b_ = true;
}
} else if (tr_l->cadenza()) {
- time_.set_cadenza(tr_l->cadenza()->on_b_);
+ time_.set_cadenza (tr_l->cadenza()->on_b_);
} else if (tr_l->measuregrouping()) {
- default_grouping_ = parse_grouping(
+ default_grouping_ = parse_grouping (
tr_l->measuregrouping()->beat_i_arr_,
tr_l->measuregrouping()->elt_length_arr_);
@@ -78,29 +78,29 @@ Meter_engraver::do_try_request(Request*r)
void
Meter_engraver::do_creation_processing()
{
- time_.when_ = get_staff_info().when();
+ time_.when_ = get_staff_info().when ();
}
void
Meter_engraver::do_process_requests()
{
- if (meter_req_l_ ) {
+ if (meter_req_l_) {
Array<Scalar> args;
- args.push(meter_req_l_->beats_i_);
- args.push(meter_req_l_->one_beat_i_);
+ args.push (meter_req_l_->beats_i_);
+ args.push (meter_req_l_->one_beat_i_);
- meter_p_ = new Meter(args);
+ meter_p_ = new Meter (args);
}
if (meter_p_)
- announce_element(Score_elem_info(meter_p_, meter_req_l_) );
+ announce_element (Score_elem_info (meter_p_, meter_req_l_));
}
void
Meter_engraver::do_pre_move_processing()
{
if (meter_p_) {
- typeset_element(meter_p_);
+ typeset_element (meter_p_);
meter_p_ =0;
meter_req_l_ = 0;
}
@@ -110,15 +110,15 @@ Meter_engraver::do_pre_move_processing()
grav_l = grav_l->daddy_grav_l_;
}
- assert( grav_l->name() == Score_engraver::static_name());
+ assert (grav_l->name() == Score_engraver::static_name ());
if (!time_.cadenza_b_)
- ((Score_engraver*)grav_l)->add_moment_to_process( time_.next_bar_moment());
+ ((Score_engraver*)grav_l)->add_moment_to_process (time_.next_bar_moment());
}
void
Meter_engraver::do_post_move_processing()
{
- time_.add( get_staff_info().when() - time_.when_ );
+ time_.add (get_staff_info().when () - time_.when_);
}
diff --git a/lily/meter-performer.cc b/lily/meter-performer.cc
index 9a3d75c83c..6d6d1ee4a9 100644
--- a/lily/meter-performer.cc
+++ b/lily/meter-performer.cc
@@ -26,7 +26,7 @@ void
Meter_performer::do_print() const
{
#ifndef NPRINT
- if ( meter_req_l_ )
+ if ( meter_req_l_)
meter_req_l_->print();
#endif
}
@@ -34,21 +34,21 @@ Meter_performer::do_print() const
void
Meter_performer::process_requests()
{
- if ( meter_req_l_ )
- play( new Audio_meter( meter_req_l_ ) );
+ if ( meter_req_l_)
+ play (new Audio_meter (meter_req_l_) );
meter_req_l_ = 0;
}
bool
-Meter_performer::do_try_request( Request* req_l )
+Meter_performer::do_try_request (Request* req_l)
{
- if ( meter_req_l_ )
+ if ( meter_req_l_)
return false;
- if ( req_l->command() )
- meter_req_l_ = req_l->command()->meterchange();
+ if ( req_l->command())
+ meter_req_l_ = req_l->command()->meterchange ();
- if ( meter_req_l_ )
+ if ( meter_req_l_)
return true;
return false;
diff --git a/lily/meter.cc b/lily/meter.cc
index 6c74a1edbf..dc7efa3a5c 100644
--- a/lily/meter.cc
+++ b/lily/meter.cc
@@ -4,8 +4,8 @@
#include "paper-def.hh"
#include "lookup.hh"
-Meter::Meter(Array<Scalar>a)
- :args(a)
+Meter::Meter (Array<Scalar>a)
+ :args (a)
{
breakable_b_ = true;
}
@@ -13,8 +13,8 @@ Meter::Meter(Array<Scalar>a)
Molecule*
Meter::brew_molecule_p()const
{
- Symbol s = paper()->lookup_l()->meter(args);
- return new Molecule(Atom(s));
+ Symbol s = paper()->lookup_l ()->meter (args);
+ return new Molecule (Atom (s));
}
diff --git a/lily/midi-def.cc b/lily/midi-def.cc
index 800c1e9cd1..95b3e25b0c 100644
--- a/lily/midi-def.cc
+++ b/lily/midi-def.cc
@@ -32,13 +32,13 @@ Midi_def::Midi_def()
outfile_str_ = "";
itrans_p_ = 0;
// ugh
- set_tempo( Moment( 1, 4 ), 60 );
+ set_tempo (Moment (1, 4), 60 );
}
-Midi_def::Midi_def( Midi_def const& s )
+Midi_def::Midi_def (Midi_def const& s)
{
whole_seconds_f_ = s.whole_seconds_f_;
- itrans_p_ = s.itrans_p_ ? new Input_translator( *s.itrans_p_ ) : 0;
+ itrans_p_ = s.itrans_p_ ? new Input_translator (*s.itrans_p_) : 0;
outfile_str_ = s.outfile_str_;
}
@@ -48,47 +48,47 @@ Midi_def::~Midi_def()
}
Real
-Midi_def::duration_to_seconds_f( Moment mom )
+Midi_def::duration_to_seconds_f (Moment mom)
{
- if ( !mom )
+ if ( !mom)
return 0;
- return Moment( whole_seconds_f_ ) * mom;
+ return Moment (whole_seconds_f_) * mom;
}
Global_translator*
Midi_def::get_global_translator_p() const
{
- return itrans_p_->get_group_performer_p()->global_l();
+ return itrans_p_->get_group_performer_p()->global_l ();
}
int
-Midi_def::get_tempo_i( Moment moment )
+Midi_def::get_tempo_i (Moment moment)
{
- return Moment( whole_seconds_f_ ) * Moment( 60 ) * moment;
+ return Moment (whole_seconds_f_) * Moment (60 ) * moment;
}
void
Midi_def::print() const
{
#ifndef NPRINT
- mtor << "Midi {";
- mtor << "4/min: " << Real( 60 ) / ( whole_seconds_f_ * 4 );
- mtor << "out: " << outfile_str_;
- mtor << "}\n";
+ DOUT << "Midi {";
+ DOUT << "4/min: " << Real (60) / ( whole_seconds_f_ * 4 );
+ DOUT << "out: " << outfile_str_;
+ DOUT << "}\n";
#endif
}
void
-Midi_def::set( Input_translator* itrans_p )
+Midi_def::set (Input_translator* itrans_p)
{
delete itrans_p_;
itrans_p_ = itrans_p;
}
void
-Midi_def::set_tempo( Moment moment, int count_per_minute_i )
+Midi_def::set_tempo (Moment moment, int count_per_minute_i)
{
- whole_seconds_f_ = Moment( count_per_minute_i ) / Moment( 60 ) / moment;
+ whole_seconds_f_ = Moment (count_per_minute_i) / Moment (60 ) / moment;
}
diff --git a/lily/midi-item.cc b/lily/midi-item.cc
index 53248be263..999a45d0c6 100644
--- a/lily/midi-item.cc
+++ b/lily/midi-item.cc
@@ -32,18 +32,18 @@ IMPLEMENT_IS_TYPE_B1(Midi_text, Midi_item);
IMPLEMENT_IS_TYPE_B1(Midi_track, Midi_chunk);
Midi_chunk::Midi_chunk()
- : Midi_item( 0 )
+ : Midi_item (0)
{
}
void
-Midi_chunk::add( String str )
+Midi_chunk::add (String str)
{
data_str_ += str;
}
void
-Midi_chunk::set( String header_str, String data_str, String footer_str )
+Midi_chunk::set (String header_str, String data_str, String footer_str)
{
data_str_ = data_str;
footer_str_ = footer_str;
@@ -54,16 +54,16 @@ String
Midi_chunk::str() const
{
String str = header_str_;
- String length_str = String_convert::i2hex_str( data_str_.length_i() + footer_str_.length_i(), 8, '0' );
- length_str = String_convert::hex2bin_str( length_str );
+ String length_str = String_convert::i2hex_str (data_str_.length_i() + footer_str_.length_i (), 8, '0');
+ length_str = String_convert::hex2bin_str (length_str);
str += length_str;
str += data_str_;
str += footer_str_;
return str;
}
-Midi_duration::Midi_duration( Real seconds_f )
- : Midi_item( 0 )
+Midi_duration::Midi_duration (Real seconds_f)
+ : Midi_item (0)
{
seconds_f_ = seconds_f;
}
@@ -71,24 +71,24 @@ Midi_duration::Midi_duration( Real seconds_f )
String
Midi_duration::str() const
{
- return String( "<duration: " ) + String( seconds_f_ ) + ">";
+ return String ("<duration: ") + String (seconds_f_ ) + ">";
}
-Midi_header::Midi_header( int format_i, int tracks_i, int clocks_per_4_i )
+Midi_header::Midi_header (int format_i, int tracks_i, int clocks_per_4_i)
: Midi_chunk()
{
String str;
- String format_str = String_convert::i2hex_str( format_i, 4, '0' );
- str += String_convert::hex2bin_str( format_str );
+ String format_str = String_convert::i2hex_str (format_i, 4, '0');
+ str += String_convert::hex2bin_str (format_str);
- String tracks_str = String_convert::i2hex_str( tracks_i, 4, '0' );
- str += String_convert::hex2bin_str( tracks_str );
+ String tracks_str = String_convert::i2hex_str (tracks_i, 4, '0');
+ str += String_convert::hex2bin_str (tracks_str);
- String tempo_str = String_convert::i2hex_str( clocks_per_4_i, 4, '0' );
- str += String_convert::hex2bin_str( tempo_str );
+ String tempo_str = String_convert::i2hex_str (clocks_per_4_i, 4, '0');
+ str += String_convert::hex2bin_str (tempo_str);
- set( "MThd", str, "" );
+ set ("MThd", str, "");
}
char const* const instrument_name_sz_a_[ ] = {
@@ -127,19 +127,19 @@ char const* const instrument_name_sz_a_[ ] = {
/* 24 */ "tango accordian",
/* (25-32 guitar) */
- /* 25 */ "acoustic guitar(nylon)",
- /* 26 */ "acoustic guitar(steel)",
- /* 27 */ "electric guitar(jazz)",
- /* 28 */ "electric guitar(clean)",
- /* 29 */ "electric guitar(muted)",
+ /* 25 */ "acoustic guitar (nylon)",
+ /* 26 */ "acoustic guitar (steel)",
+ /* 27 */ "electric guitar (jazz)",
+ /* 28 */ "electric guitar (clean)",
+ /* 29 */ "electric guitar (muted)",
/* 30 */ "overdriven guitar",
/* 31 */ "distortion guitar",
/* 32 */ "guitar harmonics",
/* (33-40 bass) */
/* 33 */ "acoustic bass",
- /* 34 */ "electric bass(finger)",
- /* 35 */ "electric bass(pick)",
+ /* 34 */ "electric bass (finger)",
+ /* 35 */ "electric bass (pick)",
/* 36 */ "fretless bass",
/* 37 */ "slap bass 1",
/* 38 */ "slap bass 2",
@@ -258,8 +258,8 @@ char const* const instrument_name_sz_a_[ ] = {
0
};
-Midi_instrument::Midi_instrument( int channel_i, String instrument_str )
- : Midi_item( 0 )
+Midi_instrument::Midi_instrument (int channel_i, String instrument_str)
+ : Midi_item (0)
{
instrument_str_ = instrument_str;
instrument_str_.to_lower();
@@ -270,46 +270,46 @@ String
Midi_instrument::str() const
{
Byte program_byte = 0;
- for ( int i = 0; instrument_name_sz_a_[i]; i++ )
- if ( instrument_str_ == String(instrument_name_sz_a_[ i ] )) {
+ for ( int i = 0; instrument_name_sz_a_[i]; i++)
+ if ( instrument_str_ == String (instrument_name_sz_a_[ i ])) {
program_byte = (Byte)i;
break;
}
- if ( !program_byte )
- return String( "" );
+ if ( !program_byte)
+ return String ("");
- String str = String( (char)( 0xc0 + channel_i_ ) );
- str += String( (char)program_byte );
+ String str = String ((char)( 0xc0 + channel_i_) );
+ str += String ((char)program_byte);
return str;
}
-Midi_item::Midi_item( Audio_item* audio_item_l )
+Midi_item::Midi_item (Audio_item* audio_item_l)
{
audio_item_l_ = audio_item_l;
channel_i_ = 0;
}
void
-Midi_item::output( Midi_stream* midi_stream_l ) const
+Midi_item::output (Midi_stream* midi_stream_l) const
{
*midi_stream_l << str();
}
String
-Midi_item::i2varint_str( int i )
+Midi_item::i2varint_str (int i)
{
int buffer_i = i & 0x7f;
- while ( (i >>= 7) > 0 ) {
+ while ( (i >>= 7) > 0) {
buffer_i <<= 8;
buffer_i |= 0x80;
buffer_i += (i & 0x7f);
}
String str;
- while ( 1 ) {
+ while ( 1) {
str += (char)buffer_i;
- if ( buffer_i & 0x80 )
+ if ( buffer_i & 0x80)
buffer_i >>= 8;
else
break;
@@ -317,32 +317,32 @@ Midi_item::i2varint_str( int i )
return str;
}
-Midi_key::Midi_key( Audio_item* audio_item_l )
- : Midi_item( audio_item_l )
+Midi_key::Midi_key (Audio_item* audio_item_l)
+ : Midi_item (audio_item_l)
{
}
String
Midi_key::str() const
{
- Key_change_req* k = audio_item_l_->req_l_->command()->keychange();
+ Key_change_req* k = audio_item_l_->req_l_->command()->keychange ();
int sharps_i = k->sharps_i();
int flats_i = k->flats_i();
// midi cannot handle non-conventional keys
- if ( flats_i && sharps_i )
+ if ( flats_i && sharps_i)
return "";
int accidentals_i = sharps_i - flats_i;
String str = "ff5902";
- str += String_convert::i2hex_str( accidentals_i, 2, '0' );
+ str += String_convert::i2hex_str (accidentals_i, 2, '0');
int minor_i = k->minor_b();
- str += String_convert::i2hex_str( minor_i, 2, '0' );
- return String_convert::hex2bin_str( str );
+ str += String_convert::i2hex_str (minor_i, 2, '0');
+ return String_convert::hex2bin_str (str);
}
-Midi_meter::Midi_meter( Audio_item* audio_item_l )
- : Midi_item( audio_item_l )
+Midi_meter::Midi_meter (Audio_item* audio_item_l)
+ : Midi_item (audio_item_l)
{
clocks_per_1_i_ = 18;
}
@@ -350,20 +350,20 @@ Midi_meter::Midi_meter( Audio_item* audio_item_l )
String
Midi_meter::str() const
{
- Meter_change_req* m = audio_item_l_->req_l_->command()->meterchange();
+ Meter_change_req* m = audio_item_l_->req_l_->command()->meterchange ();
int num_i = m->beats_i_;
int den_i = m->one_beat_i_;
String str = "ff5804";
- str += String_convert::i2hex_str( num_i, 2, '0' );
- str += String_convert::i2hex_str( intlog2( den_i ) , 2, '0' );
- str += String_convert::i2hex_str( clocks_per_1_i_, 2, '0' );
- str += String_convert::i2hex_str( 8, 2, '0' );
- return String_convert::hex2bin_str( str );
+ str += String_convert::i2hex_str (num_i, 2, '0');
+ str += String_convert::i2hex_str (intlog2( den_i) , 2, '0' );
+ str += String_convert::i2hex_str (clocks_per_1_i_, 2, '0');
+ str += String_convert::i2hex_str (8, 2, '0');
+ return String_convert::hex2bin_str (str);
}
-Midi_note::Midi_note( Audio_item* audio_item_l )
- : Midi_item( audio_item_l )
+Midi_note::Midi_note (Audio_item* audio_item_l)
+ : Midi_item (audio_item_l)
{
dynamic_byte_ = 0x7f;
}
@@ -371,34 +371,34 @@ Midi_note::Midi_note( Audio_item* audio_item_l )
Moment
Midi_note::duration() const
{
- return audio_item_l_->req_l_->musical()->rhythmic()->duration();
+ return audio_item_l_->req_l_->musical()->rhythmic ()->duration ();
}
int
Midi_note::pitch_i() const
{
- return audio_item_l_->req_l_->musical()->melodic()->pitch();
+ return audio_item_l_->req_l_->musical()->melodic ()->pitch ();
}
String
Midi_note::str() const
{
- if ( pitch_i() == INT_MAX )
- return String( "" );
+ if ( pitch_i() == INT_MAX)
+ return String ("");
- Byte status_byte = (char)( 0x90 + channel_i_ );
+ Byte status_byte = (char)( 0x90 + channel_i_);
- String str = String( (char)status_byte );
- str += (char)( pitch_i() + c0_pitch_i_c_ );
+ String str = String ((char)status_byte);
+ str += (char)( pitch_i() + c0_pitch_i_c_);
// poor man's staff dynamics:
- str += (char)( dynamic_byte_ - 0x10 * channel_i_ );
+ str += (char)( dynamic_byte_ - 0x10 * channel_i_);
return str;
}
-Midi_note_off::Midi_note_off( Midi_note* midi_note_l )
- : Midi_item( midi_note_l->audio_item_l_ )
+Midi_note_off::Midi_note_off (Midi_note* midi_note_l)
+ : Midi_item (midi_note_l->audio_item_l_)
{
// 0x64 is supposed to be neutral, but let's try
aftertouch_byte_ = 0x64;
@@ -408,31 +408,31 @@ Midi_note_off::Midi_note_off( Midi_note* midi_note_l )
int
Midi_note_off::pitch_i() const
{
- return audio_item_l_->req_l_->musical()->melodic()->pitch();
+ return audio_item_l_->req_l_->musical()->melodic ()->pitch ();
}
String
Midi_note_off::str() const
{
- if ( pitch_i() == INT_MAX )
- return String( "" );
+ if ( pitch_i() == INT_MAX)
+ return String ("");
- Byte status_byte = (char)( 0x80 + channel_i_ );
+ Byte status_byte = (char)( 0x80 + channel_i_);
- String str = String( (char)status_byte );
- str += (char)( pitch_i() + Midi_note::c0_pitch_i_c_ );
+ String str = String ((char)status_byte);
+ str += (char)( pitch_i() + Midi_note::c0_pitch_i_c_);
str += (char)aftertouch_byte_;
return str;
}
-Midi_tempo::Midi_tempo( Audio_item* audio_item_l )
- : Midi_item( audio_item_l )
+Midi_tempo::Midi_tempo (Audio_item* audio_item_l)
+ : Midi_item (audio_item_l)
{
- per_minute_4_i_ = ( (Audio_tempo*)audio_item_l_ )->per_minute_4_i_;
+ per_minute_4_i_ = ( (Audio_tempo*)audio_item_l_)->per_minute_4_i_;
}
-Midi_tempo::Midi_tempo( int per_minute_4_i )
- : Midi_item( 0 )
+Midi_tempo::Midi_tempo (int per_minute_4_i)
+ : Midi_item (0)
{
per_minute_4_i_ = per_minute_4_i;
}
@@ -442,19 +442,19 @@ Midi_tempo::str() const
{
int useconds_per_4_i = 60 * (int)1e6 / per_minute_4_i_;
String str = "ff5103";
- str += String_convert::i2hex_str( useconds_per_4_i, 6, '0' );
- return String_convert::hex2bin_str( str );
+ str += String_convert::i2hex_str (useconds_per_4_i, 6, '0');
+ return String_convert::hex2bin_str (str);
}
-Midi_text::Midi_text( Audio_item* audio_item_l )
- : Midi_item( audio_item_l )
+Midi_text::Midi_text (Audio_item* audio_item_l)
+ : Midi_item (audio_item_l)
{
- text_str_ = ( (Audio_text*)audio_item_l_ )->text_str_;
- type_ = (Type)( (Audio_text*)audio_item_l_ )->type_;
+ text_str_ = ( (Audio_text*)audio_item_l_)->text_str_;
+ type_ = (Type)( (Audio_text*)audio_item_l_)->type_;
}
-Midi_text::Midi_text( Midi_text::Type type, String text_str )
- : Midi_item( 0 )
+Midi_text::Midi_text (Midi_text::Type type, String text_str)
+ : Midi_item (0)
{
text_str_ = text_str;
type_ = type;
@@ -463,9 +463,9 @@ Midi_text::Midi_text( Midi_text::Type type, String text_str )
String
Midi_text::str() const
{
- String str = "ff" + String_convert::i2hex_str( type_, 2, '0' );
- str = String_convert::hex2bin_str( str );
- str += i2varint_str( text_str_.length_i() );
+ String str = "ff" + String_convert::i2hex_str (type_, 2, '0');
+ str = String_convert::hex2bin_str (str);
+ str += i2varint_str (text_str_.length_i());
str += text_str_;
return str;
}
@@ -501,33 +501,32 @@ Midi_track::Midi_track()
String data_str;
// only for format 0 (currently using format 1)?
- data_str += String_convert::hex2bin_str( data_ch_C );
+ data_str += String_convert::hex2bin_str (data_ch_C);
char const* footer_ch_C = "00" "ff2f" "00";
- String footer_str = String_convert::hex2bin_str( footer_ch_C );
+ String footer_str = String_convert::hex2bin_str (footer_ch_C);
- set( "MTrk", data_str, footer_str );
+ set ("MTrk", data_str, footer_str);
}
void
-Midi_track::add( int delta_time_i, String event_str )
+Midi_track::add (int delta_time_i, String event_str)
{
- if ( delta_time_i < 0 ) {
- cout << String_convert::bin2hex_str( i2varint_str( delta_time_i ) ) << endl;
- cout << String_convert::bin2hex_str( event_str ) << endl;
+ if ( delta_time_i < 0) {
+ cout << String_convert::bin2hex_str (i2varint_str (delta_time_i) ) << endl;
+ cout << String_convert::bin2hex_str (event_str) << endl;
}
- assert(delta_time_i >= 0);
- assert(event_str.length_i());
- Midi_chunk::add( i2varint_str( delta_time_i ) + event_str );
+ assert (delta_time_i >= 0);
+ Midi_chunk::add (i2varint_str (delta_time_i) + event_str );
}
void
-Midi_track::add( Moment delta_time_moment, Midi_item* mitem_l )
+Midi_track::add (Moment delta_time_moment, Midi_item* mitem_l)
{
// use convention of 384 clocks per 4
// use Duration_convert
- int delta_time_i = delta_time_moment * Moment( 384 ) / Moment( 1, 4 );
+ int delta_time_i = delta_time_moment * Moment (384) / Moment (1, 4 );
// ? int ( delta_time_moment * 4 * 384)
- add( delta_time_i, mitem_l->str() );
+ add (delta_time_i, mitem_l->str());
}
diff --git a/lily/midi-stream.cc b/lily/midi-stream.cc
index 04777b50c8..fadd2f06f5 100644
--- a/lily/midi-stream.cc
+++ b/lily/midi-stream.cc
@@ -15,7 +15,7 @@
#include "midi-stream.hh"
#include "debug.hh"
-Midi_stream::Midi_stream( String filename_str )
+Midi_stream::Midi_stream (String filename_str)
{
filename_str_ = filename_str;
os_p_ = 0;
@@ -28,41 +28,41 @@ Midi_stream::~Midi_stream()
}
Midi_stream&
-Midi_stream::operator <<( String str )
+Midi_stream::operator <<( String str)
{
- if ( check_debug )
- str = String_convert::bin2hex_str( str );
+ if ( check_debug)
+ str = String_convert::bin2hex_str (str);
*os_p_ << str;
- if ( check_debug )
+ if ( check_debug)
*os_p_ << "\n";
return *this;
}
Midi_stream&
-Midi_stream::operator <<( Midi_item const& mitem_c_r )
+Midi_stream::operator <<( Midi_item const& mitem_c_r)
{
// *this << mitem_c_r.str();
- mitem_c_r.output( this );
- if ( check_debug )
+ mitem_c_r.output (this);
+ if ( check_debug)
*os_p_ << "\n";
return *this;
}
Midi_stream&
-Midi_stream::operator <<( int i )
+Midi_stream::operator <<( int i)
{
// output binary string ourselves
- *this << Midi_item::i2varint_str( i );
+ *this << Midi_item::i2varint_str (i);
return *this;
}
void
Midi_stream::open()
{
- os_p_ = new ofstream( filename_str_ );
- if ( !*os_p_ )
- error ("can't open `" + filename_str_ + "\'" );
+ os_p_ = new ofstream (filename_str_);
+ if ( !*os_p_)
+ error ("can't open `" + filename_str_ + "\'");
}
diff --git a/lily/midi-walker.cc b/lily/midi-walker.cc
index 968aab74cf..1827eb39e2 100644
--- a/lily/midi-walker.cc
+++ b/lily/midi-walker.cc
@@ -21,13 +21,13 @@ Midi_note_event::Midi_note_event()
}
int
-compare( Midi_note_event const& left, Midi_note_event const& right )
+compare (Midi_note_event const& left, Midi_note_event const& right)
{
- return sign( left.key - right.key );
+ return sign (left.key - right.key);
}
-Midi_walker::Midi_walker( Audio_staff* audio_staff_l, Midi_track* track_l )
- : PCursor<Audio_item*>( audio_staff_l->audio_item_l_list_ )
+Midi_walker::Midi_walker (Audio_staff* audio_staff_l, Midi_track* track_l)
+ : PCursor<Audio_item*>( audio_staff_l->audio_item_l_list_)
{
track_l_ = track_l;
last_mom_ = 0;
@@ -36,19 +36,19 @@ Midi_walker::Midi_walker( Audio_staff* audio_staff_l, Midi_track* track_l )
Midi_walker::~Midi_walker()
{
// ugh
- do_stop_notes( last_mom_ + Moment( 10, 1 ) );
+ do_stop_notes (last_mom_ + Moment (10, 1) );
}
/**
Find out if start_note event is needed, and do it if needed.
*/
void
-Midi_walker::do_start_note( Midi_note* note_l )
+Midi_walker::do_start_note (Midi_note* note_l)
{
- Moment stop_mom = note_l->duration() + ptr()->audio_column_l_->at_mom();
- for ( int i=0; i < stop_note_queue.size(); i++ ) {
- if ( stop_note_queue[ i ].val->pitch_i() == note_l->pitch_i() ) {
- if ( stop_note_queue[ i ].key < stop_mom )
+ Moment stop_mom = note_l->duration() + ptr ()->audio_column_l_->at_mom ();
+ for ( int i=0; i < stop_note_queue.size(); i++) {
+ if ( stop_note_queue[ i ].val->pitch_i() == note_l->pitch_i ()) {
+ if ( stop_note_queue[ i ].key < stop_mom)
stop_note_queue[ i ].ignore_b_ = true;
else // skip the stopnote
return;
@@ -56,28 +56,28 @@ Midi_walker::do_start_note( Midi_note* note_l )
}
Midi_note_event e;
- e.val = new Midi_note_off( note_l );
+ e.val = new Midi_note_off (note_l);
e.key = stop_mom;
- stop_note_queue.insert( e );
+ stop_note_queue.insert (e);
- output_event( ptr()->audio_column_l_->at_mom(), note_l );
+ output_event (ptr()->audio_column_l_->at_mom (), note_l);
}
/**
Output note events for all notes which end before #max_mom#
*/
void
-Midi_walker::do_stop_notes( Moment max_mom )
+Midi_walker::do_stop_notes (Moment max_mom)
{
- while ( stop_note_queue.size() && stop_note_queue.front().key <= max_mom ) {
+ while ( stop_note_queue.size() && stop_note_queue.front ().key <= max_mom) {
Midi_note_event e = stop_note_queue.get();
- if ( e.ignore_b_ )
+ if ( e.ignore_b_)
continue;
Moment stop_mom = e.key;
Midi_note_off* note_l = e.val;
- output_event( stop_mom, note_l );
+ output_event (stop_mom, note_l);
}
}
@@ -85,27 +85,25 @@ Midi_walker::do_stop_notes( Moment max_mom )
Advance the track to #now#, output the item, and adjust current "moment".
*/
void
-Midi_walker::output_event( Moment now_mom, Midi_item* l )
+Midi_walker::output_event (Moment now_mom, Midi_item* l)
{
Moment delta_t = now_mom - last_mom_ ;
last_mom_ += delta_t;
- track_l_->add( delta_t, l );
+ track_l_->add (delta_t, l);
}
void
Midi_walker::process()
{
- do_stop_notes( ptr()->audio_column_l_->at_mom() );
+ do_stop_notes (ptr()->audio_column_l_->at_mom ());
- Midi_item* p = ptr()->midi_item_p();
- if ( !p )
- return;
+ Midi_item* p = ptr()->midi_item_p ();
p->channel_i_ = track_l_->number_i_;
- if ( p->name() != Midi_note::static_name() )
- output_event( ptr()->audio_column_l_->at_mom(), p );
+ if ( p->name() != Midi_note::static_name ())
+ output_event (ptr()->audio_column_l_->at_mom (), p);
else
- do_start_note( (Midi_note*)p );
+ do_start_note ((Midi_note*)p);
delete p;
}
diff --git a/lily/misc.cc b/lily/misc.cc
index 5ee56d8045..946e27e4bb 100644
--- a/lily/misc.cc
+++ b/lily/misc.cc
@@ -19,18 +19,18 @@ intlog2(int d) {
d/= 2;
i++;
}
- assert(!(d/2));
+ assert (!(d/2));
return i;
}
double
log_2(double x) {
- return log(x) /log(2.0);
+ return log (x) /log (2.0);
}
#if 1
Interval
-itemlist_width(const Array<Item*> &its)
+itemlist_width (const Array<Item*> &its)
{
Interval iv ;
iv.set_empty();
diff --git a/lily/molecule.cc b/lily/molecule.cc
index f9cc7bb12a..663a554e93 100644
--- a/lily/molecule.cc
+++ b/lily/molecule.cc
@@ -18,7 +18,7 @@ String
Molecule::TeX_string() const
{
String s;
- for(iter_top(ats,c); c.ok(); c++)
+ for (iter_top (ats,c); c.ok(); c++)
s+=c->TeX_string();
return s;
}
@@ -27,99 +27,99 @@ Box
Molecule::extent() const
{
Box b;
- for(iter_top(ats,c); c.ok(); c++)
- b.unite(c->extent());
+ for (iter_top (ats,c); c.ok(); c++)
+ b.unite (c->extent());
return b;
}
void
-Molecule::translate(Offset o)
+Molecule::translate (Offset o)
{
- for (iter_top(ats,c); c.ok(); c++)
- c->translate(o);
+ for (iter_top (ats,c); c.ok(); c++)
+ c->translate (o);
}
void
-Molecule::translate(Real x,Axis a)
+Molecule::translate (Real x,Axis a)
{
- for (iter_top(ats,c); c.ok(); c++)
- c->translate(x,a);
+ for (iter_top (ats,c); c.ok(); c++)
+ c->translate (x,a);
}
void
-Molecule::add(Molecule const &m)
+Molecule::add (Molecule const &m)
{
- for (iter_top(m.ats,c); c.ok(); c++) {
- add(**c);
+ for (iter_top (m.ats,c); c.ok(); c++) {
+ add (**c);
}
}
void
-Molecule::add_right(Molecule const &m)
+Molecule::add_right (Molecule const &m)
{
if (!ats.size()) {
- add(m);
+ add (m);
return;
}
- Real xof=extent().x().right - m.extent().x().left;
+ Real xof=extent().x ().right - m.extent ().x ().left;
- Molecule toadd(m);
- toadd.translate(Offset(xof, 0.0));
- add(toadd);
+ Molecule toadd (m);
+ toadd.translate (Offset (xof, 0.0));
+ add (toadd);
}
void
-Molecule::add_left(Molecule const &m)
+Molecule::add_left (Molecule const &m)
{
if (!ats.size()) {
- add(m);
+ add (m);
return;
}
- Real xof=extent().x().left - m.extent().x().right;
+ Real xof=extent().x ().left - m.extent ().x ().right;
- Molecule toadd(m);
- toadd.translate(Offset(xof, 0.0));
- add(toadd);
+ Molecule toadd (m);
+ toadd.translate (Offset (xof, 0.0));
+ add (toadd);
}
void
-Molecule::add_top(Molecule const &m)
+Molecule::add_top (Molecule const &m)
{
if (!ats.size()) {
- add(m);
+ add (m);
return;
}
- Real yof=extent().y().right - m.extent().y().left;
+ Real yof=extent().y ().right - m.extent ().y ().left;
- Molecule toadd(m);
- toadd.translate(yof, Y_AXIS);
- add(toadd);
+ Molecule toadd (m);
+ toadd.translate (yof, Y_AXIS);
+ add (toadd);
}
void
-Molecule::add_bottom(Molecule const &m)
+Molecule::add_bottom (Molecule const &m)
{
if (!ats.size()) {
- add(m);
+ add (m);
return;
}
- Real yof=extent().y().left- m.extent().y().right;
- Molecule toadd(m);
- toadd.translate(yof, Y_AXIS);
- add(toadd);
+ Real yof=extent().y ().left- m.extent ().y ().right;
+ Molecule toadd (m);
+ toadd.translate (yof, Y_AXIS);
+ add (toadd);
}
void
Molecule::operator = (Molecule const &)
{
- assert(false);
+ assert (false);
}
-Molecule::Molecule(Molecule const &s)
+Molecule::Molecule (Molecule const &s)
{
- add(s);
+ add (s);
}
void
@@ -128,13 +128,13 @@ Molecule::print() const
#ifndef NPRINT
if (! check_debug)
return;
- for (iter_top(ats,c); c.ok(); c++)
+ for (iter_top (ats,c); c.ok(); c++)
c->print();
#endif
}
void
-Molecule::add(Atom const &a)
+Molecule::add (Atom const &a)
{
- ats.bottom().add(new Atom(a));
+ ats.bottom().add (new Atom (a));
}
diff --git a/lily/music-iterator.cc b/lily/music-iterator.cc
index cf3f4f13ea..2314320165 100644
--- a/lily/music-iterator.cc
+++ b/lily/music-iterator.cc
@@ -31,30 +31,30 @@ Music_iterator::print() const
#ifndef NPRINT
if ( !check_debug)
return ;
- mtor << name() << "{";
- mtor << "report to " <<
- report_to_l() << " (" << report_to_l()->name() << ")\n";
- mtor << "next at " << next_moment() << " ";
+ DOUT << name() << "{";
+ DOUT << "report to " <<
+ report_to_l() << " (" << report_to_l ()->name () << ")\n";
+ DOUT << "next at " << next_moment() << " ";
do_print();
- mtor << "}\n";
+ DOUT << "}\n";
#endif
}
Translator *
Music_iterator::get_req_translator_l()
{
- assert(report_to_l());
- if (report_to_l()->is_bottom_engraver_b() )
+ assert (report_to_l());
+ if (report_to_l()->is_bottom_engraver_b ())
return report_to_l();
- set_translator( report_to_l()->get_default_interpreter() );
+ set_translator (report_to_l()->get_default_interpreter ());
return report_to_l();
}
void
-Music_iterator::push_translator(Translator*t)
+Music_iterator::push_translator (Translator*t)
{
- report_to_l_arr_.push(t);
+ report_to_l_arr_.push (t);
t->iterator_count_ ++;
}
@@ -69,21 +69,21 @@ Music_iterator::pop_translator()
Translator*
Music_iterator::report_to_l()const
{
- if (! report_to_l_arr_.size() )
+ if (! report_to_l_arr_.size())
return 0;
return report_to_l_arr_.top();
}
void
-Music_iterator::set_translator(Translator*trans)
+Music_iterator::set_translator (Translator*trans)
{
if (report_to_l()==trans)
return;
- if ( report_to_l() )
+ if ( report_to_l())
pop_translator();
if (trans)
- push_translator(trans);
+ push_translator (trans);
}
void
@@ -94,7 +94,7 @@ Music_iterator::construct_children()
Music_iterator::~Music_iterator()
{
- set_translator(0);
+ set_translator (0);
}
Moment
@@ -104,7 +104,7 @@ Music_iterator::next_moment()const
}
void
-Music_iterator::process_and_next(Moment)
+Music_iterator::process_and_next (Moment)
{
first_b_ = false;
}
@@ -116,34 +116,34 @@ Music_iterator::ok()const
}
Music_iterator*
-Music_iterator::static_get_iterator_p(Music *m,
+Music_iterator::static_get_iterator_p (Music *m,
Translator *report_l)
{
Music_iterator * p =0;
- if (m->is_type_b( Request_chord::static_name()))
- p = new Request_chord_iterator( (Request_chord*) m);
- else if (m->is_type_b( Chord::static_name()))
- p = new Chord_iterator( (Chord*) m);
- else if (m->is_type_b( Voice::static_name()))
- p = new Voice_iterator( (Voice*) m);
+ if (m->is_type_b (Request_chord::static_name()))
+ p = new Request_chord_iterator ((Request_chord*) m);
+ else if (m->is_type_b (Chord::static_name()))
+ p = new Chord_iterator ((Chord*) m);
+ else if (m->is_type_b (Voice::static_name()))
+ p = new Voice_iterator ((Voice*) m);
if (m -> type_str_ != "") {
Translator * a =report_l->
- find_get_translator_l(m-> type_str_, m->id_str_);
- p->set_translator( a);
+ find_get_translator_l (m-> type_str_, m->id_str_);
+ p->set_translator (a);
}
- if (! p->report_to_l() )
- p ->set_translator(report_l);
+ if (! p->report_to_l())
+ p ->set_translator (report_l);
return p;
}
Music_iterator*
-Music_iterator::get_iterator_p(Music*m)const
+Music_iterator::get_iterator_p (Music*m)const
{
- Music_iterator*p = static_get_iterator_p(m,report_to_l());
+ Music_iterator*p = static_get_iterator_p (m,report_to_l());
p->daddy_iter_l_ = (Music_iterator*)this;
p->construct_children();
return p;
@@ -157,7 +157,7 @@ Music_iterator::Music_iterator()
/* ************** */
-Chord_iterator::Chord_iterator(Chord const *chord_C)
+Chord_iterator::Chord_iterator (Chord const *chord_C)
{
chord_C_ = chord_C;
}
@@ -166,13 +166,13 @@ void
Chord_iterator::construct_children()
{
int j = 0;
- for(PCursor<Music*> i(chord_C_->music_p_list_.top()); //, int j = 0;
+ for (PCursor<Music*> i (chord_C_->music_p_list_.top()); //, int j = 0;
i.ok(); j++, i++) {
- Music_iterator * mi = get_iterator_p( i.ptr());
- if ( mi->ok() ) {
- set_translator(mi->report_to_l()->ancestor_l(
- chord_C_->multi_level_i_ ) );
- children_p_list_.bottom().add( mi );
+ Music_iterator * mi = get_iterator_p (i.ptr());
+ if ( mi->ok()) {
+ set_translator (mi->report_to_l()->ancestor_l (
+ chord_C_->multi_level_i_) );
+ children_p_list_.bottom().add (mi);
} else
delete mi;
}
@@ -181,25 +181,25 @@ void
Chord_iterator::do_print() const
{
#ifndef NPRINT
- for (PCursor<Music_iterator*> i(children_p_list_.top()); i.ok(); i++) {
+ for (PCursor<Music_iterator*> i (children_p_list_.top()); i.ok (); i++) {
i->print();
}
#endif
}
void
-Chord_iterator::process_and_next(Moment until)
+Chord_iterator::process_and_next (Moment until)
{
- for (PCursor<Music_iterator*> i(children_p_list_.top()); i.ok(); ) {
+ for (PCursor<Music_iterator*> i (children_p_list_.top()); i.ok ();) {
if (i->next_moment() == until) {
- i->process_and_next(until);
+ i->process_and_next (until);
}
if (!i->ok())
delete i.remove_p();
else
i++;
}
- Music_iterator::process_and_next(until);
+ Music_iterator::process_and_next (until);
}
@@ -209,7 +209,7 @@ Moment
Chord_iterator::next_moment()const
{
Moment next_ = infinity_mom;
- for (PCursor<Music_iterator*> i(children_p_list_.top()); i.ok(); i++)
+ for (PCursor<Music_iterator*> i (children_p_list_.top()); i.ok (); i++)
next_ = next_ <? i->next_moment() ;
return next_;
}
@@ -231,7 +231,7 @@ Voice_iterator::do_print()const
iter_p_->print();
}
-Voice_iterator::Voice_iterator(Voice const*v)
+Voice_iterator::Voice_iterator (Voice const*v)
: PCursor<Music*> ( v->music_p_list_)
{
here_mom_ = v->offset_mom_;
@@ -258,7 +258,7 @@ Voice_iterator::leave_element()
{
delete iter_p_;
iter_p_ =0;
- MInterval elt_time = ptr()->time_int();
+ MInterval elt_time = ptr()->time_int ();
if (!elt_time.empty_b())
here_mom_ += elt_time.length();
PCursor<Music*>::next();
@@ -267,41 +267,41 @@ Voice_iterator::leave_element()
void
Voice_iterator::start_next_element()
{
- assert( !iter_p_);
- iter_p_ = get_iterator_p( ptr());
+ assert (!iter_p_);
+ iter_p_ = get_iterator_p (ptr());
}
void
Voice_iterator::set_voice_translator()
{
- if (iter_p_->report_to_l()->depth_i() > report_to_l()->depth_i())
- set_translator(iter_p_->report_to_l());
+ if (iter_p_->report_to_l()->depth_i () > report_to_l ()->depth_i ())
+ set_translator (iter_p_->report_to_l());
}
Voice_iterator::~Voice_iterator()
{
- assert(! iter_p_);
+ assert (! iter_p_);
}
IMPLEMENT_IS_TYPE_B1(Voice_iterator,Music_iterator);
void
-Voice_iterator::process_and_next(Moment until)
+Voice_iterator::process_and_next (Moment until)
{
while (1) {
Moment local_until = until - here_mom_;
- while ( iter_p_->ok() ) {
+ while ( iter_p_->ok()) {
Moment here = iter_p_->next_moment();
if (here != local_until)
goto loopexit;
- iter_p_->process_and_next(local_until);
+ iter_p_->process_and_next (local_until);
}
- if (!iter_p_->ok() ) {
+ if (!iter_p_->ok()) {
leave_element();
- if ( PCursor<Music*>::ok() ) {
+ if ( PCursor<Music*>::ok()) {
start_next_element();
set_voice_translator();
} else {
@@ -312,7 +312,7 @@ Voice_iterator::process_and_next(Moment until)
loopexit:
- Music_iterator::process_and_next(until);
+ Music_iterator::process_and_next (until);
}
Moment
@@ -336,10 +336,10 @@ Request_chord_iterator::construct_children()
get_req_translator_l();
}
-Request_chord_iterator::Request_chord_iterator(Request_chord*el_l)
+Request_chord_iterator::Request_chord_iterator (Request_chord*el_l)
{
elt_l_ = el_l;
- elt_duration_ = el_l->time_int().length();
+ elt_duration_ = el_l->time_int().length ();
last_b_ = false;
}
@@ -355,7 +355,7 @@ Request_chord_iterator::ok()const
Moment
Request_chord_iterator::next_moment()const
{
- Moment m(0);
+ Moment m (0);
if (!first_b_)
m = elt_duration_;
return m;
@@ -365,24 +365,24 @@ void
Request_chord_iterator::do_print() const
{
#ifndef NPRINT
- mtor << "duration: " << elt_duration_;
+ DOUT << "duration: " << elt_duration_;
#endif
}
void
-Request_chord_iterator::process_and_next(Moment mom)
+Request_chord_iterator::process_and_next (Moment mom)
{
- if ( first_b_ ) {
- for (PCursor<Music*> i(elt_l_->music_p_list_); i.ok(); i++) {
- assert(i->is_type_b(Request::static_name()));
+ if ( first_b_) {
+ for (PCursor<Music*> i (elt_l_->music_p_list_); i.ok(); i++) {
+ assert (i->is_type_b (Request::static_name()));
Request * req_l = (Request*)i.ptr();
- bool gotcha = report_to_l()->try_request(req_l);
+ bool gotcha = report_to_l()->try_request (req_l);
if (!gotcha)
- req_l->warning("Junking request: " + String(req_l->name()));
+ req_l->warning ("Junking request: " + String (req_l->name()));
}
first_b_ = false;
}
- if ( mom >= elt_duration_ )
+ if ( mom >= elt_duration_)
last_b_ = true;
}
diff --git a/lily/music-list.cc b/lily/music-list.cc
index 97f5a8a9e7..8fd903f0d3 100644
--- a/lily/music-list.cc
+++ b/lily/music-list.cc
@@ -12,12 +12,12 @@
#include "debug.hh"
#include "music-list.hh"
-Music_list::Music_list(Music_list const&s)
- : Music(s)
+Music_list::Music_list (Music_list const&s)
+ : Music (s)
{
multi_level_i_ = s.multi_level_i_;
- for (iter(s.music_p_list_.top(), i); i.ok(); i++)
- add(i->clone());
+ for (iter (s.music_p_list_.top(), i); i.ok (); i++)
+ add (i->clone());
}
IMPLEMENT_IS_TYPE_B1(Music_list, Music);
@@ -28,17 +28,17 @@ MInterval
Chord::time_int()const
{
MInterval m;
- for (iter(music_p_list_.top(), i); i.ok(); i++)
- m.unite(i->time_int());
+ for (iter (music_p_list_.top(), i); i.ok (); i++)
+ m.unite (i->time_int());
return m;
}
void
-Chord::translate(Moment m)
+Chord::translate (Moment m)
{
- for (iter(music_p_list_.top(), i); i.ok(); i++)
- i->translate(m);
+ for (iter (music_p_list_.top(), i); i.ok (); i++)
+ i->translate (m);
}
Chord::Chord()
@@ -55,20 +55,20 @@ MInterval
Voice::time_int() const
{
Moment last=0;
- for (iter(music_p_list_.top(), i); i.ok(); i++) {
+ for (iter (music_p_list_.top(), i); i.ok (); i++) {
MInterval interval = i->time_int();
/*
c4 <> c4
*/
- if ( !interval.empty_b() )
+ if ( !interval.empty_b())
last += interval.length();
}
- return offset_mom_ + MInterval(0,last);
+ return offset_mom_ + MInterval (0,last);
}
void
-Voice::translate(Moment dt)
+Voice::translate (Moment dt)
{
offset_mom_ += dt;
}
@@ -80,27 +80,27 @@ Music_list::Music_list()
}
void
-Music_list::add(Music*m_p)
+Music_list::add (Music*m_p)
{
if (!m_p)
return;
m_p->parent_music_l_ = this;
- music_p_list_.bottom().add(m_p);
+ music_p_list_.bottom().add (m_p);
}
void
-Music_list::transpose(Melodic_req const*rq)
+Music_list::transpose (Melodic_req const*rq)
{
- for (iter(music_p_list_.top(),i); i.ok(); i++)
- i->transpose(rq);
+ for (iter (music_p_list_.top(),i); i.ok (); i++)
+ i->transpose (rq);
}
void
Music_list::do_print()const
{
#ifndef NPRINT
- for (iter(music_p_list_.top(),i); i.ok(); i++)
+ for (iter (music_p_list_.top(),i); i.ok (); i++)
i->print();
#endif
}
diff --git a/lily/music.cc b/lily/music.cc
index 7bc52fcd42..b9dcde679d 100644
--- a/lily/music.cc
+++ b/lily/music.cc
@@ -14,7 +14,7 @@
MInterval
Music::time_int() const
{
- return MInterval(0,0);
+ return MInterval (0,0);
}
void
@@ -23,22 +23,22 @@ Music::print()const
#ifndef NPRINT
if ( ! check_debug)
return ;
- mtor << name() << "{";
+ DOUT << name() << "{";
if (type_str_!="" || id_str_!="")
- mtor << "`" <<type_str_ << " = " << id_str_<<"\'";
+ DOUT << "`" <<type_str_ << " = " << id_str_<<"\'";
do_print();
- mtor << "}\n";
+ DOUT << "}\n";
#endif
}
void
-Music::transpose(Melodic_req const*)
+Music::transpose (Melodic_req const*)
{
}
void
-Music::translate(Moment )
+Music::translate (Moment)
{
}
diff --git a/lily/musical-request.cc b/lily/musical-request.cc
index 4bd6598489..8efe633200 100644
--- a/lily/musical-request.cc
+++ b/lily/musical-request.cc
@@ -21,7 +21,7 @@ Stem_req::do_print() const
{
#ifndef NPRINT
Rhythmic_req::do_print();
- mtor << "dir : " << dir_i_;
+ DOUT << "dir : " << dir_i_;
#endif
}
@@ -50,7 +50,7 @@ void
Span_req::do_print() const
{
#ifndef NPRINT
- mtor << spantype ;
+ DOUT << spantype ;
#endif
}
@@ -67,7 +67,7 @@ void
Spacing_req::do_print()const
{
#ifndef NPRINT
- mtor << "next " << next << "dist " << distance << "strength\n";
+ DOUT << "next " << next << "dist " << distance << "strength\n";
#endif
}
@@ -89,13 +89,13 @@ Melodic_req::Melodic_req()
}
void
-Melodic_req::transpose(Melodic_req const & delta)
+Melodic_req::transpose (Melodic_req const & delta)
{
int old_pitch = pitch();
int delta_pitch = delta.pitch();
octave_i_ += delta.octave_i_;
notename_i_ += delta.notename_i_;
- while (notename_i_ >= 7 ) {
+ while (notename_i_ >= 7) {
notename_i_ -= 7;
octave_i_ ++;
}
@@ -104,22 +104,22 @@ Melodic_req::transpose(Melodic_req const & delta)
int delta_acc = new_pitch - old_pitch - delta_pitch;
accidental_i_ -= delta_acc;
- if (abs(accidental_i_) > 2) {
- delta.warning("transposition makes accidental larger than 2");
+ if (abs (accidental_i_) > 2) {
+ delta.warning ("transposition makes accidental larger than 2");
}
}
IMPLEMENT_IS_TYPE_B1(Melodic_req,Musical_req);
bool
-Melodic_req::do_equal_b(Request*r)const
+Melodic_req::do_equal_b (Request*r)const
{
- Melodic_req* m= r->musical()->melodic();
- return !compare( *m, *this);
+ Melodic_req* m= r->musical()->melodic ();
+ return !compare (*m, *this);
}
int
-Melodic_req::compare(Melodic_req const &m1 , Melodic_req const&m2)
+Melodic_req::compare (Melodic_req const &m1 , Melodic_req const&m2)
{
int o= m1.octave_i_ - m2.octave_i_;
int n = m1.notename_i_ - m2.notename_i_;
@@ -138,7 +138,7 @@ void
Melodic_req::do_print() const
{
#ifndef NPRINT
- mtor << "notename: " << notename_i_
+ DOUT << "notename: " << notename_i_
<< " acc: " <<accidental_i_<<" oct: "<< octave_i_;
#endif
}
@@ -162,21 +162,21 @@ Melodic_req::pitch() const
/* *************** */
int
-Rhythmic_req::compare(Rhythmic_req const &r1, Rhythmic_req const &r2)
+Rhythmic_req::compare (Rhythmic_req const &r1, Rhythmic_req const &r2)
{
- return (r1.duration() - r2.duration());
+ return (r1.duration() - r2.duration ());
}
bool
-Rhythmic_req::do_equal_b(Request*r)const
+Rhythmic_req::do_equal_b (Request*r)const
{
- Rhythmic_req* rh = r->musical()->rhythmic();
+ Rhythmic_req* rh = r->musical()->rhythmic ();
- return !compare(*this, *rh);
+ return !compare (*this, *rh);
}
void
-Rhythmic_req::set_duration(Duration d)
+Rhythmic_req::set_duration (Duration d)
{
duration_ = d;
}
@@ -192,7 +192,7 @@ void
Rhythmic_req::do_print() const
{
#ifndef NPRINT
- mtor << "duration { " <<duration_.str() << "}";
+ DOUT << "duration { " <<duration_.str() << "}";
#endif
}
@@ -203,8 +203,8 @@ Rhythmic_req::duration() const {
}
/* *************** */
-Lyric_req::Lyric_req(Text_def* def_p)
- :Text_req(0, def_p)
+Lyric_req::Lyric_req (Text_def* def_p)
+ :Text_req (0, def_p)
{
def_p->align_i_ = 0; // centre
dir_i_ = -1; // lyrics below (invisible) staff
@@ -222,9 +222,9 @@ Lyric_req::do_print() const
/* *************** */
bool
-Note_req::do_equal_b(Request*r)const
+Note_req::do_equal_b (Request*r)const
{
- return Rhythmic_req::do_equal_b(r) && Melodic_req::do_equal_b(r);
+ return Rhythmic_req::do_equal_b (r) && Melodic_req::do_equal_b (r);
}
@@ -241,7 +241,7 @@ Note_req::do_print() const
#ifndef NPRINT
Melodic_req::do_print();
if (forceacc_b_) {
- mtor << " force accidental\n";
+ DOUT << " force accidental\n";
}
Rhythmic_req::do_print();
#endif
@@ -274,7 +274,7 @@ Slur_req::do_print()const{}
bool
-Span_req:: do_equal_b(Request*r)const
+Span_req:: do_equal_b (Request*r)const
{
Span_req * s = r->span();
return spantype - s->spantype;
@@ -286,7 +286,7 @@ Span_req::Span_req()
}
/* *************** */
-Script_req::Script_req(Script_req const&s)
+Script_req::Script_req (Script_req const&s)
{
dir_i_ = s.dir_i_;
scriptdef_p_ = s.scriptdef_p_ ? s.scriptdef_p_->clone() : 0;
@@ -295,14 +295,14 @@ Script_req::Script_req(Script_req const&s)
/*
don't check dirs?
- (d1.dir_i_ == d2.dir_i_ )
+ (d1.dir_i_ == d2.dir_i_)
*/
bool
-Script_req::do_equal_b(Request*r)const
+Script_req::do_equal_b (Request*r)const
{
Script_req * s = r->script();
- return scriptdef_p_->equal_b(*s->scriptdef_p_);
+ return scriptdef_p_->equal_b (*s->scriptdef_p_);
}
Script_req::Script_req()
@@ -318,7 +318,7 @@ void
Script_req::do_print() const
{
#ifndef NPRINT
- mtor << " dir " << dir_i_ ;
+ DOUT << " dir " << dir_i_ ;
scriptdef_p_->print();
#endif
}
@@ -346,13 +346,13 @@ Text_req::~Text_req()
tdef_p_ = 0;
}
-Text_req::Text_req(Text_req const& src)
+Text_req::Text_req (Text_req const& src)
{
- tdef_p_ = new Text_def(*src.tdef_p_);
+ tdef_p_ = new Text_def (*src.tdef_p_);
dir_i_ = src.dir_i_;
}
-Text_req::Text_req(int dir_i, Text_def* tdef_p)
+Text_req::Text_req (int dir_i, Text_def* tdef_p)
{
dir_i_ = dir_i;
tdef_p_ = tdef_p;
@@ -365,7 +365,7 @@ void
Text_req::do_print() const
{
#ifndef NPRINT
- mtor << " dir " << dir_i_ ;
+ DOUT << " dir " << dir_i_ ;
tdef_p_->print();
#endif
}
@@ -380,7 +380,7 @@ Skip_req::do_print() const
{
#ifndef NPRINT
- mtor << "duration: " << duration();
+ DOUT << "duration: " << duration();
#endif
}
@@ -402,12 +402,12 @@ Absolute_dynamic_req::do_print() const
{
#ifndef NPRINT
Dynamic_req::do_print();
- mtor << " loudness " <<loudness_str(loudness_);
+ DOUT << " loudness " <<loudness_str (loudness_);
#endif
}
String
-Dynamic_req::loudness_str(Loudness l)
+Dynamic_req::loudness_str (Loudness l)
{
switch (l) {
case FFF: return "fff";
@@ -419,7 +419,7 @@ Dynamic_req::loudness_str(Loudness l)
case PP: return "pp";
case PPP: return "ppp";
}
- assert(false);
+ assert (false);
return "";
}
@@ -442,7 +442,7 @@ Span_dynamic_req::do_print()const
{
#ifndef NPRINT
Span_req::do_print();
- mtor << "louder/louder: " <<dynamic_dir_i_;
+ DOUT << "louder/louder: " <<dynamic_dir_i_;
#endif
}
diff --git a/lily/my-lily-lexer.cc b/lily/my-lily-lexer.cc
index 18155a56e7..1160b86af1 100644
--- a/lily/my-lily-lexer.cc
+++ b/lily/my-lily-lexer.cc
@@ -71,7 +71,7 @@ static Keyword_ent the_key_tab[]={
My_lily_lexer::My_lily_lexer()
{
- keytable_p_ = new Keyword_table(the_key_tab);
+ keytable_p_ = new Keyword_table (the_key_tab);
identifier_assoc_p_ = new Assoc<String, Identifier*>;
errorlevel_i_ = 0;
post_quotes_b_ = false;
@@ -79,15 +79,15 @@ My_lily_lexer::My_lily_lexer()
}
int
-My_lily_lexer::lookup_keyword(String s)
+My_lily_lexer::lookup_keyword (String s)
{
- return keytable_p_->lookup(s);
+ return keytable_p_->lookup (s);
}
Identifier*
-My_lily_lexer::lookup_identifier(String s)
+My_lily_lexer::lookup_identifier (String s)
{
- if (!identifier_assoc_p_->elt_b(s))
+ if (!identifier_assoc_p_->elt_b (s))
return 0;
return (*identifier_assoc_p_)[s];
@@ -95,10 +95,14 @@ My_lily_lexer::lookup_identifier(String s)
void
-My_lily_lexer::add_identifier(Identifier*i)
+My_lily_lexer::set_identifier (String name_str, Identifier*i)
{
- delete lookup_identifier(i->name_str_);
- (*identifier_assoc_p_)[i->name_str_] = i;
+ Identifier *old = lookup_identifier (name_str);
+ if (old) {
+ old->warning( "redeclaration of \\" + name_str);
+ delete old;
+ }
+ (*identifier_assoc_p_)[name_str] = i;
}
My_lily_lexer::~My_lily_lexer()
@@ -106,47 +110,49 @@ My_lily_lexer::~My_lily_lexer()
delete keytable_p_;
for (Assoc_iter<String,Identifier*>
- ai(*identifier_assoc_p_); ai.ok(); ai++) {
- mtor << "deleting: " << ai.key()<<'\n';
+ ai (*identifier_assoc_p_); ai.ok(); ai++) {
+ DOUT << "deleting: " << ai.key()<<'\n';
delete ai.val();
}
delete note_tab_p_;
delete identifier_assoc_p_;
}
void
-My_lily_lexer::print_declarations(bool init_b)const
+My_lily_lexer::print_declarations (bool init_b)const
{
- for (Assoc_iter<String,Identifier*> ai(*identifier_assoc_p_); ai.ok();
+ for (Assoc_iter<String,Identifier*> ai (*identifier_assoc_p_); ai.ok();
ai++) {
- if (ai.val()->init_b_ == init_b)
- ai.val()->print();
+ if (ai.val()->init_b_ == init_b) {
+ DOUT << ai.key() << '=';
+ ai.val()->print ();
+ }
}
}
void
-My_lily_lexer::LexerError(char const *s)
+My_lily_lexer::LexerError (char const *s)
{
if (include_stack_.empty()) {
*mlog << "error at EOF" << s << '\n';
} else {
errorlevel_i_ |= 1;
- Input spot(source_file_l(),here_ch_C());
+ Input spot (source_file_l(),here_ch_C());
- spot.error( s );
+ spot.error (s);
}
}
Melodic_req*
-My_lily_lexer::lookup_melodic_req_l(String s)
+My_lily_lexer::lookup_melodic_req_l (String s)
{
- return note_tab_p_->get_l(s);
+ return note_tab_p_->get_l (s);
}
void
-My_lily_lexer::add_notename(String s, Melodic_req *p)
+My_lily_lexer::add_notename (String s, Melodic_req *p)
{
- note_tab_p_->add(s,p);
+ note_tab_p_->add (s,p);
}
void
diff --git a/lily/my-lily-parser.cc b/lily/my-lily-parser.cc
index 3f12eba6fe..a8db01da18 100644
--- a/lily/my-lily-parser.cc
+++ b/lily/my-lily-parser.cc
@@ -21,7 +21,7 @@ My_lily_parser::clear_notenames()
lexer_p_->clear_notenames();
}
void
-My_lily_parser::set_version_check(bool ig)
+My_lily_parser::set_version_check (bool ig)
{
ignore_version_b_ = ig;
}
@@ -32,8 +32,8 @@ My_lily_parser::set_debug()
String s = "";
if (init_parse_b_)
s = "Init";
- set_yydebug( !monitor->silence(s+"Parser") && check_debug);
- lexer_p_->set_debug( !monitor->silence(s+"Lexer") && check_debug);
+ set_yydebug (!monitor->silence (s+"Parser") && check_debug);
+ lexer_p_->set_debug (!monitor->silence (s+"Lexer") && check_debug);
#endif
}
@@ -45,14 +45,14 @@ My_lily_parser::print_declarations()
if (init_parse_b_)
s = "Init";
- if (!monitor->silence(s+"Declarations") && check_debug) {
- lexer_p_->print_declarations(init_parse_b_);
+ if (!monitor->silence (s+"Declarations") && check_debug) {
+ lexer_p_->print_declarations (init_parse_b_);
}
#endif
}
void
-My_lily_parser::parse_file(String init, String s)
+My_lily_parser::parse_file (String init, String s)
{
lexer_p_ = new My_lily_lexer;
init_str_ = init;
@@ -60,18 +60,18 @@ My_lily_parser::parse_file(String init, String s)
*mlog << "Parsing ... ";
init_parse_b_ = true;
- lexer_p_->new_input( init, source_l_);
+ lexer_p_->new_input (init, source_l_);
do_yyparse();
print_declarations();
init_parse_b_ = false;
- lexer_p_->new_input( s , source_l_);
+ lexer_p_->new_input (s , source_l_);
do_yyparse();
print_declarations();
- if(!define_spot_array_.empty())
- warning("Braces don't match.");
+ if (!define_spot_array_.empty())
+ warning ("Braces don't match.");
}
My_lily_parser::~My_lily_parser()
@@ -82,7 +82,7 @@ My_lily_parser::~My_lily_parser()
void
My_lily_parser::remember_spot()
{
- define_spot_array_.push(here_input());
+ define_spot_array_.push (here_input());
}
char const *
@@ -92,23 +92,23 @@ My_lily_parser::here_ch_C()const
}
void
-My_lily_parser::parser_error(String s)
+My_lily_parser::parser_error (String s)
{
- here_input().error(s);
- if ( fatal_error_i_ )
- exit( fatal_error_i_ );
+ here_input().error (s);
+ if ( fatal_error_i_)
+ exit (fatal_error_i_);
error_level_i_ = 1;
}
void
-My_lily_parser::set_duration_mode(String s)
+My_lily_parser::set_duration_mode (String s)
{
s = s.upper_str();
last_duration_mode_b_ = (s== "LAST");
}
void
-My_lily_parser::set_default_duration(Duration const *d)
+My_lily_parser::set_default_duration (Duration const *d)
{
last_duration_mode_b_ = false;
default_duration_ = *d;
@@ -116,7 +116,7 @@ My_lily_parser::set_default_duration(Duration const *d)
void
-My_lily_parser::set_last_duration(Duration const *d)
+My_lily_parser::set_last_duration (Duration const *d)
{
if (last_duration_mode_b_)
default_duration_ = *d;
@@ -124,74 +124,74 @@ My_lily_parser::set_last_duration(Duration const *d)
Chord*
-My_lily_parser::get_word_element(Text_def* tdef_p, Duration * duration_p)
+My_lily_parser::get_word_element (Text_def* tdef_p, Duration * duration_p)
{
Chord* velt_p = new Request_chord;
- Lyric_req* lreq_p = new Lyric_req(tdef_p);
+ Lyric_req* lreq_p = new Lyric_req (tdef_p);
lreq_p->duration_ = *duration_p;
- lreq_p->set_spot( here_input());
+ lreq_p->set_spot (here_input());
- velt_p->add(lreq_p);
+ velt_p->add (lreq_p);
delete duration_p;
return velt_p;
}
Chord *
-My_lily_parser::get_rest_element(String s, Duration * duration_p )
+My_lily_parser::get_rest_element (String s, Duration * duration_p)
{
Chord* velt_p = new Request_chord;
- velt_p->set_spot( here_input());
+ velt_p->set_spot (here_input());
if (s=="s") { /* Space */
Skip_req * skip_p = new Skip_req;
skip_p->duration_ = *duration_p;
- skip_p->set_spot( here_input());
- velt_p->add(skip_p);
+ skip_p->set_spot (here_input());
+ velt_p->add (skip_p);
}
else {
Rest_req * rest_req_p = new Rest_req;
rest_req_p->duration_ = *duration_p;
- rest_req_p->set_spot( here_input());
+ rest_req_p->set_spot (here_input());
- velt_p->add(rest_req_p);
+ velt_p->add (rest_req_p);
}
Stem_req * stem_p = new Stem_req;
stem_p->duration_ = *duration_p;
- stem_p->set_spot ( here_input ());
- velt_p->add(stem_p);
+ stem_p->set_spot ( here_input());
+ velt_p->add (stem_p);
delete duration_p;
return velt_p;
}
Chord *
-My_lily_parser::get_note_element(Note_req *rq, Duration * duration_p )
+My_lily_parser::get_note_element (Note_req *rq, Duration * duration_p)
{
Chord*v = new Request_chord;
- v->set_spot( here_input());
+ v->set_spot (here_input());
- v->add(rq);
+ v->add (rq);
if (duration_p->type_i_ >= 2) {
Stem_req * stem_req_p = new Stem_req();
stem_req_p->duration_ = *duration_p;
- stem_req_p->set_spot( here_input());
- v->add(stem_req_p);
+ stem_req_p->set_spot (here_input());
+ v->add (stem_req_p);
}
- rq->set_duration(*duration_p);
- rq->set_spot( here_input());
+ rq->set_duration (*duration_p);
+ rq->set_spot (here_input());
delete duration_p ;
return v;
}
Request*
-My_lily_parser::get_parens_request(char c)
+My_lily_parser::get_parens_request (char c)
{
Request* req_p=0;
switch (c) {
@@ -221,7 +221,7 @@ My_lily_parser::get_parens_request(char c)
req_p = new Slur_req;
break;
default:
- assert(false);
+ assert (false);
break;
}
@@ -242,16 +242,16 @@ My_lily_parser::get_parens_request(char c)
break;
}
- if (req_p->musical()->span_dynamic()) {
- Span_dynamic_req* s_l= (req_p->musical()->span_dynamic()) ;
+ if (req_p->musical()->span_dynamic ()) {
+ Span_dynamic_req* s_l= (req_p->musical()->span_dynamic ()) ;
s_l->dynamic_dir_i_ = (c == '<') ? 1:-1;
}
- req_p->set_spot( here_input());
+ req_p->set_spot (here_input());
return req_p;
}
-My_lily_parser::My_lily_parser(Sources * source_l)
+My_lily_parser::My_lily_parser (Sources * source_l)
{
first_b_ = true;
source_l_ = source_l;
@@ -265,14 +265,14 @@ My_lily_parser::My_lily_parser(Sources * source_l)
}
void
-My_lily_parser::add_requests(Chord*v)
+My_lily_parser::add_requests (Chord*v)
{
for (int i = 0; i < pre_reqs.size(); i++) {
- v->add(pre_reqs[i]);
+ v->add (pre_reqs[i]);
}
pre_reqs.clear();
for (int i = 0; i <post_reqs.size(); i++) {
- v->add(post_reqs[i]);
+ v->add (post_reqs[i]);
}
post_reqs.clear();
}
@@ -287,11 +287,11 @@ Input
My_lily_parser::here_input()const
{
Source_file * f_l= lexer_p_->source_file_l();
- return Input(f_l, here_ch_C());
+ return Input (f_l, here_ch_C());
}
void
-My_lily_parser::add_notename(String s, Melodic_req * m_p)
+My_lily_parser::add_notename (String s, Melodic_req * m_p)
{
- lexer_p_->add_notename(s, m_p);
+ lexer_p_->add_notename (s, m_p);
}
diff --git a/lily/note-column-grav.cc b/lily/note-column-grav.cc
index 7ce98ae77c..d9811ef370 100644
--- a/lily/note-column-grav.cc
+++ b/lily/note-column-grav.cc
@@ -14,10 +14,10 @@
#include "rest-column.hh"
bool
-Note_column_engraver::acceptable_elem_b(Score_elem const*elem_C)const
+Note_column_engraver::acceptable_elem_b (Score_elem const*elem_C)const
{
char const*nC = elem_C->name();
- return (nC == Script::static_name() || nC == Note_head::static_name()
+ return (nC == Script::static_name() || nC == Note_head::static_name ()
|| nC == Stem::static_name());
}
Note_column*
@@ -25,7 +25,7 @@ Note_column_engraver::note_col_l()
{
if (!ncol_p_){
ncol_p_ = new Note_column;
- announce_element(Score_elem_info(ncol_p_, 0));
+ announce_element (Score_elem_info (ncol_p_, 0));
}
return ncol_p_;
}
@@ -35,47 +35,47 @@ Note_column_engraver::rest_col_l()
{
if (!restcol_p_) {
restcol_p_ = new Rest_column;
- announce_element(Score_elem_info(restcol_p_,0));
+ announce_element (Score_elem_info (restcol_p_,0));
}
return restcol_p_;
}
void
-Note_column_engraver::acknowledge_element(Score_elem_info i)
+Note_column_engraver::acknowledge_element (Score_elem_info i)
{
- if (!acceptable_elem_b(i.elem_l_))
+ if (!acceptable_elem_b (i.elem_l_))
return;
char const*nC = i.elem_l_->name();
- if (nC == Script::static_name() && i.req_l_ && i.req_l_->musical()) {
- script_l_arr_.push((Script*)i.elem_l_->item());
+ if (nC == Script::static_name() && i.req_l_ && i.req_l_->musical ()) {
+ script_l_arr_.push ((Script*)i.elem_l_->item());
} else if (nC == Note_head::static_name()) {
Note_head * h_l = (Note_head*)i.elem_l_->item();
if (h_l->rest_b_)
- rest_col_l()->add(h_l);
+ rest_col_l()->add (h_l);
else
- note_col_l()->add(h_l);
+ note_col_l()->add (h_l);
} else if (nC == Stem::static_name()){
stem_l_ = (Stem*)i.elem_l_->item();
}
- if ( ncol_p_ || restcol_p_ ) {
- if ( stem_l_ ) {
+ if ( ncol_p_ || restcol_p_) {
+ if ( stem_l_) {
if (restcol_p_&& !restcol_p_->stem_l_)
- restcol_p_->set (stem_l_ );
+ restcol_p_->set (stem_l_);
if (ncol_p_ && !ncol_p_->stem_l_)
- ncol_p_->set(stem_l_);
+ ncol_p_->set (stem_l_);
}
for (int i=0; i < script_l_arr_.size(); i++) {
if (restcol_p_)
- restcol_p_->add(script_l_arr_[i]);
- if ( ncol_p_ )
- ncol_p_->add(script_l_arr_[i]);
+ restcol_p_->add (script_l_arr_[i]);
+ if ( ncol_p_)
+ ncol_p_->add (script_l_arr_[i]);
}
script_l_arr_.clear();
@@ -89,17 +89,17 @@ Note_column_engraver::do_pre_move_processing()
if (ncol_p_) {
if (! ncol_p_->h_shift_b_)
ncol_p_->h_shift_b_ = h_shift_b_;
- if (! ncol_p_->dir_i_ )
+ if (! ncol_p_->dir_i_)
ncol_p_->dir_i_ = dir_i_;
- typeset_element(ncol_p_);
+ typeset_element (ncol_p_);
ncol_p_ =0;
}
if (restcol_p_) {
- if (! restcol_p_->dir_i_ )
+ if (! restcol_p_->dir_i_)
restcol_p_->dir_i_ = dir_i_;
- typeset_element(restcol_p_);
+ typeset_element (restcol_p_);
restcol_p_ =0;
}
}
@@ -112,7 +112,7 @@ Note_column_engraver::do_post_move_processing()
}
void
-Note_column_engraver::set_feature(Feature i)
+Note_column_engraver::set_feature (Feature i)
{
if (i.type_ == "vdir")
dir_i_ = i.value_;
diff --git a/lily/note-column.cc b/lily/note-column.cc
index e3bb6b1f52..343414c035 100644
--- a/lily/note-column.cc
+++ b/lily/note-column.cc
@@ -15,10 +15,10 @@
IMPLEMENT_IS_TYPE_B1(Note_column,Head_column);
void
-Note_column::set(Stem*s)
+Note_column::set (Stem*s)
{
stem_l_ = s;
- add_support(s);
+ add_support (s);
}
Note_column::Note_column()
@@ -29,7 +29,7 @@ Note_column::Note_column()
void
Note_column::sort()
{
- head_l_arr_.sort( Note_head::compare);
+ head_l_arr_.sort (Note_head::compare);
}
Interval_t<int>
@@ -46,7 +46,7 @@ void
Note_column::do_pre_processing()
{
if (!dir_i_&& !stem_l_){
- dir_i_ = (head_positions_interval().center() >= 5) ? -1 : 1;
+ dir_i_ = (head_positions_interval().center () >= 5) ? -1 : 1;
}
Head_column::do_pre_processing();
}
diff --git a/lily/note-performer.cc b/lily/note-performer.cc
index 5471110e90..e9e5dd5ca7 100644
--- a/lily/note-performer.cc
+++ b/lily/note-performer.cc
@@ -26,7 +26,7 @@ void
Note_performer::do_print() const
{
#ifndef NPRINT
- if ( note_req_l_ ) {
+ if ( note_req_l_) {
note_req_l_->print();
}
#endif
@@ -36,22 +36,22 @@ void
Note_performer::process_requests()
{
// this is _really_ braindead, but it generates some output
- if ( !note_req_l_ || !note_req_l_->melodic() || !note_req_l_->rhythmic() )
+ if ( !note_req_l_ || !note_req_l_->melodic() || !note_req_l_->rhythmic ())
return;
- play( new Audio_note( note_req_l_ ) );
+ play (new Audio_note (note_req_l_) );
note_req_l_ = 0;
}
bool
-Note_performer::do_try_request( Request* req_l )
+Note_performer::do_try_request (Request* req_l)
{
- if ( note_req_l_ )
+ if ( note_req_l_)
return false;
- if ( !req_l->musical() || !req_l->musical()->note() )
+ if ( !req_l->musical() || !req_l->musical ()->note ())
return false;
- note_req_l_ = req_l->musical()->melodic();
+ note_req_l_ = req_l->musical()->melodic ();
return true;
}
diff --git a/lily/note.cc b/lily/note.cc
index a783ca7a09..2b1a8c447b 100644
--- a/lily/note.cc
+++ b/lily/note.cc
@@ -18,7 +18,7 @@
String *
-get_scriptdef(char c)
+get_scriptdef (char c)
{
String s;
switch (c) {
@@ -39,13 +39,13 @@ get_scriptdef(char c)
case '.' : s = "staccato";
break;
default:
- assert(false);
+ assert (false);
}
- return new String(s);
+ return new String (s);
}
Request*
-get_script_req(int d , General_script_def*def)
+get_script_req (int d , General_script_def*def)
{
Musical_script_req* script_req_p = new Musical_script_req;
script_req_p->dir_i_ =d;
@@ -56,30 +56,30 @@ get_script_req(int d , General_script_def*def)
Request*
-get_stemdir_req(int d)
+get_stemdir_req (int d)
{
- d = sign(long(d));
+ d = sign (long (d));
Group_feature_req * gfreq_p = new Group_feature_req;
gfreq_p->type_str_ = "vdir";
- gfreq_p->value_str_ = String(d);
+ gfreq_p->value_str_ = String (d);
return gfreq_p;
}
Request*
-get_hshift_req(int i)
+get_hshift_req (int i)
{
Group_feature_req * gfreq_p = new Group_feature_req;
gfreq_p->type_str_ = "hshift";
- gfreq_p->value_str_ = String(i);
+ gfreq_p->value_str_ = String (i);
return gfreq_p;
}
Request*
-get_grouping_req(Array<int> i_arr)
+get_grouping_req (Array<int> i_arr)
{
Measure_grouping_req * mr_p = new Measure_grouping_req;
- for (int i=0; i <i_arr.size(); ) {
- mr_p->elt_length_arr_.push(Moment(1, i_arr[i++]));
- mr_p->beat_i_arr_.push(i_arr[i++]);
+ for (int i=0; i <i_arr.size();) {
+ mr_p->elt_length_arr_.push (Moment (1, i_arr[i++]));
+ mr_p->beat_i_arr_.push (i_arr[i++]);
}
return mr_p;
}
diff --git a/lily/notehead.cc b/lily/notehead.cc
index 1e37bb328b..860fee7258 100644
--- a/lily/notehead.cc
+++ b/lily/notehead.cc
@@ -29,7 +29,7 @@
*/
-Note_head::Note_head(int ss)
+Note_head::Note_head (int ss)
{
x_dir_i_ = 0;
staff_size_i_=ss;
@@ -57,7 +57,7 @@ Note_head::do_pre_processing()
}
void
-Note_head::set_rhythmic(Rhythmic_req*r_req_l)
+Note_head::set_rhythmic (Rhythmic_req*r_req_l)
{
balltype_i_ = r_req_l->duration_.type_i_;
dots_i_ = r_req_l->duration_.dots_i_;
@@ -71,15 +71,15 @@ Note_head::do_print()const
{
#ifndef NPRINT
if (rest_b_)
- mtor << "REST! ";
- mtor << "balltype_i_ "<< balltype_i_ << ", position_i_ = "<< position_i_
+ DOUT << "REST! ";
+ DOUT << "balltype_i_ "<< balltype_i_ << ", position_i_ = "<< position_i_
<< "dots_i_ " << dots_i_;
#endif
}
int
-Note_head::compare(Note_head *const &a, Note_head * const &b)
+Note_head::compare (Note_head *const &a, Note_head * const &b)
{
return a->position_i_ - b->position_i_;
}
@@ -109,18 +109,18 @@ Note_head::brew_molecule_p() const
bool streepjes_b = (position_i_<-1) || (position_i_ > staff_size_i_+1);
if (!rest_b_)
- s = p->lookup_l()->ball(balltype_i_);
+ s = p->lookup_l()->ball (balltype_i_);
else {
- s = p->lookup_l()->rest(balltype_i_, streepjes_b);
+ s = p->lookup_l()->rest (balltype_i_, streepjes_b);
}
- out = new Molecule(Atom(s));
- out->translate( x_dir_i_ * s.dim.x().length() , X_AXIS);
+ out = new Molecule (Atom (s));
+ out->translate (x_dir_i_ * s.dim.x().length () , X_AXIS);
if (dots_i_) {
- Symbol d = p->lookup_l()->dots(dots_i_ );
+ Symbol d = p->lookup_l()->dots (dots_i_);
Molecule dm;
- dm.add(Atom(d));
- dm.translate( inter_f * dot_delta_y_i_ , Y_AXIS);
- out->add_right(dm);
+ dm.add (Atom (d));
+ dm.translate (inter_f * dot_delta_y_i_ , Y_AXIS);
+ out->add_right (dm);
}
@@ -129,18 +129,18 @@ Note_head::brew_molecule_p() const
}
if (streepjes_b) {
- int dir = sign(position_i_);
+ int dir = sign (position_i_);
int s =(position_i_<-1) ? -((-position_i_)/2): (position_i_-staff_size_i_)/2;
- Symbol str = p->lookup_l()->streepjes(s);
+ Symbol str = p->lookup_l()->streepjes (s);
Molecule sm;
- sm.add(Atom(str));
+ sm.add (Atom (str));
if (position_i_ % 2)
- sm.translate(-inter_f* dir, Y_AXIS);
- out->add(sm);
+ sm.translate (-inter_f* dir, Y_AXIS);
+ out->add (sm);
}
- out->translate(inter_f*position_i_, Y_AXIS);
+ out->translate (inter_f*position_i_, Y_AXIS);
return out;
}
diff --git a/lily/notename-table.cc b/lily/notename-table.cc
index 46838b96f8..325d91e5f8 100644
--- a/lily/notename-table.cc
+++ b/lily/notename-table.cc
@@ -13,16 +13,16 @@
template class P<Melodic_req>;
void
-Notename_table::add(String s, Melodic_req *m_p)
+Notename_table::add (String s, Melodic_req *m_p)
{
- elem(s).set_p(m_p);
+ elem (s).set_p (m_p);
}
Melodic_req*
-Notename_table::get_l(String s)
+Notename_table::get_l (String s)
{
- if (! elt_b(s))
+ if (! elt_b (s))
return 0;
- return elem(s);
+ return elem (s);
}
diff --git a/lily/p-col.cc b/lily/p-col.cc
index b433f1b41e..69813e8a7e 100644
--- a/lily/p-col.cc
+++ b/lily/p-col.cc
@@ -16,10 +16,10 @@ PCol::width() const
{
Interval w;
- for (iter_top(its,i); i.ok(); i++)
- w.unite(i->width());
+ for (iter_top (its,i); i.ok(); i++)
+ w.unite (i->width());
if (w.empty_b())
- w.unite(Interval(0,0));
+ w.unite (Interval (0,0));
return w;
}
@@ -42,7 +42,7 @@ PCol::rank_i() const
}
void
-PCol::set_rank(int i)
+PCol::set_rank (int i)
{
rank_i_ = i;
if (prebreak_p_)
@@ -55,39 +55,39 @@ void
PCol::print() const
{
#ifndef NPRINT
- mtor << "PCol {";
+ DOUT << "PCol {";
- mtor << "rank: " << rank_i_ << '\n';
+ DOUT << "rank: " << rank_i_ << '\n';
- mtor << "# symbols: " << its.size() ;
+ DOUT << "# symbols: " << its.size() ;
if (breakable_b()){
- mtor << "\npre,post: ";
+ DOUT << "\npre,post: ";
prebreak_p_->print();
postbreak_p_->print();
} else if (daddy_l_) {
- mtor<<'\n' << ((this == daddy_l_->prebreak_p_) ?
+ DOUT <<'\n' << ((this == daddy_l_->prebreak_p_) ?
"prebreak" : "postbreak");
- mtor << '\n';
+ DOUT << '\n';
}
- mtor << "extent: " << width().str() << "\n";
- mtor << "}\n";
+ DOUT << "extent: " << width().str () << "\n";
+ DOUT << "}\n";
#endif
}
int
-PCol::compare(PCol const &c1, PCol const &c2)
+PCol::compare (PCol const &c1, PCol const &c2)
{
- return c1.rank_i() - c2.rank_i();
+ return c1.rank_i() - c2.rank_i ();
}
void
PCol::OK() const
{
#ifndef NDEBUG
- if (prebreak_p_ || postbreak_p_ ) {
- assert(prebreak_p_&&postbreak_p_);
- assert(prebreak_p_->daddy_l_ == this);
- assert(postbreak_p_->daddy_l_ == this);
+ if (prebreak_p_ || postbreak_p_) {
+ assert (prebreak_p_&&postbreak_p_);
+ assert (prebreak_p_->daddy_l_ == this);
+ assert (postbreak_p_->daddy_l_ == this);
}
#endif
}
@@ -144,14 +144,14 @@ PCol::~PCol()
}
void
-PCol::add( Item *i)
+PCol::add (Item *i)
{
- its.bottom().add(i);
+ its.bottom().add (i);
i->pcol_l_ = this;
}
bool
PCol::used_b()const
{
- return daddy_l_ || breakable_b() || its.size()|| used_b_;
+ return daddy_l_ || breakable_b() || its.size ()|| used_b_;
}
diff --git a/lily/p-score.cc b/lily/p-score.cc
index 3e1af5259a..73ab917422 100644
--- a/lily/p-score.cc
+++ b/lily/p-score.cc
@@ -19,11 +19,11 @@
#include "word-wrap.hh"
#include "gourlay-breaking.hh"
-Paper_score::Paper_score(Paper_def*p)
+Paper_score::Paper_score (Paper_def*p)
{
paper_l_ = p;
super_elem_l_ = new Super_elem;
- typeset_element(super_elem_l_);
+ typeset_element (super_elem_l_);
}
Paper_score::~Paper_score()
@@ -32,18 +32,18 @@ Paper_score::~Paper_score()
}
void
-Paper_score::typeset_element(Score_elem * elem_p)
+Paper_score::typeset_element (Score_elem * elem_p)
{
- elem_p_list_.bottom().add(elem_p);
+ elem_p_list_.bottom().add (elem_p);
elem_p->pscore_l_ = this;
elem_p->add_processing();
}
void
-Paper_score::typeset_item(Item *i, PCol *c)
+Paper_score::typeset_item (Item *i, PCol *c)
{
- assert(c && i);
+ assert (c && i);
int breakstat = i->break_status_i_;
if (breakstat == -1) {
@@ -52,24 +52,24 @@ Paper_score::typeset_item(Item *i, PCol *c)
c = c->postbreak_p_;
}
- c->add(i);
- typeset_element(i);
+ c->add (i);
+ typeset_element (i);
}
void
-Paper_score::typeset_broken_spanner(Spanner*span_p)
+Paper_score::typeset_broken_spanner (Spanner*span_p)
{
span_p->left_col_l_->starters.bottom().add (span_p);
- assert(span_p->left_col_l_->line_l_ == span_p->right_col_l_->line_l_);
+ assert (span_p->left_col_l_->line_l_ == span_p->right_col_l_->line_l_);
- typeset_element(span_p);
+ typeset_element (span_p);
}
void
-Paper_score::typeset_unbroken_spanner(Spanner*span_p)
+Paper_score::typeset_unbroken_spanner (Spanner*span_p)
{
- span_p_list_.bottom().add(span_p);
+ span_p_list_.bottom().add (span_p);
span_p->pscore_l_=this;
if (span_p->left_col_l_)
@@ -86,28 +86,28 @@ void
Paper_score::clean_cols()
{
int rank_i = 0;
- for (iter_top(col_p_list_,c); c.ok(); )
+ for (iter_top (col_p_list_,c); c.ok();)
if (!c->used_b()) {
delete c.remove_p();
} else {
- c->set_rank(rank_i++);
+ c->set_rank (rank_i++);
c++;
}
}
void
-Paper_score::add(PCol *p)
+Paper_score::add (PCol *p)
{
p->pscore_l_ = this;
if (p->breakable_b()){
p->prebreak_p_->pscore_l_ = this;
p->postbreak_p_->pscore_l_ = this;
}
- col_p_list_.bottom().add(p);
+ col_p_list_.bottom().add (p);
}
void
-Paper_score::output(Tex_stream &ts)
+Paper_score::output (Tex_stream &ts)
{
ts << "\n "<< paper_l_->lookup_l()->texsetting << "%(Tex id)\n";
ts<< super_elem_l_->TeX_string();
@@ -119,9 +119,9 @@ void
Paper_score::OK()const
{
#ifndef NDEBUG
- for (iter_top(col_p_list_,cc); cc.ok(); cc++)
+ for (iter_top (col_p_list_,cc); cc.ok(); cc++)
cc->OK();
- for (PCursor<Score_elem*> i( elem_p_list_.top()); i.ok(); i++)
+ for (PCursor<Score_elem*> i (elem_p_list_.top()); i.ok (); i++)
i->OK();
#endif
}
@@ -132,19 +132,19 @@ Paper_score::print() const
#ifndef NPRINT
if ( !check_debug)
return ;
- mtor << "Paper_score { ";
+ DOUT << "Paper_score { ";
paper_l_->print();
- mtor << "\n elements: ";
- for (iter_top(elem_p_list_,cc); cc.ok(); cc++)
+ DOUT << "\n elements: ";
+ for (iter_top (elem_p_list_,cc); cc.ok(); cc++)
cc->print();
- mtor << "\n unbroken spanners: ";
- for (iter(span_p_list_.top(), i); i.ok(); i++)
+ DOUT << "\n unbroken spanners: ";
+ for (iter (span_p_list_.top(), i); i.ok (); i++)
i->print();
- mtor << "\ncolumns: ";
- for (iter_top(col_p_list_,cc); cc.ok(); cc++)
+ DOUT << "\ncolumns: ";
+ for (iter_top (col_p_list_,cc); cc.ok(); cc++)
cc->print();
- mtor << "}\n";
+ DOUT << "}\n";
#endif
}
@@ -163,33 +163,33 @@ Paper_score::postprocess()
}
PCursor<PCol *>
-Paper_score::find_col(PCol const *c)const
+Paper_score::find_col (PCol const *c)const
{
PCol const *what = c;
- if (what->daddy_l_ )
+ if (what->daddy_l_)
what = what->daddy_l_;
- return col_p_list_.find((PCol*)what);
+ return col_p_list_.find ((PCol*)what);
}
void
-Paper_score::set_breaking(Array<Col_hpositions> const &breaking)
+Paper_score::set_breaking (Array<Col_hpositions> const &breaking)
{
- super_elem_l_->line_of_score_l_->set_breaking( breaking);
+ super_elem_l_->line_of_score_l_->set_breaking (breaking);
super_elem_l_->break_processing();
- for (iter(span_p_list_.top(),i); i.ok(); ) {
+ for (iter (span_p_list_.top(),i); i.ok ();) {
Spanner *span_p = i.remove_p();
if (span_p->broken_b()) {
span_p->unlink();
delete span_p;
}else{
- typeset_broken_spanner(span_p);
+ typeset_broken_spanner (span_p);
}
}
- for (iter(elem_p_list_.top(),i ); i.ok() ;) {
+ for (iter (elem_p_list_.top(),i); i.ok () ;) {
Item *i_l =i->item();
if ( i_l && !i_l->pcol_l_->line_l_) {
i_l->unlink();
@@ -198,7 +198,7 @@ Paper_score::set_breaking(Array<Col_hpositions> const &breaking)
i++;
}
- for (iter_top(col_p_list_, i); i.ok(); i++)
+ for (iter_top (col_p_list_, i); i.ok(); i++)
i->clean_breakable_items();
}
@@ -207,25 +207,25 @@ Paper_score::calc_breaking()
{
Break_algorithm *algorithm_p;
Array<Col_hpositions> sol;
- bool try_wrap = ! paper_l_->get_var( "castingalgorithm");
+ bool try_wrap = ! paper_l_->get_var ("castingalgorithm");
if (!try_wrap) {
algorithm_p = new Gourlay_breaking ;
- algorithm_p->set_pscore(this);
+ algorithm_p->set_pscore (this);
sol = algorithm_p->solve();
delete algorithm_p;
if ( ! sol.size()) {
- warning( "Can not solve this casting problem exactly; revert to Word_wrap");
+ warning ("Can not solve this casting problem exactly; revert to Word_wrap");
try_wrap = true;
}
}
if (try_wrap) {
algorithm_p = new Word_wrap;
- algorithm_p->set_pscore(this);
+ algorithm_p->set_pscore (this);
sol = algorithm_p->solve();
delete algorithm_p;
}
- set_breaking(sol);
+ set_breaking (sol);
}
void
@@ -241,63 +241,63 @@ Paper_score::process()
postprocess();
#ifndef NDEBUGA
- for(PCursor<Score_elem*> i(elem_p_list_.top()); i.ok(); i++)
+ for (PCursor<Score_elem*> i (elem_p_list_.top()); i.ok (); i++)
assert (i->status() >= 9);
#endif
}
/** Get all breakable columns between l and r, (not counting l and r). */
Link_array<PCol>
-Paper_score::breakable_col_range(PCol*l,PCol*r)const
+Paper_score::breakable_col_range (PCol*l,PCol*r)const
{
Link_array<PCol> ret;
- PCursor<PCol*> start(l ? find_col(l)+1 : col_p_list_.top() );
- PCursor<PCol*> stop(r ? find_col(r) : col_p_list_.bottom());
+ PCursor<PCol*> start (l ? find_col (l)+1 : col_p_list_.top());
+ PCursor<PCol*> stop (r ? find_col (r) : col_p_list_.bottom());
/*
ugh! windows-suck-suck-suck.
*/
- while ( PCursor<PCol*>::compare(start,stop) < 0 ) {
+ while ( PCursor<PCol*>::compare (start,stop) < 0) {
if (start->breakable_b())
- ret.push(start);
+ ret.push (start);
start++;
}
return ret;
}
Link_array<PCol>
-Paper_score::col_range(PCol*l,PCol*r)const
+Paper_score::col_range (PCol*l,PCol*r)const
{
Link_array<PCol> ret;
- PCursor<PCol*> start(l ? find_col(l)+1 : col_p_list_.top() );
- PCursor<PCol*> stop(r ? find_col(r) : col_p_list_.bottom());
- ret.push(l);
+ PCursor<PCol*> start (l ? find_col (l)+1 : col_p_list_.top());
+ PCursor<PCol*> stop (r ? find_col (r) : col_p_list_.bottom());
+ ret.push (l);
/*
ugh! windows-suck-suck-suck.
*/
- while ( PCursor<PCol*>::compare(start,stop) < 0 )
- ret.push(start++);
- ret.push(r);
+ while ( PCursor<PCol*>::compare (start,stop) < 0)
+ ret.push (start++);
+ ret.push (r);
return ret;
}
Link_array<PCol>
-Paper_score::broken_col_range(PCol*l,PCol*r)const
+Paper_score::broken_col_range (PCol*l,PCol*r)const
{
Link_array<PCol> ret;
- PCursor<PCol*> start(l ? find_col(l)+1 : col_p_list_.top() );
- PCursor<PCol*> stop(r ? find_col(r) : col_p_list_.bottom());
+ PCursor<PCol*> start (l ? find_col (l)+1 : col_p_list_.top());
+ PCursor<PCol*> stop (r ? find_col (r) : col_p_list_.bottom());
/*
ugh! windows-suck-suck-suck.
*/
- while ( PCursor<PCol*>::compare(start,stop) < 0 ) {
- if (start->breakable_b() && !start->line_l_ )
- ret.push(start);
+ while ( PCursor<PCol*>::compare (start,stop) < 0) {
+ if (start->breakable_b() && !start->line_l_)
+ ret.push (start);
start++;
}
diff --git a/lily/paper-def.cc b/lily/paper-def.cc
index baace2c030..78f053d20e 100644
--- a/lily/paper-def.cc
+++ b/lily/paper-def.cc
@@ -19,30 +19,30 @@
#include "assoc-iter.hh"
void
-Paper_def::set_var(String s, Real r)
+Paper_def::set_var (String s, Real r)
{
- real_vars_p_->elem(s) = r;
+ real_vars_p_->elem (s) = r;
}
Real
-Paper_def::get_var(String s)const
+Paper_def::get_var (String s)const
{
- if(! real_vars_p_->elt_b(s))
+ if (! real_vars_p_->elt_b (s))
error ( "unknown paper variable `" + s+"'");
- return real_vars_p_->elem(s);
+ return real_vars_p_->elem (s);
}
Real
Paper_def::linewidth_f() const
{
- return get_var("linewidth");
+ return get_var ("linewidth");
}
Real
-Paper_def::duration_to_dist(Moment d)
+Paper_def::duration_to_dist (Moment d)
{
- Real dur_f = (d) ?pow(get_var("geometric"), log_2(d)) : 0;
- return get_var("basicspace") + get_var("unitspace") * dur_f;
+ Real dur_f = (d) ?pow (get_var ("geometric"), log_2(d)) : 0;
+ return get_var ("basicspace") + get_var ("unitspace") * dur_f;
}
@@ -60,26 +60,26 @@ Paper_def::~Paper_def()
delete lookup_p_;
}
-Paper_def::Paper_def(Paper_def const&s)
+Paper_def::Paper_def (Paper_def const&s)
{
- itrans_p_ = s.itrans_p_ ? new Input_translator( *s.itrans_p_):0;
- lookup_p_ = s.lookup_p_? new Lookup(*s.lookup_p_) : 0;
+ itrans_p_ = s.itrans_p_ ? new Input_translator (*s.itrans_p_):0;
+ lookup_p_ = s.lookup_p_? new Lookup (*s.lookup_p_) : 0;
lookup_p_->paper_l_ = this;
real_vars_p_ = new Assoc<String,Real> (*s.real_vars_p_);
outfile_str_ = s.outfile_str_;
}
void
-Paper_def::set(Input_translator * itrans_p)
+Paper_def::set (Input_translator * itrans_p)
{
delete itrans_p_;
itrans_p_ = itrans_p;
}
void
-Paper_def::set(Lookup*l)
+Paper_def::set (Lookup*l)
{
- assert(l != lookup_p_);
+ assert (l != lookup_p_);
delete lookup_p_;
lookup_p_ = l;
lookup_p_->paper_l_ = this;
@@ -88,20 +88,20 @@ Paper_def::set(Lookup*l)
Real
Paper_def::interline_f() const
{
- return get_var("interline");
+ return get_var ("interline");
}
Real
Paper_def::rule_thickness()const
{
- return get_var("rule_thickness");
+ return get_var ("rule_thickness");
}
Real
Paper_def::interbeam_f() const
{
- return get_var("interbeam");
+ return get_var ("interbeam");
}
Real
Paper_def::internote_f() const
@@ -112,33 +112,33 @@ Paper_def::internote_f() const
Real
Paper_def::note_width()const
{
- return get_var("notewidth");
+ return get_var ("notewidth");
}
void
Paper_def::print() const
{
#ifndef NPRINT
- mtor << "Paper {";
- mtor << "out: " <<outfile_str_;
+ DOUT << "Paper {";
+ DOUT << "out: " <<outfile_str_;
lookup_p_->print();
itrans_p_->print();
- for (Assoc_iter<String,Real> i(*real_vars_p_); i.ok(); i++) {
- mtor << i.key() << "= " << i.val() << "\n";
+ for (Assoc_iter<String,Real> i (*real_vars_p_); i.ok(); i++) {
+ DOUT << i.key() << "= " << i.val () << "\n";
}
- mtor << "}\n";
+ DOUT << "}\n";
#endif
}
Lookup const *
Paper_def::lookup_l()
{
- assert( lookup_p_ );
+ assert (lookup_p_);
return lookup_p_;
}
Global_translator*
Paper_def::get_global_translator_p() const
{
- return itrans_p_->get_group_engraver_p()->global_l();
+ return itrans_p_->get_group_engraver_p()->global_l ();
}
diff --git a/lily/parser.y b/lily/parser.y
index b06ca442cd..8722ffb133 100644
--- a/lily/parser.y
+++ b/lily/parser.y
@@ -184,7 +184,7 @@ yylex(YYSTYPE *s, void * v_l)
%type <music> simple_element music_elt full_element lyrics_elt command_elt
%type <i> int
%type <i> script_dir
-%type <id> declaration
+%type <id> identifier_init
%type <duration> explicit_duration notemode_duration entered_notemode_duration
%type <interval> dinterval
%type <intvec> intastint_list
@@ -206,9 +206,7 @@ yylex(YYSTYPE *s, void * v_l)
%type <score> score_block score_body
%type <script> script_definition script_body mudela_script gen_script_def
%type <textdef> text_def
-%type <string> declarable_identifier
%type <string> script_abbreviation
-%type <id> old_identifier
%type <symbol> symboldef
%type <symtable> symtable symtable_body
%type <itrans> input_translator_spec input_translator_spec_body
@@ -258,81 +256,60 @@ notenames_body:
/*
DECLARATIONS
*/
-add_declaration: declaration {
- THIS->lexer_p_->add_identifier($1);
- $1->init_b_ = THIS->init_parse_b_;
- $1->set_spot(THIS->pop_spot());
- }
- ;
-declarable_identifier:
+add_declaration:
STRING {
THIS->remember_spot();
- $$ = $1;
}
- | old_identifier {
- THIS->remember_spot();
- $$ = new String($1->name_str_);
- THIS->here_input().warning("redeclaration of `" + *$$ + "'");
+ /* cont */ '=' identifier_init {
+ THIS->lexer_p_->set_identifier(*$1, $4);
+ $4->init_b_ = THIS->init_parse_b_;
+ $4->set_spot(THIS->pop_spot());
}
;
-
-
-old_identifier:
- IDENTIFIER
- | INPUT_TRANS_IDENTIFIER
- | MELODIC_REQUEST_IDENTIFIER
- | POST_REQUEST_IDENTIFIER
- | SCRIPT_IDENTIFIER
- | REAL_IDENTIFIER
- | SCORE_IDENTIFIER
- | REQUEST_IDENTIFIER
- ;
-
-declaration:
- declarable_identifier '=' score_block {
- $$ = new Score_id(*$1, $3, SCORE_IDENTIFIER);
- delete $1;
+identifier_init:
+ score_block {
+ $$ = new Score_id($1, SCORE_IDENTIFIER);
+
}
- | declarable_identifier '=' paper_block {
- $$ = new Paper_def_id(*$1, $3, PAPER_IDENTIFIER);
- delete $1;
+ | paper_block {
+ $$ = new Paper_def_id($1, PAPER_IDENTIFIER);
+
}
- | declarable_identifier '=' midi_block {
- $$ = new Midi_def_id(*$1, $3, MIDI_IDENTIFIER);
- delete $1;
+ | midi_block {
+ $$ = new Midi_def_id($1, MIDI_IDENTIFIER);
+
}
- | declarable_identifier '=' script_definition {
- $$ = new Script_id(*$1, $3, SCRIPT_IDENTIFIER);
- delete $1;
+ | script_definition {
+ $$ = new Script_id($1, SCRIPT_IDENTIFIER);
+
}
- | declarable_identifier '=' Music {
- $$ = new Music_id(*$1, $3, MUSIC_IDENTIFIER);
- delete $1;
+ | Music {
+ $$ = new Music_id($1, MUSIC_IDENTIFIER);
+
}
- | declarable_identifier '=' symtables {
- $$ = new Lookup_id(*$1, $3, IDENTIFIER);
- delete $1;
+ | symtables {
+ $$ = new Lookup_id($1, IDENTIFIER);
+
}
- | declarable_identifier '=' real {
- $$ = new Real_id(*$1, new Real($3), REAL_IDENTIFIER);
- delete $1;
+ | real {
+ $$ = new Real_id(new Real($1), REAL_IDENTIFIER);
+
}
- | declarable_identifier '=' int {
- $$ = new Int_id(*$1, new int($3), INT_IDENTIFIER);
- delete $1;
+ | int {
+ $$ = new Int_id(new int($1), INT_IDENTIFIER);
+
}
- | declarable_identifier '=' post_request {
- $$ = new Request_id(*$1, $3, POST_REQUEST_IDENTIFIER);
- delete $1;
+ | post_request {
+ $$ = new Request_id($1, POST_REQUEST_IDENTIFIER);
+
}
- | declarable_identifier '=' melodic_request {
- $$ = new Request_id(*$1, $3, MELODIC_REQUEST_IDENTIFIER);
- delete $1;
+ | melodic_request {
+ $$ = new Request_id($1, MELODIC_REQUEST_IDENTIFIER);
+
}
- | declarable_identifier '=' input_translator_spec {
- $$ = new Input_translator_id ( *$1, $3, INPUT_TRANS_IDENTIFIER);
- delete $1;
+ | input_translator_spec {
+ $$ = new Input_translator_id ( $1, INPUT_TRANS_IDENTIFIER);
}
;
@@ -345,7 +322,7 @@ input_translator_spec:
input_translator_spec_body:
INPUT_TRANS_IDENTIFIER {
- $$ = $1->input_translator(true);
+ $$ = $1->input_translator();
$$-> set_spot( THIS->here_input() );
}
| STRING STRING {
@@ -394,7 +371,7 @@ score_body: {
$$ = new Score;
}
| SCORE_IDENTIFIER {
- $$ = $1->score(true);
+ $$ = $1->score();
}
| score_body Music {
$$->music_p_ = $2;
@@ -516,7 +493,7 @@ Music:
| Voice { $$ = $1; }
| Chord { $$ = $1; }
| transposed_music { $$ = $1; }
- | MUSIC_IDENTIFIER { $$ = $1->music(true); }
+ | MUSIC_IDENTIFIER { $$ = $1->music(); }
| MELODIC
{ THIS->lexer_p_->push_note_state(); }
Music
@@ -597,7 +574,7 @@ abbrev_command_req:
$$ = new Barcheck_req;
}
| COMMAND_IDENTIFIER {
- $$ = $1->request(true);
+ $$ = $1->request();
}
;
@@ -669,7 +646,7 @@ post_requests:
post_request:
POST_REQUEST_IDENTIFIER {
- $$ = (Request*)$1->request(true);
+ $$ = (Request*)$1->request();
}
|close_request_parens {
$$ = THIS->get_parens_request($1);
@@ -839,10 +816,10 @@ script_abbreviation:
;
mudela_script:
- SCRIPT_IDENTIFIER { $$ = $1->script(true); }
+ SCRIPT_IDENTIFIER { $$ = $1->script(); }
| script_definition { $$ = $1; }
| script_abbreviation {
- $$ = THIS->lexer_p_->lookup_identifier(*$1)->script(true);
+ $$ = THIS->lexer_p_->lookup_identifier(*$1)->script();
delete $1;
}
;
@@ -993,7 +970,9 @@ int:
$$ = $1;
}
| INT_IDENTIFIER {
- $$ = * $1->intid(0);
+ int *i_p = $1->intid();
+ $$ = *i_p;
+ delete i_p;
}
;
@@ -1003,7 +982,9 @@ real:
$$ = $1;
}
| REAL_IDENTIFIER {
- $$ = * $1->real(0);
+ Real *r_p = $1->real();
+ $$ = * r_p;
+ delete r_p;
}
;
@@ -1032,7 +1013,7 @@ symtables_body:
$$ = new Lookup;
}
| IDENTIFIER {
- $$ = $1->lookup(true);
+ $$ = $1->lookup();
}
| symtables_body TEXID STRING {
$$->texsetting = *$3;
@@ -1102,13 +1083,13 @@ Paper_def*
My_lily_parser::default_paper()
{
Identifier *id = lexer_p_->lookup_identifier( "default_paper" );
- return id ? id->paperdef(true) : new Paper_def ;
+ return id ? id->paperdef() : new Paper_def ;
}
Midi_def*
My_lily_parser::default_midi()
{
Identifier *id = lexer_p_->lookup_identifier( "default_midi" );
- return id ? id->mididef(true) : new Midi_def ;
+ return id ? id->mididef() : new Midi_def ;
}
diff --git a/lily/performer-group-performer.cc b/lily/performer-group-performer.cc
index b697dca1a6..2669123133 100644
--- a/lily/performer-group-performer.cc
+++ b/lily/performer-group-performer.cc
@@ -20,25 +20,25 @@ Performer_group_performer::~Performer_group_performer()
}
void
-Performer_group_performer::add( Performer *perf_p )
+Performer_group_performer::add (Performer *perf_p)
{
- perf_p_list_.bottom().add(perf_p);
+ perf_p_list_.bottom().add (perf_p);
perf_p->daddy_perf_l_ = this;
- if (perf_p->is_type_b(Performer_group_performer::static_name())) {
- group_l_arr_.push((Performer_group_performer*)perf_p);
+ if (perf_p->is_type_b (Performer_group_performer::static_name())) {
+ group_l_arr_.push ((Performer_group_performer*)perf_p);
} else {
- nongroup_l_arr_ .push(perf_p);
+ nongroup_l_arr_ .push (perf_p);
}
}
Translator*
-Performer_group_performer::ancestor_l( int l )
+Performer_group_performer::ancestor_l (int l)
{
if (!l || !daddy_perf_l_)
return this;
- return daddy_perf_l_->ancestor_l( l - 1 );
+ return daddy_perf_l_->ancestor_l (l - 1);
}
int
@@ -50,7 +50,7 @@ Performer_group_performer::depth_i() const
void
Performer_group_performer::do_creation_processing()
{
- for ( PCursor<Performer*> i( perf_p_list_.top() ); i.ok(); i++ )
+ for ( PCursor<Performer*> i (perf_p_list_.top()); i.ok (); i++ )
i->creation_processing();
}
@@ -60,7 +60,7 @@ Performer_group_performer::do_print()const
#ifndef NPRINT
if ( !check_debug)
return ;
- for ( PCursor<Performer*> i( perf_p_list_.top() ); i.ok(); i++ )
+ for ( PCursor<Performer*> i (perf_p_list_.top()); i.ok (); i++ )
i->print();
#endif
}
@@ -68,58 +68,58 @@ Performer_group_performer::do_print()const
void
Performer_group_performer::do_removal_processing()
{
- for ( PCursor<Performer*> i( perf_p_list_.top() ); i.ok(); i++ )
+ for ( PCursor<Performer*> i (perf_p_list_.top()); i.ok (); i++ )
i->do_removal_processing();
}
bool
-Performer_group_performer::do_try_request( Request* req_l )
+Performer_group_performer::do_try_request (Request* req_l)
{
bool hebbes_b =false;
for (int i =0; !hebbes_b && i < nongroup_l_arr_.size() ; i++)
- hebbes_b =nongroup_l_arr_[i]->try_request(req_l);
- if ( !hebbes_b && daddy_perf_l_ )
- hebbes_b = daddy_perf_l_->try_request(req_l);
+ hebbes_b =nongroup_l_arr_[i]->try_request (req_l);
+ if ( !hebbes_b && daddy_perf_l_)
+ hebbes_b = daddy_perf_l_->try_request (req_l);
return hebbes_b ;
}
Translator*
-Performer_group_performer::find_get_translator_l( String n,String id )
+Performer_group_performer::find_get_translator_l (String n,String id)
{
Translator * ret=0;
- Input_translator* itrans_l= itrans_l_-> recursive_find ( n );
- if (itrans_l ) {
- ret = find_performer_l(n,id);
+ Input_translator* itrans_l= itrans_l_-> recursive_find ( n);
+ if (itrans_l) {
+ ret = find_performer_l (n,id);
if (!ret) {
Performer_group_performer * group =
itrans_l-> get_group_performer_p();
- add(group);
+ add (group);
ret = group;
- if (group->itrans_l_->is_name_b( n ) )
+ if (group->itrans_l_->is_name_b (n) )
ret ->id_str_ = id;
else
- return ret->find_get_translator_l(n,id);
+ return ret->find_get_translator_l (n,id);
}
} else if (daddy_perf_l_)
- ret =daddy_perf_l_->find_get_translator_l(n,id);
+ ret =daddy_perf_l_->find_get_translator_l (n,id);
else {
- warning("Can't find or create `" + n + "' called `" + id + "'\n");
+ warning ("Can't find or create `" + n + "' called `" + id + "'\n");
ret =0;
}
return ret;
}
Performer_group_performer*
-Performer_group_performer::find_performer_l( String n, String id )
+Performer_group_performer::find_performer_l (String n, String id)
{
if (name() == n && id_str_ == id)
return this;
Performer_group_performer * r = 0;
for (int i =0; !r && i< group_l_arr_.size(); i++) {
- r = group_l_arr_[i]->find_performer_l(n,id);
+ r = group_l_arr_[i]->find_performer_l (n,id);
}
return r;
@@ -129,12 +129,12 @@ Translator*
Performer_group_performer::get_default_interpreter()
{
// ?
- if ( is_bottom_performer_b() )
+ if ( is_bottom_performer_b())
return daddy_perf_l_->get_default_interpreter();
Performer_group_performer *perf_p= itrans_l_->
- get_default_itrans_l()->get_group_performer_p();
- add(perf_p );
+ get_default_itrans_l()->get_group_performer_p ();
+ add (perf_p);
if (perf_p->is_bottom_performer_b())
return perf_p;
else
@@ -156,12 +156,12 @@ Performer_group_performer::print() const
void
Performer_group_performer::process_requests()
{
- for ( PCursor<Performer*> i( perf_p_list_.top() ); i.ok(); i++ )
+ for ( PCursor<Performer*> i (perf_p_list_.top()); i.ok (); i++ )
i->process_requests();
}
bool
-Performer_group_performer::try_request( Request* r )
+Performer_group_performer::try_request (Request* r)
{
- return Performer::try_request( r );
+ return Performer::try_request (r);
}
diff --git a/lily/performer.cc b/lily/performer.cc
index c1d84ca83b..5e6fc2d953 100644
--- a/lily/performer.cc
+++ b/lily/performer.cc
@@ -30,9 +30,9 @@ Performer::do_print() const
}
void
-Performer::play( Audio_element* p )
+Performer::play (Audio_element* p)
{
- daddy_perf_l_->play( p );
+ daddy_perf_l_->play (p);
}
int
@@ -45,9 +45,9 @@ void
Performer::print() const
{
#ifndef NPRINT
- mtor << "\n" << name() << " {";
+ DOUT << "\n" << name() << " {";
do_print();
- mtor << "}";
+ DOUT << "}";
#endif
}
@@ -57,18 +57,18 @@ Performer::process_requests()
}
bool
-Performer::do_try_request( Request* req_l )
+Performer::do_try_request (Request* req_l)
{
return false;
}
bool
-Performer::try_request(Request*r)
+Performer::try_request (Request*r)
{
if (!init_b_) {
creation_processing();
}
- return do_try_request(r);
+ return do_try_request (r);
}
void
diff --git a/lily/qlp.cc b/lily/qlp.cc
index fd235d6df2..6625b68bab 100644
--- a/lily/qlp.cc
+++ b/lily/qlp.cc
@@ -10,16 +10,16 @@
#include "qlp.hh"
void
-Mixed_qp::add_equality_cons(Vector , double )
+Mixed_qp::add_equality_cons (Vector , double)
{
- assert(false);
+ assert (false);
}
void
-Mixed_qp::add_fixed_var(int i, Real r)
+Mixed_qp::add_fixed_var (int i, Real r)
{
- eq_cons.push(i);
- eq_consrhs.push(r);
+ eq_cons.push (i);
+ eq_consrhs.push (r);
}
@@ -31,35 +31,35 @@ Mixed_qp::add_fixed_var(int i, Real r)
cons should be ascending
*/
Vector
-Mixed_qp::solve(Vector start) const
+Mixed_qp::solve (Vector start) const
{
if (!dim())
- return Vector(0);
+ return Vector (0);
print();
- Ineq_constrained_qp pure(*this);
+ Ineq_constrained_qp pure (*this);
for (int i= eq_cons.size()-1; i>=0; i--) {
- pure.eliminate_var(eq_cons[i], eq_consrhs[i]);
- start.del(eq_cons[i]);
+ pure.eliminate_var (eq_cons[i], eq_consrhs[i]);
+ start.del (eq_cons[i]);
}
- Vector sol = pure.solve(start);
+ Vector sol = pure.solve (start);
for (int i= 0; i < eq_cons.size(); i++) {
- sol.insert( eq_consrhs[i],eq_cons[i]);
+ sol.insert (eq_consrhs[i],eq_cons[i]);
}
return sol;
}
void
-Ineq_constrained_qp::assert_solution(Vector sol) const
+Ineq_constrained_qp::assert_solution (Vector sol) const
{
Array<int> binding;
for (int i=0; i < cons.size(); i++) {
Real R=cons[i] * sol- consrhs[i];
- assert(R> -EPS);
+ assert (R> -EPS);
if (R < EPS)
- binding.push(i);
+ binding.push (i);
}
// KKT check...
// todo
@@ -69,18 +69,18 @@ void
Ineq_constrained_qp::print() const
{
#ifndef NPRINT
- mtor << "Quad " << quad;
- mtor << "lin " << lin <<"\n"
+ DOUT << "Quad " << quad;
+ DOUT << "lin " << lin <<"\n"
<< "const " << const_term<<"\n";
for (int i=0; i < cons.size(); i++) {
- mtor << "constraint["<<i<<"]: " << cons[i] << " >= " << consrhs[i];
- mtor << "\n";
+ DOUT << "constraint["<<i<<"]: " << cons[i] << " >= " << consrhs[i];
+ DOUT << "\n";
}
#endif
}
-Mixed_qp::Mixed_qp(int n)
- : Ineq_constrained_qp(n)
+Mixed_qp::Mixed_qp (int n)
+ : Ineq_constrained_qp (n)
{
}
@@ -89,7 +89,7 @@ Mixed_qp::OK() const
{
#ifndef NDEBUG
Ineq_constrained_qp::OK();
- assert(eq_consrhs.size() == eq_cons.size());
+ assert (eq_consrhs.size() == eq_cons.size ());
#endif
}
@@ -99,7 +99,7 @@ Mixed_qp::print() const
#ifndef NPRINT
Ineq_constrained_qp::print();
for (int i=0; i < eq_cons.size(); i++) {
- mtor << "eq cons "<<i<<": x["<<eq_cons[i]<<"] == " << eq_consrhs[i]<<"\n";
+ DOUT << "eq cons "<<i<<": x["<<eq_cons[i]<<"] == " << eq_consrhs[i]<<"\n";
}
#endif
}
diff --git a/lily/qlpsolve.cc b/lily/qlpsolve.cc
index 46f0ce64f4..a7f438b770 100644
--- a/lily/qlpsolve.cc
+++ b/lily/qlpsolve.cc
@@ -19,14 +19,14 @@ const Real TOL=1e-1; // roughly 1/30 mm
String
Active_constraints::status() const
{
- String s("Active|Inactive [");
+ String s ("Active|Inactive [");
for (int i=0; i< active.size(); i++) {
- s += String(active[i]) + " ";
+ s += String (active[i]) + " ";
}
s+="| ";
for (int i=0; i< inactive.size(); i++) {
- s += String(inactive[i]) + " ";
+ s += String (inactive[i]) + " ";
}
s+="]";
@@ -39,13 +39,13 @@ Active_constraints::OK()
#ifndef NDEBUG
H.OK();
A.OK();
- assert(active.size() +inactive.size() == opt->cons.size());
- assert(H.dim() == opt->dim());
- assert(active.size() == A.rows());
+ assert (active.size() +inactive.size () == opt->cons.size ());
+ assert (H.dim() == opt->dim ());
+ assert (active.size() == A.rows ());
Array<int> allcons;
for (int i=0; i < opt->cons.size(); i++)
- allcons.push(0);
+ allcons.push (0);
for (int i=0; i < active.size(); i++) {
int j = active[i];
allcons[j]++;
@@ -55,39 +55,39 @@ Active_constraints::OK()
allcons[j]++;
}
for (int i=0; i < allcons.size(); i++)
- assert(allcons[i] == 1);
+ assert (allcons[i] == 1);
#endif
}
Vector
-Active_constraints::get_lagrange(Vector gradient)
+Active_constraints::get_lagrange (Vector gradient)
{
return (A*gradient);
}
void
-Active_constraints::add(int k)
+Active_constraints::add (int k)
{
// add indices
int cidx=inactive[k];
- active.push(cidx);
+ active.push (cidx);
- inactive.swap(k,inactive.size()-1);
+ inactive.swap (k,inactive.size()-1);
inactive.pop();
- Vector a( opt->cons[cidx] );
+ Vector a (opt->cons[cidx]);
// update of matrices
Vector Ha = H*a;
Real aHa = a*Ha;
- Vector addrow(Ha.dim());
- if (abs(aHa) > EPS) {
+ Vector addrow (Ha.dim());
+ if (abs (aHa) > EPS) {
/*
a != 0, so if Ha = O(EPS), then
Ha * aH / aHa = O(EPS^2/EPS)
if H*a == 0, the constraints are dependent.
*/
- H -= Matrix(Ha/aHa , Ha);
+ H -= Matrix (Ha/aHa , Ha);
/*
@@ -95,51 +95,51 @@ Active_constraints::add(int k)
*/
addrow=Ha;
addrow/= aHa;
- A -= Matrix(A*a, addrow);
- A.insert_row(addrow,A.rows());
+ A -= Matrix (A*a, addrow);
+ A.insert_row (addrow,A.rows());
}else
WARN << "degenerate constraints";
}
void
-Active_constraints::drop(int k)
+Active_constraints::drop (int k)
{
int q=active.size()-1;
// drop indices
- inactive.push(active[k]);
- active.swap(k,q);
- A.swap_rows(k,q);
+ inactive.push (active[k]);
+ active.swap (k,q);
+ A.swap_rows (k,q);
active.pop();
- Vector a(A.row(q));
+ Vector a (A.row (q));
if (a.norm() > EPS) {
/*
*/
Real q = a*opt->quad*a;
- Matrix aaq(a,a/q);
+ Matrix aaq (a,a/q);
H += aaq;
A -= A*opt->quad*aaq;
}else
WARN << "degenerate constraints";
#ifndef NDEBUG
- Vector rem_row(A.row(q));
- assert(rem_row.norm() < EPS);
+ Vector rem_row (A.row (q));
+ assert (rem_row.norm() < EPS);
#endif
- A.delete_row(q);
+ A.delete_row (q);
}
-Active_constraints::Active_constraints(Ineq_constrained_qp const *op)
+Active_constraints::Active_constraints (Ineq_constrained_qp const *op)
: A(0,op->dim()),
H(op->dim()),
- opt(op)
+ opt (op)
{
for (int i=0; i < op->cons.size(); i++)
- inactive.push(i);
- Choleski_decomposition chol(op->quad);
+ inactive.push (i);
+ Choleski_decomposition chol (op->quad);
/*
ugh.
@@ -152,7 +152,7 @@ Active_constraints::Active_constraints(Ineq_constrained_qp const *op)
constraints.
*/
Vector
-Active_constraints::find_active_optimum(Vector g)
+Active_constraints::find_active_optimum (Vector g)
{
return H*g;
}
diff --git a/lily/request.cc b/lily/request.cc
index 36589b6455..0b177e39ac 100644
--- a/lily/request.cc
+++ b/lily/request.cc
@@ -20,23 +20,23 @@ Request::do_print() const
MInterval
Request::time_int() const
{
- return MInterval(0, duration());
+ return MInterval (0, duration());
}
bool
-Request::equal_b(Request *r)const
+Request::equal_b (Request *r)const
{
- if ( is_type_b ( r->name() ) )
- return r->do_equal_b( (Request*)this );
- if ( r->is_type_b( name ()))
- return do_equal_b( r );
+ if ( is_type_b ( r->name()) )
+ return r->do_equal_b ((Request*)this);
+ if ( r->is_type_b (name()))
+ return do_equal_b (r);
return false;
}
bool
-Request::do_equal_b(Request*)const
+Request::do_equal_b (Request*)const
{
return false;
}
diff --git a/lily/rest-collision-grav.cc b/lily/rest-collision-grav.cc
index bf18c12e1a..7f3dc02507 100644
--- a/lily/rest-collision-grav.cc
+++ b/lily/rest-collision-grav.cc
@@ -23,24 +23,24 @@ Rest_collision_engraver::Rest_collision_engraver()
}
void
-Rest_collision_engraver::acknowledge_element(Score_elem_info i)
+Rest_collision_engraver::make_collision()
{
- char const * nC = i.elem_l_->name();
- if (nC == Collision::static_name()) {
- collision_l_arr_.push((Collision*)i.elem_l_->item());
- }
- else if (nC == Note_column::static_name()) {
- // what should i do, what should _engraver do?
- if (!rest_collision_p_) {
+ if (!rest_collision_p_) {
rest_collision_p_ = new Rest_collision;
- announce_element(Score_elem_info(rest_collision_p_, 0));
- }
- rest_collision_p_->add((Note_column*)i.elem_l_->item());
+ announce_element (Score_elem_info (rest_collision_p_, 0));
}
- else if (nC == Rest_column::static_name()) {
- if (!rest_collision_p_)
- rest_collision_p_ = new Rest_collision;
- rest_collision_p_->add((Rest_column*)i.elem_l_->item());
+}
+void
+Rest_collision_engraver::acknowledge_element (Score_elem_info i)
+{
+ char const * nC = i.elem_l_->name();
+ if (nC == Note_column::static_name()) {
+ // what should i do, what should _engraver do?
+ make_collision();
+ rest_collision_p_->add ((Note_column*)i.elem_l_->item());
+ } else if (nC == Rest_column::static_name()) {
+ make_collision();
+ rest_collision_p_->add ((Rest_column*)i.elem_l_->item());
}
}
@@ -48,7 +48,7 @@ void
Rest_collision_engraver::do_pre_move_processing()
{
if (rest_collision_p_) {
- typeset_element(rest_collision_p_);
+ typeset_element (rest_collision_p_);
rest_collision_p_ = 0;
}
}
@@ -57,7 +57,7 @@ void
Rest_collision_engraver::do_print() const
{
#ifndef NPRINT
- if ( rest_collision_p_ )
+ if ( rest_collision_p_)
rest_collision_p_->print();
#endif
}
diff --git a/lily/rest-collision.cc b/lily/rest-collision.cc
index 7b3da49d41..10fb35ec70 100644
--- a/lily/rest-collision.cc
+++ b/lily/rest-collision.cc
@@ -19,25 +19,17 @@
IMPLEMENT_IS_TYPE_B1(Rest_collision,Item);
void
-Rest_collision::add(Note_column *nc_l)
+Rest_collision::add (Note_column *nc_l)
{
- add_dependency(nc_l);
- ncol_l_arr_.push(nc_l);
+ add_dependency (nc_l);
+ ncol_l_arr_.push (nc_l);
}
void
-Rest_collision::add(Rest_column *rc_l)
+Rest_collision::add (Rest_column *rc_l)
{
- add_dependency(rc_l);
- rest_l_arr_.push(rc_l);
-}
-
-void
-Rest_collision::add(Collision * c_l)
-{
- add_dependency(c_l);
- for (int i=0; i < c_l->clash_l_arr_.size(); i ++)
- ncol_l_arr_.push(c_l->clash_l_arr_[i]);
+ add_dependency (rc_l);
+ rest_l_arr_.push (rc_l);
}
void
@@ -74,7 +66,7 @@ Rest_collision::do_post_processing()
#else // nogo: stem_start not set for rests?
int pos = (stem_l->stem_start_f() - midpos) + dir_i * 2;
#endif
- rest_l_arr_[0]->translate_heads(pos);
+ rest_l_arr_[0]->translate_heads (pos);
}
void
@@ -92,23 +84,23 @@ Rest_collision::do_pre_processing()
return;
// no partners to collide with
- if (rest_l_arr_.size() + ncol_l_arr_.size() < 2 )
+ if (rest_l_arr_.size() + ncol_l_arr_.size () < 2)
return;
// meisjes met meisjes
if (!ncol_l_arr_.size()) {
int dy = rest_l_arr_.size() > 2 ? 6 : 4;
- rest_l_arr_[0]->translate_heads(rest_l_arr_[0]->dir_i_ *dy);
+ rest_l_arr_[0]->translate_heads (rest_l_arr_[0]->dir_i_ *dy);
// top is last element...
- rest_l_arr_.top()->translate_heads(rest_l_arr_.top()->dir_i_* dy);
+ rest_l_arr_.top()->translate_heads (rest_l_arr_.top ()->dir_i_* dy);
}
// meisjes met jongetjes
else {
#if 0 // breendet: rests go always under
// geen gemug, trug op je rug
int dir_i = -1;
- rest_l_arr_[0]->translate_heads(dir_i * 3 );
+ rest_l_arr_[0]->translate_heads (dir_i * 3);
#else
// int dir_i = - ncol_l_arr_[0]->dir_i_;
int dir_i = rest_l_arr_[0]->dir_i_;
@@ -126,11 +118,11 @@ Rest_collision::do_pre_processing()
for (int i = 0; i < ncol_l_arr_.size(); i++) {
// how to know whether to sort?
ncol_l_arr_[i]->sort();
- for ( int j = 0; j < ncol_l_arr_[i]->head_l_arr_.size(); j++ )
+ for ( int j = 0; j < ncol_l_arr_[i]->head_l_arr_.size(); j++)
minpos = minpos >? dir_i *
- (ncol_l_arr_[i]->head_l_arr_[j]->position_i_ -midpos ) + sep_i;
+ (ncol_l_arr_[i]->head_l_arr_[j]->position_i_ -midpos) + sep_i;
}
- rest_l_arr_[0]->translate_heads(dir_i * minpos );
+ rest_l_arr_[0]->translate_heads (dir_i * minpos);
#endif
}
}
@@ -139,19 +131,19 @@ void
Rest_collision::do_print() const
{
#ifndef NPRINT
- mtor << "rests: " << rest_l_arr_.size() << ", ";
- mtor << "cols: " << ncol_l_arr_.size();
+ DOUT << "rests: " << rest_l_arr_.size() << ", ";
+ DOUT << "cols: " << ncol_l_arr_.size();
#endif
}
void
-Rest_collision::do_substitute_dependency(Score_elem*o,Score_elem*n)
+Rest_collision::do_substitute_dependency (Score_elem*o,Score_elem*n)
{
Item*o_l = o->item();
Item*n_l = n?n->item():0;
- rest_l_arr_.substitute((Rest_column*)o_l,(Rest_column*)n_l);
- ncol_l_arr_.substitute((Note_column*)o_l,(Note_column*)n_l);
+ rest_l_arr_.substitute ((Rest_column*)o_l,(Rest_column*)n_l);
+ ncol_l_arr_.substitute ((Note_column*)o_l,(Note_column*)n_l);
}
Rest_collision::Rest_collision()
diff --git a/lily/rest-column.cc b/lily/rest-column.cc
index 5a0d141777..3b17ca9ac7 100644
--- a/lily/rest-column.cc
+++ b/lily/rest-column.cc
@@ -20,7 +20,7 @@ IMPLEMENT_IS_TYPE_B1(Rest_column,Head_column);
translate the rest symbols
*/
void
-Rest_column::translate_heads(int dy_i)
+Rest_column::translate_heads (int dy_i)
{
for (int i=0; i < head_l_arr_.size(); i++)
head_l_arr_[i]->position_i_ += dy_i;
diff --git a/lily/score-align-grav.cc b/lily/score-align-grav.cc
index 9660c144ed..c66cdebd48 100644
--- a/lily/score-align-grav.cc
+++ b/lily/score-align-grav.cc
@@ -22,25 +22,25 @@ void
Score_align_engraver::do_pre_move_processing()
{
if (align_p_) {
- typeset_element( align_p_);
+ typeset_element (align_p_);
align_p_ =0;
}
}
void
-Score_align_engraver::acknowledge_element(Score_elem_info inf)
+Score_align_engraver::acknowledge_element (Score_elem_info inf)
{
- if (inf.elem_l_->is_type_b(type_ch_C_ )) {
+ if (inf.elem_l_->is_type_b (type_ch_C_)) {
- if (!align_p_ ) {
+ if (!align_p_) {
align_p_ = new Horizontal_group_item;
align_p_->breakable_b_ = true;
- announce_element(Score_elem_info(align_p_,0));
+ announce_element (Score_elem_info (align_p_,0));
}
Score_elem * unbound_elem = inf.elem_l_;
- while ( unbound_elem->axis_group_l_a_[X_AXIS] )
+ while ( unbound_elem->axis_group_l_a_[X_AXIS])
unbound_elem = unbound_elem->axis_group_l_a_[X_AXIS];
- align_p_->add_element(unbound_elem );
+ align_p_->add_element (unbound_elem);
}
}
diff --git a/lily/score-align-gravs.cc b/lily/score-align-gravs.cc
index 8020cf7f1f..995c6fbdd6 100644
--- a/lily/score-align-gravs.cc
+++ b/lily/score-align-gravs.cc
@@ -17,7 +17,7 @@ class C ## _align_engraver : public Score_align_engraver \
{ \
public: \
DECLARE_MY_RUNTIME_TYPEINFO; \
- C ## _align_engraver() : Score_align_engraver() \
+ C ## _align_engraver() : Score_align_engraver () \
{ type_ch_C_ = T::static_name();\
priority_i_ = p;} \
}; \
diff --git a/lily/score-column.cc b/lily/score-column.cc
index 2fd3def678..9accf652a9 100644
--- a/lily/score-column.cc
+++ b/lily/score-column.cc
@@ -10,7 +10,7 @@
#include "p-col.hh"
#include "score-column.hh"
-Score_column::Score_column(Moment w)
+Score_column::Score_column (Moment w)
{
when_ = w;
musical_b_ = false;
@@ -20,44 +20,44 @@ void
Score_column::print() const
{
#ifndef NPRINT
- mtor << "Score_column { mus "<< musical_b_ <<" at " << when_<<'\n';
- mtor << "durations: [";
+ DOUT << "Score_column { mus "<< musical_b_ <<" at " << when_<<'\n';
+ DOUT << "durations: [";
for (int i=0; i < durations.size(); i++)
- mtor << durations[i] << " ";
- mtor << "]\n";
+ DOUT << durations[i] << " ";
+ DOUT << "]\n";
PCol::print();
- mtor << "}\n";
+ DOUT << "}\n";
#endif
}
int
-Moment_compare(Moment const &m1, Moment const &m2)
+Moment_compare (Moment const &m1, Moment const &m2)
{
- return sign(m1-m2);
+ return sign (m1-m2);
}
void
Score_column::preprocess()
{
- durations.sort(Moment_compare);
+ durations.sort (Moment_compare);
}
void
-Score_column::add_duration(Moment d)
+Score_column::add_duration (Moment d)
{
- assert(d);
+ assert (d);
for (int i = 0; i< durations.size(); i++) {
if (d == durations[i])
return ;
}
- durations.push(d);
+ durations.push (d);
}
void
Score_column::do_set_breakable()
{
- Score_column *c1 = new Score_column(when_);
- Score_column *c2 = new Score_column(when_);
+ Score_column *c1 = new Score_column (when_);
+ Score_column *c2 = new Score_column (when_);
prebreak_p_ =c1;
postbreak_p_ = c2;
c1->durations = durations;
diff --git a/lily/score-elem-info.cc b/lily/score-elem-info.cc
index 99e6673a7d..07e7a100b6 100644
--- a/lily/score-elem-info.cc
+++ b/lily/score-elem-info.cc
@@ -9,7 +9,7 @@
#include "score-elem-info.hh"
#include "request.hh"
-Score_elem_info::Score_elem_info(Score_elem*s_l, Request*r_l)
+Score_elem_info::Score_elem_info (Score_elem*s_l, Request*r_l)
{
elem_l_ = s_l;
req_l_ = r_l;
diff --git a/lily/score-elem.cc b/lily/score-elem.cc
index c80314ef4a..a471ddf5bb 100644
--- a/lily/score-elem.cc
+++ b/lily/score-elem.cc
@@ -22,7 +22,7 @@
#include "p-col.hh"
Score_elem*
-Score_elem::dependency(int i)const
+Score_elem::dependency (int i)const
{
return (Score_elem*) get_out_edge_arr()[i];
}
@@ -30,11 +30,11 @@ Score_elem::dependency(int i)const
int
Score_elem::dependency_size() const
{
- return get_out_edge_arr().size();
+ return get_out_edge_arr().size ();
}
Score_elem*
-Score_elem::dependent(int i) const
+Score_elem::dependent (int i) const
{
return (Score_elem*) get_in_edge_arr()[i];
}
@@ -42,65 +42,65 @@ Score_elem::dependent(int i) const
int
Score_elem::dependent_size() const
{
- return get_in_edge_arr().size();
+ return get_in_edge_arr().size ();
}
String
-Score_elem::TeX_string_without_offset(Offset o)const
+Score_elem::TeX_string_without_offset (Offset o)const
{
- if (transparent_b_ )
+ if (transparent_b_)
return "";
- String s( "\\placebox{%}{%}{%}");
+ String s ("\\placebox{%}{%}{%}");
Array<String> a;
- a.push( print_dimen(o.y() ));
- a.push( print_dimen(o.x() ));
+ a.push (print_dimen (o.y()));
+ a.push (print_dimen (o.x()));
String t = output->TeX_string();
if (t == "")
return t;
- a.push( t);
+ a.push (t);
String r;
if (check_debug)
- r = String("\n%start: ") + name() + "\n";
- r += substitute_args(s, a);;
+ r = String ("\n%start: ") + name() + "\n";
+ r += substitute_args (s, a);;
return r;
}
String
Score_elem::TeX_string() const
{
- assert( status_ > POSTCALCED);
- return TeX_string_without_offset(offset_);
+ assert (status_ > POSTCALCED);
+ return TeX_string_without_offset (offset_);
}
void
-Score_elem::copy_dependencies(Score_elem const &s)
+Score_elem::copy_dependencies (Score_elem const &s)
{
/* called from derived ctor, so most info points to the same deps
as (Directed_graph_node&)s. Nobody points to us, so don't copy
dependents.
*/
- copy_edges_out(s);
+ copy_edges_out (s);
}
-Score_elem::Score_elem(Score_elem const&s)
+Score_elem::Score_elem (Score_elem const&s)
{
transparent_b_ = s.transparent_b_;
empty_b_ = s.empty_b_;
axis_group_l_a_[0] = axis_group_l_a_[1] =0;
status_ = s.status_;
- assert(!s.output);
+ assert (!s.output);
output = 0;
pscore_l_ = s.pscore_l_;
- offset_ = Offset(0,0);
+ offset_ = Offset (0,0);
}
Score_elem::~Score_elem()
{
// some paranoia to prevent weird segv's
- assert(status_ < DELETED);
+ assert (status_ < DELETED);
delete output;
status_ = DELETED;
output = 0;
@@ -111,7 +111,7 @@ Score_elem::~Score_elem()
GEOMETRY
*/
Real
-Score_elem::absolute_coordinate(Axis a)const
+Score_elem::absolute_coordinate (Axis a)const
{
Real r = offset_[a];
for ( Axis_group_element * axis_group_l = axis_group_l_a_[a];
@@ -125,17 +125,17 @@ Score_elem::absolute_coordinate(Axis a)const
Offset
Score_elem::absolute_offset() const
{
- return Offset(absolute_coordinate(X_AXIS), absolute_coordinate(Y_AXIS));
+ return Offset (absolute_coordinate (X_AXIS), absolute_coordinate (Y_AXIS));
}
void
-Score_elem::translate(Real y, Axis a)
+Score_elem::translate (Real y, Axis a)
{
offset_[a] += y;
}
Real
-Score_elem::relative_coordinate(Axis_group_element*e, Axis a)const
+Score_elem::relative_coordinate (Axis_group_element*e, Axis a)const
{
Real r =0.0;
for ( Axis_group_element * axis_group_l = axis_group_l_a_[a];
@@ -147,19 +147,19 @@ Score_elem::relative_coordinate(Axis_group_element*e, Axis a)const
}
Axis_group_element*
-Score_elem::common_group(Score_elem const* s, Axis a)const
+Score_elem::common_group (Score_elem const* s, Axis a)const
{
Link_array<Axis_group_element> my_groups;
for ( Axis_group_element * axis_group_l = axis_group_l_a_[a];
axis_group_l;
axis_group_l = axis_group_l->axis_group_l_a_[a])
- my_groups.push( axis_group_l );
+ my_groups.push (axis_group_l);
Axis_group_element* common_l=0;
for ( Axis_group_element * axis_group_l = s->axis_group_l_a_[a];
!common_l && axis_group_l;
axis_group_l = axis_group_l->axis_group_l_a_[a])
- common_l = my_groups.find_l( axis_group_l );
+ common_l = my_groups.find_l (axis_group_l);
return common_l;
}
@@ -167,7 +167,7 @@ Score_elem::common_group(Score_elem const* s, Axis a)const
void
-Score_elem::translate(Offset O)
+Score_elem::translate (Offset O)
{
offset_ += O;
}
@@ -179,26 +179,26 @@ Score_elem::do_width() const
if (!output){
Molecule*m = brew_molecule_p();
- r = m->extent().x();
+ r = m->extent().x ();
delete m;
} else
- r = output->extent().x();
+ r = output->extent().x ();
return r;
}
Interval
Score_elem::width() const
{
- return extent( X_AXIS);
+ return extent (X_AXIS);
}
Interval
-Score_elem::extent(Axis a)const
+Score_elem::extent (Axis a)const
{
Interval r;
- if ( !empty_b_ ) {
+ if ( !empty_b_) {
- r = (a == X_AXIS)? do_width(): do_height();
+ r = (a == X_AXIS)? do_width(): do_height ();
}
if (!r.empty_b()) // float exception on DEC Alpha
@@ -213,17 +213,17 @@ Score_elem::do_height() const
Interval r;
if (!output){
Molecule*m = brew_molecule_p();
- r = m->extent().y();
+ r = m->extent().y ();
delete m;
} else
- r = output->extent().y();
+ r = output->extent().y ();
return r;
}
Interval
Score_elem::height() const
{
- return extent(Y_AXIS);
+ return extent (Y_AXIS);
}
/*
@@ -233,18 +233,18 @@ void
Score_elem::print()const
{
#ifndef NPRINT
- mtor << name() << "{\n";
- mtor << "dets: " << dependent_size() << "dependencies: " <<
+ DOUT << name() << "{\n";
+ DOUT << "dets: " << dependent_size() << "dependencies: " <<
dependency_size();
- if (offset_.x() || offset_.y())
- mtor << "offset (" << offset_.x() << ", " << offset_.y() <<")";
- mtor << "\n";
+ if (offset_.x() || offset_.y ())
+ DOUT << "offset (" << offset_.x() << ", " << offset_.y () <<")";
+ DOUT << "\n";
do_print();
if (output)
output->print();
- mtor << "}\n";
+ DOUT << "}\n";
#endif
}
@@ -253,7 +253,7 @@ Score_elem::Score_elem()
transparent_b_ = empty_b_ = false;
axis_group_l_a_[0] = axis_group_l_a_[1] =0;
pscore_l_=0;
- offset_ = Offset(0,0);
+ offset_ = Offset (0,0);
output = 0;
status_ = ORPHAN;
}
@@ -262,7 +262,7 @@ Score_elem::Score_elem()
Paper_def*
Score_elem::paper() const
{
- assert(pscore_l_);
+ assert (pscore_l_);
return pscore_l_->paper_l_;
}
@@ -278,16 +278,16 @@ Score_elem::add_processing()
void
Score_elem::pre_processing()
{
- if (status_ >= PRECALCED )
+ if (status_ >= PRECALCED)
return;
- assert(status_ != PRECALCING); // cyclic dependency
+ assert (status_ != PRECALCING); // cyclic dependency
status_ = PRECALCING;
for (int i=0; i < dependency_size(); i++)
- dependency(i)->pre_processing();
+ dependency (i)->pre_processing();
- Link_array<Score_elem> extra(get_extra_dependencies());
+ Link_array<Score_elem> extra (get_extra_dependencies());
for (int i=0; i < extra.size(); i++)
extra[i]->pre_processing();
@@ -298,19 +298,19 @@ Score_elem::pre_processing()
void
Score_elem::breakable_col_processing()
{
- if (status_ >= PREBROKEN )
+ if (status_ >= PREBROKEN)
return;
- if(status_== PREBREAKING) {
+ if (status_== PREBREAKING) {
status_ = PREBROKEN;
return ;
}
status_ = PREBREAKING;
for (int i=0; i < dependency_size(); i++)
- dependency(i)->breakable_col_processing();
+ dependency (i)->breakable_col_processing();
- Link_array<Score_elem> extra(get_extra_dependencies());
+ Link_array<Score_elem> extra (get_extra_dependencies());
for (int i=0; i < extra.size(); i++)
extra[i]->breakable_col_processing();
@@ -322,7 +322,7 @@ Score_elem::breakable_col_processing()
void
Score_elem::break_processing()
{
- if (status_ >= BROKEN )
+ if (status_ >= BROKEN)
return;
if (status_ == BREAKING) {
@@ -332,9 +332,9 @@ Score_elem::break_processing()
status_ = BREAKING;
for (int i=0; i < dependency_size(); i++)
- dependency(i)->break_processing();
+ dependency (i)->break_processing();
- Link_array<Score_elem> extra(get_extra_dependencies());
+ Link_array<Score_elem> extra (get_extra_dependencies());
for (int i=0; i < extra.size(); i++)
extra[i]->break_processing();
@@ -357,14 +357,14 @@ Score_elem::post_processing()
{
if (status_ >= POSTCALCED)
return;
- assert(status_ != POSTCALCING);// cyclic dependency
+ assert (status_ != POSTCALCING);// cyclic dependency
status_=POSTCALCING;
for (int i=0; i < dependency_size(); i++)
- dependency(i)->post_processing();
+ dependency (i)->post_processing();
- Link_array<Score_elem> extra(get_extra_dependencies());
+ Link_array<Score_elem> extra (get_extra_dependencies());
for (int i=0; i < extra.size(); i++)
extra[i]->post_processing();
@@ -387,9 +387,9 @@ Score_elem::molecule_processing()
status_ = OUTPUT; // do it only once.
for (int i=0; i < dependency_size(); i++)
- dependency(i)->molecule_processing();
+ dependency (i)->molecule_processing();
- Link_array<Score_elem> extra(get_extra_dependencies());
+ Link_array<Score_elem> extra (get_extra_dependencies());
for (int i=0; i < extra.size(); i++)
extra[i]->molecule_processing();
@@ -426,11 +426,11 @@ Score_elem::do_add_processing()
}
void
-Score_elem::do_substitute_dependency(Score_elem*,Score_elem*)
+Score_elem::do_substitute_dependency (Score_elem*,Score_elem*)
{
}
void
-Score_elem::do_substitute_dependent(Score_elem*,Score_elem*)
+Score_elem::do_substitute_dependent (Score_elem*,Score_elem*)
{
}
@@ -443,7 +443,7 @@ IMPLEMENT_IS_TYPE_B(Score_elem);
Molecule*
Score_elem::brew_molecule_p()const
{
- Atom a(paper()->lookup_l()->fill(Box(Interval(0,0), Interval(0,0))));
+ Atom a (paper()->lookup_l ()->fill (Box (Interval (0,0), Interval (0,0))));
return new Molecule (a);
}
@@ -461,29 +461,29 @@ Score_elem::line_l()const
*/
void
-Score_elem::remove_dependency(Score_elem*e)
+Score_elem::remove_dependency (Score_elem*e)
{
- remove_edge_out(e);
- substitute_dependency(e, 0);
+ remove_edge_out (e);
+ substitute_dependency (e, 0);
}
void
-Score_elem::add_dependency(Score_elem*e)
+Score_elem::add_dependency (Score_elem*e)
{
- Directed_graph_node::add(e);
+ Directed_graph_node::add (e);
}
void
-Score_elem::substitute_dependency(Score_elem* old, Score_elem* new_l)
+Score_elem::substitute_dependency (Score_elem* old, Score_elem* new_l)
{
- do_substitute_dependency(old,new_l);
- old->do_substitute_dependent(this, 0);
+ do_substitute_dependency (old,new_l);
+ old->do_substitute_dependent (this, 0);
}
void
Score_elem::junk_dependencies()
{
- while ( dependency_size() ) {
- remove_edge_out( dependency( 0 ));
+ while ( dependency_size()) {
+ remove_edge_out (dependency (0));
}
}
@@ -496,29 +496,29 @@ Score_elem::handle_broken_dependencies()
Link_array<Score_elem> remove_us_arr;
for (int i=0; i < dependency_size(); i++) {
- Score_elem * elt = dependency(i);
+ Score_elem * elt = dependency (i);
if (elt->line_l() != line){
if (elt->spanner()) {
Spanner * sp = elt->spanner();
- Spanner * broken = sp->find_broken_piece(line);
- substitute_dependency(sp, broken);
-
- add_dependency(broken);
- } else if (elt->item() && elt->item()->pcol_l_->breakpoint_b()
- && elt->item()->break_status_i() == 0) {
- Item * my_item = elt->item()->find_prebroken_piece(line);
- substitute_dependency( elt, my_item);
+ Spanner * broken = sp->find_broken_piece (line);
+ substitute_dependency (sp, broken);
+
+ add_dependency (broken);
+ } else if (elt->item() && elt->item ()->pcol_l_->breakpoint_b ()
+ && elt->item()->break_status_i () == 0) {
+ Item * my_item = elt->item()->find_prebroken_piece (line);
+ substitute_dependency (elt, my_item);
if (my_item)
- add_dependency( my_item);
+ add_dependency (my_item);
}
- remove_us_arr.push(elt);
+ remove_us_arr.push (elt);
}
}
remove_us_arr.default_sort();
remove_us_arr.uniq();
for (int i=0; i <remove_us_arr.size(); i++)
- remove_dependency(remove_us_arr[i]);
+ remove_dependency (remove_us_arr[i]);
status_ = BROKEN;
}
@@ -542,26 +542,26 @@ Score_elem::handle_prebroken_dependencies()
Link_array<Score_elem> old_arr, new_arr;
for (int i=0; i < dependency_size(); i++) {
- Score_elem * elt = dependency(i);
+ Score_elem * elt = dependency (i);
Item *it_l = elt->item();
if (it_l && it_l->breakable_b_)
if (item()) {
- Score_elem *new_l = it_l->find_prebroken_piece(item()->pcol_l_);
- if (new_l != elt ) {
+ Score_elem *new_l = it_l->find_prebroken_piece (item()->pcol_l_);
+ if (new_l != elt) {
new_arr.push (new_l);
- old_arr.push(elt);
+ old_arr.push (elt);
}
}else {
- new_arr.push(it_l->broken_to_a_[0]);
- old_arr.push(0);
- old_arr.push(0);
- new_arr.push(it_l->broken_to_a_[1]);
+ new_arr.push (it_l->broken_to_a_[0]);
+ old_arr.push (0);
+ old_arr.push (0);
+ new_arr.push (it_l->broken_to_a_[1]);
}
}
for (int i=0; i < old_arr.size(); i++)
if (old_arr[i])
- substitute_dependency( old_arr[i], new_arr[i] );
+ substitute_dependency (old_arr[i], new_arr[i]);
status_ = PREBROKEN;
@@ -573,8 +573,8 @@ void
Score_elem::unlink_all()
{
for (int i=0; i < dependency_size(); i++)
- dependency(i)->unlink_all();
- Link_array<Score_elem> extra(get_extra_dependencies());
+ dependency (i)->unlink_all();
+ Link_array<Score_elem> extra (get_extra_dependencies());
for (int i=0; i < extra.size(); i++)
extra[i]->unlink_all();
@@ -587,15 +587,15 @@ Score_elem::unlink()
{
do_unlink();
while ( dependency_size()) {
- do_substitute_dependency(dependency(0),0);
- remove_edge_out_idx(0);
+ do_substitute_dependency (dependency (0),0);
+ remove_edge_out_idx (0);
}
- while ( dependent_size() ) {
- dependent(0)->remove_dependency(this);
+ while ( dependent_size()) {
+ dependent (0)->remove_dependency (this);
}
for (int j=0; j < 2; j++)
if ( axis_group_l_a_[j])
- axis_group_l_a_[j]->remove_element(this);
+ axis_group_l_a_[j]->remove_element (this);
}
@@ -604,7 +604,7 @@ Score_elem::OK()const
{
#ifndef NDEBUG
for (int i=0; i < dependency_size(); i++) {
- dependency(i)->OK();
+ dependency (i)->OK();
}
#endif
}
diff --git a/lily/score-grav.cc b/lily/score-grav.cc
index 0b40a875df..acfa137c1d 100644
--- a/lily/score-grav.cc
+++ b/lily/score-grav.cc
@@ -21,9 +21,9 @@
void
-Score_engraver::set_score(Score *s)
+Score_engraver::set_score (Score *s)
{
- Global_translator::set_score(s);
+ Global_translator::set_score (s);
scoreline_l_ = s->pscore_p_->super_elem_l_->line_of_score_l_;
}
@@ -38,9 +38,9 @@ Score_engraver::Score_engraver()
void
-Score_engraver::prepare(Moment w)
+Score_engraver::prepare (Moment w)
{
- set_columns(new Score_column(w), new Score_column(w));
+ set_columns (new Score_column (w), new Score_column (w));
disallow_break_b_ = false;
@@ -60,7 +60,7 @@ Score_engraver::finish()
void
Score_engraver::do_creation_processing()
{
- scoreline_l_->left_col_l_ = get_staff_info().command_pcol_l();
+ scoreline_l_->left_col_l_ = get_staff_info().command_pcol_l ();
scoreline_l_->left_col_l_ ->set_breakable();
Engraver_group_engraver::do_creation_processing();
}
@@ -69,10 +69,10 @@ void
Score_engraver::do_removal_processing()
{
Engraver_group_engraver::do_removal_processing();
- scoreline_l_->right_col_l_ = get_staff_info().command_pcol_l();
+ scoreline_l_->right_col_l_ = get_staff_info().command_pcol_l ();
scoreline_l_->right_col_l_ ->set_breakable();
typeset_all();
- set_columns(0,0);
+ set_columns (0,0);
}
void
@@ -85,10 +85,10 @@ Score_engraver::process()
}
void
-Score_engraver::announce_element(Score_elem_info info)
+Score_engraver::announce_element (Score_elem_info info)
{
- announce_info_arr_.push(info);
- info.origin_grav_l_arr_.push(this);
+ announce_info_arr_.push (info);
+ info.origin_grav_l_arr_.push (this);
}
void
@@ -110,7 +110,7 @@ Score_engraver::do_announces()
if (announce_info_arr_[i].req_l_) {
Musical_req *m = announce_info_arr_[i].req_l_->musical();
if (m && m->rhythmic()) {
- musical_column_l_->add_duration( m->duration());
+ musical_column_l_->add_duration (m->duration());
}
}
Engraver_group_engraver::do_announces();
@@ -119,39 +119,39 @@ Score_engraver::do_announces()
void
-Score_engraver::typeset_element(Score_elem *elem_p)
+Score_engraver::typeset_element (Score_elem *elem_p)
{
- if ( elem_p->item() && elem_p->item()->breakable_b_ ) {
- nobreak_item_p_arr_.push(elem_p->item());
+ if ( elem_p->item() && elem_p->item ()->breakable_b_) {
+ nobreak_item_p_arr_.push (elem_p->item());
} else
- musical_item_p_arr_.push(elem_p);
+ musical_item_p_arr_.push (elem_p);
}
void
Score_engraver::typeset_all()
{
- PCol * c= get_staff_info().command_pcol_l();
+ PCol * c= get_staff_info().command_pcol_l ();
Paper_score *ps_l = score_l_->pscore_p_;
for (int i =0; i < nobreak_item_p_arr_.size(); i++) {
- ps_l->typeset_item(nobreak_item_p_arr_[i], c);
+ ps_l->typeset_item (nobreak_item_p_arr_[i], c);
// should get rid of this.. .
- scoreline_l_->add_dependency(nobreak_item_p_arr_[i]);
+ scoreline_l_->add_dependency (nobreak_item_p_arr_[i]);
}
nobreak_item_p_arr_.clear();
for (int i=0; i < musical_item_p_arr_.size(); i++) {
- PCol* m = get_staff_info().musical_pcol_l();
+ PCol* m = get_staff_info().musical_pcol_l ();
Score_elem *elem_p = musical_item_p_arr_[i];
- scoreline_l_->add(elem_p);
+ scoreline_l_->add (elem_p);
if (elem_p->spanner()) {
- ps_l->typeset_unbroken_spanner(elem_p->spanner());
+ ps_l->typeset_unbroken_spanner (elem_p->spanner());
} else if (elem_p->item()) {
- ps_l->typeset_item(elem_p->item(), m);
+ ps_l->typeset_item (elem_p->item(), m);
} else
- assert(false);
+ assert (false);
}
musical_item_p_arr_.clear();
}
@@ -160,8 +160,8 @@ Score_engraver::typeset_all()
void
Score_engraver::do_pre_move_processing()
{
- if ( !disallow_break_b_ ){
- get_staff_info().command_pcol_l()->set_breakable();
+ if ( !disallow_break_b_){
+ get_staff_info().command_pcol_l ()->set_breakable ();
breaks_i_ ++;
if ( ! (breaks_i_%8))
*mlog << "[" << breaks_i_ << "]" << flush;
@@ -173,11 +173,11 @@ Score_engraver::do_pre_move_processing()
}
void
-Score_engraver::set_columns(Score_column *new_command_l,
+Score_engraver::set_columns (Score_column *new_command_l,
Score_column *new_musical_l)
{
- if ( command_column_l_ && command_column_l_->used_b() )
- score_l_->pscore_p_->add(command_column_l_);
+ if ( command_column_l_ && command_column_l_->used_b())
+ score_l_->pscore_p_->add (command_column_l_);
else {
delete command_column_l_ ;
command_column_l_ =0;
@@ -219,10 +219,10 @@ Score_engraver::paper()const
bool
-Score_engraver::do_try_request(Request*r)
+Score_engraver::do_try_request (Request*r)
{
- bool gotcha = Engraver_group_engraver::do_try_request(r);
- if ( !gotcha && r->command() && r->command()->disallowbreak())
+ bool gotcha = Engraver_group_engraver::do_try_request (r);
+ if ( !gotcha && r->command() && r->command ()->disallowbreak ())
disallow_break_b_ = true;
return gotcha;
}
diff --git a/lily/score-halign-grav.cc b/lily/score-halign-grav.cc
index 3d5293ee26..08f194171c 100644
--- a/lily/score-halign-grav.cc
+++ b/lily/score-halign-grav.cc
@@ -20,30 +20,30 @@ void
Score_horizontal_align_engraver::do_pre_move_processing()
{
if (halign_p_) {
- typeset_element(halign_p_);
+ typeset_element (halign_p_);
halign_p_ =0;
}
}
void
-Score_horizontal_align_engraver::acknowledge_element(Score_elem_info i)
+Score_horizontal_align_engraver::acknowledge_element (Score_elem_info i)
{
Engraver* reg = i.origin_grav_l_arr_[0];
- if (reg->is_type_b(
- Score_align_engraver::static_name()) )
+ if (reg->is_type_b (
+ Score_align_engraver::static_name()))
{
Score_align_engraver * align_grav_l = (Score_align_engraver*) reg;
if (!halign_p_) {
halign_p_ = new Break_align_item;
halign_p_->breakable_b_ = true;
- announce_element(Score_elem_info(halign_p_,0));
+ announce_element (Score_elem_info (halign_p_,0));
}
Item * it = i.elem_l_->item();
if (align_grav_l->type_ch_C_ == Bar::static_name())
halign_p_->center_l_ = it;
- halign_p_->add(it, align_grav_l->priority_i_);
+ halign_p_->add (it, align_grav_l->priority_i_);
}
}
diff --git a/lily/score-performer.cc b/lily/score-performer.cc
index ea27d507b8..53c2a283f7 100644
--- a/lily/score-performer.cc
+++ b/lily/score-performer.cc
@@ -36,9 +36,9 @@ Score_performer::~Score_performer()
Translator*
-Score_performer::ancestor_l(int l)
+Score_performer::ancestor_l (int l)
{
- return Global_translator::ancestor_l(l);
+ return Global_translator::ancestor_l (l);
}
@@ -57,23 +57,23 @@ Score_performer::finish()
void
-Score_performer::play(Audio_element * p)
+Score_performer::play (Audio_element * p)
{
- if (p->is_type_b(Audio_item::static_name())) {
- audio_column_l_->add( (Audio_item*)p);
- } else if (p->is_type_b(Audio_staff::static_name())) {
- score_l_->audio_score_p_->add_staff( (Audio_staff*)p );
+ if (p->is_type_b (Audio_item::static_name())) {
+ audio_column_l_->add ((Audio_item*)p);
+ } else if (p->is_type_b (Audio_staff::static_name())) {
+ score_l_->audio_score_p_->add_staff ((Audio_staff*)p);
}
- score_l_->audio_score_p_->add(p);
+ score_l_->audio_score_p_->add (p);
}
void
-Score_performer::prepare(Moment m)
+Score_performer::prepare (Moment m)
{
now_mom_ = m;
- audio_column_l_ = new Audio_column(m);
- score_l_->audio_score_p_->add(audio_column_l_);
+ audio_column_l_ = new Audio_column (m);
+ score_l_->audio_score_p_->add (audio_column_l_);
}
@@ -85,9 +85,9 @@ Score_performer::process()
void
-Score_performer::set_score(Score* score_l)
+Score_performer::set_score (Score* score_l)
{
- Global_translator::set_score(score_l);
+ Global_translator::set_score (score_l);
}
@@ -100,5 +100,5 @@ Score_performer::start()
int
Score_performer::get_tempo_i()const
{
- return score_l_->midi_p_->get_tempo_i(Moment(1, 4));
+ return score_l_->midi_p_->get_tempo_i (Moment (1, 4));
}
diff --git a/lily/score.cc b/lily/score.cc
index 53208cebc7..8a8a473a81 100644
--- a/lily/score.cc
+++ b/lily/score.cc
@@ -34,12 +34,12 @@ Score::Score()
errorlevel_i_ = 0;
}
-Score::Score(Score const &s)
+Score::Score (Score const &s)
{
- assert(!pscore_p_);
+ assert (!pscore_p_);
music_p_ = s.music_p_->clone();
- midi_p_ = new Midi_def(*s.midi_p_);
- paper_p_ = new Paper_def(*s.paper_p_);
+ midi_p_ = new Midi_def (*s.midi_p_);
+ paper_p_ = new Paper_def (*s.paper_p_);
}
Score::~Score()
@@ -52,14 +52,14 @@ Score::~Score()
}
void
-Score::run_translator(Global_translator * trans_l)
+Score::run_translator (Global_translator * trans_l)
{
trans_l->set_score (this);
- Music_iterator * iter = Music_iterator::static_get_iterator_p(music_p_,
+ Music_iterator * iter = Music_iterator::static_get_iterator_p (music_p_,
trans_l);
iter->construct_children();
- if ( ! iter->ok() ) {
+ if ( ! iter->ok()) {
delete iter;
warning ("Need music in a score");
errorlevel_i_ =1;
@@ -68,18 +68,18 @@ Score::run_translator(Global_translator * trans_l)
trans_l->start();
- while ( iter->ok() || trans_l->moments_left_i() ) {
+ while ( iter->ok() || trans_l->moments_left_i ()) {
Moment w = infinity_mom;
- if (iter->ok() ) {
+ if (iter->ok()) {
w = iter->next_moment();
- mtor << w;
+ DOUT << w;
iter->print();
}
- trans_l->modify_next( w );
- trans_l->prepare(w);
+ trans_l->modify_next (w);
+ trans_l->prepare (w);
trans_l->print();
- iter->process_and_next( w );
+ iter->process_and_next (w);
trans_l->process();
}
delete iter;
@@ -97,19 +97,19 @@ Score::process()
void
Score::midi()
{
- if ( !midi_p_ )
+ if ( !midi_p_)
return;
*mlog << "\nCreating MIDI elements ..." << flush;
- audio_score_p_ = new Audio_score( this );
+ audio_score_p_ = new Audio_score (this);
Global_translator* score_trans= midi_p_->get_global_translator_p();
- run_translator( score_trans );
+ run_translator (score_trans);
delete score_trans;
- if( errorlevel_i_){
+ if (errorlevel_i_){
// should we? hampers debugging.
- warning( "Errors found, /*not processing score*/" );
+ warning ("Errors found, /*not processing score*/");
// return;
}
*mlog << endl;
@@ -124,15 +124,15 @@ Score::paper()
return;
*mlog << "\nCreating elements ..." << flush;
- pscore_p_ = new Paper_score(paper_p_);
+ pscore_p_ = new Paper_score (paper_p_);
Global_translator * score_trans= paper_p_->get_global_translator_p();
- run_translator( score_trans );
+ run_translator (score_trans);
delete score_trans;
- if( errorlevel_i_) {
+ if (errorlevel_i_) {
// should we? hampers debugging.
- warning("Errors found, /*not processing score*/");
+ warning ("Errors found, /*not processing score*/");
// return;
}
@@ -146,13 +146,13 @@ Score::paper()
void
Score::midi_output()
{
- if ( midi_p_->outfile_str_ == "" )
+ if ( midi_p_->outfile_str_ == "")
midi_p_->outfile_str_ = default_out_fn + ".midi";
- Midi_stream midi_stream( midi_p_->outfile_str_ );
+ Midi_stream midi_stream (midi_p_->outfile_str_);
*mlog << "MIDI output to " << midi_p_->outfile_str_ << " ..." << endl;
- audio_score_p_->output( midi_stream );
+ audio_score_p_->output (midi_stream);
*mlog << endl;
}
@@ -162,7 +162,7 @@ Score::paper_output()
if (paper_p_->outfile_str_=="")
paper_p_->outfile_str_ = default_out_fn + ".tex";
- if ( errorlevel_i_ ) {
+ if ( errorlevel_i_) {
*mlog << "lilypond: warning: no output to: " << paper_p_->outfile_str_
<< " (errorlevel=" << errorlevel_i_ << ")" << endl;
return;
@@ -170,35 +170,35 @@ Score::paper_output()
*mlog << "TeX output to " << paper_p_->outfile_str_ << " ...\n";
- Tex_stream the_output(paper_p_->outfile_str_);
+ Tex_stream the_output (paper_p_->outfile_str_);
the_output << "% outputting Score, defined at: " <<
location_str() << "\n";
- pscore_p_->output(the_output);
+ pscore_p_->output (the_output);
}
void
Score::print() const
{
#ifndef NPRINT
- mtor << "score {\n";
+ DOUT << "score {\n";
music_p_->print();
if (midi_p_)
midi_p_->print();
- mtor << "}\n";
+ DOUT << "}\n";
#endif
}
void
-Score::set(Paper_def *pap_p)
+Score::set (Paper_def *pap_p)
{
delete paper_p_;
paper_p_ = pap_p;
}
void
-Score::set(Midi_def* midi_p)
+Score::set (Midi_def* midi_p)
{
delete midi_p_;
midi_p_ = midi_p;
diff --git a/lily/scoreline.cc b/lily/scoreline.cc
index 2cf31bcbed..fc64123533 100644
--- a/lily/scoreline.cc
+++ b/lily/scoreline.cc
@@ -22,7 +22,7 @@
String
Line_of_score::TeX_string() const
{
- String s("\\hbox{%<- line of score\n");
+ String s ("\\hbox{%<- line of score\n");
if (error_mark_b_)
s+= "\\scorelineerrormark";
@@ -37,24 +37,24 @@ Line_of_score::TeX_string() const
Link_array<Score_elem> elems;
if (col_l->error_mark_b_) {
- chunk_str += String("\\columnerrormark");
+ chunk_str += String ("\\columnerrormark");
}
// now output the items.
- for (iter_top(col_l->its,j); j.ok(); j++) {
- elems.push(j);
+ for (iter_top (col_l->its,j); j.ok(); j++) {
+ elems.push (j);
}
// spanners.
- for (iter_top(col_l->starters,j); j.ok(); j++) {
- if (j->name() != name())
- elems.push(j);
+ for (iter_top (col_l->starters,j); j.ok(); j++) {
+ if (j->name() != name ())
+ elems.push (j);
}
for (int j =0; j< elems.size(); j++) {
Offset o = elems[j]->absolute_offset();
o[X_AXIS] += cols[i]->hpos_f_;
- s += elems[j]->TeX_string_without_offset(o);
+ s += elems[j]->TeX_string_without_offset (o);
}
}
s += "}";
@@ -74,26 +74,26 @@ Line_of_score::Line_of_score()
IMPLEMENT_IS_TYPE_B1(Line_of_score,Spanner);
void
-Line_of_score::add(Score_elem*e)
+Line_of_score::add (Score_elem*e)
{
// avoid excess dependencies.
- if(!( e->axis_group_l_a_[0] || e->axis_group_l_a_[1]))
- add_dependency(e);
+ if (!( e->axis_group_l_a_[0] || e->axis_group_l_a_[1]))
+ add_dependency (e);
}
bool
-Line_of_score::contains_b(PCol const* c)const
+Line_of_score::contains_b (PCol const* c)const
{
- return cols.find_l((PCol*)c);
+ return cols.find_l ((PCol*)c);
}
void
-Line_of_score::set_breaking(Array<Col_hpositions> const &breaking)
+Line_of_score::set_breaking (Array<Col_hpositions> const &breaking)
{
for (int j=0; j < breaking.size(); j++) {
- const Array<PCol*> &curline(breaking[j].cols);
- const Array<PCol*> &errors(breaking[j].error_col_l_arr_);
- const Array<Real> &config(breaking[j].config);
+ const Array<PCol*> &curline (breaking[j].cols);
+ const Array<PCol*> &errors (breaking[j].error_col_l_arr_);
+ const Array<Real> &config (breaking[j].config);
for (int i=0; i < errors.size(); i++)
errors[i]->error_mark_b_ = true;
@@ -102,8 +102,8 @@ Line_of_score::set_breaking(Array<Col_hpositions> const &breaking)
Line_of_score *line_p =0;
if (breaking.size() >1) {
- line_p = (Line_of_score*)clone()->spanner();
- line_p->copy_dependencies( *this );
+ line_p = (Line_of_score*)clone()->spanner ();
+ line_p->copy_dependencies (*this);
line_l = line_p;
} else
line_l = this;
@@ -113,8 +113,8 @@ Line_of_score::set_breaking(Array<Col_hpositions> const &breaking)
line_l->right_col_l_= curline.top();
if (line_p) {
- pscore_l_->typeset_broken_spanner(line_p);
- broken_into_l_arr_.push(line_p);
+ pscore_l_->typeset_broken_spanner (line_p);
+ broken_into_l_arr_.push (line_p);
}
for (int i=0; i < curline.size(); i++){
@@ -125,7 +125,7 @@ Line_of_score::set_breaking(Array<Col_hpositions> const &breaking)
}
void
-Line_of_score::break_into_pieces(bool)
+Line_of_score::break_into_pieces (bool)
{
}
@@ -136,10 +136,10 @@ Line_of_score::get_lines()const
if (broken_into_l_arr_.size())
for (int i=0; i < broken_into_l_arr_.size(); i++) {
- ret.push((Line_of_score*)broken_into_l_arr_[i]);
+ ret.push ((Line_of_score*)broken_into_l_arr_[i]);
}
else
- ret.push((Line_of_score*)this); // ugh
+ ret.push ((Line_of_score*)this); // ugh
return ret;
}
diff --git a/lily/scores.cc b/lily/scores.cc
index 3cfc56969c..fbd646b7a2 100644
--- a/lily/scores.cc
+++ b/lily/scores.cc
@@ -27,10 +27,10 @@ do_scores()
}
if (is_p->errorlevel_i_) {
- is_p->warning("Score contains errors. Will not process it. ");
+ is_p->warning ("Score contains errors. Will not process it. ");
exit_status_i_ |= 1;
} else {
- is_p->print ();
+ is_p->print();
is_p->process();
}
delete is_p;
@@ -41,13 +41,13 @@ do_scores()
}
void
-add_score(Score * s)
+add_score (Score * s)
{
- score_array_global.push(s);
+ score_array_global.push (s);
}
void
-set_default_output(String s)
+set_default_output (String s)
{
default_out_fn = s;
}
diff --git a/lily/script-column.cc b/lily/script-column.cc
index 1c1df618ba..9d9231e549 100644
--- a/lily/script-column.cc
+++ b/lily/script-column.cc
@@ -17,11 +17,11 @@ IMPLEMENT_IS_TYPE_B1(Script_column,Horizontal_vertical_group_item);
void
-Script_column::add(Script*s_l)
+Script_column::add (Script*s_l)
{
- script_l_arr_.push(s_l);
- add_dependency(s_l);
- add_element(s_l);
+ script_l_arr_.push (s_l);
+ add_dependency (s_l);
+ add_element (s_l);
}
@@ -29,15 +29,15 @@ void
Script_column::do_print()const
{
#ifndef NPRINT
- mtor << "scripts: " << script_l_arr_.size() << '\n';
+ DOUT << "scripts: " << script_l_arr_.size() << '\n';
#endif
}
static int
-idx(bool inside, int dir)
+idx (bool inside, int dir)
{
int j = (dir+1);
- if ( !inside )
+ if ( !inside)
j ++;
return j;
}
@@ -52,34 +52,34 @@ Script_column::do_pre_processing()
Array<Script*> placed_l_arr_a[4];
for (int i=0; i < script_l_arr_.size(); i++) {
Script*s_l = script_l_arr_[i];
- placed_l_arr_a[idx( s_l->inside_staff_b_ , s_l->dir_i_) ].push(s_l);
+ placed_l_arr_a[idx (s_l->inside_staff_b_ , s_l->dir_i_) ].push (s_l);
}
for (int j =0; j <4; j++) {
- placed_l_arr_a[j].sort( Script::compare);
+ placed_l_arr_a[j].sort (Script::compare);
}
for (int j =0; j < 4; j++) {
if (placed_l_arr_a[j].size())
for (int i=0; i < support_l_arr_.size(); i++)
- placed_l_arr_a[j][0]->add_support( support_l_arr_[i]);
+ placed_l_arr_a[j][0]->add_support (support_l_arr_[i]);
}
Item * support_l=0;
int j = 0;
- for (; j < 2; j++ ) {
+ for (; j < 2; j++) {
for (int i=0; i < placed_l_arr_a[j].size(); i++) {
if (support_l)
- placed_l_arr_a[j][i]->add_support(support_l);
+ placed_l_arr_a[j][i]->add_support (support_l);
support_l = placed_l_arr_a[j][i];
}
}
support_l = 0;
- for (; j < 4; j++ ) {
+ for (; j < 4; j++) {
for (int i=0; i < placed_l_arr_a[j].size(); i++) {
if (support_l)
- placed_l_arr_a[j][i]->add_support(support_l);
+ placed_l_arr_a[j][i]->add_support (support_l);
support_l = placed_l_arr_a[j][i];
}
}
@@ -87,18 +87,18 @@ Script_column::do_pre_processing()
void
-Script_column::add_support(Item*i_l)
+Script_column::add_support (Item*i_l)
{
- support_l_arr_.push(i_l);
- add_dependency( i_l);
- add_element(i_l);
+ support_l_arr_.push (i_l);
+ add_dependency (i_l);
+ add_element (i_l);
}
void
-Script_column::do_substitute_dependency(Score_elem*o,Score_elem*n)
+Script_column::do_substitute_dependency (Score_elem*o,Score_elem*n)
{
if (o->item()) {
- script_l_arr_.substitute((Script*)o->item(),(Script*) (n?n->item():0));
- support_l_arr_.substitute(o->item(), (n?n->item():0));
+ script_l_arr_.substitute ((Script*)o->item(),(Script*) (n?n->item ():0));
+ support_l_arr_.substitute (o->item(), (n?n->item ():0));
}
}
diff --git a/lily/script-def.cc b/lily/script-def.cc
index 856879eed7..a1970dc8d2 100644
--- a/lily/script-def.cc
+++ b/lily/script-def.cc
@@ -23,7 +23,7 @@ Script_def::Script_def()
}
void
-Script_def::set_from_input(String idx, bool follow, int stem, int staff ,bool invert, int priority_i)
+Script_def::set_from_input (String idx, bool follow, int stem, int staff ,bool invert, int priority_i)
{
inside_staff_b_ = follow;
symidx_str_ = idx ;
@@ -38,13 +38,13 @@ void
Script_def::do_print() const
{
#ifndef NPRINT
- mtor << "Script_def{ idx: " << symidx_str_
+ DOUT << "Script_def{ idx: " << symidx_str_
<< " direction, stem: " << rel_stem_dir_i_ << " staff : " << staff_dir_i_ << "}\n";
#endif
}
bool
-Script_def::do_equal_b(General_script_def const *g)const
+Script_def::do_equal_b (General_script_def const *g)const
{
Script_def const * c = (Script_def const*) g;
return (symidx_str_ == c->symidx_str_ &&
@@ -72,13 +72,13 @@ Script_def::inside_b() const
}
Atom
-Script_def::get_atom(Paper_def *p , int d)const
+Script_def::get_atom (Paper_def *p , int d)const
{
String preidx_str ="";
if (invertsym_b_&& d < 0)
preidx_str = "-";
- return p->lookup_l()->script(preidx_str + symidx_str_);
+ return p->lookup_l()->script (preidx_str + symidx_str_);
}
diff --git a/lily/script-grav.cc b/lily/script-grav.cc
index cd58609143..6c01af322a 100644
--- a/lily/script-grav.cc
+++ b/lily/script-grav.cc
@@ -16,17 +16,17 @@ Script_engraver::Script_engraver()
}
bool
-Script_engraver::do_try_request(Request *r_l)
+Script_engraver::do_try_request (Request *r_l)
{
- if (!r_l->musical() || ! r_l->musical()->musicalscript())
+ if (!r_l->musical() || ! r_l->musical ()->musicalscript ())
return false ;
for (int i=0; i < script_req_l_arr_.size(); i++) {
- if ( r_l->equal_b(script_req_l_arr_[i]))
+ if ( r_l->equal_b (script_req_l_arr_[i]))
return true;
}
- script_req_l_arr_.push( r_l->script());
+ script_req_l_arr_.push (r_l->script());
return true;
}
@@ -39,8 +39,8 @@ Script_engraver::do_process_requests()
Script *p =new Script;
p->dir_i_ = l->dir_i_;
p->specs_l_ = l->scriptdef_p_;
- script_p_arr_.push(p);
- announce_element(Score_elem_info(p, l));
+ script_p_arr_.push (p);
+ announce_element (Score_elem_info (p, l));
}
}
@@ -50,8 +50,8 @@ Script_engraver::do_pre_move_processing()
Staff_symbol* s_l = get_staff_info().staff_sym_l_;
for (int i=0; i < script_p_arr_.size(); i++) {
Script*script_p = script_p_arr_[i];
- script_p->set_staffsym( s_l);
- typeset_element(script_p);
+ script_p->set_staffsym (s_l);
+ typeset_element (script_p);
}
script_p_arr_.clear();
}
diff --git a/lily/script.cc b/lily/script.cc
index eb88b8756f..dbbda19724 100644
--- a/lily/script.cc
+++ b/lily/script.cc
@@ -22,19 +22,19 @@ Script::do_print() const
}
void
-Script::do_substitute_dependency(Score_elem*o,Score_elem*n)
+Script::do_substitute_dependency (Score_elem*o,Score_elem*n)
{
- Staff_side::do_substitute_dependency(o,n);
+ Staff_side::do_substitute_dependency (o,n);
if (o == stem_l_) {
stem_l_ = n ? (Stem*)n->item() : 0;
}
}
void
-Script::set_stem(Stem*st_l)
+Script::set_stem (Stem*st_l)
{
stem_l_ = st_l;
- add_support(st_l);
+ add_support (st_l);
}
@@ -51,23 +51,23 @@ Script::set_default_dir()
{
int s_i=specs_l_->rel_stem_dir_i();
if (s_i) {
- if(stem_l_)
+ if (stem_l_)
dir_i_ = stem_l_->dir_i_ * s_i;
else{
- specs_l_->warning("Script needs stem direction");
+ specs_l_->warning ("Script needs stem direction");
dir_i_ = -1;
}
} else {
dir_i_ =specs_l_->staff_dir_i();
}
- assert(dir_i_);
+ assert (dir_i_);
}
Interval
Script::do_width() const
{
- return specs_l_->get_atom(paper(), dir_i_).extent().x();
+ return specs_l_->get_atom (paper(), dir_i_).extent ().x ();
}
void
@@ -85,16 +85,16 @@ Script::do_pre_processing()
Interval
Script::symbol_height()const
{
- return specs_l_->get_atom(paper(), dir_i_).extent().y();
+ return specs_l_->get_atom (paper(), dir_i_).extent ().y ();
}
Molecule*
Script::brew_molecule_p() const
{
- Real dy = paper()->internote_f();
+ Real dy = paper()->internote_f ();
- Molecule*out = new Molecule(specs_l_->get_atom(paper(), dir_i_));
- out->translate(dy * pos_i_, Y_AXIS);
+ Molecule*out = new Molecule (specs_l_->get_atom (paper(), dir_i_));
+ out->translate (dy * pos_i_, Y_AXIS);
return out;
}
@@ -102,8 +102,8 @@ Script::brew_molecule_p() const
IMPLEMENT_IS_TYPE_B2(Script,Item,Staff_side);
int
-Script::compare(Script *const&l1, Script *const&l2)
+Script::compare (Script *const&l1, Script *const&l2)
{
- return l1->specs_l_->priority_i() - l2->specs_l_->priority_i();
+ return l1->specs_l_->priority_i() - l2->specs_l_->priority_i ();
}
diff --git a/lily/slur-grav.cc b/lily/slur-grav.cc
index 1c5c51df4e..3c4b1814e7 100644
--- a/lily/slur-grav.cc
+++ b/lily/slur-grav.cc
@@ -13,30 +13,30 @@
#include "note-column.hh"
bool
-Slur_engraver::do_try_request(Request *req_l)
+Slur_engraver::do_try_request (Request *req_l)
{
Musical_req *mus_l = req_l->musical();
- if(!mus_l || !mus_l->slur())
+ if (!mus_l || !mus_l->slur())
return false;
- new_slur_req_l_arr_.push(mus_l->slur());
+ new_slur_req_l_arr_.push (mus_l->slur());
return true;
}
void
-Slur_engraver::acknowledge_element(Score_elem_info info)
+Slur_engraver::acknowledge_element (Score_elem_info info)
{
- if (info.elem_l_->name() == Note_column::static_name()) {
+ if (info.elem_l_->name() == Note_column::static_name ()) {
Note_column *col_l =(Note_column*) info.elem_l_->item() ;// ugh
for (int i = 0; i < slur_l_stack_.size(); i++)
- slur_l_stack_[i]->add(col_l );
+ slur_l_stack_[i]->add (col_l);
for (int i = 0; i < end_slur_l_arr_.size(); i++)
- end_slur_l_arr_[i]->add(col_l);
+ end_slur_l_arr_[i]->add (col_l);
}
}
void
-Slur_engraver::set_feature(Feature f)
+Slur_engraver::set_feature (Feature f)
{
if (f.type_ == "vdir")
dir_i_ = f.value_ ;
@@ -59,22 +59,22 @@ Slur_engraver::do_process_requests()
if (slur_req_l->spantype == Span_req::STOP) {
if (slur_l_stack_.empty())
- slur_req_l->warning("can't find slur to end");
+ slur_req_l->warning ("can't find slur to end");
else {
- end_slur_l_arr_.push(slur_l_stack_.pop());
+ end_slur_l_arr_.push (slur_l_stack_.pop());
requests_arr_.pop();
}
} else if (slur_req_l->spantype == Span_req::START) {
// push a new slur onto stack.
//(use temp. array to wait for all slur STOPs)
Slur * s_p =new Slur;
- requests_arr_.push(slur_req_l);
- start_slur_l_arr_.push(s_p);
- announce_element(Score_elem_info(s_p, slur_req_l));
+ requests_arr_.push (slur_req_l);
+ start_slur_l_arr_.push (s_p);
+ announce_element (Score_elem_info (s_p, slur_req_l));
}
}
for (int i=0; i < start_slur_l_arr_.size(); i++)
- slur_l_stack_.push(start_slur_l_arr_[i]);
+ slur_l_stack_.push (start_slur_l_arr_[i]);
}
void
@@ -83,7 +83,7 @@ Slur_engraver::do_pre_move_processing()
for (int i = 0; i < end_slur_l_arr_.size(); i++) {
if (dir_i_)
end_slur_l_arr_[i]->dir_i_ = dir_i_;
- typeset_element(end_slur_l_arr_[i]);
+ typeset_element (end_slur_l_arr_[i]);
}
end_slur_l_arr_.clear();
}
@@ -96,7 +96,7 @@ Slur_engraver::do_post_move_processing()
Slur_engraver::~Slur_engraver()
{
for (int i=0; i < requests_arr_.size(); i++) {
- requests_arr_[i]->warning("unterminated slur");
+ requests_arr_[i]->warning ("unterminated slur");
}
}
diff --git a/lily/slur.cc b/lily/slur.cc
index 89bdd2444c..bb49473129 100644
--- a/lily/slur.cc
+++ b/lily/slur.cc
@@ -28,10 +28,10 @@
void
-Slur::add(Note_column*n)
+Slur::add (Note_column*n)
{
- encompass_arr_.push(n);
- add_dependency(n);
+ encompass_arr_.push (n);
+ add_dependency (n);
}
void
@@ -55,41 +55,41 @@ Slur::do_pre_processing()
void
-Slur::do_substitute_dependency(Score_elem*o, Score_elem*n)
+Slur::do_substitute_dependency (Score_elem*o, Score_elem*n)
{
int i;
- while((i = encompass_arr_.find_i((Note_column*)o->item())) >=0) {
+ while ((i = encompass_arr_.find_i ((Note_column*)o->item())) >=0) {
if (n)
encompass_arr_[i] = (Note_column*)n->item();
else
- encompass_arr_.del(i);
+ encompass_arr_.del (i);
}
}
static int
-Note_column_compare(Note_column *const&n1 , Note_column* const&n2)
+Note_column_compare (Note_column *const&n1 , Note_column* const&n2)
{
- return n1->pcol_l_->rank_i() - n2->pcol_l_->rank_i();
+ return n1->pcol_l_->rank_i() - n2->pcol_l_->rank_i ();
}
void
Slur::do_post_processing()
{
- encompass_arr_.sort(Note_column_compare);
+ encompass_arr_.sort (Note_column_compare);
if (!dir_i_)
set_default_dir();
- Real inter_f = paper()->internote_f();
+ Real inter_f = paper()->internote_f ();
if (encompass_arr_[0]->stem_l_)
- left_pos_i_ = rint(encompass_arr_[0]->stem_l_->height()[dir_i_]/inter_f);
+ left_pos_i_ = rint (encompass_arr_[0]->stem_l_->height()[dir_i_]/inter_f);
else
left_pos_i_ = rint ( encompass_arr_[0]->head_positions_interval()[dir_i_]);
if (encompass_arr_.top()->stem_l_)
- right_pos_i_ = rint(encompass_arr_.top()->stem_l_->height()[dir_i_]/inter_f);
+ right_pos_i_ = rint (encompass_arr_.top()->stem_l_->height ()[dir_i_]/inter_f);
else
- right_pos_i_ = rint (encompass_arr_.top()->head_positions_interval()[dir_i_]);
+ right_pos_i_ = rint (encompass_arr_.top()->head_positions_interval ()[dir_i_]);
left_pos_i_ += dir_i_;
right_pos_i_ += dir_i_;
diff --git a/lily/span-bar-grav.cc b/lily/span-bar-grav.cc
index 8e2663a265..737a4b92b9 100644
--- a/lily/span-bar-grav.cc
+++ b/lily/span-bar-grav.cc
@@ -23,19 +23,19 @@ Span_bar_engraver::get_span_bar_p()const
}
void
-Span_bar_engraver::acknowledge_element(Score_elem_info i)
+Span_bar_engraver::acknowledge_element (Score_elem_info i)
{
int depth = i.origin_grav_l_arr_.size();
if ( depth > 1
- && i.elem_l_->is_type_b( Bar::static_name() ) )
+ && i.elem_l_->is_type_b (Bar::static_name()) )
{
- bar_l_arr_.push( (Bar*)i.elem_l_->item() );
+ bar_l_arr_.push ((Bar*)i.elem_l_->item());
if (bar_l_arr_.size() >= 2 && !spanbar_p_) {
spanbar_p_ = get_span_bar_p();
- announce_element( Score_elem_info(spanbar_p_,0) );
+ announce_element (Score_elem_info (spanbar_p_,0));
}
- } else if (i.elem_l_->is_type_b( Vertical_align_spanner::static_name() )
+ } else if (i.elem_l_->is_type_b (Vertical_align_spanner::static_name())
&& i.origin_grav_l_arr_.size() <= 2) {
valign_l_ = (Vertical_align_spanner*)i.elem_l_->spanner();
}
@@ -46,12 +46,12 @@ Span_bar_engraver::do_pre_move_processing()
{
if (spanbar_p_) {
for (int i=0; i < bar_l_arr_.size() ; i++)
- spanbar_p_->add(bar_l_arr_[i]);
- spanbar_p_->set( valign_l_ );
- typeset_element(spanbar_p_);
+ spanbar_p_->add (bar_l_arr_[i]);
+ spanbar_p_->set (valign_l_);
+ typeset_element (spanbar_p_);
spanbar_p_ =0;
}
- bar_l_arr_.set_size( 0);
+ bar_l_arr_.set_size (0);
}
diff --git a/lily/span-bar.cc b/lily/span-bar.cc
index 1c9a8ba159..08340ce390 100644
--- a/lily/span-bar.cc
+++ b/lily/span-bar.cc
@@ -15,51 +15,51 @@
#include "vertical-align-elem.hh"
void
-Span_bar::add(Bar*b)
+Span_bar::add (Bar*b)
{
b->spanned_i_ ++;
- spanning_l_arr_.push(b);
- add_dependency( b );
+ spanning_l_arr_.push (b);
+ add_dependency (b);
}
void
-Span_bar::do_substitute_dependency(Score_elem*o, Score_elem*n)
+Span_bar::do_substitute_dependency (Score_elem*o, Score_elem*n)
{
Bar * bold = 0;
- if (o->is_type_b(Bar::static_name() ))
+ if (o->is_type_b (Bar::static_name()))
bold = (Bar*)o->item();
else
return;
bold->spanned_i_ --;
Bar * b =0;
- if (n && n->is_type_b(Bar::static_name() )) {
+ if (n && n->is_type_b (Bar::static_name())) {
b = (Bar*)n->item();
b->spanned_i_ ++;
}
- spanning_l_arr_.substitute( bold , b);
+ spanning_l_arr_.substitute (bold , b);
}
void
-Span_bar::set(Vertical_align_element *a)
+Span_bar::set (Vertical_align_element *a)
{
- add_dependency( a );
+ add_dependency (a);
}
Interval
Span_bar::do_width() const
{
- return paper()->lookup_l()->bar(type_str_, 40 PT).dim.x(); // ugh
+ return paper()->lookup_l ()->bar (type_str_, 40 PT).dim.x (); // ugh
}
void
Span_bar::do_pre_processing()
{
- if ( spanning_l_arr_.size () < 1) {
+ if ( spanning_l_arr_.size() < 1) {
transparent_b_ = true;
empty_b_ =true;
} else {
@@ -77,9 +77,9 @@ Span_bar::do_pre_processing()
}
Symbol
-Span_bar::get_bar_sym(Real dy) const
+Span_bar::get_bar_sym (Real dy) const
{
- return paper()->lookup_l()->bar(type_str_, dy);
+ return paper()->lookup_l ()->bar (type_str_, dy);
}
@@ -89,17 +89,17 @@ Span_bar::brew_molecule_p()const
Interval y_int;
for (int i=0; i < spanning_l_arr_.size(); i++) {
Axis_group_element *common =
- common_group(spanning_l_arr_[i], Y_AXIS);
+ common_group (spanning_l_arr_[i], Y_AXIS);
- Real y = spanning_l_arr_[i]->relative_coordinate(common, Y_AXIS)
- -relative_coordinate(common,Y_AXIS);
+ Real y = spanning_l_arr_[i]->relative_coordinate (common, Y_AXIS)
+ -relative_coordinate (common,Y_AXIS);
- y_int.unite( y + spanning_l_arr_[i]->height() );
+ y_int.unite (y + spanning_l_arr_[i]->height());
}
- Symbol s = get_bar_sym(y_int.length());
- Molecule*output = new Molecule(Atom(s));
- output->translate ( y_int[-1], Y_AXIS );
+ Symbol s = get_bar_sym (y_int.length());
+ Molecule*output = new Molecule (Atom (s));
+ output->translate ( y_int[-1], Y_AXIS);
return output;
}
diff --git a/lily/span-score-bar.cc b/lily/span-score-bar.cc
index d6a7a2fa71..35e34fe601 100644
--- a/lily/span-score-bar.cc
+++ b/lily/span-score-bar.cc
@@ -28,14 +28,14 @@ Span_score_bar::do_pre_processing()
Symbol
-Piano_brace::get_bar_sym(Real dy)const
+Piano_brace::get_bar_sym (Real dy)const
{
- return paper()->lookup_l()->vbrace(dy);
+ return paper()->lookup_l ()->vbrace (dy);
}
Interval
Piano_brace::do_width()const
{
- return Interval(0,0);
+ return Interval (0,0);
}
diff --git a/lily/spanner.cc b/lily/spanner.cc
index 01a02cf8d4..09ab9d73c0 100644
--- a/lily/spanner.cc
+++ b/lily/spanner.cc
@@ -18,43 +18,43 @@ void
Spanner::do_print()const
{
#ifndef NPRINT
- mtor << "Between col ";
- if ( left_col_l_ )
- mtor << left_col_l_->rank_i();
+ DOUT << "Between col ";
+ if ( left_col_l_)
+ DOUT << left_col_l_->rank_i();
else
- mtor << "nop";
- mtor << ", ";
- if ( right_col_l_ )
- mtor << right_col_l_->rank_i();
+ DOUT << "nop";
+ DOUT << ", ";
+ if ( right_col_l_)
+ DOUT << right_col_l_->rank_i();
else
- mtor << "nop";
+ DOUT << "nop";
if (broken_into_l_arr_.size())
- mtor << "with broken pieces\n";
+ DOUT << "with broken pieces\n";
#endif
}
void
-Spanner::break_into_pieces(bool copy_deps_b)
+Spanner::break_into_pieces (bool copy_deps_b)
{
- if ( broken_into_l_arr_.size() )
+ if ( broken_into_l_arr_.size())
return;
PCol * left = left_col_l_;
PCol * right = right_col_l_;
- if(left->daddy_l_) left = left->daddy_l_;
- if(right->daddy_l_) right = right->daddy_l_;
+ if (left->daddy_l_) left = left->daddy_l_;
+ if (right->daddy_l_) right = right->daddy_l_;
- Link_array<PCol> break_cols = pscore_l_->broken_col_range(left,right);
+ Link_array<PCol> break_cols = pscore_l_->broken_col_range (left,right);
Link_array<Spanner> broken_into_l_arr;
- break_cols.insert(left,0);
- break_cols.push(right);
+ break_cols.insert (left,0);
+ break_cols.push (right);
for (int i=1; i < break_cols.size(); i++) {
- Spanner* span_p = clone()->spanner();
+ Spanner* span_p = clone()->spanner ();
if (copy_deps_b)
- span_p->copy_dependencies( *this );
+ span_p->copy_dependencies (*this);
left = break_cols[i-1];
right = break_cols[i];
if (!right->line_l_)
@@ -62,13 +62,13 @@ Spanner::break_into_pieces(bool copy_deps_b)
if (!left->line_l_)
left = left->postbreak_p_;
- assert(left&&right && left->line_l_ == right->line_l_);
+ assert (left&&right && left->line_l_ == right->line_l_);
span_p->left_col_l_ = left;
span_p->right_col_l_ = right;
- pscore_l_->typeset_broken_spanner(span_p);
- broken_into_l_arr.push( span_p );
+ pscore_l_->typeset_broken_spanner (span_p);
+ broken_into_l_arr.push (span_p);
}
broken_into_l_arr_ = broken_into_l_arr;
@@ -89,7 +89,7 @@ Spanner::do_break_processing()
set_my_columns();
if (!line_l()) {
- break_into_pieces(true);
+ break_into_pieces (true);
for (int i=0; i < broken_into_l_arr_.size(); i++)
broken_into_l_arr_[i]->handle_broken_dependencies();
} else {
@@ -109,10 +109,10 @@ Spanner::do_width()const
{
Real r = right_col_l_->hpos_f_;
Real l = left_col_l_->hpos_f_;
- assert(*left_col_l_ < *right_col_l_);
- assert(r>=l);
+ assert (*left_col_l_ < *right_col_l_);
+ assert (r>=l);
- return Interval(0, r-l);
+ return Interval (0, r-l);
}
Line_of_score *
@@ -125,10 +125,10 @@ Spanner::line_l()const
Spanner*
-Spanner::find_broken_piece(Line_of_score*l)const
+Spanner::find_broken_piece (Line_of_score*l)const
{
for (int i=0; i < broken_into_l_arr_.size(); i++)
- if(broken_into_l_arr_[i]->line_l() == l)
+ if (broken_into_l_arr_[i]->line_l() == l)
return broken_into_l_arr_[i];
return 0;
diff --git a/lily/spring-spacer.cc b/lily/spring-spacer.cc
index 81196d6b24..d060529d63 100644
--- a/lily/spring-spacer.cc
+++ b/lily/spring-spacer.cc
@@ -29,7 +29,7 @@ Spring_spacer::default_solution()const
}
Score_column*
-Spring_spacer::scol_l(int i)
+Spring_spacer::scol_l (int i)
{
return (Score_column*)cols[i].pcol_l_;
}
@@ -38,7 +38,7 @@ const Real COLFUDGE=1e-3;
template class P<Real>; // ugh.
bool
-Spring_spacer::contains(PCol const *w)
+Spring_spacer::contains (PCol const *w)
{
for (int i=0; i< cols.size(); i++)
if (cols[i].pcol_l_ == w)
@@ -52,9 +52,9 @@ Spring_spacer::OK() const
{
#ifndef NDEBUG
for (int i = 1; i < cols.size(); i++)
- assert(cols[i].rank_i_ > cols[i-1].rank_i_);
+ assert (cols[i].rank_i_ > cols[i-1].rank_i_);
for (int i = 1; i < loose_col_arr_.size(); i++)
- assert(loose_col_arr_[i].rank_i_ > loose_col_arr_[i-1].rank_i_);
+ assert (loose_col_arr_[i].rank_i_ > loose_col_arr_[i-1].rank_i_);
#endif
}
@@ -64,21 +64,21 @@ Spring_spacer::OK() const
void
Spring_spacer::handle_loose_cols()
{
- Union_find connected(cols.size());
+ Union_find connected (cols.size());
Array<int> fixed;
- for (PCursor<Idealspacing*> i(ideal_p_list_.top()); i.ok(); i++){
- connected.connect(i->left_i_,i->right_i_);
+ for (PCursor<Idealspacing*> i (ideal_p_list_.top()); i.ok (); i++){
+ connected.connect (i->left_i_,i->right_i_);
}
for (int i = 0; i < cols.size(); i++)
if (cols[i].fixed())
- fixed.push(i);
+ fixed.push (i);
for (int i=1; i < fixed.size(); i++)
- connected.connect(fixed[i-1], fixed[i]);
+ connected.connect (fixed[i-1], fixed[i]);
- for (int i = cols.size(); i--; ) {
- if (! connected.equiv(fixed[0], i)) {
- warning("unconnected column: " + String(i));
- loosen_column(i);
+ for (int i = cols.size(); i--;) {
+ if (! connected.equiv (fixed[0], i)) {
+ warning ("unconnected column: " + String (i));
+ loosen_column (i);
}
}
OK();
@@ -90,13 +90,13 @@ Spring_spacer::handle_loose_cols()
regular distances from enclosing calced columns
*/
void
-Spring_spacer::position_loose_cols(Vector &sol_vec)const
+Spring_spacer::position_loose_cols (Vector &sol_vec)const
{
if (!loose_col_arr_.size())
return ;
- assert(sol_vec.dim());
+ assert (sol_vec.dim());
Array<bool> fix_b_arr;
- fix_b_arr.set_size(cols.size() + loose_col_arr_.size());
+ fix_b_arr.set_size (cols.size() + loose_col_arr_.size ());
Real utter_right_f=-infinity_f;
Real utter_left_f =infinity_f;
for (int i=0; i < loose_col_arr_.size(); i++) {
@@ -105,30 +105,30 @@ Spring_spacer::position_loose_cols(Vector &sol_vec)const
for (int i=0; i < cols.size(); i++) {
int r= cols[i].rank_i_;
fix_b_arr[r] = true;
- utter_right_f = utter_right_f >? sol_vec(i);
- utter_left_f = utter_left_f <? sol_vec(i);
+ utter_right_f = utter_right_f >? sol_vec (i);
+ utter_left_f = utter_left_f <? sol_vec (i);
}
- Vector v(fix_b_arr.size());
+ Vector v (fix_b_arr.size());
int j =0;
int k =0;
for (int i=0; i < v.dim(); i++) {
if (fix_b_arr[i]) {
- assert(cols[j].rank_i_ == i);
- v(i) = sol_vec(j++);
+ assert (cols[j].rank_i_ == i);
+ v (i) = sol_vec (j++);
} else {
Real left_pos_f =
- (j>0) ?sol_vec(j-1) : utter_left_f;
+ (j>0) ?sol_vec (j-1) : utter_left_f;
Real right_pos_f =
- (j < sol_vec.dim()) ? sol_vec(j) : utter_right_f;
+ (j < sol_vec.dim()) ? sol_vec (j) : utter_right_f;
int left_rank = (j>0) ? cols[j-1].rank_i_ : 0;
- int right_rank = (j<sol_vec.dim()) ? cols[j].rank_i_ : sol_vec.dim();
+ int right_rank = (j<sol_vec.dim()) ? cols[j].rank_i_ : sol_vec.dim ();
int d_r = right_rank - left_rank;
Colinfo loose=loose_col_arr_[k++];
int r = loose.rank_i_ ;
- assert(r > left_rank && r < right_rank);
+ assert (r > left_rank && r < right_rank);
- v(i) = (r - left_rank)*left_pos_f/ d_r +
+ v (i) = (r - left_rank)*left_pos_f/ d_r +
(right_rank - r) *right_pos_f /d_r;
}
}
@@ -136,15 +136,15 @@ Spring_spacer::position_loose_cols(Vector &sol_vec)const
}
bool
-Spring_spacer::check_constraints(Vector v) const
+Spring_spacer::check_constraints (Vector v) const
{
int dim=v.dim();
- assert(dim == cols.size());
+ assert (dim == cols.size());
for (int i=0; i < dim; i++) {
if (cols[i].fixed()&&
- abs(cols[i].fixed_position() - v(i)) > COLFUDGE)
+ abs (cols[i].fixed_position() - v (i)) > COLFUDGE)
return false;
if (!i)
@@ -154,7 +154,7 @@ Spring_spacer::check_constraints(Vector v) const
+cols[i].minleft();
// ugh... compares
- Real dif =v(i) - v(i-1)- mindist;
+ Real dif =v (i) - v (i-1)- mindist;
bool b = (dif > - COLFUDGE);
@@ -168,8 +168,8 @@ Spring_spacer::check_constraints(Vector v) const
bool
Spring_spacer::check_feasible() const
{
- Vector sol(try_initial_solution());
- return check_constraints(sol);
+ Vector sol (try_initial_solution());
+ return check_constraints (sol);
}
/// generate a solution which obeys the min distances and fixed positions
@@ -177,16 +177,16 @@ Vector
Spring_spacer::try_initial_solution() const
{
int dim=cols.size();
- Vector initsol(dim);
+ Vector initsol (dim);
for (int i=0; i < dim; i++) {
if (cols[i].fixed()) {
- initsol(i)=cols[i].fixed_position();
+ initsol (i)=cols[i].fixed_position();
if (i > 0) {
- Real r =initsol(i-1) + cols[i-1].minright();
- if (initsol(i) < r ) {
- warning("overriding fixed position");
- initsol(i) =r;
+ Real r =initsol (i-1) + cols[i-1].minright();
+ if (initsol (i) < r) {
+ warning ("overriding fixed position");
+ initsol (i) =r;
}
}
@@ -194,8 +194,8 @@ Spring_spacer::try_initial_solution() const
Real mindist=cols[i-1].minright()
+cols[i].minleft();
if (mindist < 0.0)
- warning("Excentric column");
- initsol(i)=initsol(i-1)+mindist;
+ warning ("Excentric column");
+ initsol (i)=initsol (i-1)+mindist;
}
}
@@ -207,48 +207,48 @@ Spring_spacer::try_initial_solution() const
Vector
Spring_spacer::find_initial_solution() const
{
- Vector v(try_initial_solution());
- assert(check_constraints(v));
+ Vector v (try_initial_solution());
+ assert (check_constraints (v));
return v;
}
// generate the matrices
void
-Spring_spacer::make_matrices(Matrix &quad, Vector &lin, Real &c) const
+Spring_spacer::make_matrices (Matrix &quad, Vector &lin, Real &c) const
{
- quad.fill(0);
- lin.fill(0);
+ quad.fill (0);
+ lin.fill (0);
c = 0;
- for (PCursor<Idealspacing*> i(ideal_p_list_.top()); i.ok(); i++) {
+ for (PCursor<Idealspacing*> i (ideal_p_list_.top()); i.ok (); i++) {
int l = i->left_i_;
int r = i->right_i_;
- quad(r,r) += i->hooke_f_;
- quad(r,l) -= i->hooke_f_;
- quad(l,r) -= i->hooke_f_;
- quad(l,l) += i->hooke_f_;
+ quad (r,r) += i->hooke_f_;
+ quad (r,l) -= i->hooke_f_;
+ quad (l,r) -= i->hooke_f_;
+ quad (l,l) += i->hooke_f_;
- lin(r) -= i->space_f_*i->hooke_f_;
- lin(l) += i->space_f_*i->hooke_f_;
+ lin (r) -= i->space_f_*i->hooke_f_;
+ lin (l) += i->space_f_*i->hooke_f_;
- c += sqr(i->space_f_);
+ c += sqr (i->space_f_);
}
}
void
-Spring_spacer::set_fixed_cols(Mixed_qp &qp)const
+Spring_spacer::set_fixed_cols (Mixed_qp &qp)const
{
for (int j=0; j < cols.size(); j++)
if (cols[j].fixed())
- qp.add_fixed_var(j,cols[j].fixed_position());
+ qp.add_fixed_var (j,cols[j].fixed_position());
}
// put the constraints into the LP problem
void
-Spring_spacer::make_constraints(Mixed_qp& lp) const
+Spring_spacer::make_constraints (Mixed_qp& lp) const
{
int dim=cols.size();
for (int j=0; j < dim; j++) {
@@ -258,47 +258,47 @@ Spring_spacer::make_constraints(Mixed_qp& lp) const
c1(j)=1.0 ;
c1(j-1)=-1.0 ;
- lp.add_inequality_cons(c1, cols[j-1].minright() +
+ lp.add_inequality_cons (c1, cols[j-1].minright() +
cols[j].minleft());
}
}
}
void
-Spring_spacer::lower_bound_solution(Col_hpositions*positions)const
+Spring_spacer::lower_bound_solution (Col_hpositions*positions)const
{
- Mixed_qp lp(cols.size());
- make_matrices(lp.quad,lp.lin, lp.const_term);
- set_fixed_cols(lp);
+ Mixed_qp lp (cols.size());
+ make_matrices (lp.quad,lp.lin, lp.const_term);
+ set_fixed_cols (lp);
- Vector start(cols.size());
- start.fill(0.0);
- Vector solution_vec(lp.solve(start));
+ Vector start (cols.size());
+ start.fill (0.0);
+ Vector solution_vec (lp.solve (start));
- positions->energy_f_ = lp.eval(solution_vec);
+ positions->energy_f_ = lp.eval (solution_vec);
positions->config = solution_vec;
- positions->satisfies_constraints_b_ = check_constraints(solution_vec);
+ positions->satisfies_constraints_b_ = check_constraints (solution_vec);
}
void
-Spring_spacer::solve(Col_hpositions*positions) const
+Spring_spacer::solve (Col_hpositions*positions) const
{
- assert(check_feasible());
+ assert (check_feasible());
- Mixed_qp lp(cols.size());
- make_matrices(lp.quad,lp.lin, lp.const_term);
- make_constraints(lp);
- set_fixed_cols(lp);
+ Mixed_qp lp (cols.size());
+ make_matrices (lp.quad,lp.lin, lp.const_term);
+ make_constraints (lp);
+ set_fixed_cols (lp);
Vector start=find_initial_solution();
- Vector solution_vec(lp.solve(start));
+ Vector solution_vec (lp.solve (start));
- positions->satisfies_constraints_b_ = check_constraints(solution_vec);
+ positions->satisfies_constraints_b_ = check_constraints (solution_vec);
if (!positions->satisfies_constraints_b_) {
WARN << "solution doesn't satisfy constraints.\n" ;
}
- position_loose_cols(solution_vec);
- positions->energy_f_ = lp.eval(solution_vec);
+ position_loose_cols (solution_vec);
+ positions->energy_f_ = lp.eval (solution_vec);
positions->config = solution_vec;
positions->error_col_l_arr_ = error_pcol_l_arr();
@@ -308,14 +308,14 @@ Spring_spacer::solve(Col_hpositions*positions) const
add one column to the problem.
*/
void
-Spring_spacer::add_column(PCol *col, bool fixed, Real fixpos)
+Spring_spacer::add_column (PCol *col, bool fixed, Real fixpos)
{
- Colinfo c(col,(fixed)? &fixpos : 0);
+ Colinfo c (col,(fixed)? &fixpos : 0);
if (cols.size())
c.rank_i_ = cols.top().rank_i_+1;
else
c.rank_i_ = 0;
- cols.push(c);
+ cols.push (c);
}
Line_of_cols
@@ -324,18 +324,18 @@ Spring_spacer::error_pcol_l_arr()const
Array<PCol*> retval;
for (int i=0; i< cols.size(); i++)
if (cols[i].ugh_b_)
- retval.push(cols[i].pcol_l_);
+ retval.push (cols[i].pcol_l_);
for (int i=0; i < loose_col_arr_.size(); i++) {
- retval.push(loose_col_arr_[i].pcol_l_);
+ retval.push (loose_col_arr_[i].pcol_l_);
}
return retval;
}
void
-Spring_spacer::loosen_column(int i)
+Spring_spacer::loosen_column (int i)
{
- Colinfo c=cols.get(i);
- for (PCursor<Idealspacing*> j(ideal_p_list_.top()); j.ok(); j++){
+ Colinfo c=cols.get (i);
+ for (PCursor<Idealspacing*> j (ideal_p_list_.top()); j.ok (); j++){
if (j->left_i_ == i|| j->right_i_ == i)
j.del();
else
@@ -348,7 +348,7 @@ Spring_spacer::loosen_column(int i)
if (loose_col_arr_[j].rank_i_ > c.rank_i_)
break;
}
- loose_col_arr_.insert(c,j);
+ loose_col_arr_.insert (c,j);
}
@@ -357,19 +357,18 @@ Spring_spacer::print() const
{
#ifndef NPRINT
for (int i=0; i < cols.size(); i++) {
- mtor << "col " << i<<' ';
+ DOUT << "col " << i<<' ';
cols[i].print();
}
- for (PCursor<Idealspacing*> i(ideal_p_list_.top()); i.ok(); i++){
+ for (PCursor<Idealspacing*> i (ideal_p_list_.top()); i.ok (); i++){
i->print();
}
#endif
-
}
void
-Spring_spacer::connect(int i, int j, Real d, Real h)
+Spring_spacer::connect (int i, int j, Real d, Real h)
{
Idealspacing * s = new Idealspacing;
s->left_i_ = i;
@@ -377,66 +376,10 @@ Spring_spacer::connect(int i, int j, Real d, Real h)
s->space_f_ = d;
s->hooke_f_ = h;
- ideal_p_list_.bottom().add(s);
+ ideal_p_list_.bottom().add (s);
}
/**
- walk through all durations in all Score_columns
- */
-struct Durations_iter
-{
- Spring_spacer * sp_l_;
- int col_i_;
- int d_i_;
-
- Durations_iter(Spring_spacer*);
-
- Moment duration()const;
- Moment when()const;
-
- bool ok()const;
- void next();
-};
-
-Durations_iter::Durations_iter(Spring_spacer * s)
-{
- col_i_ =0;
- d_i_ =0; // ugh
-
- sp_l_ = s;
- if (! sp_l_->scol_l(col_i_)->durations.size() )
- next();
-}
-
-Moment
-Durations_iter::duration() const
-{
- return sp_l_->scol_l(col_i_)->durations[d_i_];
-}
-
-bool
-Durations_iter::ok()const{
- return col_i_ < sp_l_->cols.size();
-}
-
-Moment
-Durations_iter::when()const{
- return sp_l_->scol_l(col_i_)->when();
-}
-
-void
-Durations_iter::next()
-{
- d_i_ ++;
- while ( col_i_ < sp_l_->cols.size()
- && d_i_ >= sp_l_->scol_l(col_i_)->durations.size()){
- col_i_ ++;
- d_i_ =0;
- }
-}
-
-
-/**
generate springs between columns.
UNDER DESTRUCTION
@@ -456,55 +399,55 @@ Spring_spacer::calc_idealspacing()
{
for (int i=0; i < cols.size(); i++)
- scol_l(i)->preprocess();
+ scol_l (i)->preprocess();
/* get the shortest running note at a time. */
- Array<Moment> shortest_arr_;
- {
- Durations_iter d_iter(this);
- for (int i=0; i < cols.size(); i++) {
- Moment now = scol_l(i)->when();
- while ( d_iter.ok() && now >= d_iter.when() ) {
- if ( now < d_iter.when() + d_iter.duration())
- break;
- d_iter.next();
+ Array<Moment> shortest_arr;
+ for (int i=0; i < cols.size(); i++) {
+ Moment now = scol_l (i)->when();
+ Moment shortest = infinity_mom;
+ // ji was j, but triggered ICE
+ for (int ji=i+1; ji --; ) {
+ if (scol_l(ji)->durations.size() &&
+ now - scol_l(ji)->when() >= shortest)
+ break;
+
+ for (int k = scol_l (ji)->durations.size();
+ k-- && scol_l(ji)->durations[k] + scol_l(ji)->when() > now;
+ )
+ {
+ shortest = shortest <? scol_l(ji)->durations[k];
}
- if ( d_iter.ok() && now >= d_iter.when()) {
- Durations_iter d2 = d_iter;
- Moment shortest = infinity_mom;
- while (d2.ok() && d2.when() <= now) {
- shortest = shortest <? d2.duration();
- d2.next();
- }
- shortest_arr_.push( shortest );
- } else
- shortest_arr_.push(0);
}
-
+ shortest_arr.push(shortest);
}
+
#ifndef NPRINT
- mtor << "shortest:[ ";
- for (int i=0; i < shortest_arr_.size(); i++)
- mtor << shortest_arr_[i] << " ";
- mtor << "]\n";
+ DOUT << "shortest:[ ";
+ for (int i=0; i < shortest_arr.size(); i++)
+ DOUT << shortest_arr[i] << " ";
+ DOUT << "]\n";
#endif
Array<Real> ideal_arr_;
Array<Real> hooke_arr_;
for (int i=0; i < cols.size(); i++){
- ideal_arr_.push( -1.0);
- hooke_arr_.push(1.0);
+ ideal_arr_.push (-1.0);
+ hooke_arr_.push (1.0);
}
for (int i=0; i < cols.size(); i++) {
- if ( !scol_l(i)->musical_b()) {
+ if ( !scol_l (i)->musical_b()) {
Real symbol_distance =cols[i].minright() + 2 PT;
Real durational_distance = 0;
if (i+1 < cols.size()) {
- Moment delta_t = scol_l(i+1)->when() - scol_l(i)->when() ;
+ Moment delta_t = scol_l (i+1)->when() - scol_l (i)->when () ;
+ /*
+ ugh should use shortest distance
+ */
if (delta_t)
- durational_distance = paper_l()->duration_to_dist(delta_t) ;
+ durational_distance = paper_l()->duration_to_dist (delta_t) ;
symbol_distance += cols[i+1].minleft();
}
@@ -513,19 +456,19 @@ Spring_spacer::calc_idealspacing()
}
}
for (int i=0; i < cols.size(); i++) {
- if (scol_l(i)->musical_b()) {
- Moment shortest_len = shortest_arr_[i];
- if ( ! shortest_len ) {
- warning( "Can't find a ruling note at "
- +String( scol_l(i)->when()));
+ if (scol_l (i)->musical_b()) {
+ Moment shortest_len = shortest_arr[i];
+ if ( ! shortest_len) {
+ warning ("Can't find a ruling note at "
+ +String (scol_l (i)->when()));
shortest_len = 1;
}
- Moment delta_t = scol_l(i+1)->when() - scol_l(i)->when();
- Real dist = paper_l()->duration_to_dist(shortest_len);
+ Moment delta_t = scol_l (i+1)->when() - scol_l (i)->when ();
+ Real dist = paper_l()->duration_to_dist (shortest_len);
dist *= delta_t / shortest_len;
- if (!scol_l(i+1)->musical_b() ) {
+ if (!scol_l (i+1)->musical_b()) {
- Real minimum_dist = cols[i+1].minleft() + 2 PT + cols[i].minright() ;
+ Real minimum_dist = cols[i+1].minleft() + 2 PT + cols[i].minright () ;
if (ideal_arr_[i+1] + minimum_dist < dist) {
ideal_arr_[i] = dist - ideal_arr_[i+1];
// hooke_arr_[i+1] =1.0;
@@ -540,7 +483,7 @@ Spring_spacer::calc_idealspacing()
for (int i=0; i < ideal_arr_.size()-1; i++) {
assert (ideal_arr_[i] >=0 && hooke_arr_[i] >=0);
- connect(i, i+1, ideal_arr_[i], hooke_arr_[i]);
+ connect (i, i+1, ideal_arr_[i], hooke_arr_[i]);
}
}
diff --git a/lily/staff-info.cc b/lily/staff-info.cc
index 5f7fed022d..f1c4a9ab7f 100644
--- a/lily/staff-info.cc
+++ b/lily/staff-info.cc
@@ -53,6 +53,6 @@ Staff_info::musical_pcol_l()
Moment
Staff_info::when()
{
- return command_l()->when();
+ return command_l()->when ();
}
diff --git a/lily/staff-performer.cc b/lily/staff-performer.cc
index edffec11c0..3bfb05286b 100644
--- a/lily/staff-performer.cc
+++ b/lily/staff-performer.cc
@@ -32,25 +32,23 @@ Staff_performer::do_creation_processing()
{
audio_staff_p_ = new Audio_staff;
- if (instrument_str().length_i()) {
- // staff name
- play (new Audio_text ( Audio_text::TRACK_NAME, instrument_str ()));
- // instrument description
- play (new Audio_text (Audio_text::INSTRUMENT_NAME, instrument_str ()));
- }
+ // staff name
+ play (new Audio_text (Audio_text::TRACK_NAME, instrument_str()));
+
+ // instrument description
+ play (new Audio_text (Audio_text::INSTRUMENT_NAME, instrument_str()));
// tempo
- play(new Audio_tempo(get_tempo_i()));
+ play (new Audio_tempo (get_tempo_i()));
- if (instrument_str ().length_i ())
- // instrument
- play (new Audio_instrument (instrument_str ()));
+ // instrument
+ play (new Audio_instrument (instrument_str()));
}
void
Staff_performer::do_removal_processing()
{
- Performer::play( audio_staff_p_ );
+ Performer::play (audio_staff_p_);
audio_staff_p_ = 0;
}
@@ -61,11 +59,11 @@ Staff_performer::instrument_str()
}
void
-Staff_performer::play( Audio_element* p )
+Staff_performer::play (Audio_element* p)
{
- if (p->is_type_b(Audio_item::static_name())) {
- audio_staff_p_->add((Audio_item*)p);
+ if (p->is_type_b (Audio_item::static_name())) {
+ audio_staff_p_->add ((Audio_item*)p);
}
- Performer::play(p);
+ Performer::play (p);
}
diff --git a/lily/staff-side.cc b/lily/staff-side.cc
index 6cade842a5..704dc21ede 100644
--- a/lily/staff-side.cc
+++ b/lily/staff-side.cc
@@ -14,16 +14,16 @@
#include "debug.hh"
void
-Staff_side::set_staffsym(Staff_symbol* s_l)
+Staff_side::set_staffsym (Staff_symbol* s_l)
{
staff_sym_l_ = s_l;
- add_dependency( s_l );
+ add_dependency (s_l);
}
Staff_side::Staff_side()
{
pos_i_ =0;
- sym_int_ = Interval(0,0);
+ sym_int_ = Interval (0,0);
staff_size_i_ = 0;
staff_sym_l_=0;
dir_i_ =0;
@@ -45,32 +45,32 @@ Staff_side::support_height() const
Interval r;
for (int i=0; i < support_l_arr_.size(); i++)
- r.unite(support_l_arr_[i]->height());
+ r.unite (support_l_arr_[i]->height());
if (r.empty_b()) {
- r = Interval(0,0);
+ r = Interval (0,0);
}
return r;
}
void
-Staff_side::add_support(Score_elem*i)
+Staff_side::add_support (Score_elem*i)
{
- support_l_arr_.push(i);
- add_dependency(i);
+ support_l_arr_.push (i);
+ add_dependency (i);
}
int
Staff_side::get_position_i()const
{
if (!dir_i_) {
- warning("Staff_side::get_position_i(): "
+ warning ("Staff_side::get_position_i(): "
"somebody forgot to set my vertical direction, returning -20");
return -20;
}
Real y=0;
- Real inter_f = paper()-> internote_f();
+ Real inter_f = paper()-> internote_f ();
if (!inside_staff_b_) {
y = (dir_i_ > 0 && staff_sym_l_) ? staff_sym_l_->steps_i() + 2: -2;
y *=inter_f;
@@ -85,28 +85,28 @@ Staff_side::get_position_i()const
Interval v= support_height();
y = v[dir_i_] + 2*dir_i_*inter_f; // ugh
}
- return int(rint(Real(y)/inter_f)); // should ret a float?
+ return int (rint (Real (y)/inter_f)); // should ret a float?
}
Interval
Staff_side::symbol_height() const
{
- return Interval(0,0);
+ return Interval (0,0);
}
void
Staff_side::do_post_processing()
{
sym_int_ = symbol_height();
- pos_i_ = get_position_i( );
+ pos_i_ = get_position_i();
if (dir_i_)
- pos_i_ += int(rint(- sym_int_[-dir_i_] / paper()->internote_f()));
+ pos_i_ += int (rint (- sym_int_[-dir_i_] / paper()->internote_f ()));
}
void
-Staff_side::do_substitute_dependency(Score_elem*o, Score_elem*n)
+Staff_side::do_substitute_dependency (Score_elem*o, Score_elem*n)
{
- support_l_arr_.unordered_substitute(o,n);
+ support_l_arr_.unordered_substitute (o,n);
if (staff_sym_l_ == o)
staff_sym_l_ = n ? (Staff_symbol*) n->spanner():0;
}
diff --git a/lily/staff-sym-grav.cc b/lily/staff-sym-grav.cc
index 03de4a59d9..5aff3e3536 100644
--- a/lily/staff-sym-grav.cc
+++ b/lily/staff-sym-grav.cc
@@ -13,14 +13,14 @@
const NO_LINES = 5;
void
-Staff_sym_engraver::fill_staff_info(Staff_info&i)
+Staff_sym_engraver::fill_staff_info (Staff_info&i)
{
i.staff_sym_l_ = span_p_;
}
Staff_sym_engraver::~Staff_sym_engraver()
{
- assert( !span_p_);
+ assert (!span_p_);
}
Staff_sym_engraver::Staff_sym_engraver()
@@ -31,24 +31,19 @@ Staff_sym_engraver::Staff_sym_engraver()
void
Staff_sym_engraver::do_creation_processing()
{
- span_p_ = new Staff_symbol(NO_LINES);
- span_p_->left_col_l_ = get_staff_info().command_pcol_l(); // ugh
+ span_p_ = new Staff_symbol (NO_LINES);
+ span_p_->left_col_l_ = get_staff_info().command_pcol_l (); // ugh
+ announce_element (Score_elem_info (span_p_, 0));
}
void
Staff_sym_engraver::do_removal_processing()
{
- span_p_->right_col_l_ = get_staff_info().command_pcol_l();
- typeset_element(span_p_);
+ span_p_->right_col_l_ = get_staff_info().command_pcol_l ();
+ typeset_element (span_p_);
span_p_ =0;
}
-void
-Staff_sym_engraver::do_process_requests()
-{
- announce_element(Score_elem_info(span_p_, 0));
-}
-
IMPLEMENT_IS_TYPE_B1(Staff_sym_engraver,Engraver);
diff --git a/lily/staff-sym.cc b/lily/staff-sym.cc
index c228be5870..4e1a81d955 100644
--- a/lily/staff-sym.cc
+++ b/lily/staff-sym.cc
@@ -13,7 +13,7 @@
-Staff_symbol::Staff_symbol(int l)
+Staff_symbol::Staff_symbol (int l)
{
no_lines_i_ = l;
}
@@ -26,21 +26,21 @@ Staff_symbol::do_print()const
{
#ifndef NPRINT
Spanner::do_print();
- mtor << "lines: " << no_lines_i_;
+ DOUT << "lines: " << no_lines_i_;
#endif
}
Molecule*
Staff_symbol::brew_molecule_p() const
{
- Atom a = paper()->lookup_l()->linestaff(no_lines_i_, width().length());
- return new Molecule(a);
+ Atom a = paper()->lookup_l ()->linestaff (no_lines_i_, width ().length ());
+ return new Molecule (a);
}
void
-Staff_symbol::set_extent(PCol*p1, PCol*p2)
+Staff_symbol::set_extent (PCol*p1, PCol*p2)
{
- assert(p1&&p2);
+ assert (p1&&p2);
left_col_l_ = p1;
right_col_l_ = p2;
}
@@ -48,7 +48,7 @@ Staff_symbol::set_extent(PCol*p1, PCol*p2)
Real
Staff_symbol::inter_note_f()const
{
- return paper()->internote_f();
+ return paper()->internote_f ();
}
int
diff --git a/lily/stem-beam-grav.cc b/lily/stem-beam-grav.cc
index 70fca43bf7..1872d89868 100644
--- a/lily/stem-beam-grav.cc
+++ b/lily/stem-beam-grav.cc
@@ -26,12 +26,12 @@ Stem_beam_engraver::Stem_beam_engraver()
}
bool
-Stem_beam_engraver::do_try_request(Request*req_l)
+Stem_beam_engraver::do_try_request (Request*req_l)
{
Musical_req* mus_l = req_l->musical();
/* Debiele puntkomma's. Laat je er eentje per ongeluk achter een
- if(..) staan, lijkt het net op een luis in gcc.
+ if (..) staan, lijkt het net op een luis in gcc.
(ofwel Python rules)
*/
@@ -39,23 +39,23 @@ Stem_beam_engraver::do_try_request(Request*req_l)
return false;
- if ( mus_l->beam() ) {
- if (bool(beam_p_ ) == bool(mus_l->beam()->spantype == Span_req::START))
+ if ( mus_l->beam()) {
+ if (bool (beam_p_) == bool (mus_l->beam()->spantype == Span_req::START))
return false;
- if (beam_req_l_ && beam_req_l_ ->equal_b(mus_l))
+ if (beam_req_l_ && beam_req_l_ ->equal_b (mus_l))
return false;
beam_req_l_ = mus_l->beam();
return true;
}
- if ( mus_l->stem() ) {
- if (current_grouping && !current_grouping->child_fit_b(
+ if ( mus_l->stem()) {
+ if (current_grouping && !current_grouping->child_fit_b (
get_staff_info().time_C_->whole_in_measure_))
return false;
- if (stem_req_l_ && !stem_req_l_->equal_b( mus_l ) )
+ if (stem_req_l_ && !stem_req_l_->equal_b (mus_l) )
return false;
stem_req_l_ = mus_l->stem();
@@ -74,28 +74,28 @@ Stem_beam_engraver::do_process_requests()
} else {
beam_p_ = new Beam;
start_req_l_ = beam_req_l_;
- beam_p_->left_col_l_ = get_staff_info().musical_pcol_l();
+ beam_p_->left_col_l_ = get_staff_info().musical_pcol_l ();
current_grouping = new Rhythmic_grouping;
if (beam_req_l_->nplet) {
Text_spanner* t = new Text_spanner();
Text_def *defp = new Text_def;
- t->set_support(beam_p_);
+ t->set_support (beam_p_);
defp->align_i_ = 0;
defp->text_str_ = beam_req_l_->nplet;
defp->style_str_="italic";
t->spec_p_ = defp;
- announce_element(Score_elem_info(t,0));
- typeset_element(t);
+ announce_element (Score_elem_info (t,0));
+ typeset_element (t);
}
- announce_element ( Score_elem_info(beam_p_, 0));
+ announce_element ( Score_elem_info (beam_p_, 0));
}
}
if (stem_req_l_) {
- stem_p_ = new Stem(8);
+ stem_p_ = new Stem (8);
if (current_grouping)
- current_grouping->add_child(
+ current_grouping->add_child (
get_staff_info().time_C_->whole_in_measure_,
stem_req_l_->duration());
@@ -103,29 +103,29 @@ Stem_beam_engraver::do_process_requests()
if (beam_p_) {
if (stem_req_l_->duration_.type_i_<= 4)
- stem_req_l_->warning( "stem doesn't fit in Beam");
+ stem_req_l_->warning ("stem doesn't fit in Beam");
else
- beam_p_->add(stem_p_);
+ beam_p_->add (stem_p_);
stem_p_->print_flag_b_ = false;
} else {
stem_p_->print_flag_b_ = true;
}
- announce_element(Score_elem_info(stem_p_, stem_req_l_));
+ announce_element (Score_elem_info (stem_p_, stem_req_l_));
}
}
void
-Stem_beam_engraver::acknowledge_element(Score_elem_info info)
+Stem_beam_engraver::acknowledge_element (Score_elem_info info)
{
if (!stem_p_)
return;
- if (info.elem_l_->name() == Note_head::static_name() &&
+ if (info.elem_l_->name() == Note_head::static_name () &&
stem_req_l_->duration()
- == info.req_l_->musical()->rhythmic()->duration()){
+ == info.req_l_->musical()->rhythmic ()->duration ()){
Note_head * n_l= (Note_head*)info.elem_l_->item();
- stem_p_->add(n_l);
+ stem_p_->add (n_l);
}
}
void
@@ -135,15 +135,15 @@ Stem_beam_engraver::do_pre_move_processing()
if (default_dir_i_)
stem_p_->dir_i_ = default_dir_i_;
- typeset_element(stem_p_);
+ typeset_element (stem_p_);
stem_p_ = 0;
}
if (beam_p_ && end_beam_b_) {
Rhythmic_grouping const * rg_C = get_staff_info().rhythmic_C_;
- rg_C->extend(current_grouping->interval());
- beam_p_->set_grouping(*rg_C, *current_grouping);
- beam_p_->right_col_l_ = get_staff_info().musical_pcol_l();
- typeset_element(beam_p_);
+ rg_C->extend (current_grouping->interval());
+ beam_p_->set_grouping (*rg_C, *current_grouping);
+ beam_p_->right_col_l_ = get_staff_info().musical_pcol_l ();
+ typeset_element (beam_p_);
delete current_grouping;
current_grouping = 0;
beam_p_ = 0;
@@ -162,11 +162,11 @@ Stem_beam_engraver::do_post_move_processing()
Stem_beam_engraver::~Stem_beam_engraver()
{
if (beam_p_)
- start_req_l_->warning("unterminated beam");
+ start_req_l_->warning ("unterminated beam");
}
void
-Stem_beam_engraver::set_feature(Feature i)
+Stem_beam_engraver::set_feature (Feature i)
{
if (i.type_ == "vdir")
default_dir_i_ = i.value_;
diff --git a/lily/stem.cc b/lily/stem.cc
index d0f9f8105c..5a6fec0c77 100644
--- a/lily/stem.cc
+++ b/lily/stem.cc
@@ -37,7 +37,7 @@ Stem::max_head_i() const
}
-Stem::Stem(int c)
+Stem::Stem (int c)
{
beams_left_i_ = 0;
beams_right_i_ = 0;
@@ -58,7 +58,7 @@ void
Stem::do_print() const
{
#ifndef NPRINT
- mtor << "flag "<< flag_i_ << " print_flag_b_ " << print_flag_b_;
+ DOUT << "flag "<< flag_i_ << " print_flag_b_ " << print_flag_b_;
#endif
}
@@ -82,28 +82,28 @@ Stem::stem_end_f() const
void
-Stem::set_stemend(Real se)
+Stem::set_stemend (Real se)
{
// todo: margins
if (! ((dir_i_ > 0 && se >= max_head_i()) ||
- (se <= min_head_i() && dir_i_ <0)) )
- warning("Weird stem size; check for narrow beams");
+ (se <= min_head_i() && dir_i_ <0)) )
+ warning ("Weird stem size; check for narrow beams");
stem_top_f_ = (dir_i_ < 0) ? max_head_i() : se;
stem_bottom_f_ = (dir_i_ < 0) ? se : min_head_i();
}
void
-Stem::add(Note_head *n)
+Stem::add (Note_head *n)
{
- n->add_dependency(this);
+ n->add_dependency (this);
if (n->rest_b_) {
- rest_l_arr_.push(n);
+ rest_l_arr_.push (n);
} else if (n->balltype_i_ == 1) {
- whole_l_arr_.push(n);
+ whole_l_arr_.push (n);
return;
} else{
- head_l_arr_.push(n);
+ head_l_arr_.push (n);
}
}
@@ -162,11 +162,11 @@ Stem::set_default_stemlen()
// ugh... how about non 5-line staffs?
- if ((max_head_i() < -2 && dir_i_ == 1 )
- ||(min_head_i() > staff_size_i_ && dir_i_ == -1) ){
- set_stemend( staff_size_i_ /2 -1 );
+ if ((max_head_i() < -2 && dir_i_ == 1)
+ ||(min_head_i() > staff_size_i_ && dir_i_ == -1)){
+ set_stemend (staff_size_i_ /2 -1);
} else {
- set_stemend( (dir_i_ > 0) ? max_head_i() + STEMLEN :
+ set_stemend ((dir_i_ > 0) ? max_head_i() + STEMLEN :
min_head_i() - STEMLEN);
}
@@ -179,10 +179,10 @@ Stem::set_default_extents()
if (!stem_length_f())
set_default_stemlen();
- set_stemend((dir_i_< 0) ?
- max_head_i()-stem_length_f(): min_head_i() +stem_length_f());
+ set_stemend ((dir_i_< 0) ?
+ max_head_i()-stem_length_f (): min_head_i () +stem_length_f ());
if (dir_i_ > 0){
- stem_xoffset_f_ = paper()->note_width()-paper()->rule_thickness();
+ stem_xoffset_f_ = paper()->note_width ()-paper ()->rule_thickness ();
} else
stem_xoffset_f_ = 0;
}
@@ -196,9 +196,9 @@ Stem::set_default_extents()
void
Stem::set_noteheads()
{
- if(!head_l_arr_.size())
+ if (!head_l_arr_.size())
return;
- head_l_arr_.sort(Note_head::compare);
+ head_l_arr_.sort (Note_head::compare);
if (dir_i_ < 0)
head_l_arr_.reverse();
@@ -207,7 +207,7 @@ Stem::set_noteheads()
int parity=1;
int lastpos = head_l_arr_[0]->position_i_;
for (int i=1; i < head_l_arr_.size(); i ++) {
- int dy =abs(lastpos- head_l_arr_[i]->position_i_);
+ int dy =abs (lastpos- head_l_arr_[i]->position_i_);
if (dy <= 1) {
if (parity)
@@ -225,7 +225,7 @@ Stem::do_pre_processing()
if (stem_bottom_f_== stem_top_f_)
set_default_extents();
set_noteheads();
- flag_i_ = dir_i_*abs(flag_i_);
+ flag_i_ = dir_i_*abs (flag_i_);
transparent_b_ = invisible_b();
empty_b_ = invisible_b();
}
@@ -234,10 +234,10 @@ Stem::do_pre_processing()
Interval
Stem::do_width()const
{
- if (!print_flag_b_ || abs(flag_i_) <= 4)
- return Interval(0,0); // TODO!
+ if (!print_flag_b_ || abs (flag_i_) <= 4)
+ return Interval (0,0); // TODO!
Paper_def*p= paper();
- Interval r(p->lookup_l()->flag(flag_i_).dim.x());
+ Interval r (p->lookup_l()->flag (flag_i_).dim.x ());
r+= stem_xoffset_f_;
return r;
}
@@ -250,27 +250,27 @@ Stem::brew_molecule_p()const
Real bot = stem_bottom_f_;
Real top = stem_top_f_;
- assert(bot!=top);
+ assert (bot!=top);
Paper_def *p =paper();
Real dy = p->internote_f();
- Symbol ss =p->lookup_l()->stem(bot*dy,top*dy);
+ Symbol ss =p->lookup_l()->stem (bot*dy,top*dy);
- out = new Molecule(Atom(ss));
+ out = new Molecule (Atom (ss));
- if (print_flag_b_&&abs(flag_i_) > 4){
- Symbol fl = p->lookup_l()->flag(flag_i_);
- Molecule m(fl);
+ if (print_flag_b_&&abs (flag_i_) > 4){
+ Symbol fl = p->lookup_l()->flag (flag_i_);
+ Molecule m (fl);
if (flag_i_ < -4){
- out->add_bottom(m);
+ out->add_bottom (m);
} else if (flag_i_ > 4) {
- out->add_top(m);
+ out->add_top (m);
} else
- assert(false);
+ assert (false);
}
- out->translate(stem_xoffset_f_, X_AXIS);
+ out->translate (stem_xoffset_f_, X_AXIS);
return out;
}
@@ -282,11 +282,11 @@ Stem::hpos_f()const
void
-Stem::do_substitute_dependency(Score_elem*o,Score_elem*n)
+Stem::do_substitute_dependency (Score_elem*o,Score_elem*n)
{
Item * o_l = o->item();
Item * n_l = n? n->item():0;
- whole_l_arr_.substitute((Note_head*)o_l, (Note_head*)n_l);
- head_l_arr_.substitute((Note_head*)o_l, (Note_head*)n_l);
- rest_l_arr_.substitute((Note_head*)o_l, (Note_head*)n_l);
+ whole_l_arr_.substitute ((Note_head*)o_l, (Note_head*)n_l);
+ head_l_arr_.substitute ((Note_head*)o_l, (Note_head*)n_l);
+ rest_l_arr_.substitute ((Note_head*)o_l, (Note_head*)n_l);
}
diff --git a/lily/super-elem.cc b/lily/super-elem.cc
index cf7884fd7a..5ca4a6c9c3 100644
--- a/lily/super-elem.cc
+++ b/lily/super-elem.cc
@@ -17,7 +17,7 @@ Super_elem::TeX_string()const
String s;
for (int i=0; i < lines_arr_.size(); i++){
s += lines_arr_[i]->TeX_string();
- if (i + 1<lines_arr_.size() )
+ if (i + 1<lines_arr_.size())
s += "\\interscoreline"; // TODO
}
return s;
@@ -28,12 +28,12 @@ Super_elem::handle_broken_dependencies()
{
lines_arr_ = line_of_score_l_->get_lines();
for (int i =0; i < lines_arr_.size(); i++)
- add_dependency(lines_arr_[i]);
+ add_dependency (lines_arr_[i]);
}
void
-Super_elem::do_substitute_dependency(Score_elem*o,Score_elem* n)
+Super_elem::do_substitute_dependency (Score_elem*o,Score_elem* n)
{
if (line_of_score_l_ == o->spanner())
line_of_score_l_ = n?(Line_of_score*)n->spanner():0;
@@ -47,8 +47,8 @@ Super_elem::Super_elem()
void
Super_elem::do_add_processing()
{
- pscore_l_->typeset_unbroken_spanner( line_of_score_l_ );
- add_dependency(line_of_score_l_);
+ pscore_l_->typeset_unbroken_spanner (line_of_score_l_);
+ add_dependency (line_of_score_l_);
}
diff --git a/lily/swallow-grav.cc b/lily/swallow-grav.cc
index b445c9c4b5..385cd55c44 100644
--- a/lily/swallow-grav.cc
+++ b/lily/swallow-grav.cc
@@ -13,7 +13,7 @@ ADD_THIS_ENGRAVER(Swallow_engraver);
bool
-Swallow_engraver::do_try_request(Request*)
+Swallow_engraver::do_try_request (Request*)
{
return true;
}
diff --git a/lily/symbol.cc b/lily/symbol.cc
index 8a83027610..a4c95b304e 100644
--- a/lily/symbol.cc
+++ b/lily/symbol.cc
@@ -3,12 +3,12 @@
Symbol::Symbol()
- : dim(Interval(0,0),Interval(0,0))
+ : dim (Interval (0,0),Interval (0,0))
{
tex = "\\unknown";
}
-Symbol::Symbol(String s, Box b)
- : dim(b)
+Symbol::Symbol (String s, Box b)
+ : dim (b)
{
tex = s;
}
@@ -17,5 +17,5 @@ Symbol::Symbol(String s, Box b)
String
Symbol::str()const
{
- return "symbol(\'"+tex+"\', (" + dim.x().str() + ", " + dim.y().str() + "))";
+ return "symbol (\'"+tex+"\', (" + dim.x().str () + ", " + dim.y ().str () + "))";
}
diff --git a/lily/symtable.cc b/lily/symtable.cc
index 3ba4394cc2..35f4c4166e 100644
--- a/lily/symtable.cc
+++ b/lily/symtable.cc
@@ -19,27 +19,27 @@ Symtables::Symtables()
{
}
-Symtables::Symtables(Symtables const &s)
+Symtables::Symtables (Symtables const &s)
{
- for (Assoc_iter<String, Symtable*> i(s); i.ok(); i++) {
- add(i.key(), new Symtable(*i.val()));
+ for (Assoc_iter<String, Symtable*> i (s); i.ok(); i++) {
+ add (i.key(), new Symtable (*i.val ()));
}
}
Symtables::~Symtables()
{
- for (Assoc_iter<String, Symtable*> i(*this); i.ok(); i++) {
+ for (Assoc_iter<String, Symtable*> i (*this); i.ok(); i++) {
delete i.val();
}
}
Symbol
-Symtable::lookup(String s) const
+Symtable::lookup (String s) const
{
- if (elt_b(s))
+ if (elt_b (s))
return (*this)[s];
else {
- warning( "Symtable `" + id_str+ "\': unknown symbol `" +s+"'\n");
+ warning ("Symtable `" + id_str+ "\': unknown symbol `" +s+"'\n");
Symbol sy;
return sy;
}
@@ -53,23 +53,23 @@ Symtables::operator()(String s)
void
Symtables::print() const
{
- for (Assoc_iter<String, Symtable*> i(*this); i.ok(); i++) {
- mtor << "table \'" << i.key() << "\' {\n";
- i.val()->print();
- mtor << "}\n";
+ for (Assoc_iter<String, Symtable*> i (*this); i.ok(); i++) {
+ DOUT << "table \'" << i.key() << "\' {\n";
+ i.val()->print ();
+ DOUT << "}\n";
}
}
void
Symtable::print() const
{
- for (Assoc_iter<String, Symbol> i(*this); i.ok(); i++) {
- mtor << "\'" << i.key() << "\'->" << i.val().str() << "\n";
+ for (Assoc_iter<String, Symbol> i (*this); i.ok(); i++) {
+ DOUT << "\'" << i.key() << "\'->" << i.val ().str () << "\n";
}
}
void
-Symtables::add(String s, Symtable*p)
+Symtables::add (String s, Symtable*p)
{
p-> id_str = s;
- Assoc<String, Symtable*>::add(s,p);
+ Assoc<String, Symtable*>::add (s,p);
}
diff --git a/lily/template1.cc b/lily/template1.cc
index 0a765f3110..8fbefa72a7 100644
--- a/lily/template1.cc
+++ b/lily/template1.cc
@@ -17,11 +17,11 @@
#include "plist.tcc"
-#define IPLC_instantiate(a) IPL_instantiate(a); PL_instantiate(const a)
+#define IPLC_INSTANTIATE(a) IPL_INSTANTIATE(a); template PL_INSTANTIATE(const a)
-IPLC_instantiate(Score_elem);
-IPLC_instantiate(Spanner);
-IPLC_instantiate(Idealspacing);
-IPLC_instantiate(PCol);
+template IPLC_INSTANTIATE(Score_elem);
+template IPLC_INSTANTIATE(Spanner);
+template IPLC_INSTANTIATE(Idealspacing);
+template IPLC_INSTANTIATE(PCol);
diff --git a/lily/template2.cc b/lily/template2.cc
index b09b378aee..67c24f5a58 100644
--- a/lily/template2.cc
+++ b/lily/template2.cc
@@ -10,4 +10,4 @@
#include "plist.tcc"
#include "pcursor.tcc"
-IPL_instantiate(Line_spacer);
+ template IPL_INSTANTIATE(Line_spacer);
diff --git a/lily/template3.cc b/lily/template3.cc
index 82d84d1965..2e368d5219 100644
--- a/lily/template3.cc
+++ b/lily/template3.cc
@@ -13,5 +13,5 @@
#include "plist.tcc"
#include "pcursor.tcc"
-IPL_instantiate(Atom);
-IPL_instantiate(Input_translator);
+template IPL_INSTANTIATE(Atom);
+template IPL_INSTANTIATE(Input_translator);
diff --git a/lily/template4.cc b/lily/template4.cc
index 484729579b..a1ef773cd2 100644
--- a/lily/template4.cc
+++ b/lily/template4.cc
@@ -6,8 +6,9 @@
(c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
*/
+#if 0
#include "proto.hh"
#include "list.tcc"
#include "cursor.tcc"
-L_instantiate(void *);
+#endif
diff --git a/lily/template5.cc b/lily/template5.cc
index e57925bf5b..bf7523d7d8 100644
--- a/lily/template5.cc
+++ b/lily/template5.cc
@@ -14,13 +14,13 @@
#include "interval.tcc"
-Interval__instantiate(Rational);
-Interval__instantiate(int);
+template INTERVAL__INSTANTIATE(Rational);
+template INTERVAL__INSTANTIATE(int);
Rational
Interval_t<Rational>::infinity()
{
- return Rational(INT_MAX);
+ return Rational (INT_MAX);
}
int
diff --git a/lily/template6.cc b/lily/template6.cc
index 38344df600..e8f04f8122 100644
--- a/lily/template6.cc
+++ b/lily/template6.cc
@@ -3,5 +3,5 @@
#include "engraver.hh"
#include "performer.hh"
-IPL_instantiate(Engraver);
-IPL_instantiate(Performer);
+template IPL_INSTANTIATE(Engraver);
+template IPL_INSTANTIATE(Performer);
diff --git a/lily/template7.cc b/lily/template7.cc
index 6a5bb7d83f..b36c232753 100644
--- a/lily/template7.cc
+++ b/lily/template7.cc
@@ -14,5 +14,5 @@
#include "music-list.hh"
#include "music-iterator.hh"
-IPL_instantiate(Music);
-IPL_instantiate(Music_iterator);
+template IPL_INSTANTIATE(Music);
+template IPL_INSTANTIATE(Music_iterator);
diff --git a/lily/template8.cc b/lily/template8.cc
index de06b70477..de2fa8af8e 100644
--- a/lily/template8.cc
+++ b/lily/template8.cc
@@ -15,7 +15,7 @@
#include "plist.tcc"
-IPL_instantiate(Audio_element);
-IPL_instantiate(Audio_column);
+template IPL_INSTANTIATE(Audio_element);
+template IPL_INSTANTIATE(Audio_column);
diff --git a/lily/tex-beam.cc b/lily/tex-beam.cc
index c337baf38a..6f835e204a 100644
--- a/lily/tex-beam.cc
+++ b/lily/tex-beam.cc
@@ -14,31 +14,31 @@
#include "lookup.hh"
Symbol
-Lookup::beam_element(int sidx, int widx, Real slope) const
+Lookup::beam_element (int sidx, int widx, Real slope) const
{
- Symbol bs=(*symtables_)("beamslopes")->lookup("slope");
+ Symbol bs=(*symtables_)("beamslopes")->lookup ("slope");
Array<String> args;
- args.push(sidx);
- args.push(widx);
- bs.tex = substitute_args(bs.tex,args);
+ args.push (sidx);
+ args.push (widx);
+ bs.tex = substitute_args (bs.tex,args);
int w = 2 << widx;
Real width = w PT;
- bs.dim.x() = Interval(0,width);
- bs.dim.y() = Interval(0,width*slope);
+ bs.dim.x() = Interval (0,width);
+ bs.dim.y() = Interval (0,width*slope);
return bs;
}
// ugh.. hard wired tex-code.
static int
-slope_index(Real &s)
+slope_index (Real &s)
{
- if (abs(s) > 0.5) {
+ if (abs (s) > 0.5) {
WARN << "beam steeper than 0.5 (" << s << ")\n";
- s = sign(s) * 0.5;
+ s = sign (s) * 0.5;
}
- int i = int(rint(s * 20.0));
+ int i = int (rint (s * 20.0));
s = i/20.0;
if (s>0)
@@ -48,26 +48,26 @@ slope_index(Real &s)
}
Symbol
-Lookup::rule_symbol(Real height, Real width) const
+Lookup::rule_symbol (Real height, Real width) const
{
- Symbol bs=(*symtables_)("beamslopes")->lookup("horizontal");
+ Symbol bs=(*symtables_)("beamslopes")->lookup ("horizontal");
Array<String> args;
- args.push(print_dimen(height));
- args.push(print_dimen(width));
- bs.tex = substitute_args(bs.tex,args);
- bs.dim.x() = Interval(0,width);
- bs.dim.y() = Interval(0,height);
+ args.push (print_dimen (height));
+ args.push (print_dimen (width));
+ bs.tex = substitute_args (bs.tex,args);
+ bs.dim.x() = Interval (0,width);
+ bs.dim.y() = Interval (0,height);
return bs;
}
Symbol
-Lookup::beam(Real &slope, Real width) const
+Lookup::beam (Real &slope, Real width) const
{
- int sidx = slope_index(slope);
+ int sidx = slope_index (slope);
if (!slope)
- return rule_symbol(2 PT, width);
+ return rule_symbol (2 PT, width);
if (width < 2 PT) {
- WARN<<"Beam too narrow. (" << print_dimen(width) <<")\n";
+ WARN<<"Beam too narrow. (" << print_dimen (width) <<")\n";
width = 2 PT;
}
Real elemwidth = 64 PT;
@@ -82,23 +82,23 @@ Lookup::beam(Real &slope, Real width) const
Real overlap = elemwidth/4;
Real last_x = width - elemwidth;
Real x = overlap;
- Atom elem(beam_element(sidx, widx, slope));
- Atom a(elem);
- m.add(a);
+ Atom elem (beam_element (sidx, widx, slope));
+ Atom a (elem);
+ m.add (a);
while (x < last_x) {
a=elem;
- a.translate(Offset(x-overlap, (x-overlap)*slope));
- m.add(a);
+ a.translate (Offset (x-overlap, (x-overlap)*slope));
+ m.add (a);
x += elemwidth - overlap;
}
a=elem;
- a.translate(Offset(last_x, (last_x) * slope));
- m.add(a);
+ a.translate (Offset (last_x, (last_x) * slope));
+ m.add (a);
Symbol ret;
ret.tex = m.TeX_string();
- ret.dim.y() = Interval(0,width*slope);
- ret.dim.x() = Interval(0,width);
+ ret.dim.y() = Interval (0,width*slope);
+ ret.dim.x() = Interval (0,width);
return ret;
}
diff --git a/lily/tex-slur.cc b/lily/tex-slur.cc
index b7c0660a43..a8d30583c7 100644
--- a/lily/tex-slur.cc
+++ b/lily/tex-slur.cc
@@ -17,10 +17,10 @@
static
-char direction_char(int y_sign)
+char direction_char (int y_sign)
{
char c='#';
- switch(y_sign){
+ switch (y_sign){
case -1:
c = 'd';
break;
@@ -31,19 +31,19 @@ char direction_char(int y_sign)
c = 'u';
break;
default:
- assert(false);
+ assert (false);
}
return c;
}
Symbol
-Lookup::half_slur_middlepart(Real &dx, int dir) const
+Lookup::half_slur_middlepart (Real &dx, int dir) const
{
if (dx >= 400 PT) {// todo
- WARN<<"halfslur too large" <<print_dimen(dx)<< "shrinking (ugh)\n";
+ WARN<<"halfslur too large" <<print_dimen (dx)<< "shrinking (ugh)\n";
dx = 400 PT;
}
- int widx = int(floor(dx / 4.0));
+ int widx = int (floor (dx / 4.0));
dx = widx * 4.0;
if (widx) widx --;
else {
@@ -52,11 +52,11 @@ Lookup::half_slur_middlepart(Real &dx, int dir) const
Symbol s;
- s.dim.y() = Interval(min(0,0), max(0,0)); // todo
- s.dim.x() = Interval(0,dx);
+ s.dim.y() = Interval (min (0,0), max (0,0)); // todo
+ s.dim.x() = Interval (0,dx);
- String f = String("\\hslurchar");
- f += direction_char(0);
+ String f = String ("\\hslurchar");
+ f += direction_char (0);
int idx = widx;
if (dir < 0)
@@ -64,44 +64,44 @@ Lookup::half_slur_middlepart(Real &dx, int dir) const
assert (idx < 256);
- f+=String( "{" ) + String( idx ) + "}";
+ f+=String ("{") + String (idx ) + "}";
s.tex = f;
- Atom a(s);
- a.translate(dx/2, X_AXIS);
+ Atom a (s);
+ a.translate (dx/2, X_AXIS);
s.tex = a.TeX_string();
return s;
}
Symbol
-Lookup::half_slur(int dy, Real &dx, int dir, int xpart) const
+Lookup::half_slur (int dy, Real &dx, int dir, int xpart) const
{
Real orig_dx = dx;
if (!xpart)
- return half_slur_middlepart(dx, dir);
+ return half_slur_middlepart (dx, dir);
int widx;
if (dx >= 96 PT) {
- WARN << "Slur half too wide." << print_dimen(orig_dx) << " shrinking (ugh)\n";
+ WARN << "Slur half too wide." << print_dimen (orig_dx) << " shrinking (ugh)\n";
dx = 96 PT;
}
- widx = int(rint(dx/12.0));
+ widx = int (rint (dx/12.0));
dx = widx*12.0;
if (widx)
widx --;
else {
- WARN << "slur too narrow " << print_dimen(orig_dx)<<"\n";
+ WARN << "slur too narrow " << print_dimen (orig_dx)<<"\n";
}
Symbol s;
- s.dim.x() = Interval(0,dx);
- s.dim.y() = Interval(min(0,dy), max(0,dy));
+ s.dim.x() = Interval (0,dx);
+ s.dim.y() = Interval (min (0,dy), max (0,dy));
- String f = String("\\hslurchar");
+ String f = String ("\\hslurchar");
- f+= direction_char(dir);
+ f+= direction_char (dir);
int hidx = dy;
if (hidx <0)
@@ -114,7 +114,7 @@ Lookup::half_slur(int dy, Real &dx, int dir, int xpart) const
idx += 128;
assert (idx < 256);
- f+=String( "{" ) + String( idx ) + "}";
+ f+=String ("{") + String (idx ) + "}";
s.tex = f;
@@ -125,10 +125,10 @@ Lookup::half_slur(int dy, Real &dx, int dir, int xpart) const
Symbol
Lookup::slur (int dy , Real &dx, int dir) const
{
- assert(dx >=0 && abs(dir) <= 1);
- int y_sign = sign(dy);
+ assert (dx >=0 && abs (dir) <= 1);
+ int y_sign = sign (dy);
- bool large = abs(dy) > 8;
+ bool large = abs (dy) > 8;
if (y_sign) {
large |= dx>= 4*16 PT;
@@ -136,15 +136,15 @@ Lookup::slur (int dy , Real &dx, int dir) const
large |= dx>= 4*54 PT;
if (large) {
- return big_slur(dy, dx, dir);
+ return big_slur (dy, dx, dir);
}
Real orig_dx = dx;
- int widx = int(floor(dx/4.0)); // slurs better too small..
+ int widx = int (floor (dx/4.0)); // slurs better too small..
dx = 4.0 * widx;
if (widx)
widx --;
else {
- WARN << "slur too narrow: " << print_dimen(orig_dx) << "\n";
+ WARN << "slur too narrow: " << print_dimen (orig_dx) << "\n";
}
int hidx = dy;
@@ -156,10 +156,10 @@ Lookup::slur (int dy , Real &dx, int dir) const
}
Symbol s;
- s.dim.x() = Interval(0,dx);
- s.dim.y() = Interval(min(0,dy), max(0,dy));
+ s.dim.x() = Interval (0,dx);
+ s.dim.y() = Interval (min (0,dy), max (0,dy));
- String f = String("\\slurchar") + String( direction_char(y_sign) );
+ String f = String ("\\slurchar") + String (direction_char (y_sign));
int idx=-1;
if (y_sign) {
@@ -168,7 +168,7 @@ Lookup::slur (int dy , Real &dx, int dir) const
idx += 128;
} else {
if (dx >= 4*54 PT) {
- WARN << "slur too wide: " << print_dimen(dx) <<
+ WARN << "slur too wide: " << print_dimen (dx) <<
" shrinking (ugh)\n";
dx = 4*54 PT;
}
@@ -178,41 +178,41 @@ Lookup::slur (int dy , Real &dx, int dir) const
}
assert (idx < 256);
- f+=String( "{" ) + String( idx ) + "}";
+ f+=String ("{") + String (idx ) + "}";
s.tex = f;
- Atom a(s);
- a.translate(dx/2, X_AXIS);
+ Atom a (s);
+ a.translate (dx/2, X_AXIS);
s.dim = a.extent();
s.tex = a.TeX_string();
return s;
}
Symbol
-Lookup::big_slur(int dy , Real &dx, int dir) const
+Lookup::big_slur (int dy , Real &dx, int dir) const
{
- assert(dx >= 24 PT);
- Real slur_extra =abs(dy) /2.0 + 2;
- int l_dy = int(Real (dy)/2 + slur_extra*dir);
+ assert (dx >= 24 PT);
+ Real slur_extra =abs (dy) /2.0 + 2;
+ int l_dy = int (Real (dy)/2 + slur_extra*dir);
int r_dy = dy - l_dy;
Real internote_f = paper_l_->internote_f();
Real left_wid = dx/4.0;
Real right_wid = left_wid;
- Atom l = half_slur(l_dy, left_wid, dir, -1);
- Atom r = half_slur(r_dy, right_wid, dir, 1);
+ Atom l = half_slur (l_dy, left_wid, dir, -1);
+ Atom r = half_slur (r_dy, right_wid, dir, 1);
Real mid_wid = dx - left_wid - right_wid;
- Atom m = half_slur(0, mid_wid, dir, 0);
+ Atom m = half_slur (0, mid_wid, dir, 0);
Molecule mol;
- mol.add(l);
- Atom a(m);
- a.translate(slur_extra * internote_f, Y_AXIS);
- mol.add_right(m);
- mol.add_right(r);
- mol.translate( l_dy * internote_f, Y_AXIS);
+ mol.add (l);
+ Atom a (m);
+ a.translate (slur_extra * internote_f, Y_AXIS);
+ mol.add_right (m);
+ mol.add_right (r);
+ mol.translate (l_dy * internote_f, Y_AXIS);
Symbol s;
s.tex = mol.TeX_string();
s.dim = mol.extent();
diff --git a/lily/tex-stream.cc b/lily/tex-stream.cc
index 2c92ae7438..ee08205c10 100644
--- a/lily/tex-stream.cc
+++ b/lily/tex-stream.cc
@@ -9,7 +9,7 @@
make an abstract interface to output, operations:
- move(x,y), put(symbol).
+ move (x,y), put (symbol).
*/
#include <fstream.h>
@@ -22,11 +22,11 @@
const int MAXLINELEN = 200;
-Tex_stream::Tex_stream(String filename)
+Tex_stream::Tex_stream (String filename)
{
- os = new ofstream(filename);
+ os = new ofstream (filename);
if (!*os)
- error("can't open `" + filename+"\'");
+ error ("can't open `" + filename+"\'");
nest_level = 0;
line_len_i_ = 0;
outputting_comment=false;
@@ -37,13 +37,13 @@ Tex_stream::header()
{
*os << "% Creator: " << get_version_str() << "\n";
*os << "% Automatically generated, at ";
- time_t t(time(0));
- *os << ctime(&t)<<"\n";
+ time_t t (time (0));
+ *os << ctime (&t)<<"\n";
}
Tex_stream::~Tex_stream()
{
delete os;
- assert(nest_level == 0);
+ assert (nest_level == 0);
}
// print string. don't forget indent.
@@ -61,7 +61,7 @@ Tex_stream::operator<<(String s)
continue;
}
line_len_i_ ++;
- switch(*cp)
+ switch (*cp)
{
case '%':
outputting_comment = true;
@@ -77,7 +77,7 @@ Tex_stream::operator<<(String s)
if (nest_level < 0) {
delete os; // we want to see the remains.
- assert(nest_level>=0);
+ assert (nest_level>=0);
}
/* FALLTHROUGH */
@@ -102,7 +102,7 @@ void
Tex_stream::break_line()
{
*os << "%\n";
- *os << String(' ', nest_level);
+ *os << String (' ', nest_level);
line_len_i_ = 0;
}
diff --git a/lily/tex.cc b/lily/tex.cc
index 470dd49ea6..6e5e987f5d 100644
--- a/lily/tex.cc
+++ b/lily/tex.cc
@@ -12,42 +12,42 @@
#include "varray.hh"
String
-vstrut(Real h)
+vstrut (Real h)
{
- return String("\\vrule height ") + print_dimen(h) + "depth 0pt width 0pt";
+ return String ("\\vrule height ") + print_dimen (h) + "depth 0pt width 0pt";
}
static void
-substitute_arg(String& r, String arg)
+substitute_arg (String& r, String arg)
{
- int p = r.index_i('%');
+ int p = r.index_i ('%');
if (p < 0)
return ;
- r = r.left_str(p) + arg + r.right_str(r.length_i() - p -1);
+ r = r.left_str (p) + arg + r.right_str (r.length_i() - p -1);
}
String
-substitute_args(String source, Array<String> args)
+substitute_args (String source, Array<String> args)
{
String retval (source);
for (int i = 0 ; i < args.size(); i++)
- substitute_arg(retval, args[i]);
+ substitute_arg (retval, args[i]);
/*
- while (retval.index_i('%') >= 0)
- substitute_arg(retval, "");
+ while (retval.index_i ('%') >= 0)
+ substitute_arg (retval, "");
*/
return retval;
}
String
-substitute_args(String source, Array<Scalar> args)
+substitute_args (String source, Array<Scalar> args)
{
Array<String> sv;
for (int i = 0 ; i < args.size(); i++)
- sv.push(args[i]);
+ sv.push (args[i]);
- return substitute_args(source, sv);
+ return substitute_args (source, sv);
}
diff --git a/lily/text-def.cc b/lily/text-def.cc
index 39318c9094..e0de0eb79b 100644
--- a/lily/text-def.cc
+++ b/lily/text-def.cc
@@ -14,12 +14,12 @@
#include "dimen.hh"
Interval
-Text_def::width(Paper_def * p) const
+Text_def::width (Paper_def * p) const
{
- Atom a = get_atom(p,0);
+ Atom a = get_atom (p,0);
- Real guess_width_f = text_str_.length_i() * a.sym_.dim.x().length(); // ugh
- Interval i(0, guess_width_f);
+ Real guess_width_f = text_str_.length_i() * a.sym_.dim.x ().length (); // ugh
+ Interval i (0, guess_width_f);
i += - (align_i_ + 1)* i.center();
return i;
}
@@ -28,7 +28,7 @@ void
Text_def::do_print() const
{
#ifndef NPRINT
- mtor << "align " <<align_i_ << " `" << text_str_ << "'";
+ DOUT << "align " <<align_i_ << " `" << text_str_ << "'";
#endif
}
@@ -39,7 +39,7 @@ Text_def::Text_def()
}
bool
-Text_def::do_equal_b(General_script_def const *gdef) const
+Text_def::do_equal_b (General_script_def const *gdef) const
{
Text_def const *def= (Text_def*)gdef;
return align_i_ == def->align_i_ && text_str_ == def->text_str_
@@ -47,15 +47,15 @@ Text_def::do_equal_b(General_script_def const *gdef) const
}
Atom
-Text_def::get_atom(Paper_def *p, int ) const
+Text_def::get_atom (Paper_def *p, int) const
{
- return p->lookup_l()->text(style_str_, text_str_, -align_i_);
+ return p->lookup_l()->text (style_str_, text_str_, -align_i_);
}
void
Text_def::print() const
{
- mtor << "Text `" << text_str_ << "\', style " <<
+ DOUT << "Text `" << text_str_ << "\', style " <<
style_str_ << "align " << align_i_ << '\n';
}
diff --git a/lily/text-grav.cc b/lily/text-grav.cc
index be857aaf80..3165fc87a9 100644
--- a/lily/text-grav.cc
+++ b/lily/text-grav.cc
@@ -18,30 +18,30 @@ Text_engraver::Text_engraver()
}
bool
-Text_engraver::do_try_request(Request*req_l)
+Text_engraver::do_try_request (Request*req_l)
{
Musical_req *m = req_l->musical();
if (!m || ! m->text())
return false;
- if (text_req_l_ && text_req_l_->equal_b(m))
+ if (text_req_l_ && text_req_l_->equal_b (m))
return false;
text_req_l_ = m->text();
return true;
}
void
-Text_engraver::acknowledge_element(Score_elem_info i)
+Text_engraver::acknowledge_element (Score_elem_info i)
{
- if (text_p_ && i.elem_l_->name() == Note_column::static_name()) {
- text_p_->add_support(i.elem_l_);
+ if (text_p_ && i.elem_l_->name() == Note_column::static_name ()) {
+ text_p_->add_support (i.elem_l_);
}
}
void
Text_engraver::do_process_requests()
{
if (text_req_l_) {
- text_p_ = new Text_item(text_req_l_->tdef_p_, text_req_l_->dir_i_); // ugh
- announce_element(Score_elem_info(text_p_, text_req_l_));
+ text_p_ = new Text_item (text_req_l_->tdef_p_, text_req_l_->dir_i_); // ugh
+ announce_element (Score_elem_info (text_p_, text_req_l_));
}
}
void
@@ -51,14 +51,14 @@ Text_engraver::do_pre_move_processing()
if (dir_i_ && !text_p_->dir_i_)
text_p_->dir_i_ = dir_i_;
Staff_symbol* s_l = get_staff_info().staff_sym_l_;
- text_p_->set_staffsym(s_l);
- typeset_element(text_p_);
+ text_p_->set_staffsym (s_l);
+ typeset_element (text_p_);
text_p_ = 0;
}
}
void
-Text_engraver::set_feature(Feature i)
+Text_engraver::set_feature (Feature i)
{
if (i.type_ == "vdir")
dir_i_ = i.value_;
diff --git a/lily/text-item.cc b/lily/text-item.cc
index ad5745f6a5..951976a16a 100644
--- a/lily/text-item.cc
+++ b/lily/text-item.cc
@@ -14,7 +14,7 @@
#include "molecule.hh"
#include "lookup.hh"
-Text_item::Text_item(General_script_def*tdef_l, int d)
+Text_item::Text_item (General_script_def*tdef_l, int d)
{
dir_i_ = d;
fat_b_ = false;
@@ -36,23 +36,23 @@ Text_item::do_pre_processing()
Interval
Text_item::symbol_height()const
{
- return tdef_p_->get_atom(paper(), dir_i_).sym_.dim.y();
+ return tdef_p_->get_atom (paper(), dir_i_).sym_.dim.y ();
}
Molecule*
Text_item::brew_molecule_p() const
{
- Atom a(tdef_p_->get_atom(paper(), dir_i_));
+ Atom a (tdef_p_->get_atom (paper(), dir_i_));
/*
if ( fat_b_)
- a.sym.dim.x = tdef_p_->width(paper());
+ a.sym.dim.x = tdef_p_->width (paper());
*/
- Molecule* mol_p = new Molecule(a);
+ Molecule* mol_p = new Molecule (a);
- if(dir_i_<0 ) // should do something better anyway.
- mol_p->translate( -mol_p->extent().y().left , Y_AXIS);
- mol_p->translate( pos_i_ * paper()->internote_f(), Y_AXIS);
+ if (dir_i_<0) // should do something better anyway.
+ mol_p->translate (-mol_p->extent().y ().left , Y_AXIS);
+ mol_p->translate (pos_i_ * paper()->internote_f (), Y_AXIS);
return mol_p;
}
diff --git a/lily/text-spanner.cc b/lily/text-spanner.cc
index a9e6f4f257..0e6226bf1f 100644
--- a/lily/text-spanner.cc
+++ b/lily/text-spanner.cc
@@ -16,13 +16,13 @@
void
-Text_spanner::set_support(Directional_spanner*d)
+Text_spanner::set_support (Directional_spanner*d)
{
if (support_span_l_)
- remove_dependency(support_span_l_);
+ remove_dependency (support_span_l_);
support_span_l_ =d;
- add_dependency(d);
+ add_dependency (d);
}
Text_spanner::Text_spanner()
@@ -44,17 +44,17 @@ void
Text_spanner::do_post_processing()
{
text_off_ = support_span_l_->center() +
- Offset(0,support_span_l_->dir_i_ * paper()->internote_f() * 4); // todo
+ Offset (0,support_span_l_->dir_i_ * paper()->internote_f () * 4); // todo
}
Molecule*
Text_spanner::brew_molecule_p() const
{
- Atom tsym (spec_p_->get_atom(paper(),0));
- tsym.translate(text_off_);
+ Atom tsym (spec_p_->get_atom (paper(),0));
+ tsym.translate (text_off_);
Molecule*output = new Molecule;
- output->add( tsym );
+ output->add (tsym);
return output;
}
@@ -63,17 +63,17 @@ Text_spanner::do_pre_processing()
{
right_col_l_ = support_span_l_->right_col_l_;
left_col_l_ = support_span_l_->left_col_l_;
- assert(left_col_l_ && right_col_l_);
+ assert (left_col_l_ && right_col_l_);
}
Interval
Text_spanner::height()const
{
- return brew_molecule_p()->extent().y();
+ return brew_molecule_p()->extent ().y ();
}
void
-Text_spanner::do_substitute_dependency(Score_elem* o, Score_elem*n)
+Text_spanner::do_substitute_dependency (Score_elem* o, Score_elem*n)
{
if (support_span_l_ == o)
support_span_l_ = (Directional_spanner*) (n?n->spanner():0);
@@ -85,8 +85,8 @@ Text_spanner::~Text_spanner()
delete spec_p_;
}
-Text_spanner::Text_spanner(Text_spanner const&s)
- : Spanner( s)
+Text_spanner::Text_spanner (Text_spanner const&s)
+ : Spanner (s)
{
support_span_l_ = s.support_span_l_;
spec_p_ = s.spec_p_? s.spec_p_->clone() : 0;
diff --git a/lily/tie-grav.cc b/lily/tie-grav.cc
index e49cd5b7e5..cbe5f35f7b 100644
--- a/lily/tie-grav.cc
+++ b/lily/tie-grav.cc
@@ -27,14 +27,14 @@ Tie_engraver::Tie_engraver()
void
Tie_engraver::sync_features()
{
- dir_i_ = get_feature("vdir");
+ dir_i_ = get_feature ("vdir");
}
void
Tie_engraver::do_post_move_processing()
{
- if (tie_p_ && get_staff_info().when() == end_mom_) {
+ if (tie_p_ && get_staff_info().when () == end_mom_) {
end_tie_p_ = tie_p_;
end_req_l_ = req_l_;
end_melodic_req_l_ = melodic_req_l_;
@@ -45,22 +45,22 @@ Tie_engraver::do_post_move_processing()
}
bool
-Tie_engraver::acceptable_request_b(Request*r)
+Tie_engraver::acceptable_request_b (Request*r)
{
- return r->musical() && r->musical()->tie();
+ return r->musical() && r->musical ()->tie ();
}
bool
-Tie_engraver::do_try_request(Request*r)
+Tie_engraver::do_try_request (Request*r)
{
- if(!acceptable_request_b(r))
+ if (!acceptable_request_b (r))
return false;
- if (req_l_ ) {
+ if (req_l_) {
return false;
}
- req_l_ = r->musical()->tie();
- end_mom_ = r->parent_music_l_->time_int().length()
- + get_staff_info().when();
+ req_l_ = r->musical()->tie ();
+ end_mom_ = r->parent_music_l_->time_int().length ()
+ + get_staff_info().when ();
return true;
}
@@ -73,19 +73,19 @@ Tie_engraver::do_process_requests()
}
void
-Tie_engraver::acknowledge_element(Score_elem_info i)
+Tie_engraver::acknowledge_element (Score_elem_info i)
{
- if (i.elem_l_->name() == Note_head::static_name()) {
+ if (i.elem_l_->name() == Note_head::static_name ()) {
if (tie_p_) {
- tie_p_->set_head(-1, (Note_head*)i.elem_l_->item());
- melodic_req_l_ = i.req_l_->musical()->melodic();
+ tie_p_->set_head (-1, (Note_head*)i.elem_l_->item());
+ melodic_req_l_ = i.req_l_->musical()->melodic ();
}
if (end_tie_p_) {
- end_tie_p_->set_head(1, (Note_head*)i.elem_l_->item());
+ end_tie_p_->set_head (1, (Note_head*)i.elem_l_->item());
if (!Melodic_req::compare ( *end_melodic_req_l_, *melodic_req_l_))
end_tie_p_->same_pitch_b_ = true;
- announce_element(Score_elem_info(end_tie_p_,end_req_l_));
+ announce_element (Score_elem_info (end_tie_p_,end_req_l_));
}
}
}
@@ -97,7 +97,7 @@ Tie_engraver::do_pre_move_processing()
if (dir_i_)
end_tie_p_->dir_i_ = dir_i_;
- typeset_element(end_tie_p_);
+ typeset_element (end_tie_p_);
end_tie_p_ =0;
end_req_l_ =0;
}
@@ -107,13 +107,13 @@ Tie_engraver::do_pre_move_processing()
Tie_engraver::~Tie_engraver()
{
if (tie_p_) {
- req_l_->warning("unended Tie");
+ req_l_->warning ("unended Tie");
delete tie_p_;
}
}
void
-Tie_engraver::set_feature(Feature f)
+Tie_engraver::set_feature (Feature f)
{
if (f.type_ == "vdir")
dir_i_ = f.value_;
diff --git a/lily/tie.cc b/lily/tie.cc
index d67aacccfc..5daf0614d7 100644
--- a/lily/tie.cc
+++ b/lily/tie.cc
@@ -13,16 +13,16 @@
void
-Tie::set_head(int x_pos, Note_head * head_l)
+Tie::set_head (int x_pos, Note_head * head_l)
{
if (x_pos >0) {
- assert(!right_head_l_);
+ assert (!right_head_l_);
right_head_l_ = head_l;
} else {
- assert(!left_head_l_);
+ assert (!left_head_l_);
left_head_l_ = head_l;
}
- add_dependency(head_l);
+ add_dependency (head_l);
}
Tie::Tie()
@@ -43,7 +43,7 @@ Tie::set_default_dir()
void
Tie::do_add_processing()
{
- assert(left_head_l_ && right_head_l_);
+ assert (left_head_l_ && right_head_l_);
left_col_l_ = left_head_l_ -> pcol_l_;
right_col_l_ = right_head_l_ -> pcol_l_;
}
@@ -54,7 +54,7 @@ Tie::do_add_processing()
void
Tie::do_post_processing()
{
- assert(left_head_l_ || right_head_l_);
+ assert (left_head_l_ || right_head_l_);
left_pos_i_ = (left_head_l_)?
left_head_l_->position_i_ : right_head_l_->position_i_;
right_pos_i_ = (right_head_l_) ?
@@ -81,7 +81,7 @@ Tie::do_post_processing()
void
-Tie::do_substitute_dependency(Score_elem*o, Score_elem*n)
+Tie::do_substitute_dependency (Score_elem*o, Score_elem*n)
{
Note_head *new_l =n?(Note_head*)n->item():0;
if (o->item() == left_head_l_)
diff --git a/lily/time-description.cc b/lily/time-description.cc
index cd10942a38..dd8c5616d9 100644
--- a/lily/time-description.cc
+++ b/lily/time-description.cc
@@ -12,14 +12,14 @@
String
Time_description::str()const
{
- String s( "Time_description { ");
+ String s ("Time_description { ");
if (cadenza_b_)
- s+=String( " (cadenza) ");
+ s+=String (" (cadenza) ");
s+= "at ";
s+=when_;
- s+="\nmeter " + String(whole_per_measure_/one_beat_) +":" +
- String(Rational(Rational(1)/one_beat_));
- s+= "\nposition "+String( bars_i_) + ":"+ whole_in_measure_ +"\n}\n";
+ s+="\nmeter " + String (whole_per_measure_/one_beat_) +":" +
+ String (Rational (Rational (1)/one_beat_));
+ s+= "\nposition "+String (bars_i_) + ":"+ whole_in_measure_ +"\n}\n";
return s;
}
@@ -27,7 +27,7 @@ void
Time_description::print() const
{
#ifndef NPRINT
- mtor << str();
+ DOUT << str();
#endif
}
void
@@ -35,14 +35,14 @@ Time_description::OK() const
{
#ifndef NDEBUG
if (!cadenza_b_)
- assert(whole_in_measure_ < whole_per_measure_);
- assert(Moment(0) <= whole_in_measure_);
- assert(one_beat_);
+ assert (whole_in_measure_ < whole_per_measure_);
+ assert (Moment (0) <= whole_in_measure_);
+ assert (one_beat_);
#endif
}
void
-Time_description::set_cadenza(bool b)
+Time_description::set_cadenza (bool b)
{
if (cadenza_b_ && !b) {
if (whole_in_measure_) {
@@ -58,31 +58,31 @@ Time_description::Time_description()
error_b_ = false;
whole_per_measure_ = 1;
whole_in_measure_ =0;
- one_beat_ = Moment(1,4);
+ one_beat_ = Moment (1,4);
when_ = 0;
bars_i_ = 0;
cadenza_b_ = false;
}
void
-Time_description::add(Moment dt)
+Time_description::add (Moment dt)
{
- assert(dt >= Rational(0));
+ assert (dt >= Rational (0));
when_ += dt;
whole_in_measure_ += dt;
- while ( !cadenza_b_ && whole_in_measure_ >= whole_per_measure_ ) {
+ while ( !cadenza_b_ && whole_in_measure_ >= whole_per_measure_) {
whole_in_measure_ -= whole_per_measure_;
bars_i_ ++;
}
}
void
-Time_description::set_meter(int l, int o)
+Time_description::set_meter (int l, int o)
{
- assert(o);
- one_beat_ = Rational(1)/Moment(o);
- whole_per_measure_ = Moment(l) * one_beat_;
+ assert (o);
+ one_beat_ = Rational (1)/Moment (o);
+ whole_per_measure_ = Moment (l) * one_beat_;
}
bool
@@ -97,9 +97,9 @@ Time_description::allow_meter_change_b()
error messages if not possible, "" if possible
*/
String
-Time_description::try_set_partial_str(Moment p)const
+Time_description::try_set_partial_str (Moment p)const
{
- if (p<Rational(0))
+ if (p<Rational (0))
return ("Partial must be non-negative");
if (p > whole_per_measure_)
return ("Partial measure too large");
@@ -107,7 +107,7 @@ Time_description::try_set_partial_str(Moment p)const
}
void
-Time_description::setpartial(Moment p)
+Time_description::setpartial (Moment p)
{
whole_in_measure_ = whole_per_measure_ - p;
}
@@ -115,20 +115,20 @@ Time_description::setpartial(Moment p)
Moment
Time_description::barleft()const
{
- assert(!cadenza_b_);
+ assert (!cadenza_b_);
return whole_per_measure_-whole_in_measure_;
}
int
-Time_description::compare(Time_description const &t1, Time_description const&t2)
+Time_description::compare (Time_description const &t1, Time_description const&t2)
{
- int i = sign(t1.when_-t2.when_);
+ int i = sign (t1.when_-t2.when_);
if (!i) {
- assert(t1.bars_i_==t2.bars_i_);
- assert(t1.one_beat_ == t2.one_beat_);
- assert(t1.whole_in_measure_ == t2.whole_in_measure_);
- assert(t1.whole_per_measure_ == t2.whole_per_measure_);
+ assert (t1.bars_i_==t2.bars_i_);
+ assert (t1.one_beat_ == t2.one_beat_);
+ assert (t1.whole_in_measure_ == t2.whole_in_measure_);
+ assert (t1.whole_per_measure_ == t2.whole_per_measure_);
}
return i;
diff --git a/lily/timing-grav.cc b/lily/timing-grav.cc
index 97d7c92ee0..d86cf2c9bb 100644
--- a/lily/timing-grav.cc
+++ b/lily/timing-grav.cc
@@ -13,11 +13,11 @@
Timing_engraver::Timing_engraver()
{
- default_grouping_ = Rhythmic_grouping(MInterval(0,4),4); // ugh
+ default_grouping_ = Rhythmic_grouping (MInterval (0,4),4); // ugh
}
void
-Timing_engraver::fill_staff_info(Staff_info &inf)
+Timing_engraver::fill_staff_info (Staff_info &inf)
{
inf.time_C_ = &time_;
inf.rhythmic_C_ = &default_grouping_;
diff --git a/lily/translator.cc b/lily/translator.cc
index 0d86219b26..eda6e50e0c 100644
--- a/lily/translator.cc
+++ b/lily/translator.cc
@@ -17,7 +17,7 @@ Translator::Translator()
IMPLEMENT_IS_TYPE_B(Translator);
bool
-Translator::try_request(Request*)
+Translator::try_request (Request*)
{
return false;
}
diff --git a/lily/vertical-align-elem.cc b/lily/vertical-align-elem.cc
index 7ebf647c34..33d191f901 100644
--- a/lily/vertical-align-elem.cc
+++ b/lily/vertical-align-elem.cc
@@ -10,22 +10,22 @@
#include "interval.hh"
void
-Vertical_align_element::add(Score_elem*el_l)
+Vertical_align_element::add (Score_elem*el_l)
{
- assert( ! contains_b(el_l));
- elem_l_arr_.push(el_l);
- add_dependency(el_l);
+ assert (! contains_b (el_l));
+ elem_l_arr_.push (el_l);
+ add_dependency (el_l);
}
void
-Vertical_align_element::do_substitute_dependency(Score_elem*o,Score_elem*n)
+Vertical_align_element::do_substitute_dependency (Score_elem*o,Score_elem*n)
{
int i;
- while((i = elem_l_arr_.find_i(o))>=0)
+ while ((i = elem_l_arr_.find_i (o))>=0)
if (n)
elem_l_arr_[i] = n;
else
- elem_l_arr_.del(i);
+ elem_l_arr_.del (i);
}
/**
@@ -38,25 +38,25 @@ void
Vertical_align_element::do_post_processing()
{
Array<Interval> dims;
- for (int i=0; i < elem_l_arr_.size(); i++ ) {
+ for (int i=0; i < elem_l_arr_.size(); i++) {
Interval y = elem_l_arr_[i]->height() ;
if (y.empty_b())
- y = Interval(0,0);
+ y = Interval (0,0);
- dims.push(y);
+ dims.push (y);
}
Real where_f=0;
for ( int i=0 ; i < elem_l_arr_.size(); i++) {
- elem_l_arr_[i]->translate( - dims[i][1] - where_f, Y_AXIS);
+ elem_l_arr_[i]->translate (- dims[i][1] - where_f, Y_AXIS);
where_f += dims[i].length();
}
}
bool
-Vertical_align_element::contains_b(Score_elem const *e)const
+Vertical_align_element::contains_b (Score_elem const *e)const
{
- return elem_l_arr_.find_l(e);
+ return elem_l_arr_.find_l (e);
}
Vertical_align_element::Vertical_align_element()
diff --git a/lily/vertical-align-grav.cc b/lily/vertical-align-grav.cc
index 1ab374c1d8..b2f3218ee0 100644
--- a/lily/vertical-align-grav.cc
+++ b/lily/vertical-align-grav.cc
@@ -19,27 +19,27 @@ void
Vertical_align_engraver::do_creation_processing()
{
valign_p_ =new Vertical_align_spanner;
- valign_p_->left_col_l_ = get_staff_info().command_pcol_l() ;
- announce_element( Score_elem_info( valign_p_ , 0 ));
+ valign_p_->left_col_l_ = get_staff_info().command_pcol_l () ;
+ announce_element (Score_elem_info (valign_p_ , 0));
}
void
Vertical_align_engraver::do_removal_processing()
{
- valign_p_->right_col_l_ = get_staff_info().command_pcol_l();
- typeset_element( valign_p_);
+ valign_p_->right_col_l_ = get_staff_info().command_pcol_l ();
+ typeset_element (valign_p_);
valign_p_ =0;
}
void
-Vertical_align_engraver::acknowledge_element(Score_elem_info i)
+Vertical_align_engraver::acknowledge_element (Score_elem_info i)
{
if ( i.origin_grav_l_arr_.size() == 2 &&
- i.elem_l_->is_type_b(Vertical_group_element::static_name()) &&
- !i.elem_l_->axis_group_l_a_[Y_AXIS] ) {
- assert( !valign_p_->contains_b( i.elem_l_) );
+ i.elem_l_->is_type_b (Vertical_group_element::static_name()) &&
+ !i.elem_l_->axis_group_l_a_[Y_AXIS] ) {
+ assert (!valign_p_->contains_b (i.elem_l_));
- valign_p_->add ( i.elem_l_ );
+ valign_p_->add ( i.elem_l_);
}
}
diff --git a/lily/voice-group-gravs.cc b/lily/voice-group-gravs.cc
index f5e5df0c5f..24e448582d 100644
--- a/lily/voice-group-gravs.cc
+++ b/lily/voice-group-gravs.cc
@@ -20,17 +20,17 @@ Voice_group_engravers::Voice_group_engravers()
}
bool
-Voice_group_engravers::do_try_request(Request*r_l)
+Voice_group_engravers::do_try_request (Request*r_l)
{
Command_req* c_l = r_l->command();
if (c_l&& c_l->groupfeature()) {
Feature f;
f.type_ = c_l->groupfeature()->type_str_;
f.value_ = c_l->groupfeature()->value_str_;
- set_feature(f);
+ set_feature (f);
return true;
}
- return Engraver_group_engraver::do_try_request(r_l);
+ return Engraver_group_engraver::do_try_request (r_l);
}
@@ -48,11 +48,11 @@ Voice_group_engravers::do_print() const
Scalar
-Voice_group_engravers::get_feature(String f)
+Voice_group_engravers::get_feature (String f)
{
if (f == "vdir")
return dir_i_;
- Engraver_group_engraver::get_feature(f);
+ Engraver_group_engraver::get_feature (f);
}
ADD_THIS_ENGRAVER(Voice_group_engravers);
diff --git a/lily/warn.cc b/lily/warn.cc
index c35e6e6015..02707c67c7 100644
--- a/lily/warn.cc
+++ b/lily/warn.cc
@@ -18,21 +18,21 @@
#include "input.hh"
ostream &warnout (cerr);
-ostream *mlog(&cerr);
+ostream *mlog (&cerr);
void
-error_t(String const & s, Moment const & r)
+error_t (String const & s, Moment const & r)
{
- String t_mom = String(trunc(r)) + String(r - Moment(trunc(r)));
+ String t_mom = String (trunc (r)) + String (r - Moment (trunc (r)));
String e=s+ " (t = " + t_mom + ")";
- error(e);
+ error (e);
}
void
-error_t(String const & s, Time_description const &t_tdes)
+error_t (String const & s, Time_description const &t_tdes)
{
- String e=s+ " (at t=" + String(t_tdes.bars_i_) + ": " + String(t_tdes.whole_in_measure_) + ")\n";
- error(e);
+ String e=s+ " (at t=" + String (t_tdes.bars_i_) + ": " + String (t_tdes.whole_in_measure_) + ")\n";
+ error (e);
}
diff --git a/lily/word-wrap.cc b/lily/word-wrap.cc
index a2ac4e9ff8..4a0f9ffff7 100644
--- a/lily/word-wrap.cc
+++ b/lily/word-wrap.cc
@@ -25,10 +25,10 @@ Word_wrap::do_solve()const
{
problem_OK();
- PCursor<PCol*> curcol(pscore_l_->col_p_list_.top());
+ PCursor<PCol*> curcol (pscore_l_->col_p_list_.top());
Array<Col_hpositions> breaking;
- Line_of_cols breakpoints(find_breaks());
- assert(breakpoints.size()>=2);
+ Line_of_cols breakpoints (find_breaks());
+ assert (breakpoints.size()>=2);
int break_idx_i=0;
while ( break_idx_i < breakpoints.size() -1) {
@@ -37,7 +37,7 @@ Word_wrap::do_solve()const
// do another line
PCol *post = breakpoints[break_idx_i]->postbreak_p_;
- current.add( post);
+ current.add (post);
curcol++; // skip the breakable.
break_idx_i++;
@@ -45,18 +45,18 @@ Word_wrap::do_solve()const
// add another measure.
while (breakpoints[break_idx_i] != curcol.ptr()){
- current.add(curcol);
+ current.add (curcol);
curcol++;
}
- current.add(breakpoints[break_idx_i]->prebreak_p_ );
+ current.add (breakpoints[break_idx_i]->prebreak_p_);
- current.spacer_l_ = generate_spacing_problem( current.cols );
+ current.spacer_l_ = generate_spacing_problem (current.cols);
// try to solve
- if (!feasible(current.cols)) {
+ if (!feasible (current.cols)) {
if (!minimum.cols.size()) {
- warning("Ugh, this measure is too long, breakpoint: "
- + String(break_idx_i) +
+ warning ("Ugh, this measure is too long, breakpoint: "
+ + String (break_idx_i) +
" (generating stupido solution)");
current.stupid_solution();
current.energy_f_ = - 1; // make sure we break out.
@@ -89,7 +89,7 @@ Word_wrap::do_solve()const
}
*mlog << "[" <<break_idx_i<<"]"<<flush;
- breaking.push(minimum);
+ breaking.push (minimum);
}
print_stats();
return breaking;
diff --git a/make/lilypond.lsm b/make/lilypond.lsm
index 72d3c71938..aa1d9c0ee0 100644
--- a/make/lilypond.lsm
+++ b/make/lilypond.lsm
@@ -1,7 +1,7 @@
Begin3
Title: LilyPond
-Version: 0.1.7
-Entered-date: 14AUG97
+Version: 0.1.8
+Entered-date: 15AUG97
Description: GNU LilyPond is a program which converts music
definition files into visual or auditive output: it can
typeset formatted sheet music to a TeX file and and
@@ -14,8 +14,8 @@ Author: hanwen@stack.nl (Han-Wen Nienhuys)
jan@digicash.com (Jan Nieuwenhuizen)
Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
Primary-site: sunsite.unc.edu /pub/Linux/apps
- 340k lilypond-0.1.7.tar.gz
+ 340k lilypond-0.1.8.tar.gz
Original-site: pcnov095.win.tue.nl /pub/lilypond/
- 340k lilypond-0.1.7.tar.gz
+ 340k lilypond-0.1.8.tar.gz
Copying-policy: GPL
End
diff --git a/make/lilypond.spec b/make/lilypond.spec
index 93d06809d7..d4b7812814 100644
--- a/make/lilypond.spec
+++ b/make/lilypond.spec
@@ -1,9 +1,9 @@
Name: lilypond
-Version: 0.1.7
+Version: 0.1.8
Release: 1
Copyright: GPL
Group: Applications/Publishing
-Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.1.7.tar.gz
+Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.1.8.tar.gz
Summary: A preprocessor to make TeX typeset music.
URL: http://www.stack.nl/~hanwen/lilypond
Packager: Han-Wen Nienhuys <hanwen@stack.nl>
@@ -28,7 +28,7 @@ strip lily/out/lilypond mi2mu/out/mi2mu
make prefix="$RPM_BUILD_ROOT/usr" install
%files
%doc Documentation/out/AUTHORS.text Documentation/out/CodingStyle.text Documentation/out/INSTALL.text Documentation/out/MANIFESTO.text Documentation/out/convert-mudela.text Documentation/out/faq.text Documentation/out/gnu-music.text Documentation/out/index.text Documentation/out/internals.text Documentation/out/language.text Documentation/out/lilypond.text Documentation/out/links.text Documentation/out/literature.text Documentation/out/mi2mu.text Documentation/out/mudela-book.text Documentation/out/mutopia.text Documentation/out/other-packages.text BUGS TODO NEWS DEDICATION ANNOUNCE README
-%doc input/beams.ly input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/gallina.ly input/header.ly input/keys.ly input/kortjakje.ly input/multi.ly input/pedal.ly input/rhythm.ly input/scales.ly input/scripts.ly input/scsii-menuetto.ly input/scsii-menuetto.tex input/slurs.ly input/standchen.ly input/standchen.tex input/toccata-fuga-E.ly input/twinkle-pop.ly input/twinkle.ly input/wohltemperirt.ly Documentation/mudela-course.doc Documentation/mudela-man.doc
+%doc input/beams.ly input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/gallina.ly input/header.ly input/keys.ly input/kortjakje.ly input/multi.ly input/pedal.ly input/rhythm.ly input/s.ly input/scales.ly input/scripts.ly input/scsii-menuetto.ly input/scsii-menuetto.tex input/slurs.ly input/standchen.ly input/standchen.tex input/toccata-fuga-E.ly input/twinkle-pop.ly input/twinkle.ly input/wohltemperirt.ly Documentation/mudela-course.doc Documentation/mudela-man.doc
%doc Documentation/lelie_logo.gif
/usr/bin/convert-mudela
/usr/bin/mudela-book
diff --git a/mi2mu/TODO b/mi2mu/TODO
index df3a7ce45a..e9cb89c143 100644
--- a/mi2mu/TODO
+++ b/mi2mu/TODO
@@ -6,91 +6,25 @@ grep for TODO and ugh/ugr
IMPORTANT
- * remove silly #warning using midi_voice list
+ * fix parser: either
+ - parse into midi-items (merge with lily/midi-*) and pass
+ these nealy up, same for track and score. look at all
+ tracks a time (vertically through score), creating columns
+ and mudela items in time-order (no searching for columns).
+ or
+ - junk lex/yacc altogether, parse on byte level, straight
+ from memore, vertically through score. there might be no
+ need for midi-items, here.
- * add mi2mu example output (.midi.ly and .gif) to website
+ * get rid of (last few?) midi-specifics in mudela-*
- * important? lily is important, go work on lily!
+ * find / remove trend (tempo) of mudela columns
- * faq about mi2mu midi t1. ?
-
-PROJECTS
+ * get rid of Duration_* statics
* junk one in list vs. array
- * write something interesting in mi2mu manual page
-
- * check/use type 0 / 1 / 2 of midi file
-
- * create Indentable_stream (see Tex_stream) as base for Lily_stream
-
- * use dynamic info
-
- * use aftertouch info (to guess slurs/ties, scripts (staccato?))
-
- * lyric events
-
- * parse all midi events
-
- * handle time based midi files
-
- * use dstream feature from lily
-
- * midi esp.: use I32 iso int where 32 bits are needed (or assumed...)
-
- * read unsigned words as U16 (not as I16)
-
- * check use of integral and unsigned in lexer
-
- * get rid of ugly statics in Duration_convert
-
- * change option double-dots to max-dots
-
- * set Key, Meter, ... command line options
-
-BUGS
-
- * mi2mu nonexist.midi ?
-
- * output of 0 duration c'0
-
- * no output on certain midis
-
- * silly progress indicator upon mudela output
-
- * check for illegal track names, e.g. "Piano________ = \melodic"
-
- * array memleaks(?): use Link_array / create Pointer_array?
-
- * fix "#undef MEVENT_LIST" source tree: Array<Midi_event*>
-
- * split notes that cross bar limit
-
-FUTURE
-
- * guess plets (i.e.: only use plet-duration *2/3 if there's a
- whole plet)
-
- * merge midi-events with lily's midi-items?
-
- * guess beams
-
- * guess / follow tempo changes
-
- * check out NIFF / analogies?
-
- * steal good ideas of other gpl midi parsers
-
- * lily: add mudela info into midi as specials
- mi2mu: use special info
-
-# mi2mu/TODO
-
-Most of the items are marked in the code as well, with full explanation.
-grep for TODO and ugh/ugr
-
-
-IMPORTANT
+ * add mi2mu example output (.midi.ly and .gif) to website
* important? lily is important, go work on lily!
diff --git a/mi2mu/include/lily-stream.hh b/mi2mu/include/lily-stream.hh
deleted file mode 100644
index 755d19fb55..0000000000
--- a/mi2mu/include/lily-stream.hh
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// lily-stream.hh -- part of LilyPond
-//
-// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
-
-// should i be named Mudela_stream?
-
-#ifndef LILY_STREAM_HH
-#define LILY_STREAM_HH
-
-/// Lily output
-class Lily_stream {
-public:
- Lily_stream( String filename_str );
- ~Lily_stream();
-
- Lily_stream& operator <<( String str );
- Lily_stream& operator <<( Midi_event& midi_event_r );
-
-private:
- void header();
- void open();
- void output( String str );
- void output_wrapped( String str );
-
- ostream* os_p_;
- String filename_str_;
- int indent_i_;
- int column_i_;
- int wrap_column_i_;
- bool comment_mode_b_;
-};
-
-#endif // LILY_STREAM_HH
-
diff --git a/mi2mu/include/mi2mu-proto.hh b/mi2mu/include/mi2mu-proto.hh
index af0d543033..5aa6579ae3 100644
--- a/mi2mu/include/mi2mu-proto.hh
+++ b/mi2mu/include/mi2mu-proto.hh
@@ -11,18 +11,18 @@
#define MI2MU_PROTO_HH
-struct Lily_stream ;
-class Midi_event ;
-class Midi_key ;
-class Midi_note ;
-class Midi_tempo ;
-class Midi_text ;
-class Midi_time ;
-class Midi_score ;
-class Midi_track ;
-class Midi_voice ;
-class My_midi_lexer ;
-class My_midi_parser ;
-class Track_column ;
+class Mudela_stream;
+class Mudela_item;
+class Mudela_key;
+class Mudela_meter;
+class Mudela_note;
+class Mudela_tempo;
+class Mudela_text;
+class Mudela_score;
+class Mudela_staff;
+class Mudela_voice;
+class My_midi_lexer;
+class My_midi_parser;
+class Mudela_column;
#endif // MI2MU_PROTO_HH
diff --git a/mi2mu/include/mi2mu.hh b/mi2mu/include/mi2mu.hh
deleted file mode 100644
index 7885afd0d2..0000000000
--- a/mi2mu/include/mi2mu.hh
+++ /dev/null
@@ -1,62 +0,0 @@
-//
-// mi2mu.hh -- generic mi2mu include file
-//
-// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
-
-#ifndef M2M_HH
-#define M2M_HH
-
-// yes, i know this hurts the dependency calc, however,
-// having includes in headers sucks, and long trial and error
-// include lists also suck.
-// if you want less dependecies, break lib/exe down in smaller
-// modules.
-
-#include <assert.h>
-#include <iostream.h>
-#include <fstream.h>
-#include <limits.h>
-#include <ctype.h>
-#include <time.h>
-
-#include "mi2mu-proto.hh"
-#include "proto.hh"
-#include "plist.hh"
-#include "warn.hh"
-#ifdef mtor
-#undef mtor
-#endif
-
-// arrays are 20% faster, but we have no Pointer_array yet
-#define MEVENT_LIST // does this work?
-#define MVOICE_LIST
-#define TCOL_LIST
-
-#include "string.hh"
-#include "string-convert.hh"
-
-#include "lgetopt.hh"
-
-#include "moment.hh"
-#include "duration-convert.hh"
-#include "duration.hh"
-#include "source-file.hh"
-#include "source.hh"
-
-// mustn-t do, these get touched!
-// #include "fversion.hh"
-// #include "version.hh"
-
-#include "midi-global.hh"
-
-#include "lily-stream.hh"
-#include "midi-event.hh"
-#include "midi-score.hh"
-#include "midi-track.hh"
-#include "midi-voice.hh"
-#include "my-midi-lexer.hh"
-#include "my-midi-parser.hh"
-#include "track-column.hh"
-
-#endif // M2M_HH
-
diff --git a/mi2mu/include/midi-event.hh b/mi2mu/include/midi-event.hh
deleted file mode 100644
index 928851e808..0000000000
--- a/mi2mu/include/midi-event.hh
+++ /dev/null
@@ -1,100 +0,0 @@
-//
-// midi-event.hh -- declare midi_event
-//
-// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
-
-#ifndef MIDI_EVENT_HH
-#define MIDI_EVENT_HH
-
-
-// should these:
-// * be Midi_items
-// * be Voice_elements/requests
-// * get a name-change
-// ?
-
-/// (midi_event)
-class Midi_event {
-public:
- Midi_event();
-
- virtual String mudela_str( bool command_mode_bo ) = 0;
- void output_mudela( Lily_stream& lily_stream_r, bool command_mode_bo );
- virtual Moment mom();
-};
-
-class Midi_key : public Midi_event {
-public:
- Midi_key( int accidentals_i, int minor_i );
-
- String notename_str( int pitch_i );
- virtual String mudela_str( bool command_mode_bo );
-
-private:
- int accidentals_i_;
- int minor_i_;
- int key_i_;
-};
-
-class Midi_note : public Midi_event {
-public:
-// int const c0_pitch_i_c_ = 60; // huh?
- int const c0_pitch_i_c_ = 48;
-
- Midi_note( String name_str, Duration dur );
- virtual Moment mom();
- virtual String mudela_str( bool command_mode_bo );
-
-private:
- static bool const simple_plet_b_s = false;
- Duration dur_;
- String name_str_;
-};
-
-class Midi_tempo : public Midi_event {
-public:
- Midi_tempo( int useconds_per_4_i );
-
- int get_tempo_i( Moment moment );
- virtual String mudela_str( bool command_mode_bo );
- int useconds_per_4_i();
-
-private:
- int useconds_per_4_i_;
- Real seconds_per_1_f_;
-};
-
-class Midi_text : public Midi_event {
-public:
- enum Type {
- TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC,
- MARKER, CUE_POINT
- };
- Midi_text( Midi_text::Type type, String str );
- virtual String mudela_str( bool command_mode_bo );
-private:
- Type type_;
- String text_str_;
-};
-
-class Midi_time : public Midi_event {
-public:
- Midi_time( int num_i, int den_i, int division_4_i, int count_32_i );
-
- Duration i2_dur( int time_i, int division_1_i );
- int clocks_1_i();
- int den_i();
- int num_i();
- virtual String mudela_str( bool command_mode_bo );
- Moment bar_mom();
-
-private:
- Real sync_f_;
- Duration sync_dur_;
- int clocks_1_i_;
- int num_i_;
- int den_i_;
-};
-
-#endif // MIDI_EVENT_HH
-
diff --git a/mi2mu/include/midi-global.hh b/mi2mu/include/midi-global.hh
deleted file mode 100644
index 0941232c0d..0000000000
--- a/mi2mu/include/midi-global.hh
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// midi-global.hh -- declare global (sic) stuff for mi2mu
-//
-// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
-
-#ifndef MIDI_GLOBAL_HH
-#define MIDI_GLOBAL_HH
-
-#include "string.hh"
-
-#define monitor_p_g &cout
-enum Verbose { QUIET_ver, BRIEF_ver, NORMAL_ver, VERBOSE_ver, DEBUG_ver };
-extern Verbose level_ver;
-#if 0 // NPRINT
- // not what i want, all output goes through tors.
- // set verbosity level.
- #define tor( threshold ) if ( 0 ) *monitor_p_g
-#else
- #define tor( threshold ) if ( level_ver >= threshold ) *monitor_p_g
-#endif
-
-extern Sources* source_l_g;
-void message( String message_str, char const* context_ch_C );
-void warning( String message_str, char const* context_ch_C );
-void error( String message_str, char const* context_ch_C );
-
-String mi2mu_version_str();
-
-#endif // MIDI_GLOBAL_HH
-
diff --git a/mi2mu/include/midi-score.hh b/mi2mu/include/midi-score.hh
deleted file mode 100644
index 990d4031ef..0000000000
--- a/mi2mu/include/midi-score.hh
+++ /dev/null
@@ -1,28 +0,0 @@
-//
-// midi-score.hh -- declare midi_score
-//
-// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
-
-#ifndef MIDI_SCORE_HH
-#define MIDI_SCORE_HH
-
-/// (midi_score)
-class Midi_score {
-public:
- Midi_score( int format_i, int tracks_i, int tempo_i );
- ~Midi_score();
-
- void add_track( Midi_track* midi_track_p );
-
- int output_mudela( String filename_str );
- void process();
-
-private:
- Pointer_list<Midi_track*> midi_track_p_list_;
- int format_i_;
- int tracks_i_;
- int tempo_i_;
-};
-
-#endif // MIDI_SCORE_HH
-
diff --git a/mi2mu/include/midi-track.hh b/mi2mu/include/midi-track.hh
deleted file mode 100644
index 3d654ae3df..0000000000
--- a/mi2mu/include/midi-track.hh
+++ /dev/null
@@ -1,65 +0,0 @@
-//
-// midi-track.hh -- declare midi_track
-//
-// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
-
-#ifndef MIDI_TRACK_HH
-#define MIDI_TRACK_HH
-
-/// (midi_track)
-class Midi_track {
-public:
- Midi_track( int number_i, String copyright_str, String track_name_str, String instrument_str );
- ~Midi_track();
-
- void add_event( Moment mom, Midi_event* midi_event_p );
- Moment end_mom();
- String id_str();
- String name_str();
- void output_mudela( Lily_stream& lily_stream_r );
- Moment next_begin_mom( Moment now_mom );
- Moment next_end_mom( Moment now_mom );
- void process();
- void set_tempo( int useconds_i );
- void set_time( int num_i, int den_i, int clocks_i, int count_32_i );
- Track_column* tcol_l( Moment mom );
-
- String copyright_str_;
- String instrument_str_;
- String name_str_;
- Midi_tempo* midi_tempo_p_;
- Midi_time* midi_time_p_;
- int number_i_;
-
-private:
-#ifdef MVOICE_LIST
- void add_begin_at( Link_list<Midi_voice*>& open_voices_r, Moment mom );
-#else
- void add_begin_at( Array<Midi_voice*>& open_voices_r, Moment mom );
-#endif
- int check_begin_bar_i( Moment now_mom, int open_bar_i );
- int check_end_bar_i( Moment now_mom, int open_bar_i );
- Midi_voice* get_free_midi_voice_l( Moment mom );
-#ifdef MVOICE_LIST
- void remove_end_at( Link_list<Midi_voice*>& open_voices_r, Moment mom );
-#else
- void remove_end_at( Array<Midi_voice*>& open_voices_r, Moment mom );
-#endif
- void output_mudela_begin_bar( Lily_stream& lily_stream_r, Moment now_mom, int bar_i );
- void output_mudela_rest( Lily_stream& lily_stream_r, Moment begin_mom, Moment end_mom );
- void output_mudela_rest_remain( Lily_stream& lily_stream_r, Moment mom );
-
-#ifdef TCOL_LIST
- Pointer_list<Track_column*> tcol_p_list_;
-#else
- Array<Track_column*> tcol_p_array_;
-#endif
-#ifdef MVOICE_LIST
- Pointer_list<Midi_voice*> midi_voice_p_list_;
-#else
- Array<Midi_voice*> midi_voice_p_array_;
-#endif
-};
-
-#endif // MIDI_TRACK_HH
-
diff --git a/mi2mu/include/midi-voice.hh b/mi2mu/include/midi-voice.hh
deleted file mode 100644
index cc3e023152..0000000000
--- a/mi2mu/include/midi-voice.hh
+++ /dev/null
@@ -1,32 +0,0 @@
-//
-// midi-voice.hh -- declare midi_voice
-//
-// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
-
-#ifndef MIDI_VOICE_HH
-#define MIDI_VOICE_HH
-
-/// (midi_voice)
-class Midi_voice {
-public:
- Midi_voice( Moment begin_mom );
-
- void add_event( Midi_event* midi_event_p );
- Moment begin_mom();
- Moment end_mom();
-
- String mudela_str( Moment from_mom, Moment to_mom, bool multiple_bo );
-
-private:
- int events_i_;
- Moment end_mom_;
- Moment begin_mom_;
-#ifdef MEVENT_LIST
- Pointer_list<Midi_event*> midi_event_p_list_;
-#else
- Array<Midi_event*> midi_event_p_array_;
-#endif
-};
-
-#endif // MIDI_VOICE_HH
-
diff --git a/mi2mu/include/my-midi-lexer.hh b/mi2mu/include/my-midi-lexer.hh
index fb6bf62926..7b8b809aa7 100644
--- a/mi2mu/include/my-midi-lexer.hh
+++ b/mi2mu/include/my-midi-lexer.hh
@@ -8,7 +8,6 @@
#include <FlexLexer.h>
#include "proto.hh"
-// #include "fproto.hh"
#include "varray.hh"
#include "string.hh"
@@ -18,22 +17,22 @@ void yyerror(const char *s);
/// (midi_lexer)
class My_midi_lexer : yyFlexLexer {
public:
- My_midi_lexer( String& filename_str, Sources* );
- ~My_midi_lexer();
+ My_midi_lexer (String& filename_str, Sources*);
+ ~My_midi_lexer();
- int close_i();
- void error( char const* sz_l );
- char const* here_ch_C();
- static int varint2_i( String str );
- int yylex();
- Source_file* source_file_l_ ;
+ int close_i();
+ void error (char const* sz_l);
+ char const* here_ch_C();
+ static int varint2_i (String str);
+ int yylex();
+ Source_file* source_file_l_ ;
private:
- int char_count_;
- int running_status_i_;
+ int char_count_;
+ int running_status_i_;
public: // ugh
- int errorlevel_i_;
+ int errorlevel_i_;
};
extern My_midi_lexer* midi_lexer_l_g;
diff --git a/mi2mu/include/my-midi-parser.hh b/mi2mu/include/my-midi-parser.hh
index 95367f3fa0..bcebb14ff6 100644
--- a/mi2mu/include/my-midi-parser.hh
+++ b/mi2mu/include/my-midi-parser.hh
@@ -6,6 +6,14 @@
#ifndef MY_MIDI_PARSER_HH
#define MY_MIDI_PARSER_HH
+#include "mi2mu-proto.hh"
+#include "proto.hh"
+#include "plist.hh"
+#include "string.hh"
+#include "moment.hh"
+
+#include "string.hh"
+#include "moment.hh"
int yyparse();
@@ -15,42 +23,45 @@ int yyparse();
*/
class My_midi_parser {
public:
- My_midi_parser( String filename_str,Sources * );
+ My_midi_parser (String filename_str,Sources *);
~My_midi_parser();
- void add_score( Midi_score* midi_score_p );
- void error( char const* sz_l );
+ void add_score (Mudela_score* mudela_score_p);
+ void error (char const* sz_l);
int parse();
- void forward( int i );
- Moment mom();
- void note_begin( int channel_i, int pitch_i, int dyn_i );
- Midi_event* note_end_midi_event_p( int channel_i, int pitch_i, int dyn_i );
- int output_mudela( String filename_str );
+ void forward (int i);
+ Moment at_mom();
+ void note_begin (int channel_i, int pitch_i, int dyn_i);
+ void note_end (int channel_i, int pitch_i, int aftertouch_i);
+ void note_end_all();
+
void reset();
- void set_division_4( int division_4_i );
- void set_key( int accidentals_i, int minor_i );
- void set_tempo( int useconds_per_4_i );
- void set_time( int num_i, int den_i, int clocks_i, int count_32_i );
+ void set_division_4 (int division_4_i);
+ void set_key (int accidentals_i, int minor_i);
+ void set_meter (int num_i, int den_i, int clocks_i, int count_32_i);
+ void set_tempo (int useconds_per_4_i);
int bar_i_;
+
+ // ugh
int track_i_;
String filename_str_;
String copyright_str_;
String instrument_str_;
String track_name_str_;
- Midi_key* midi_key_p_;
- Midi_tempo* midi_tempo_p_;
- Midi_time* midi_time_p_;
+ // ugh
+ Mudela_key* mudela_key_p_;
+ Mudela_meter* mudela_meter_p_;
+ Mudela_tempo* mudela_tempo_p_;
-private:
- I64 now_i64_; // 31 bits yields tipically about 1000 bars
+ Mudela_staff* mudela_staff_l_;
+ Mudela_score* mudela_score_p_;
+ Mudela_column* mudela_column_l_;
- static int const CHANNELS_i = 16;
- static int const PITCHES_i = 128;
- I64 running_i64_i64_a_[ CHANNELS_i ][ PITCHES_i ];
+private:
+ Link_list<Mudela_note*> open_mudela_note_l_list_;
- Midi_score* midi_score_p_;
int division_1_i_;
char const* defined_ch_C_;
diff --git a/mi2mu/include/track-column.hh b/mi2mu/include/track-column.hh
deleted file mode 100644
index 4d5f647a61..0000000000
--- a/mi2mu/include/track-column.hh
+++ /dev/null
@@ -1,27 +0,0 @@
-//
-// track-column.hh -- declare Track_column
-//
-// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
-
-#ifndef TRACK_COLUMN_HH
-#define TRACK_COLUMN_HH
-
-/// (tcol)
-class Track_column {
-public:
- Track_column( Moment mom );
-
- void add_event( Midi_event* midi_event_p );
- Moment mom();
-
-//private:
-#ifdef MEVENT_LIST
- Pointer_list<Midi_event*> midi_event_p_list_;
-#else
- Array<Midi_event*> midi_event_p_array_;
-#endif
- Moment mom_;
-};
-
-#endif // TRACK_COLUMN_HH
-
diff --git a/mi2mu/lily-stream.cc b/mi2mu/lily-stream.cc
deleted file mode 100644
index 91824e2098..0000000000
--- a/mi2mu/lily-stream.cc
+++ /dev/null
@@ -1,143 +0,0 @@
-//
-// lily-stream.cc
-//
-// source file of the LilyPond music typesetter
-//
-// (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
-
-// should i be named Mudela_stream?
-
-#include "mi2mu.hh"
-
-Lily_stream::Lily_stream( String filename_str )
-{
- filename_str_ = filename_str;
- os_p_ = 0;
- indent_i_ = 0;
- comment_mode_b_ = false;
- column_i_ = 0;
- wrap_column_i_ = 60;
- open();
- header();
-}
-
-Lily_stream::~Lily_stream()
-{
- delete os_p_;
- if ( indent_i_ )
- warning( "lily indent level: " + String( indent_i_ ));
-}
-
-Lily_stream&
-Lily_stream::operator <<( String str )
-{
- static String word_sep_str = "{} \t\n";
- while ( str.length_i() ) {
- int i = str.index_any_i( word_sep_str ) + 1;
- if ( !i )
- i = str.length_i();
- String word = str.left_str( i );
- str = str.mid_str( i, str.length_i() );
- output_wrapped( word );
- }
- return *this;
-}
-
-Lily_stream&
-Lily_stream::operator <<( Midi_event& midi_event_r )
-{
- midi_event_r.output_mudela( *this, false );
- *os_p_ << flush;
- return *this;
-}
-
-void
-Lily_stream::header()
-{
- *os_p_ << "% Creator: " << mi2mu_version_str() << "\n";
- *os_p_ << "% Automatically generated, at ";
- time_t t( time( 0 ) );
- *os_p_ << ctime( &t );
- *os_p_ << "% from input file: ";
- *os_p_ << midi_parser_l_g->filename_str_;
- *os_p_ << "\n\n";
- // ugh
- *os_p_ << "\\version \"0.1.0\";\n";
-}
-
-void
-Lily_stream::open()
-{
- os_p_ = new ofstream( filename_str_ );
- if ( !*os_p_ )
- error ( "can't open `" + filename_str_ + "\'");
-}
-
-void
-Lily_stream::output( String str )
-{
- for ( int i = 0; i < str.length_i(); i++ ) {
- char c = str[ i ];
- switch ( c ) {
- case '{' :
- case '<' :
- indent_i_++;
- column_i_++;
- *os_p_ << c;
- break;
- case '}' :
- case '>' :
- assert( indent_i_ );
- indent_i_--;
- column_i_++;
- *os_p_ << c;
- break;
- case '%' :
- comment_mode_b_ = true;
- *os_p_ << c;
- column_i_++;
- break;
- case '\t' :
- column_i_ += 8;
- *os_p_ << c;
- break;
- case '\n' :
- *os_p_ << endl;
- *os_p_ << String( '\t', indent_i_ );
- column_i_ = indent_i_ * 8;
- comment_mode_b_ = false;
- break;
- default :
- column_i_++;
- *os_p_ << c;
- break;
- }
- }
-}
-
-void
-Lily_stream::output_wrapped( String str )
-{
- // enough room left -> doit
- if ( column_i_ + str.length_i() <= wrap_column_i_ ) {
- output( str );
- return;
- }
-
- // we're at BOL already; this will never fit -> doit
- if ( column_i_ == indent_i_ * 8 ) {
- output( str );
- return;
- }
-
- // ok, let's wrap
- // preserve comment mode
- if ( comment_mode_b_ )
- output( String( "\n%" ) );
- else
- output( String( "\n" ) );
-
- output( str );
-}
-
-
diff --git a/mi2mu/main.cc b/mi2mu/main.cc
index a50cf55ff6..26d92bcafb 100644
--- a/mi2mu/main.cc
+++ b/mi2mu/main.cc
@@ -4,173 +4,187 @@
//
// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
-#include "mi2mu.hh"
+#include "string-convert.hh"
+#include "lgetopt.hh"
#include "path.hh"
+#include "duration-convert.hh"
+#include "source.hh"
+
+#include "mi2mu-global.hh"
+#include "my-midi-parser.hh"
+#include "mudela-score.hh"
+#include "version.hh"
Sources source;
Sources* source_l_g = &source;
+static File_path path;
+
Verbose level_ver = NORMAL_ver;
-// ugh, another global
-String
-find_file( String str )
-{
- return str;
-}
+/// just to make sure print_rat is linked in
+static void (*rat_printer)(Moment const&);
void
usage()
{
- tor( NORMAL_ver ) <<
- "Usage: mi2mu [options] midi-file\n"
- "Translate midi-file to mudela\n"
- "\n"
- "Options:\n"
- " -b, --no-quantify write exact durations, e.g.: a4*385/384\n"
- " -d, --debug print lots of debugging stuff\n"
- " -h, --help this help\n"
- " -I, --include=DIR add DIR to search path\n"
- " -n, --no-silly assume no plets or double dots, smallest is 32\n"
- " -o, --output=FILE set FILE as default output\n"
- " -p, --no-plets assume no plets\n"
- " -q, --quiet be quiet\n"
- " -s, --smallest=N assume no shorter (reciprocal) durations than N\n"
- " -v, --verbose be verbose\n"
- " -w, --warranty show warranty and copyright\n"
- " -x, --no-double-dots assume no double dotted notes\n"
- ;
+ LOGOUT(NORMAL_ver) <<
+ "Usage: mi2mu [options] midi-file\n"
+ "Translate midi-file to mudela\n"
+ "\n"
+ "Options:\n"
+ " -b, --no-quantify write exact durations, e.g.: a4*385/384\n"
+ " -d, --debug print lots of debugging stuff\n"
+ " -h, --help this help\n"
+ " -I, --include=DIR add DIR to search path\n"
+ " -n, --no-silly assume no plets or double dots, smallest is 32\n"
+ " -o, --output=FILE set FILE as default output\n"
+ " -p, --no-plets assume no plets\n"
+ " -q, --quiet be quiet\n"
+ " -s, --smallest=N assume no shorter (reciprocal) durations than N\n"
+ " -v, --verbose be verbose\n"
+ " -w, --warranty show warranty and copyright\n"
+ " -x, --no-double-dots assume no double dotted notes\n"
+ ;
}
void
identify()
{
- tor( NORMAL_ver ) << mi2mu_version_str() << endl;
+ LOGOUT(NORMAL_ver) << mi2mu_version_str() << endl;
}
void
notice()
{
- tor( NORMAL_ver ) <<
- "\n"
- "Mi2mu, translate midi to mudela.\n"
- "Copyright (C) 1997 by\n"
- " Jan Nieuwenhuizen <jan@digicash.com>\n"
- " Han-Wen Nienhuys <hanwen@stack.nl>\n"
- "\n"
- " This program is free software; you can redistribute it and/or\n"
- "modify it under the terms of the GNU General Public License version 2\n"
- "as published by the Free Software Foundation.\n"
- "\n"
- " This program is distributed in the hope that it will be useful,\n"
- "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
- "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n"
- "General Public License for more details.\n"
- "\n"
- " You should have received a copy (refer to the file COPYING) of the\n"
- "GNU General Public License along with this program; if not, write to\n"
- "the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,\n"
- "USA.\n";
+ LOGOUT(NORMAL_ver) <<
+ "\n"
+ "Mi2mu, translate midi to mudela.\n"
+ "Copyright (C) 1997 by\n"
+ " Jan Nieuwenhuizen <jan@digicash.com>\n"
+ " Han-Wen Nienhuys <hanwen@stack.nl>\n"
+ "\n"
+ " This program is free software; you can redistribute it and/or\n"
+ "modify it under the terms of the GNU General Public License version 2\n"
+ "as published by the Free Software Foundation.\n"
+ "\n"
+ " This program is distributed in the hope that it will be useful,\n"
+ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n"
+ "General Public License for more details.\n"
+ "\n"
+ " You should have received a copy (refer to the file COPYING) of the\n"
+ "GNU General Public License along with this program; if not, write to\n"
+ "the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,\n"
+ "USA.\n";
}
int
-main( int argc_i, char* argv_sz_a[] )
+main (int argc_i, char* argv_sz_a[])
{
- Long_option_init long_option_init_a[] = {
- {0, "no-quantify", 'b'},
- {0, "debug", 'd'},
- {0, "help", 'h'},
- {0, "no-silly", 'n'},
- {1, "output", 'o'},
- {0, "no-plets", 'p'},
- {0, "quiet", 'q'},
- {1, "smallest", 's'},
- {0, "verbose", 'v'},
- {0, "warranty", 'w'},
- {0, "no-double-dots", 'x'},
- {0,0,0}
- };
- Getopt_long getopt_long( argc_i, argv_sz_a, long_option_init_a );
-
- String output_str;
- while ( Long_option_init const* long_option_init_p = getopt_long() )
- switch ( long_option_init_p->shortname ) {
- case 'b':
- Duration_convert::no_quantify_b_s = true;
- break;
- case 'd':
- level_ver = DEBUG_ver;
- break;
- case 'h':
- identify();
- usage();
- exit( 0 );
- break;
-// case 'I':
-// path->push( getopt_long.optarg );
-// break;
- case 'n':
- Duration_convert::no_double_dots_b_s = true;
- Duration_convert::no_triplets_b_s = true;
- Duration_convert::no_smaller_than_i_s = 32;
- break;
- case 'o':
- output_str = getopt_long.optional_argument_ch_C_;
- break;
- case 'p':
- Duration_convert::no_triplets_b_s = true;
- break;
- case 'q':
- level_ver = QUIET_ver;
- break;
- case 's': {
- int i = String_convert::dec2_i( getopt_long.optional_argument_ch_C_ );
- if ( !i ) {
- identify();
- usage();
- exit( 2 ); //usage
- }
- Duration_convert::no_smaller_than_i_s = i;
- }
- break;
- case 'v':
- level_ver = VERBOSE_ver;
- break;
- case 'w':
- identify();
- notice();
- exit( 0 );
- break;
- case 'x':
- Duration_convert::no_double_dots_b_s = true;
- break;
- default:
- assert( 0 );
- break;
- }
-
- // flag -q must be checked first
- identify();
-
- char const* arg_sz = 0;
- while ( ( arg_sz = getopt_long.get_next_arg() ) ) {
- My_midi_parser midi_parser( arg_sz, & source );
- midi_parser_l_g = &midi_parser;
-
- int error_i = midi_parser.parse();
- if ( error_i )
- return error_i;
- if ( !output_str.length_i() ) {
- String d, dir, base, ext;
-
- split_path(arg_sz, d, dir, base, ext);
-
- output_str = base + ext + ".ly";
+ rat_printer = print_rat;
+
+ Long_option_init long_option_init_a[] = {
+ {0, "no-quantify", 'b'},
+ {0, "debug", 'd'},
+ {0, "help", 'h'},
+ {0, "no-silly", 'n'},
+ {1, "output", 'o'},
+ {0, "no-plets", 'p'},
+ {0, "quiet", 'q'},
+ {1, "smallest", 's'},
+ {0, "verbose", 'v'},
+ {0, "warranty", 'w'},
+ {0, "no-double-dots", 'x'},
+ {0,0,0}
+ };
+ Getopt_long getopt_long (argc_i, argv_sz_a, long_option_init_a);
+
+ String output_str;
+ while (Long_option_init const* long_option_init_p = getopt_long())
+ switch (long_option_init_p->shortname) {
+ case 'b':
+ Duration_convert::no_quantify_b_s = true;
+ break;
+ case 'd':
+ level_ver = DEBUG_ver;
+ break;
+ case 'h':
+ identify();
+ usage();
+ exit (0);
+ break;
+// case 'I':
+// path->push (getopt_long.optional_argument_ch_C_);
+// break;
+ case 'n':
+ Duration_convert::no_double_dots_b_s = true;
+ Duration_convert::no_triplets_b_s = true;
+ Duration_convert::no_smaller_than_i_s = 32;
+ break;
+ case 'o':
+ output_str = getopt_long.optional_argument_ch_C_;
+ break;
+ case 'p':
+ Duration_convert::no_triplets_b_s = true;
+ break;
+ case 'q':
+ level_ver = QUIET_ver;
+ break;
+ case 's': {
+ int i = String_convert::dec2_i (getopt_long.optional_argument_ch_C_);
+ if (!i) {
+ identify();
+ usage();
+ exit (2); //usage
}
- error_i = midi_parser.output_mudela( output_str );
- if ( error_i )
- return error_i;
- midi_parser_l_g = 0;
+ Duration_convert::no_smaller_than_i_s = i;
+ }
+ break;
+ case 'v':
+ level_ver = VERBOSE_ver;
+ break;
+ case 'w':
+ identify();
+ notice();
+ exit (0);
+ break;
+ case 'x':
+ Duration_convert::no_double_dots_b_s = true;
+ break;
+ default:
+ assert (0);
+ break;
+ }
+
+ // flag -q must be checked first
+ identify();
+
+ path.add ("");
+ source_l_g->set_path (&path);
+
+ char const* arg_sz = 0;
+ while ( (arg_sz = getopt_long.get_next_arg())) {
+ My_midi_parser midi_parser (arg_sz, & source);
+ midi_parser_l_g = &midi_parser;
+
+ int error_i = midi_parser.parse();
+ if (error_i)
+ return error_i;
+
+ if (!output_str.length_i()) {
+ String d, dir, base, ext;
+
+ split_path (arg_sz, d, dir, base, ext);
+
+ output_str = base + ext + ".ly";
}
- return 0;
+
+ assert (midi_parser.mudela_score_p_);
+ midi_parser.mudela_score_p_->process();
+ midi_parser.mudela_score_p_->output (output_str);
+
+ midi_parser_l_g = 0;
+ }
+ return 0;
}
diff --git a/mi2mu/mi2mu-version.cc b/mi2mu/mi2mu-version.cc
index 78773e7208..a2bdd3f6cf 100644
--- a/mi2mu/mi2mu-version.cc
+++ b/mi2mu/mi2mu-version.cc
@@ -2,6 +2,7 @@
// version.cc -- implement inexpensive versioning
//
// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
+
#include <stdio.h>
#include "version.hh"
diff --git a/mi2mu/midi-event.cc b/mi2mu/midi-event.cc
deleted file mode 100644
index 712a5ae941..0000000000
--- a/mi2mu/midi-event.cc
+++ /dev/null
@@ -1,227 +0,0 @@
-//
-// midi-event.cc -- implement Midi_event
-//
-// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
-
-#include "mi2mu.hh"
-
-Midi_event::Midi_event()
-{
-}
-
-Moment
-Midi_event::mom()
-{
- return Moment( 0 );
-}
-
-void
-Midi_event::output_mudela( Lily_stream& lily_stream_r, bool command_mode_bo )
-{
- lily_stream_r << mudela_str( command_mode_bo ) << String( " " );
-}
-
-Midi_key::Midi_key( int accidentals_i, int minor_i )
-{
- accidentals_i_ = accidentals_i;
- minor_i_ = minor_i;
- if ( accidentals_i >= 0 )
- key_i_ = ( ( accidentals_i % 7 )[ "cgdaebf" ] - 'a' - 2 ) % 7;
- else
- key_i_ = ( ( -accidentals_i % 7 )[ "cfbeadg" ] - 'a' - 2 ) % 7;
-}
-
-String
-Midi_key::mudela_str( bool command_mode_bo )
-{
- String str = "\\key";
- if ( !minor_i_ )
- str += String( (char)( ( key_i_ + 2 ) % 7 + 'A' ) );
- else // heu, -2: should be - 1 1/2: A -> fis
- str += String( (char)( ( key_i_ + 2 - 2 ) % 7 + 'a' ) );
- str = String( "% \"" ) + str
- + String('"') + "; % not supported yet\n";
- return str;
-}
-
-String
-Midi_key::notename_str( int pitch_i )
-{
- // this may seem very smart,
- // but it-s only an excuse not to read a notename table
-
- // major scale: do-do
- // minor scale: la-la ( = + 5 )
- static int notename_i_a[ 12 ] = { 0, 0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6 };
- int notename_i = notename_i_a[ ( minor_i_ * 5 + pitch_i ) % 12 ];
-
- static int accidentals_i_a[ 12 ] = { 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0 };
- int accidental_i = accidentals_i_a[ minor_i_ * 5 + pitch_i % 12 ];
- if ( accidental_i && ( accidentals_i_ < 0 ) ) {
- accidental_i = - accidental_i;
- notename_i = ( notename_i + 1 ) % 7;
- }
-
- String notename_str = (char)( ( ( notename_i + 2 ) % 7 ) + 'a' );
- while ( accidental_i-- > 0 )
- notename_str += "is";
- accidental_i++;
- while ( accidental_i++ < 0 )
- if ( ( notename_str == "a" ) || ( notename_str == "e" ) )
- notename_str += "s";
- else
- notename_str += "es";
- accidental_i--;
-
- String de_octavate_str = String( '\'', ( Midi_note::c0_pitch_i_c_ + 11 - pitch_i ) / 12 );
- String octavate_str = String( '\'', ( pitch_i - Midi_note::c0_pitch_i_c_ ) / 12 );
- return de_octavate_str + notename_str + octavate_str;
-}
-
-// statics Midi_note
-/*
- this switch can be used to write simple plets like
- c4*2/3
- as
- \plet 2/3; c4 \plet 1/1;
- */
-bool const Midi_note::simple_plet_b_s = true;
-
-Midi_note::Midi_note( String name_str, Duration dur )
-{
- // do i want pitch too?
- dur_ = dur;
- name_str_ = name_str;
-}
-
-String
-Midi_note::mudela_str( bool command_mode_bo )
-{
-// assert( !command_mode_bo );
- if ( !dur_.type_i_ )
- return "";
-
- if ( simple_plet_b_s )
- return name_str_ + Duration_convert::dur2_str( dur_ );
-
- //ugh
- String str;
- if ( dur_.plet_b() )
- str += String( "\\plet " )
- + String_convert::i2dec_str( dur_.plet_.iso_i_, 0, 0 )
- + "/"
- + String_convert::i2dec_str( dur_.plet_.type_i_, 0, 0 )
- + "; ";
-
- str += name_str_;
-
- Duration dur = dur_;
- dur.set_plet( 1,1 );
- str += Duration_convert::dur2_str( dur );
-
- if ( dur_.plet_b() )
- str += String( " \\plet 1/1;" );
-
- return str;
-}
-
-Moment
-Midi_note::mom()
-{
- return Duration_convert::dur2_mom( dur_ );
-}
-
-Midi_tempo::Midi_tempo( int useconds_per_4_i )
-{
- useconds_per_4_i_ = useconds_per_4_i;
- seconds_per_1_f_ = (Real)useconds_per_4_i_ * 4 / 1e6;
-}
-
-String
-Midi_tempo::mudela_str( bool command_mode_bo )
-{
-// assert( command_mode_bo );
- if ( !command_mode_bo )
- return "";
- String str = "\\tempo 4:";
- str += String( get_tempo_i( Moment( 1, 4 ) ) );
- str += ";";
- return str;
-}
-
-int
-Midi_tempo::useconds_per_4_i()
-{
- return useconds_per_4_i_;
-}
-
-int
-Midi_tempo::get_tempo_i( Moment moment )
-{
- return Moment( 60 ) / moment / Moment( seconds_per_1_f_ );
-}
-
-Midi_text::Midi_text( Midi_text::Type type, String text_str )
-{
- type_ = type;
- text_str_ = text_str;
-}
-
-String
-Midi_text::mudela_str( bool command_mode_bo )
-{
- (void)command_mode_bo;
- if ( !text_str_.length_i()
- || ( text_str_.length_i() != (int)strlen( text_str_.ch_C() ) ) )
- return "";
-
- return "% " + text_str_ + "\n";
-}
-
-Midi_time::Midi_time( int num_i, int den_i, int clocks_4_i, int count_32_i )
-{
- sync_dur_.type_i_ = 8;
-
- sync_f_ = 1.0;
- if ( count_32_i != 8 )
- warning( String( "#32 in quarter: " ) + String( count_32_i ));
- num_i_ = num_i;
- den_i_ = den_i;
- clocks_1_i_ = clocks_4_i * 4;
-}
-
-Moment
-Midi_time::bar_mom()
-{
- Duration d;
- d.type_i_ = 1 << den_i_ ;
- return Moment( num_i_ ) * Duration_convert::dur2_mom( d );
-}
-
-int
-Midi_time::clocks_1_i()
-{
- return clocks_1_i_;
-}
-
-int
-Midi_time::den_i()
-{
- return den_i_;
-}
-
-int
-Midi_time::num_i()
-{
- return num_i_;
-}
-
-String
-Midi_time::mudela_str( bool command_mode_bo )
-{
- String str = "\\meter "
- + String( num_i_ ) + "/" + String( 1 << den_i_ )
- + ";";
- return str;
-}
-
diff --git a/mi2mu/midi-lexer.l b/mi2mu/midi-lexer.l
index 825f74453b..485312b974 100644
--- a/mi2mu/midi-lexer.l
+++ b/mi2mu/midi-lexer.l
@@ -22,7 +22,10 @@
(don-t forget to rm lex.yy.cc :-)
*/
-#include "mi2mu.hh"
+#include "string-convert.hh"
+#include "mi2mu-global.hh"
+#include "mi2mu-proto.hh"
+#include "my-midi-lexer.hh"
#include "midi-parser.hh"
#define YY_USER_ACTION char_count_ += YYLeng(); // ugh
@@ -101,87 +104,87 @@ SSME [\0x7f][\x03]
%%
{HEADER} {
- tor( DEBUG_ver ) << "lex: header" << endl;
- yy_push_state( int16 );
- yy_push_state( int16 );
- yy_push_state( int16 );
- yy_push_state( int32 );
+ LOGOUT(DEBUG_ver) << "lex: header" << endl;
+ yy_push_state(int16);
+ yy_push_state(int16);
+ yy_push_state(int16);
+ yy_push_state(int32);
return HEADER;
}
{TRACK} {
- tor( DEBUG_ver ) << "lex: track" << endl;
- yy_push_state( track );
- yy_push_state( int32 );
+ LOGOUT(DEBUG_ver) << "lex: track" << endl;
+ yy_push_state(track);
+ yy_push_state(int32);
return TRACK;
}
{U8} {
- error( String( "top level: header expected: " )
- + String_convert::bin2hex_str( String( *YYText() ) ) );
- exit( 1 );
+ error(String("top level: header expected: ")
+ + String_convert::bin2hex_str(String(*YYText())));
+ exit(1);
}
{BACKUP_TOP_0} {
- error( String( "top level: header expected: " )
- + String_convert::bin2hex_str( String( *( YYText() ) ) ) );
- exit( 1 );
+ error(String("top level: header expected: ")
+ + String_convert::bin2hex_str(String(*(YYText()))));
+ exit(1);
}
{BACKUP_TOP_1} {
- error( String( "top level: header expected: " )
- + String_convert::bin2hex_str( String( *( YYText() ) ) ) );
- exit( 1 );
+ error(String("top level: header expected: ")
+ + String_convert::bin2hex_str(String(*(YYText()))));
+ exit(1);
}
{BACKUP_TOP_2} {
- error( String( "top level: header expected: " )
- + String_convert::bin2hex_str( String( *( YYText() ) ) ) );
- exit( 1 );
+ error(String("top level: header expected: ")
+ + String_convert::bin2hex_str(String(*(YYText()))));
+ exit(1);
}
<int32>{INT32} { // really signed?
- tor( DEBUG_ver ) << "lex: int32" << endl;
- assert( YYLeng() == 4 );
- String str( (Byte const*)YYText(), YYLeng() );
- yylval.i = String_convert::bin2_i( str );
+ LOGOUT(DEBUG_ver) << "lex: int32" << endl;
+ assert(YYLeng() == 4);
+ String str((Byte const*)YYText(), YYLeng());
+ yylval.i = String_convert::bin2_i(str);
yy_pop_state();
return INT32;
}
<int32>{BACKUP_INT32_0} {
- error( String( "int32: int32 expected: " )
- + String_convert::bin2hex_str( String( *( YYText() ) ) ) );
- exit( 1 );
+ error(String("int32: int32 expected: ")
+ + String_convert::bin2hex_str(String(*(YYText()))));
+ exit(1);
}
<int32>{BACKUP_INT32_1} {
- error( String( "int32: int32 expected: " )
- + String_convert::bin2hex_str( String( *( YYText() ) ) ) );
- exit( 1 );
+ error(String("int32: int32 expected: ")
+ + String_convert::bin2hex_str(String(*(YYText()))));
+ exit(1);
}
<int32>{BACKUP_INT32_2} {
- error( String( "int32: int32 expected: " )
- + String_convert::bin2hex_str( String( *( YYText() ) ) ) );
- exit( 1 );
+ error(String("int32: int32 expected: ")
+ + String_convert::bin2hex_str(String(*(YYText()))));
+ exit(1);
}
<int16>{INT16} { // really signed?
- tor( DEBUG_ver ) << "lex: int16" << endl;
- assert( YYLeng() == 2 );
- String str( (Byte const*)YYText(), YYLeng() );
- yylval.i = (short)String_convert::bin2_i( str );
+ LOGOUT(DEBUG_ver) << "lex: int16" << endl;
+ assert(YYLeng() == 2);
+ String str((Byte const*)YYText(), YYLeng());
+ yylval.i = (short)String_convert::bin2_i(str);
yy_pop_state();
return INT16;
}
<int16>{BACKUP_INT16_0} {
- error( String( "int16: int16 expected: " )
- + String_convert::bin2hex_str( String( *( YYText() ) ) ) );
- exit( 1 );
+ error(String("int16: int16 expected: ")
+ + String_convert::bin2hex_str(String(*(YYText()))));
+ exit(1);
}
<i8>{I8} {
- tor( DEBUG_ver ) << "lex: i8" << endl;
- assert( YYLeng() == 1 );
+ LOGOUT(DEBUG_ver) << "lex: i8" << endl;
+ assert(YYLeng() == 1);
// yylval.byte = *(signed char*)YYText();
yylval.i = *(signed char*)YYText();
yy_pop_state();
return I8;
}
<u8>{U8} {
- tor( DEBUG_ver ) << "lex: u8" << endl;
- assert( YYLeng() == 1 );
+ LOGOUT(DEBUG_ver) << "lex: u8" << endl;
+ assert(YYLeng() == 1);
// yylval.byte = *(Byte*)YYText();
yylval.i = *(Byte*)YYText();
yy_pop_state();
@@ -189,328 +192,329 @@ SSME [\0x7f][\x03]
}
<track>{VARINT} {
- String str( (Byte const*)YYText(), YYLeng() );
- yylval.i = My_midi_lexer::varint2_i( str );
- tor( DEBUG_ver ) << String( "lex: track: varint(" )
- + String( yylval.i ) + "): "
- + String_convert::bin2hex_str( str ) << endl;
- yy_push_state( event );
+ String str((Byte const*)YYText(), YYLeng());
+ yylval.i = My_midi_lexer::varint2_i(str);
+ LOGOUT(DEBUG_ver) << String("lex: track: varint(")
+ + String(yylval.i) + "): "
+ + String_convert::bin2hex_str(str) << endl;
+ yy_push_state(event);
return VARINT;
}
<track>{U8} {
- error( String( "track: illegal byte: " )
- + String_convert::bin2hex_str( String( *YYText() ) ) );
- exit( 1 );
+ error(String("track: illegal byte: ")
+ + String_convert::bin2hex_str(String(*YYText())));
+ exit(1);
}
<track>{BACKUP_VARINT_0}{U8} {
- error( String( "track: varint expected: " )
- + String_convert::bin2hex_str( String( *( YYText() ) ) ) );
- exit( 1 );
+ error(String("track: varint expected: ")
+ + String_convert::bin2hex_str(String(*(YYText()))));
+ exit(1);
}
<track>{BACKUP_VARINT_1}{U8} {
- error( String( "track: varint expected: " )
- + String_convert::bin2hex_str( String( *( YYText() ) ) ) );
- exit( 1 );
+ error(String("track: varint expected: ")
+ + String_convert::bin2hex_str(String(*(YYText()))));
+ exit(1);
}
<track>{BACKUP_VARINT_2}{U8} {
- error( String( "track: varint expected: " )
- + String_convert::bin2hex_str( String( *( YYText() ) ) ) );
- exit( 1 );
+ error(String("track: varint expected: ")
+ + String_convert::bin2hex_str(String(*(YYText()))));
+ exit(1);
}
<event>{RUNNING_STATUS} {
// yylval.byte = *(Byte*)YYText();
// yylval.i = *(Byte*)YYText();
yylval.i = running_status_i_;
- tor( DEBUG_ver ) << String ( "lex: running status: " ) + String( yylval.i ) << endl;
+ LOGOUT(DEBUG_ver) << String ("lex: running status: ") + String(yylval.i) << endl;
/*
'running status' rather means 'missing status'.
we'll put the running status data back, prepend (unput)
the running status, and try again.
*/
- yyless( 0 );
- unput( running_status_i_ );
+ yyless(0);
+ unput(running_status_i_);
return RUNNING_STATUS;
}
<event>{DATA_ENTRY} {
// yylval.byte = *(Byte*)YYText();
yylval.i = *(Byte*)YYText();
- tor( DEBUG_ver ) << String ( "lex: undefined data entry: " ) + String( yylval.i ) << endl;
+ LOGOUT(DEBUG_ver) << String ("lex: undefined data entry: ") + String(yylval.i) << endl;
yy_pop_state();
- yy_push_state( u8 );
+ yy_push_state(u8);
return DATA_ENTRY;
}
<event>{ALL_NOTES_OFF} {
- tor( DEBUG_ver ) << "lex: all note off" << endl;
+ LOGOUT(DEBUG_ver) << "lex: all note off" << endl;
// yylval.byte = *(Byte*)YYText();
yylval.i = *(Byte*)YYText();
- tor( DEBUG_ver ) << String ( "lex: all notes off: " ) + String( yylval.i ) << endl;
+ LOGOUT(DEBUG_ver) << String ("lex: all notes off: ") + String(yylval.i) << endl;
yy_pop_state();
- yy_push_state( u8 );
- yy_push_state( u8 );
+ yy_push_state(u8);
+ yy_push_state(u8);
return ALL_NOTES_OFF;
}
<event>{NOTE_OFF} {
- tor( DEBUG_ver ) << "lex: note off" << endl;
+ LOGOUT(DEBUG_ver) << "lex: note off" << endl;
// yylval.byte = *(Byte*)YYText();
yylval.i = *(Byte*)YYText();
running_status_i_ = yylval.i;
yy_pop_state();
- yy_push_state( u8 );
- yy_push_state( u8 );
+ yy_push_state(u8);
+ yy_push_state(u8);
return NOTE_OFF;
}
<event>{NOTE_ON} {
- tor( DEBUG_ver ) << "lex: note on" << endl;
+ LOGOUT(DEBUG_ver) << "lex: note on" << endl;
// yylval.byte = *(Byte*)YYText();
yylval.i = *(Byte*)YYText();
running_status_i_ = yylval.i;
yy_pop_state();
- yy_push_state( u8 );
- yy_push_state( u8 );
+ yy_push_state(u8);
+ yy_push_state(u8);
return NOTE_ON;
}
<event>{POLYPHONIC_AFTERTOUCH} {
- tor( DEBUG_ver ) << "lex: polyphonic aftertouch" << endl;
+ LOGOUT(DEBUG_ver) << "lex: polyphonic aftertouch" << endl;
// yylval.byte = *(Byte*)YYText();
yylval.i = *(Byte*)YYText();
running_status_i_ = yylval.i;
yy_pop_state();
- yy_push_state( u8 );
- yy_push_state( u8 );
+ yy_push_state(u8);
+ yy_push_state(u8);
return POLYPHONIC_AFTERTOUCH;
}
<event>{CONTROLMODE_CHANGE} {
- tor( DEBUG_ver ) << "lex: controlmode change" << endl;
+ LOGOUT(DEBUG_ver) << "lex: controlmode change" << endl;
// yylval.byte = *(Byte*)YYText();
yylval.i = *(Byte*)YYText();
running_status_i_ = yylval.i;
yy_pop_state();
- yy_push_state( u8 );
- yy_push_state( u8 );
+ yy_push_state(u8);
+ yy_push_state(u8);
return CONTROLMODE_CHANGE;
}
<event>{PROGRAM_CHANGE} {
- tor( DEBUG_ver ) << "lex: program change" << endl;
+ LOGOUT(DEBUG_ver) << "lex: program change" << endl;
// yylval.byte = *(Byte*)YYText();
yylval.i = *(Byte*)YYText();
running_status_i_ = yylval.i;
yy_pop_state();
- yy_push_state( u8 );
+ yy_push_state(u8);
return PROGRAM_CHANGE;
}
<event>{CHANNEL_AFTERTOUCH} {
- tor( DEBUG_ver ) << "lex: channel aftertouch" << endl;
+ LOGOUT(DEBUG_ver) << "lex: channel aftertouch" << endl;
// yylval.byte = *(Byte*)YYText();
yylval.i = *(Byte*)YYText();
running_status_i_ = yylval.i;
yy_pop_state();
- yy_push_state( u8 );
- yy_push_state( u8 );
+ yy_push_state(u8);
+ yy_push_state(u8);
return CHANNEL_AFTERTOUCH;
}
<event>{PITCHWHEEL_RANGE} {
- tor( DEBUG_ver ) << "lex: pitchwheel range" << endl;
+ LOGOUT(DEBUG_ver) << "lex: pitchwheel range" << endl;
// yylval.byte = *(Byte*)YYText();
yylval.i = *(Byte*)YYText();
running_status_i_ = yylval.i;
yy_pop_state();
- yy_push_state( u8 );
- yy_push_state( u8 );
+ yy_push_state(u8);
+ yy_push_state(u8);
return PITCHWHEEL_RANGE;
}
<event>{SYSEX_EVENT1} { // len data
- tor( DEBUG_ver ) << "lex: sysex1" << endl;
+ LOGOUT(DEBUG_ver) << "lex: sysex1" << endl;
yy_pop_state();
- yy_push_state( data );
+ yy_push_state(data);
return SYSEX_EVENT1;
}
<event>{SYSEX_EVENT2} { // len data
- tor( DEBUG_ver ) << "lex: sysex2" << endl;
+ LOGOUT(DEBUG_ver) << "lex: sysex2" << endl;
yy_pop_state();
-// yy_push_state( u8 ); //?
- yy_push_state( data );
+// yy_push_state(u8); //?
+ yy_push_state(data);
return SYSEX_EVENT2;
}
<event>{META_EVENT} {
- tor( DEBUG_ver ) << "lex: meta" << endl;
- yy_push_state( meta_event );
+ LOGOUT(DEBUG_ver) << "lex: meta" << endl;
+ yy_push_state(meta_event);
return META_EVENT;
}
<event>{U8} {
- error( String( "event: illegal byte: " )
- + String_convert::bin2hex_str( String( *YYText() ) ) );
- exit( 1 );
+ error(String("event: illegal byte: ")
+ + String_convert::bin2hex_str(String(*YYText())));
+ exit(1);
}
<meta_event>{SEQUENCE} { // ssss sequence number
- tor( DEBUG_ver ) << "lex: sequence" << endl;
+ LOGOUT(DEBUG_ver) << "lex: sequence" << endl;
yy_pop_state();
yy_pop_state();
- yy_push_state( int16 );
+ yy_push_state(int16);
return SEQUENCE;
}
<meta_event>{YYTEXT} { // len data
- tor( DEBUG_ver ) << "lex: text" << endl;
+ LOGOUT(DEBUG_ver) << "lex: text" << endl;
// yylval.byte = *(Byte*)YYText();
yylval.i = *(Byte*)YYText();
yy_pop_state();
yy_pop_state();
- yy_push_state( data );
+ yy_push_state(data);
return YYTEXT;
}
<meta_event>{YYCOPYRIGHT} {
- tor( DEBUG_ver ) << "lex: copyright" << endl;
+ LOGOUT(DEBUG_ver) << "lex: copyright" << endl;
// yylval.byte = *(Byte*)YYText();
yylval.i = *(Byte*)YYText();
yy_pop_state();
yy_pop_state();
- yy_push_state( data );
+ yy_push_state(data);
return YYCOPYRIGHT;
}
<meta_event>{YYTRACK_NAME} {
- tor( DEBUG_ver ) << "lex: track name" << endl;
+ LOGOUT(DEBUG_ver) << "lex: track name" << endl;
// yylval.byte = *(Byte*)YYText();
yylval.i = *(Byte*)YYText();
yy_pop_state();
yy_pop_state();
- yy_push_state( data );
+ yy_push_state(data);
return YYTRACK_NAME;
}
<meta_event>{YYINSTRUMENT_NAME} {
- tor( DEBUG_ver ) << "lex: instrument name" << endl;
+ LOGOUT(DEBUG_ver) << "lex: instrument name" << endl;
// yylval.byte = *(Byte*)YYText();
yylval.i = *(Byte*)YYText();
yy_pop_state();
yy_pop_state();
- yy_push_state( data );
+ yy_push_state(data);
return YYINSTRUMENT_NAME;
}
<meta_event>{YYLYRIC} {
- tor( DEBUG_ver ) << "lex: lyric" << endl;
+ LOGOUT(DEBUG_ver) << "lex: lyric" << endl;
// yylval.byte = *(Byte*)YYText();
yylval.i = *(Byte*)YYText();
yy_pop_state();
yy_pop_state();
- yy_push_state( data );
+ yy_push_state(data);
return YYLYRIC;
}
<meta_event>{YYMARKER} {
- tor( DEBUG_ver ) << "lex: marker" << endl;
+ LOGOUT(DEBUG_ver) << "lex: marker" << endl;
// yylval.byte = *(Byte*)YYText();
yylval.i = *(Byte*)YYText();
yy_pop_state();
yy_pop_state();
- yy_push_state( data );
+ yy_push_state(data);
return YYMARKER;
}
<meta_event>{YYCUE_POINT} {
- tor( DEBUG_ver ) << "lex: cue point" << endl;
+ LOGOUT(DEBUG_ver) << "lex: cue point" << endl;
// yylval.byte = *(Byte*)YYText();
yylval.i = *(Byte*)YYText();
yy_pop_state();
yy_pop_state();
- yy_push_state( data );
+ yy_push_state(data);
return YYCUE_POINT;
}
<meta_event>{TEMPO} { // tttttt usec
- tor( DEBUG_ver ) << "lex: tempo" << endl;
+ LOGOUT(DEBUG_ver) << "lex: tempo" << endl;
yy_pop_state();
yy_pop_state();
- yy_push_state( u8 );
- yy_push_state( u8 );
- yy_push_state( u8 );
+ yy_push_state(u8);
+ yy_push_state(u8);
+ yy_push_state(u8);
return TEMPO;
}
<meta_event>{SMPTE_OFFSET} { // hr mn se fr ff
- tor( DEBUG_ver ) << "lex: smpte offset" << endl;
+ LOGOUT(DEBUG_ver) << "lex: smpte offset" << endl;
yy_pop_state();
yy_pop_state();
- yy_push_state( u8 );
- yy_push_state( u8 );
- yy_push_state( u8 );
- yy_push_state( u8 );
- yy_push_state( u8 );
+ yy_push_state(u8);
+ yy_push_state(u8);
+ yy_push_state(u8);
+ yy_push_state(u8);
+ yy_push_state(u8);
return SMPTE_OFFSET;
}
<meta_event>{TIME} { // nn dd cc bb
- tor( DEBUG_ver ) << "lex: time" << endl;
+ LOGOUT(DEBUG_ver) << "lex: time" << endl;
yy_pop_state();
yy_pop_state();
- yy_push_state( u8 );
- yy_push_state( u8 );
- yy_push_state( u8 );
- yy_push_state( u8 );
+ yy_push_state(u8);
+ yy_push_state(u8);
+ yy_push_state(u8);
+ yy_push_state(u8);
return TIME;
}
<meta_event>{KEY} { // sf mi
- tor( DEBUG_ver ) << "lex: key" << endl;
+ LOGOUT(DEBUG_ver) << "lex: key" << endl;
yy_pop_state();
yy_pop_state();
- yy_push_state( i8 );
- yy_push_state( i8 );
+ yy_push_state(i8);
+ yy_push_state(i8);
return KEY;
}
<meta_event>{SSME} { // len data
- tor( DEBUG_ver ) << "lex: smme" << endl;
+ LOGOUT(DEBUG_ver) << "lex: smme" << endl;
yy_pop_state();
yy_pop_state();
- yy_push_state( data );
+ yy_push_state(data);
return SSME;
}
<meta_event>{END_OF_TRACK} {
- tor( DEBUG_ver ) << "lex: end of track" << endl;
+ LOGOUT(DEBUG_ver) << "lex: end of track" << endl;
yy_pop_state();
yy_pop_state();
yy_pop_state();
return END_OF_TRACK;
}
<meta_event>{U8} {
- warning( String( "meta_event: unimplemented event: " )
- + String_convert::bin2hex_str( String( *YYText() ) )
-//, this->here_ch_C()
+ warning(String("meta_event: unimplemented event: ")
+ + String_convert::bin2hex_str(String(*YYText()))
+// huh?
+// ,this->here_ch_C()
);
yy_pop_state();
yy_pop_state();
- yy_push_state( u8 );
- yy_push_state( u8 );
+ yy_push_state(u8);
+ yy_push_state(u8);
return U8;
}
<data>{VARINT} {
- tor( DEBUG_ver ) << "lex: data" << endl;
- String str( (Byte const*)YYText(), YYLeng() );
- int i = My_midi_lexer::varint2_i( str );
+ LOGOUT(DEBUG_ver) << "lex: data" << endl;
+ String str((Byte const*)YYText(), YYLeng());
+ int i = My_midi_lexer::varint2_i(str);
String* str_p = new String;
- while ( i-- )
+ while (i--)
*str_p += (char)yyinput();
yylval.str_p = str_p;
yy_pop_state();
return DATA;
}
<data>{U8} {
- error( String( "data: illegal byte: " )
- + String_convert::bin2hex_str( String( *YYText() ) ) );
- exit( 1 );
+ error(String("data: illegal byte: ")
+ + String_convert::bin2hex_str(String(*YYText())));
+ exit(1);
}
<data>{BACKUP_VARINT_0}{U8} {
- error( String( "data: varint expected: " )
- + String_convert::bin2hex_str( String( *( YYText() ) ) ) );
- exit( 1 );
+ error(String("data: varint expected: ")
+ + String_convert::bin2hex_str(String(*(YYText()))));
+ exit(1);
}
<data>{BACKUP_VARINT_1}{U8} {
- error( String( "data: varint expected: " )
- + String_convert::bin2hex_str( String( *( YYText() ) ) ) );
- exit( 1 );
+ error(String("data: varint expected: ")
+ + String_convert::bin2hex_str(String(*(YYText()))));
+ exit(1);
}
<data>{BACKUP_VARINT_2}{U8} {
- error( String( "data: varint expected: " )
- + String_convert::bin2hex_str( String( *( YYText() ) ) ) );
- exit( 1 );
+ error(String("data: varint expected: ")
+ + String_convert::bin2hex_str(String(*(YYText()))));
+ exit(1);
}
<<EOF>> {
-// tor( NORMAL_ver ) << "<<EOF>>";
+// LOGOUT(NORMAL_ver) << "<<EOF>>";
- if ( !close_i() )
+ if (!close_i())
yyterminate(); // can't move this, since it actually rets a YY_NULL
}
diff --git a/mi2mu/midi-parser.y b/mi2mu/midi-parser.y
index d28e907340..c1ec3edfed 100644
--- a/mi2mu/midi-parser.y
+++ b/mi2mu/midi-parser.y
@@ -1,6 +1,18 @@
%{
-#include "mi2mu.hh"
+#include "mi2mu-proto.hh"
+#include "proto.hh"
+#include "plist.hh"
+#include "warn.hh"
+#include "mi2mu-global.hh"
+//#include "midi-parser.hh"
+#include "my-midi-parser.hh"
+#include "my-midi-lexer.hh"
+#include "duration-convert.hh"
+#include "string-convert.hh"
+#include "mudela-item.hh"
+#include "mudela-score.hh"
+#include "mudela-staff.hh"
#ifndef NDEBUG
#define YYDEBUG 1
@@ -13,9 +25,9 @@
char c;
int i;
String* str_p;
- Midi_event* midi_event_p; // Voice_element* ?
- Midi_score* midi_score_p; // Input_score* ?
- Midi_track* midi_track_p; // Input_music* ?
+ Mudela_item* mudela_item_p; // Voice_element* ? jup, just about :-)
+ Mudela_score* mudela_score_p; // Input_score* ?
+ Mudela_staff* mudela_staff_p; // Input_music* ?
}
%token HEADER TRACK
@@ -33,39 +45,39 @@
%token<str_p> DATA
%type <i> varint
-%type <midi_score_p> header midi_score
-%type <midi_track_p> track
-%type <midi_event_p> event
-%type <midi_event_p> the_event meta_event the_meta_event text_event midi_event sysex_event
-%type <midi_event_p> running_status data_entry all_notes_off
-%type <midi_event_p> note_off note_on
-%type <midi_event_p> polyphonic_aftertouch controlmode_change program_change
-%type <midi_event_p> channel_aftertouch pitchwheel_range
+%type <mudela_score_p> header mudela_score
+%type <mudela_staff_p> track
+%type <mudela_item_p> item
+%type <mudela_item_p> the_item meta_item the_meta_item text_item mudela_item sysex_item
+%type <mudela_item_p> running_status data_entry all_notes_off
+%type <mudela_item_p> note_off note_on
+%type <mudela_item_p> polyphonic_aftertouch controlmode_change program_change
+%type <mudela_item_p> channel_aftertouch pitchwheel_range
%%
midi: /* empty */
- | midi midi_score {
- midi_parser_l_g->add_score( $2 );
+ | midi mudela_score {
+ midi_parser_l_g->add_score ($2);
}
;
-midi_score:
+mudela_score:
header {
}
- | midi_score track {
- $$->add_track( $2 );
+ | mudela_score track {
+ $$->add_staff ($2);
// ugh
- $2->set_tempo( midi_parser_l_g->midi_tempo_p_->useconds_per_4_i() );
- $2->set_time( midi_parser_l_g->midi_time_p_->num_i(),
- midi_parser_l_g->midi_time_p_->den_i(),
- midi_parser_l_g->midi_time_p_->clocks_1_i(),
- 8 );
- if ( midi_parser_l_g->copyright_str_.length_i() )
+ $2->set_tempo (midi_parser_l_g->mudela_tempo_p_->useconds_per_4_i());
+ $2->set_meter (midi_parser_l_g->mudela_meter_p_->num_i(),
+ midi_parser_l_g->mudela_meter_p_->den_i(),
+ midi_parser_l_g->mudela_meter_p_->clocks_1_i(),
+ 8);
+ if (midi_parser_l_g->copyright_str_.length_i())
$2->copyright_str_ = midi_parser_l_g->copyright_str_;
- if ( midi_parser_l_g->track_name_str_.length_i() )
+ if (midi_parser_l_g->track_name_str_.length_i())
$2->name_str_ = midi_parser_l_g->track_name_str_;
- if ( midi_parser_l_g->instrument_str_.length_i() )
+ if (midi_parser_l_g->instrument_str_.length_i())
$2->instrument_str_ = midi_parser_l_g->instrument_str_;
midi_parser_l_g->reset();
}
@@ -73,60 +85,64 @@ midi_score:
header:
HEADER INT32 INT16 INT16 INT16 {
- $$ = new Midi_score( $3, $4, $5 );
- midi_parser_l_g->set_division_4( $5 );
+ // ugh, already constructed;
+ // need to have score in My_midi_parser...
+// $$ = new Mudela_score ($3, $4, $5);
+ $$ = midi_parser_l_g->mudela_score_p_;
+ $$->format_i_ = $3;
+ $$->tracks_i_ = $4;
+ $$->tempo_i_ = $5;
+ midi_parser_l_g->set_division_4 ($5);
}
;
track:
TRACK INT32 {
- tor( NORMAL_ver ) << "\ntrack " << midi_parser_l_g->track_i_ << ": " << flush;
- $$ = new Midi_track( midi_parser_l_g->track_i_++,
+ LOGOUT (NORMAL_ver) << "\ntrack " << midi_parser_l_g->track_i_ << ": " << flush;
+ $$ = new Mudela_staff (midi_parser_l_g->track_i_++,
// silly, cause not set yet!
midi_parser_l_g->copyright_str_,
midi_parser_l_g->track_name_str_,
- midi_parser_l_g->instrument_str_ );
- }
- | track event {
- $$->add_event( midi_parser_l_g->mom(), $2 );
+ midi_parser_l_g->instrument_str_);
+ //ugh, need to know now!
+ midi_parser_l_g->mudela_staff_l_ = $$;
+ }
+ | track item {
+ if ($2) {
+ $2->mudela_column_l_ = midi_parser_l_g->mudela_column_l_;
+ $$->add_item ($2);
+ }
}
;
-event:
- varint the_event {
+item:
+ varint the_item {
$$ = $2;
- if ( $2 ) {
- String str = $2->mudela_str( false );
- if ( str.length_i() )
- tor( DEBUG_ver ) << str << " " << flush;
+ if ($2) {
+ String str = $2->str();
+ if (str.length_i())
+ LOGOUT (DEBUG_ver) << str << " " << flush;
}
}
;
varint:
VARINT {
- midi_parser_l_g->forward( $1 );
- if ( $1 ) {
- int bars_i = (int)( midi_parser_l_g->mom() / midi_parser_l_g->midi_time_p_->bar_mom() );
- if ( bars_i > midi_parser_l_g->bar_i_ ) {
- tor( NORMAL_ver ) << '[' << midi_parser_l_g->bar_i_ << ']' << flush;
- midi_parser_l_g->bar_i_ = bars_i;
- }
- }
+ midi_parser_l_g->forward ($1);
}
;
-the_event:
- meta_event {
+the_item:
+ meta_item {
}
- | midi_event {
+ | mudela_item {
}
- | sysex_event {
+ | sysex_item {
}
;
-meta_event:
- META_EVENT the_meta_event {
+meta_item:
+ META_EVENT the_meta_item {
$$ = $2;
}
|
@@ -135,81 +151,81 @@ meta_event:
}
;
-the_meta_event:
+the_meta_item:
SEQUENCE INT16 {
}
- | text_event DATA {
- Midi_text::Type type = (Midi_text::Type)$1;
+ | text_item DATA {
+ Mudela_text::Type type = (Mudela_text::Type)$1;
$$ = 0;
- switch ( type )
+ switch (type)
{
- case Midi_text::COPYRIGHT:
+ case Mudela_text::COPYRIGHT:
midi_parser_l_g->copyright_str_ = *$2;
break;
- case Midi_text::TRACK_NAME:
+ case Mudela_text::TRACK_NAME:
midi_parser_l_g->track_name_str_ = *$2;
break;
- case Midi_text::INSTRUMENT_NAME:
+ case Mudela_text::INSTRUMENT_NAME:
midi_parser_l_g->instrument_str_ = *$2;
break;
default:
- $$ = new Midi_text( type, *$2 );
+ $$ = new Mudela_text (type, *$2);
break;
}
- tor( DEBUG_ver ) << *$2 << endl;
+ LOGOUT (DEBUG_ver) << *$2 << endl;
delete $2;
}
| END_OF_TRACK {
$$ = 0;
}
| TEMPO U8 U8 U8 {
- $$ = new Midi_tempo( ( $2 << 16 ) + ( $3 << 8 ) + $4 );
- tor( DEBUG_ver ) << $$->mudela_str( false ) << endl;
- midi_parser_l_g->set_tempo( ( $2 << 16 ) + ( $3 << 8 ) + $4 );
+ $$ = new Mudela_tempo ( ($2 << 16) + ($3 << 8) + $4);
+ LOGOUT (DEBUG_ver) << $$->str() << endl;
+ midi_parser_l_g->set_tempo ( ($2 << 16) + ($3 << 8) + $4);
}
| SMPTE_OFFSET U8 U8 U8 U8 U8 {
$$ = 0;
}
| TIME U8 U8 U8 U8 {
- $$ = new Midi_time( $2, $3, $4, $5 );
- tor( DEBUG_ver ) << $$->mudela_str( true ) << endl;
- midi_parser_l_g->set_time( $2, $3, $4, $5 );
+ $$ = new Mudela_meter ($2, $3, $4, $5);
+ LOGOUT (DEBUG_ver) << $$->str() << endl;
+ midi_parser_l_g->set_meter ($2, $3, $4, $5);
}
| KEY I8 I8 {
- $$ = new Midi_key( $2, $3 );
- midi_parser_l_g->set_key( $2, $3 );
+ $$ = new Mudela_key ($2, $3);
+ midi_parser_l_g->set_key ($2, $3 );
}
| SSME DATA {
- $$ = new Midi_text( (Midi_text::Type)0, *$2 );
+ $$ = new Mudela_text ((Mudela_text::Type)0, *$2);
delete $2;
}
;
-text_event:
+text_item:
YYTEXT {
- tor( DEBUG_ver ) << "\n% Text: ";
+ LOGOUT (DEBUG_ver) << "\n% Text: ";
}
| YYCOPYRIGHT {
- tor( DEBUG_ver ) << "\n% Copyright: ";
+ LOGOUT (DEBUG_ver) << "\n% Copyright: ";
}
| YYTRACK_NAME {
- tor( DEBUG_ver ) << "\n% Track name: ";
+ LOGOUT (DEBUG_ver) << "\n% Track name: ";
}
| YYINSTRUMENT_NAME {
- tor( DEBUG_ver ) << "\n% Instrument name: ";
+ LOGOUT (DEBUG_ver) << "\n% Instrument name: ";
}
| YYLYRIC {
- tor( DEBUG_ver ) << "\n% Lyric: ";
+ LOGOUT (DEBUG_ver) << "\n% Lyric: ";
}
| YYMARKER {
- tor( DEBUG_ver ) << "\n% Marker: ";
+ LOGOUT (DEBUG_ver) << "\n% Marker: ";
}
| YYCUE_POINT {
- tor( DEBUG_ver ) << "\n% Cue point: ";
+ LOGOUT (DEBUG_ver) << "\n% Cue point: ";
}
;
-midi_event:
+mudela_item:
running_status {
}
| data_entry {
@@ -233,7 +249,7 @@ midi_event:
;
running_status:
- RUNNING_STATUS midi_event {
+ RUNNING_STATUS mudela_item {
$$ = $2;
}
;
@@ -246,6 +262,7 @@ data_entry:
all_notes_off:
ALL_NOTES_OFF U8 U8 {
+ midi_parser_l_g->note_end_all();
$$ = 0;
}
;
@@ -254,7 +271,8 @@ note_off:
NOTE_OFF U8 U8 {
int i = $1;
i = i & ~0x80;
- $$ = midi_parser_l_g->note_end_midi_event_p( $1 & ~0x80, $2, $3 );
+ midi_parser_l_g->note_end ($1 & ~0x80, $2, $3);
+ $$ = 0;
}
;
@@ -263,14 +281,14 @@ note_on:
int i = $1;
i = i & ~0x90;
$$ = 0;
- if ( $3 )
- midi_parser_l_g->note_begin( $1 & ~0x90, $2, $3 );
+ if ($3)
+ midi_parser_l_g->note_begin ($1 & ~0x90, $2, $3);
/*
sss: some broken devices encode NOTE_OFF as
NOTE_ON with zero volume
*/
else
- $$ = midi_parser_l_g->note_end_midi_event_p( $1 & ~0x90, $2, $3 );
+ midi_parser_l_g->note_end ($1 & ~0x90, $2, $3);
}
;
@@ -304,7 +322,7 @@ pitchwheel_range:
}
;
-sysex_event:
+sysex_item:
SYSEX_EVENT1 DATA {
$$ = 0;
}
diff --git a/mi2mu/midi-score.cc b/mi2mu/midi-score.cc
deleted file mode 100644
index 7b3262045c..0000000000
--- a/mi2mu/midi-score.cc
+++ /dev/null
@@ -1,79 +0,0 @@
-//
-// midi-score.cc -- implement Midi_score
-//
-// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
-
-#include "mi2mu.hh"
-
-Midi_score::Midi_score( int format_i, int tracks_i, int tempo_i )
-{
- format_i_ = format_i;
- tracks_i_ = tracks_i;
- tempo_i_ = tempo_i;
-}
-
-Midi_score::~Midi_score()
-{
-}
-
-void
-Midi_score::add_track( Midi_track* midi_track_p )
-{
- midi_track_p_list_.bottom().add( midi_track_p );
-}
-
-int
-Midi_score::output_mudela( String filename_str )
-{
- tor( NORMAL_ver ) << "Lily output to " << filename_str << " ..." << endl;
-
- // ugh, ugly midi type 1 fix
- if ( ( midi_track_p_list_.size() == 1 ) && !midi_track_p_list_.top()->number_i_ )
- midi_track_p_list_.top()->number_i_ = 1;
-
- int track_i = 0;
- Lily_stream lily_stream( filename_str );
- for ( PCursor<Midi_track*> i( midi_track_p_list_.top() ); i.ok(); i++ ) {
- tor( NORMAL_ver ) << "track " << track_i++ << ": " << flush;
- i->output_mudela( lily_stream );
- lily_stream << "\n";
- tor( NORMAL_ver ) << endl;
- }
-
- lily_stream << "\\score{\n";
- lily_stream << " < \\multi 3;\n";
- for ( PCursor<Midi_track*> i( midi_track_p_list_.top() ); i.ok(); i++ ) {
- if ( ( midi_track_p_list_.size() != 1 )
- && ( i == midi_track_p_list_.top() ) )
- continue;
- lily_stream << "\\melodic{ ";
- lily_stream << "\\$" << i->id_str();
- lily_stream << " }\n";
- }
- lily_stream << ">\n";
-
- lily_stream << "\\paper{";
- lily_stream << "unitspace = 20.0\\mm;";
- lily_stream << "}\n";
-
- lily_stream << "\\midi{";
- // not use silly 0 track
- midi_track_p_list_.bottom()->midi_tempo_p_->output_mudela( lily_stream, true );
- lily_stream << "}\n";
-
- lily_stream << "}\n";
-
- return 0;
-}
-
-void
-Midi_score::process()
-{
- int track_i = 0;
- for ( PCursor<Midi_track*> i( midi_track_p_list_.top() ); i.ok(); i++ ) {
- tor( NORMAL_ver ) << "track " << track_i++ << ": " << flush;
- i->process();
- tor( NORMAL_ver ) << endl;
- }
-}
-
diff --git a/mi2mu/midi-track.cc b/mi2mu/midi-track.cc
deleted file mode 100644
index 0efb703501..0000000000
--- a/mi2mu/midi-track.cc
+++ /dev/null
@@ -1,536 +0,0 @@
-//
-// midi-track.cc -- implement Midi_track
-//
-// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
-
-#include "mi2mu.hh"
-
-Midi_track::Midi_track( int number_i, String copyright_str, String track_name_str, String instrument_str )
-{
- number_i_ = number_i;
- copyright_str_ = copyright_str;
- instrument_str_ = instrument_str;
- name_str_ = track_name_str;
- midi_time_p_ = new Midi_time( 4, 2, 24, 8 );
- midi_tempo_p_ = new Midi_tempo( 1000000 );
-#ifdef TCOL_LIST
- tcol_p_list_.bottom().add( new Track_column( Moment( 0 ) ) );
-#else
- tcol_p_array_.push( new Track_column( Moment( 0 ) ) );
-#endif
-}
-
-Midi_track::~Midi_track()
-{
- delete midi_time_p_;
- delete midi_tempo_p_;
-}
-
-#ifdef MVOICE_LIST
-void
-Midi_track::add_begin_at( Link_list<Midi_voice*>& open_voices_r, Moment mom )
-{
- for ( PCursor<Midi_voice*> i( midi_voice_p_list_.top() ); i.ok(); i++ )
- if ( i->begin_mom() == mom ) {
- tor( DEBUG_ver ) << "open_voices (" << open_voices_r.size() << "): +1\n";
- open_voices_r.bottom().add( *i );
- }
-}
-#else
-void
-Midi_track::add_begin_at( Array<Midi_voice*>& open_voices_r, Moment mom )
-{
- for ( int i = 0; i < midi_voice_p_array_.size(); i++ )
- if ( midi_voice_p_array_[ i ]->begin_mom() == mom ) {
- tor( DEBUG_ver ) << "open_voices (" << open_voices_r.size() << "): +1\n";
- open_voices_r.push( midi_voice_p_array_[ i ] );
- }
-}
-#endif
-
-void
-Midi_track::add_event( Moment mom, Midi_event* midi_event_p )
-{
- if ( ! midi_event_p )
- return;
- tcol_l( mom - midi_event_p->mom() )->add_event( midi_event_p );
-}
-
-int
-Midi_track::check_begin_bar_i( Moment now_mom, int open_bar_i )
-{
- Moment bar_mom = midi_time_p_->bar_mom();
- int bar_i = (int)( now_mom / bar_mom ) + 1;
- if ( bar_i > open_bar_i ) {
- tor( NORMAL_ver ) << '[' << flush;
- return bar_i;
- }
- return 0;
-}
-
-int
-Midi_track::check_end_bar_i( Moment now_mom, int open_bar_i )
-{
- Moment bar_mom = midi_time_p_->bar_mom();
- int bar_i = (int)( now_mom / bar_mom ) + 1;
- if ( bar_i > open_bar_i ) {
- tor( NORMAL_ver ) << ']' << flush;
- return bar_i;
- }
- return open_bar_i;
-}
-
-Moment
-Midi_track::end_mom()
-{
- // heu..
- Moment mom = 0.0;
-#ifdef MVOICE_LIST
- for ( PCursor<Midi_voice*> i( midi_voice_p_list_.top() ); i.ok(); i++ )
- mom = i->end_mom() >? mom;
-#else
- for ( int i = 0; i < midi_voice_p_array_.size(); i++ )
- mom = midi_voice_p_array_[ i ]->end_mom() >? mom;
-#endif
- return mom;
-}
-
-Midi_voice*
-Midi_track::get_free_midi_voice_l( Moment mom )
-{
-#ifdef MVOICE_LIST
- Real f = mom;
- for ( PCursor<Midi_voice*> i( midi_voice_p_list_.top() ); i.ok(); i++ ) {
- Real e = i->end_mom();
- if ( i->end_mom() == mom )
- return *i;
- }
-
- Midi_voice* midi_voice_p = new Midi_voice( mom );
- Midi_voice* midi_voice_l = midi_voice_p;
- midi_voice_p_list_.bottom().add( midi_voice_p );
- return midi_voice_l;
-#else
- Real f = mom;
- for ( int i = 0; i < midi_voice_p_array_.size(); i++ ) {
- Real e = i->end_mom();
- if ( midi_voice_p_array_[ i ]->end_mom() == mom )
- return midi_voice_p_array_[ i ];
- }
-
- Midi_voice* midi_voice_p = new Midi_voice( mom );
- Midi_voice* midi_voice_l = midi_voice_p;
- midi_voice_p_array_.push( midi_voice_p );
- return midi_voice_l;
-#endif
-}
-
-String
-Midi_track::id_str()
-{
- String str = name_str();
- for ( int i = 0; i < str.length_i(); i++ )
- if ( ( !i && !isalpha( str[ i ] ) )
- || !isalnum( str[ i ] ) )
- *( str.ch_l() + i ) = '_';
- return str;
-}
-
-String
-Midi_track::name_str()
-{
- if ( name_str_.length_i() )
- return name_str_;
- return String( "track" ) + String( number_i_ );
-}
-
-Moment
-Midi_track::next_begin_mom( Moment now_mom )
-{
-// Moment begin_mom = Midi_track::end_mom() + 1;
- Moment begin_mom = Midi_track::end_mom();
-#ifdef MVOICE_LIST
- for ( PCursor<Midi_voice*> i( midi_voice_p_list_.top() ); i.ok(); i++ )
- if ( i->begin_mom() > now_mom )
- begin_mom = begin_mom <? i->begin_mom();
-#else
- for ( int i = 0; i < midi_voice_p_array_.size(); i++ )
- if ( midi_voice_p_array_[ i ]->begin_mom() > now_mom )
- begin_mom = begin_mom <? midi_voice_p_array_[ i ]->begin_mom();
-#endif
- return begin_mom;
-}
-
-Moment
-Midi_track::next_end_mom( Moment now_mom )
-{
- Moment end_mom = Midi_track::end_mom();
-#ifdef MVOICE_LIST
- for ( PCursor<Midi_voice*> i( midi_voice_p_list_.top() ); i.ok(); i++ )
- if ( i->end_mom() > now_mom )
- end_mom = end_mom <? i->end_mom();
-#else
- for ( int i = 0; i < midi_voice_p_array_.size(); i++ )
- if ( midi_voice_p_array_[ i ]->end_mom() > now_mom )
- end_mom = end_mom <? midi_voice_p_array_[ i ]->end_mom();
-#endif
- return end_mom;
-}
-
-void
-Midi_track::process()
-{
- /*
- columns to voices
- */
-// int bar_i = 1;
- int bar_i = 0;
-#ifdef TCOL_LIST
- for ( PCursor<Track_column*> i( tcol_p_list_.top() ); i.ok(); i++ ) {
- int begin_bar_i = check_begin_bar_i( i->mom(), bar_i );
- if ( begin_bar_i )
- tor( NORMAL_ver ) << begin_bar_i << flush;
- while ( i->midi_event_p_list_.size() )
- get_free_midi_voice_l( i->mom() )->add_event( i->midi_event_p_list_.top().remove_p() );
- bar_i = check_end_bar_i( i->mom(), bar_i );
- }
-#else
- for ( int i = 0; i < tcol_p_array_.size(); i++ ) {
- Track_column* tcol_l = tcol_p_array_[ i ];
- int begin_bar_i = check_begin_bar_i( tcol_l->mom(), bar_i );
- if ( begin_bar_i )
- tor( NORMAL_ver ) << begin_bar_i << flush;
-#ifdef MEVENT_LIST
- while ( tcol_l->midi_event_p_list_.size() )
- get_free_midi_voice_l( tcol_l->mom() )->add_event( tcol_l->midi_event_p_list_.top().remove_p() );
-#else
- // what's efficient here?
-#if 0 // heu, what's different here?
- while ( tcol_l->midi_event_p_array_.size() ) {
- get_free_midi_voice_l( tcol_l->mom() )->add_event( tcol_l->midi_event_p_array_[ 0 ] );
- tcol_l->midi_event_p_array_.del( 0 );
- }
-#else
- for ( int j = 0; j < tcol_l->midi_event_p_array_.size(); j++ ) {
- get_free_midi_voice_l( tcol_l->mom() )->add_event( tcol_l->midi_event_p_array_[ j ] );
- tcol_l->midi_event_p_array_[ j ] = 0;
- }
- tcol_l->midi_event_p_array_.clear();
-#endif
-#endif
- bar_i = check_end_bar_i( tcol_l->mom(), bar_i );
- }
-#endif
-
- tor( DEBUG_ver ) << "ends: " << endl;
- int n = 0;
-#ifdef MVOICE_LIST
- for ( PCursor<Midi_voice*> i( midi_voice_p_list_.top() ); i.ok(); i++ )
- tor( VERBOSE_ver ) << "voice " << n++ << ": " << i->end_mom() << endl;
-#else
- for ( int i = 0; i < midi_voice_p_array_.size(); i++ )
- tor( VERBOSE_ver ) << "voice " << n++ << ": " << midi_voice_p_array_[ i ]->end_mom() << endl;
-#endif
- tor( DEBUG_ver ) << ":sdne" << endl;
-}
-
-void
-Midi_track::output_mudela( Lily_stream& lily_stream_r )
-{
- lily_stream_r << "$" << id_str() << " = \\melodic{\n";
- lily_stream_r << "% midi copyright:" << copyright_str_ << "\n";
- lily_stream_r << "% instrument:" << instrument_str_ << "\n";
-// int bar_i = 1;
- int bar_i = 0;
-
-#ifdef MVOICE_LIST
- Link_list<Midi_voice*> open_voices;
-#else
- Array<Midi_voice*> open_voices;
-#endif
- Moment now_mom = 0.0;
- Real now_f = now_mom;
- Real begin_f = 0;
- Real end_f = end_mom();
- Real then_f;
-
- /*
- now we step through time while writing all voices
-
- we can only output time slices that have a constant
- number of open voices; each begin or end of a voice
- starts or ends a chord or multivoice
-
- [todo]
- voice defragmentation/concatenation could make this
- lost blonder
- */
-
- bool start_of_track_bo = true;
-
- /// ugh, avoid status track 0 full of rests...
- while ( number_i_ && ( now_mom < end_mom() ) ) {
- int begin_bar_i = check_begin_bar_i( now_mom, bar_i );
- if ( begin_bar_i )
- output_mudela_begin_bar( lily_stream_r, now_mom, begin_bar_i );
- add_begin_at( open_voices, now_mom );
-
- Moment begin_mom = next_begin_mom( now_mom );
-
- if ( begin_bar_i )
- tor( NORMAL_ver ) << begin_bar_i << flush;
-
- Moment end_mom = next_end_mom( now_mom );
- Moment then_mom = 0.0;
- if ( ( begin_mom > now_mom ) && ( begin_mom < end_mom ) )
- then_mom = begin_mom;
- else
- then_mom = end_mom;
-
- tor( DEBUG_ver ) << "begin: " << begin_mom << " end: " << end_mom << endl;
- tor( DEBUG_ver ) << "slice: " << now_mom << ", " << then_mom << endl;
-
- now_f = now_mom;
- begin_f = begin_mom;
- end_f = end_mom;
- then_f = then_mom;
-
-// ugh, rests
-// checking for no open voice does not work for initial rests.
-// for some reason the voice is open, but does not procuce notes?
- if ( open_voices.size() > 1 )
- lily_stream_r << "< ";
- if ( start_of_track_bo ) {
- start_of_track_bo = false;
- String str;
-#ifdef MVOICE_LIST
- for ( PCursor<Midi_voice*> i( open_voices.top() ); i.ok(); i++ )
- lily_stream_r << i->mudela_str( now_mom, then_mom, open_voices.size() - 1 );
-#else
- for ( int i = 0; i < open_voices.size(); i++ )
- lily_stream_r << open_voices[ i ]->mudela_str( now_mom, then_mom, open_voices.size() - 1 );
-#endif
- if ( str.length_i() )
- lily_stream_r << str;
- else
- output_mudela_rest( lily_stream_r, now_mom, then_mom );
- }
- else {
-#ifdef MVOICE_LIST
- for ( PCursor<Midi_voice*> i( open_voices.top() ); i.ok(); i++ )
- lily_stream_r << i->mudela_str( now_mom, then_mom, open_voices.size() - 1 );
-#else
- for ( int i = 0; i < open_voices.size(); i++ )
- lily_stream_r << open_voices[ i ]->mudela_str( now_mom, then_mom, open_voices.size() - 1 );
-#endif
- if ( !open_voices.size() )
- output_mudela_rest( lily_stream_r, now_mom, then_mom );
- }
-// *lily_stream_r.os_p_ << flush;
-
- if ( open_voices.size() > 1 )
- lily_stream_r << "> ";
- remove_end_at( open_voices, then_mom );
-
- bar_i = check_end_bar_i( now_mom, bar_i );
-
- now_mom = then_mom;
- }
-// bar_i++;
-// tor( NORMAL_ver ) << '[' << bar_i << ']' << flush;
-
- lily_stream_r << "} % " << name_str() << "\n";
-}
-
-
-void
-Midi_track::output_mudela_begin_bar( Lily_stream& lily_stream_r, Moment now_mom, int bar_i )
-{
- Moment bar_mom = midi_time_p_->bar_mom();
- Moment into_bar_mom = now_mom - Moment( bar_i - 1 ) * bar_mom;
- if ( bar_i > 1 ) {
- if ( !into_bar_mom )
- lily_stream_r << "|\n";
- }
- lily_stream_r << "% " << String_convert::i2dec_str( bar_i, 0, ' ' );
- if ( into_bar_mom )
- lily_stream_r << ":" << Duration_convert::dur2_str( Duration_convert::mom2_dur( into_bar_mom ) );
- lily_stream_r << "\n";
-}
-
-
-void
-Midi_track::output_mudela_rest( Lily_stream& lily_stream_r, Moment begin_mom, Moment end_mom )
-{
- Moment bar_mom = midi_time_p_->bar_mom();
- Moment now_mom = begin_mom;
-
- int begin_bar_i = (int)( now_mom / bar_mom ) + 1;
- int end_bar_i = (int)( end_mom / bar_mom ) + 1;
-
- if ( end_bar_i == begin_bar_i ) {
- output_mudela_rest_remain( lily_stream_r, end_mom - begin_mom );
- return;
- }
-
- // multiple bars involved
- int bar_i = (int)( now_mom / bar_mom ) + 1;
-
- //fill current bar
- Moment begin_bar_mom = Moment( begin_bar_i - 1 ) * bar_mom;
- if ( now_mom > begin_bar_mom ) {
- int next_bar_i = (int)( now_mom / bar_mom ) + 2;
- Moment next_bar_mom = Moment( next_bar_i - 1 ) * bar_mom;
- assert( next_bar_mom <= end_mom );
-
- Moment remain_mom = next_bar_mom - now_mom;
- if ( remain_mom > Moment( 0 ) ) {
- output_mudela_rest_remain( lily_stream_r, remain_mom );
- now_mom += remain_mom;
- }
-
- bar_i = check_end_bar_i( now_mom, bar_i );
- }
-
- // fill whole bars
- int count_i = end_bar_i - bar_i;
- for ( int i = 0; i < count_i; i++ ) {
- int begin_bar_i = check_begin_bar_i( now_mom, bar_i );
- if ( begin_bar_i )
- output_mudela_begin_bar( lily_stream_r, now_mom, begin_bar_i );
- lily_stream_r << "r1 ";
-// *lily_stream_r.os_p_ << flush;
- if ( begin_bar_i )
- tor( NORMAL_ver ) << begin_bar_i << flush;
- bar_i = check_end_bar_i( now_mom, bar_i );
- now_mom += bar_mom;
- }
-
- // use "int i" here, and gcc 2.7.2 hits internal compiler error
- int ii = check_begin_bar_i( now_mom, bar_i );
- if ( ii )
- output_mudela_begin_bar( lily_stream_r, now_mom, ii );
-
-// bar_i = check_end_bar_i( now_mom, bar_i );
-
- Moment remain_mom = end_mom - Moment( end_bar_i - 1 ) * bar_mom;
- if ( remain_mom > Moment( 0 ) ) {
- output_mudela_rest_remain( lily_stream_r, remain_mom );
- now_mom += remain_mom;
- }
- assert( now_mom == end_mom );
-}
-
-void
-Midi_track::output_mudela_rest_remain( Lily_stream& lily_stream_r, Moment mom )
-{
- if ( Duration_convert::no_quantify_b_s ) {
- Duration dur = Duration_convert::mom2_dur( mom );
- lily_stream_r << "r" << dur.str() << " ";
-// assert( mom == dur.mom() );
- assert( mom == dur.length() );
- return;
- }
-
- Duration dur = Duration_convert::mom2standardised_dur( mom );
- if ( dur.type_i_ )
- lily_stream_r << "r" << dur.str() << " ";
-}
-
-
-#ifdef MVOICE_LIST
-void
-Midi_track::remove_end_at( Link_list<Midi_voice*>& open_voices_r, Moment mom )
-{
- for ( PCursor<Midi_voice*> i( open_voices_r.top() ); i.ok(); i++ )
- if ( i->end_mom() <= mom ) {
- tor( DEBUG_ver ) << "open_voices (" << open_voices_r.size() << "): -1\n";
- i.remove_p();
- if ( !i.ok() )
- break;
- }
-}
-#else
-void
-Midi_track::remove_end_at( Array<Midi_voice*>& open_voices_r, Moment mom )
-{
- for ( int i = 0; i < open_voices_r.size(); i++ )
- if ( midi_voice_p_array_[ i ]->end_mom() <= mom ) {
- tor( DEBUG_ver ) << "open_voices (" << open_voices_r.size() << "): -1\n";
- open_voices_r[ i ] = 0;
-// open_voices_r.del( i-- );
- open_voices_r.del( i );
- }
-}
-#endif
-
-void
-Midi_track::set_tempo( int useconds_per_4_i )
-{
- delete midi_tempo_p_;
- midi_tempo_p_ = new Midi_tempo( useconds_per_4_i );
-}
-
-void
-Midi_track::set_time( int num_i, int den_i, int clocks_i, int count_32_i )
-{
- delete midi_time_p_;
- midi_time_p_ = new Midi_time( num_i, den_i, clocks_i, count_32_i );
-}
-
-Track_column*
-Midi_track::tcol_l( Moment mom )
-{
-#ifdef TCOL_LIST
- for ( PCursor<Track_column*> i( tcol_p_list_.top() ); i.ok(); i++ ) {
- if ( i->mom() > mom ) { //not used, let's use array!
-// assert( 0 );
-// 97-07-21; it's used now! cannot use array
- Track_column* tcol_p = new Track_column( mom );
- i.insert( tcol_p );
- return tcol_p;
- }
- if ( i->mom() == mom )
- return *i;
- }
-
- Track_column* tcol_p = new Track_column( mom );
- tcol_p_list_.bottom().add( tcol_p );
- return tcol_p;
-#elif 0
- for ( int i = 0; i < tcol_p_array_.size(); i++ )
- if ( tcol_p_array_[ i ]->mom() == mom )
- return tcol_p_array_[ i ];
-
- Track_column* tcol_p = new Track_column( mom );
- tcol_p_array_.push( tcol_p );
- return tcol_p;
-#else
- /*
- as "insert" is never called, the right column will
- always be found, unless mom > tcol_p_array[ i ]->mom().
- */
- int upper_i = max( 0, tcol_p_array_.size() - 1 );
- int lower_i = 0;
- int i = upper_i;
- while ( 1 ) {
- Moment i_mom = tcol_p_array_[ i ]->mom();
- if ( i_mom == mom )
- return tcol_p_array_[ i ];
- if ( mom < i_mom )
- upper_i = i;
- else
- lower_i = i;
- if ( ( upper_i == lower_i ) || ( i == tcol_p_array_.size() - 1 ) ) {
-// huh? assert ( upper_i == tcol_p_array_.size() );
- Track_column* tcol_p = new Track_column( mom );
- tcol_p_array_.push( tcol_p );
- return tcol_p;
- }
- i = ( upper_i + lower_i + 1 ) / 2;
- }
- assert( 0 );
- return 0;
-#endif
-}
-
diff --git a/mi2mu/midi-voice.cc b/mi2mu/midi-voice.cc
deleted file mode 100644
index 77a6526ef8..0000000000
--- a/mi2mu/midi-voice.cc
+++ /dev/null
@@ -1,102 +0,0 @@
-//
-// midi-voice.cc -- implement midi_voice
-//
-// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
-
-#include "mi2mu.hh"
-
-Midi_voice::Midi_voice( Moment begin_mom )
-{
- begin_mom_ = begin_mom;
- end_mom_ = begin_mom;
- events_i_ = 0;
-}
-
-void
-Midi_voice::add_event( Midi_event* midi_event_p )
-{
-#ifdef MEVENT_LIST
- midi_event_p_list_.bottom().add( midi_event_p );
-#else
- midi_event_p_array_.push( midi_event_p );
-#endif
-}
-
-Moment
-Midi_voice::begin_mom()
-{
- return begin_mom_;
-}
-
-Moment
-Midi_voice::end_mom()
-{
-#ifdef MEVENT_LIST
-// if ( events_i_ == midi_event_p_list_.length_i() )
- if ( events_i_ == midi_event_p_list_.size() )
- return end_mom_;
- Moment now_mom = begin_mom_;
- tor( DEBUG_ver ) << now_mom << ", ";
- for ( PCursor<Midi_event*> i( midi_event_p_list_.top() ); i.ok(); i++ ) {
- tor( DEBUG_ver ) << now_mom << ", ";
- now_mom += i->mom();
- }
- tor( DEBUG_ver ) << endl;
- end_mom_ = now_mom;
-// events_i_ = midi_event_p_list_.length_i();
- events_i_ = midi_event_p_list_.size();
- return end_mom_;
-#else
- if ( events_i_ == midi_event_p_array_.size() )
- return end_mom_;
- Moment now_mom = begin_mom_;
- tor( DEBUG_ver ) << now_mom << ", ";
- for ( int i = 0; i < midi_event_p_array_.size(); i++ ) {
- tor( DEBUG_ver ) << now_mom << ", ";
- now_mom += midi_event_p_array_[ i ]->mom();
- }
- tor( DEBUG_ver ) << endl;
- end_mom_ = now_mom;
- events_i_ = midi_event_p_array_.size();
- return end_mom_;
-#endif
-}
-
-String
-Midi_voice::mudela_str( Moment from_mom, Moment to_mom, bool multiple_bo )
-{
- String str;
-
-// if ( begin_mom() >= to_mom )
- if ( begin_mom() > to_mom )
- return "";
-// if ( end_mom() <= from_mom )
- if ( end_mom() < from_mom )
- return "";
-
- Moment now_mom = begin_mom();
-#ifdef MEVENT_LIST
- PCursor<Midi_event*> i( midi_event_p_list_.top() );
- for ( ; i.ok() && now_mom < from_mom ; i++ )
- now_mom += i->mom();
-
- for ( ; i.ok() && now_mom < to_mom ; i++ ) {
- now_mom += i->mom();
- str += i->mudela_str( false ) + " ";
- }
-#else
- int i = 0;
- for ( ; i < midi_event_p_array_.size() && now_mom < from_mom ; i++ )
- now_mom += midi_event_p_array_[ i ]->mom();
-
- for ( ; i < midi_event_p_array_.size() && now_mom < to_mom ; i++ ) {
- now_mom += midi_event_p_array_[ i ]->mom();
- str += midi_event_p_array_[ i ]->mudela_str( false ) + " ";
- }
-#endif
-
- if ( str.length_i() && multiple_bo )
- str = "{ " + str + "} ";
- return str;
-}
-
diff --git a/mi2mu/my-midi-lexer.cc b/mi2mu/my-midi-lexer.cc
index c1ec9627a4..63dfb06d8f 100644
--- a/mi2mu/my-midi-lexer.cc
+++ b/mi2mu/my-midi-lexer.cc
@@ -3,7 +3,11 @@
//
// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
-#include "mi2mu.hh"
+#include "string-convert.hh"
+#include "mi2mu-global.hh"
+#include "my-midi-lexer.hh"
+#include "source.hh"
+#include "source-file.hh"
int
yylex()
@@ -13,10 +17,12 @@ yylex()
My_midi_lexer* midi_lexer_l_g = 0;
-My_midi_lexer::My_midi_lexer( String &filename_str, Sources * sources )
+My_midi_lexer::My_midi_lexer (String &filename_str, Sources * sources)
{
- source_file_l_ =sources->get_file_l(filename_str);
- switch_streams( source_file_l_->istream_l() ,0 );
+ source_file_l_ = sources->get_file_l(filename_str);
+ if (!source_file_l_)
+ ::error ("can't find: `" + filename_str + "'");
+ switch_streams (source_file_l_->istream_l(), 0);
errorlevel_i_ = 0;
char_count_ = 0;
running_status_i_ = 0;
@@ -28,23 +34,23 @@ My_midi_lexer::~My_midi_lexer()
}
void
-My_midi_lexer::error( char const* sz_l )
+My_midi_lexer::error (char const* sz_l)
{
- if (1|| !source_file_l_ ) {
- cerr << "error at EOF" << sz_l << '\n';
+ if (1|| !source_file_l_) {
+ cerr << "error at EOF: `" << sz_l << "'\n";
} else {
// FIXME
#if 0
char const* ch_C = here_ch_C();
- if ( ch_C ) {
+ if (ch_C) {
ch_C--;
- while ( ( *ch_C == ' ' ) || ( *ch_C == '\t' ) || ( *ch_C == '\n' ) )
+ while ( (*ch_C == ' ') || (*ch_C == '\t') || (*ch_C == '\n'))
ch_C--;
ch_C++;
}
errorlevel_i_ |= 1;
- error( sz_l);
+ error (sz_l);
#endif
}
}
@@ -56,19 +62,19 @@ My_midi_lexer::here_ch_C()
}
int
-My_midi_lexer::varint2_i( String str )
+My_midi_lexer::varint2_i (String str)
{
int var_i = 0;
- for ( int i = 0; i < str.length_i(); i++ ) {
+ for (int i = 0; i < str.length_i(); i++) {
Byte byte = str[ i ];
var_i <<= 7;
var_i += byte & 0x7f;
- if ( ! ( byte & 0x80 ) )
+ if (! (byte & 0x80))
return var_i;
}
- cout << "\nvarint2_i:" << String_convert::bin2hex_str( str ) << endl;
- assert( 0 ); // illegal varint
+ cout << "\nvarint2_i:" << String_convert::bin2hex_str (str) << endl;
+ assert (0); // illegal varint
return 0;
}
diff --git a/mi2mu/my-midi-parser.cc b/mi2mu/my-midi-parser.cc
index 7c86998486..d0ecf943ac 100644
--- a/mi2mu/my-midi-parser.cc
+++ b/mi2mu/my-midi-parser.cc
@@ -3,183 +3,226 @@
//
// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
-#include "mi2mu.hh"
+#include "string-convert.hh"
+#include "duration-convert.hh"
+#include "mi2mu-global.hh"
+#include "my-midi-lexer.hh"
+#include "my-midi-parser.hh"
+#include "mudela-column.hh"
+#include "mudela-item.hh"
+#include "mudela-score.hh"
+#include "mudela-staff.hh"
void
-yyerror(char const* sz_l )
+yyerror(char const* sz_l)
{
- midi_parser_l_g->error( sz_l );
+ midi_parser_l_g->error (sz_l);
}
My_midi_parser* midi_parser_l_g = 0;
-My_midi_parser::My_midi_parser( String filename_str, Sources *sources_l )
+My_midi_parser::My_midi_parser (String filename_str, Sources *sources_l)
{
- filename_str_ = filename_str;
- midi_lexer_p_ = new My_midi_lexer( filename_str_,sources_l );
- midi_lexer_l_g = midi_lexer_p_; // ugh
+ filename_str_ = filename_str;
+ midi_lexer_p_ = new My_midi_lexer (filename_str_,sources_l);
+ midi_lexer_l_g = midi_lexer_p_; // ugh
- defined_ch_C_ = 0;
- fatal_error_i_ = 0;
- midi_key_p_ = 0;
- midi_score_p_ = 0;
- midi_tempo_p_ = 0;
- midi_time_p_ = 0;
- track_i_ = 0;
- bar_i_ = 1;
- reset();
+ bar_i_ = 1;
+
+ defined_ch_C_ = 0;
+ fatal_error_i_ = 0;
+
+ mudela_column_l_ = 0;
+ mudela_score_p_ = new Mudela_score (1, 1, 1);
+
+
+ // ugh, belong to Mudela_{score,staff}
+ track_i_ = 0;
+ mudela_staff_l_ = 0;
+ mudela_key_p_ = 0;
+ mudela_tempo_p_ = 0;
+ mudela_meter_p_ = 0;
+
+ reset();
}
My_midi_parser::~My_midi_parser()
{
- midi_lexer_l_g = 0; // ugh
+ midi_lexer_l_g = 0; // ugh
- delete midi_lexer_p_;
- delete midi_key_p_;
- delete midi_tempo_p_;
- delete midi_time_p_;
- delete midi_score_p_;
+ delete midi_lexer_p_;
+ delete mudela_key_p_;
+ delete mudela_tempo_p_;
+ delete mudela_meter_p_;
+ delete mudela_score_p_;
}
void
My_midi_parser::reset()
{
- delete midi_key_p_;
- midi_key_p_ = new Midi_key( 0, 0 );
- // useconds per 4: 250000 === 60 4 per minute
- delete midi_tempo_p_;
- midi_tempo_p_ = new Midi_tempo( 1000000 );
- delete midi_time_p_;
- midi_time_p_ = new Midi_time( 4, 2, 24, 8 );
- now_i64_ = 0;
- bar_i_ = 1;
+// open_mudela_note_l_list_.clear();
+ open_mudela_note_l_list_.junk_links();
+
+ // ugh
+ delete mudela_key_p_;
+ mudela_key_p_ = new Mudela_key (0, 0);
+ // useconds per 4: 250000 === 60 4 per minute
+ delete mudela_tempo_p_;
+ mudela_tempo_p_ = new Mudela_tempo (1000000);
+ delete mudela_meter_p_;
+ mudela_meter_p_ = new Mudela_meter (4, 2, 24, 8);
- copyright_str_ = "";
- track_name_str_ = "";
- instrument_str_ = "";
+ bar_i_ = 1;
+ mudela_column_l_ = mudela_score_p_->mudela_column_l (0);
- for ( int i = 0; i < CHANNELS_i; i++ )
- for ( int j = 0; j < PITCHES_i; j++ )
-// running_i64_i64_a_[ i ][ j ] = -1;
- running_i64_i64_a_[ i ][ j ] = 0;
+ // ugh
+ copyright_str_ = "";
+ track_name_str_ = "";
+ instrument_str_ = "";
}
void
-My_midi_parser::add_score( Midi_score* midi_score_p )
+My_midi_parser::add_score (Mudela_score* mudela_score_p)
{
- assert( !midi_score_p_ );
- midi_score_p_ = midi_score_p;
- track_i_ = 0;
- bar_i_ = 1;
+ assert (mudela_score_p_);
+
+#if 0 // ugh, already constructed
+ mudela_score_p_ = mudela_score_p;
+ if (!mudela_column_l_)
+ mudela_column_l_ = mudela_score_p_->mudela_column_l (0);
+#endif
+
+ mudela_score_p_->mudela_key_l_ = mudela_key_p_;
+ mudela_score_p_->mudela_meter_l_ = mudela_meter_p_;
+ mudela_score_p_->mudela_tempo_l_ = mudela_tempo_p_;
+ bar_i_ = 1;
}
void
-My_midi_parser::error( char const* sz_l )
+My_midi_parser::error (char const* sz_l)
{
- midi_lexer_l_g->error( sz_l );
+ midi_lexer_l_g->error (sz_l);
- if ( fatal_error_i_ )
- exit( fatal_error_i_ );
+ if (fatal_error_i_)
+ exit (fatal_error_i_);
}
void
-My_midi_parser::forward( int i )
+My_midi_parser::forward (int i)
{
- if ( Duration_convert::no_quantify_b_s ) {
- now_i64_ += i;
- return;
- }
- while ( i > Duration::division_1_i_s ) {
- now_i64_ += Duration::division_1_i_s;
- i -= Duration::division_1_i_s;
- }
- Duration dur = Duration_convert::ticks2standardised_dur( i );
- now_i64_ += Duration_convert::dur2ticks_i( dur );
+ if (!i)
+ return;
+
+ Duration dur;
+ dur.type_i_ = (0);
+ dur.set_ticks (i);
+ Moment mom = at_mom() + Duration_convert::dur2_mom (dur);
+
+ mudela_column_l_ = mudela_score_p_->mudela_column_l (mom);
+
+ if (i) {
+ int bars_i = (int) (mom / mudela_meter_p_->bar_mom());
+ if (bars_i > bar_i_)
+ LOGOUT(NORMAL_ver) << '[' << bar_i_ << ']' << flush;
+ bar_i_ = bars_i;
+ }
}
Moment
-My_midi_parser::mom()
+My_midi_parser::at_mom()
{
- return Moment( now_i64_, Duration::division_1_i_s );
+ assert (mudela_column_l_);
+// return mudela_column_l_ ? mudela_column_l_->at_mom() : 0;
+ return mudela_column_l_->at_mom();
}
void
-My_midi_parser::note_begin( int channel_i, int pitch_i, int dyn_i )
-{
- // one pitch a channel at time!
- // heu, what about { < c2 > < c4 d4 > }
-// assert( running_i64_i64_a_[ channel_i ][ pitch_i ] == -1 );
- running_i64_i64_a_[ channel_i ][ pitch_i ] = now_i64_;
-}
-
-Midi_event*
-My_midi_parser::note_end_midi_event_p( int channel_i, int pitch_i, int dyn_i )
-{
- I64 start_i64 = running_i64_i64_a_[ channel_i ][ pitch_i ];
-
-// running_i64_i64_a_[ channel_i ][ pitch_i ] = -1;
-// assert( start_i64 != -1 ); // did we start?
-
- Duration dur;
- dur.type_i_ = 0;
- if ( Duration_convert::no_quantify_b_s )
- dur = Duration_convert::ticks2_dur( (I64)now_i64_ - start_i64 );
- else {
- dur = Duration_convert::ticks2standardised_dur( (I64)now_i64_ - start_i64 );
- // checking myself iso using tor saves some time
- if ( level_ver >= VERBOSE_ver ) {
- Moment mom( (I64)now_i64_ - start_i64, Duration::division_1_i_s );
- if ( dur.length() != mom )
- warning( String( "duration not exact: " ) + String( (Real)mom ) );
- }
+My_midi_parser::note_begin (int channel_i, int pitch_i, int dyn_i)
+{
+ // junk dynamics
+ (void)dyn_i;
+
+ Mudela_note* p = new Mudela_note (mudela_column_l_, channel_i, pitch_i, dyn_i);
+// ugh, score doesn't know about last staff yet...
+// mudela_score_p_->add_item (p);
+ mudela_staff_l_->add_item (p);
+ open_mudela_note_l_list_.bottom().add (p);
+}
+
+void
+My_midi_parser::note_end (int channel_i, int pitch_i, int aftertouch_i)
+{
+ // junk dynamics
+ (void)aftertouch_i;
+
+ // find
+ for (PCursor<Mudela_note*> i (open_mudela_note_l_list_); i.ok(); i++) {
+ if ( (i->pitch_i_ == pitch_i) && (i->channel_i_ == channel_i)) {
+ i->end_column_l_ = mudela_column_l_;
+ LOGOUT(DEBUG_ver) << "Note: " << pitch_i;
+ LOGOUT(DEBUG_ver) << "; " << i->mudela_column_l_->at_mom_;
+ LOGOUT(DEBUG_ver) << ", " << i->end_column_l_->at_mom_ << "\n";
+ i.remove_p();
+ return;
}
- return new Midi_note( midi_key_p_->notename_str( pitch_i ), dur );
+ }
+ warning (String ("junking note-end event: ")
+ + " channel = " + String_convert::i2dec_str (channel_i, 0, ' ')
+ + ", pitch = " + String_convert::i2dec_str (pitch_i, 0, ' '));
}
-int
-My_midi_parser::output_mudela( String filename_str )
+void
+My_midi_parser::note_end_all()
{
- assert( midi_score_p_ );
- tor( NORMAL_ver ) << "\nProcessing..." << endl;
- midi_score_p_->process();
- return midi_score_p_->output_mudela( filename_str );
+ // find
+ for (PCursor<Mudela_note*> i (open_mudela_note_l_list_); i.ok(); i++) {
+ i->end_column_l_ = mudela_column_l_;
+ i.remove_p();
+ // ugh
+ if (!i.ok())
+ break;
+ }
}
int
My_midi_parser::parse()
{
- tor( NORMAL_ver ) << "\nParsing..." << flush;
- return ::yyparse();
+ LOGOUT(NORMAL_ver) << "\nParsing..." << flush;
+ int i = ::yyparse();
+ if (!i)
+ note_end_all();
+ return i;
}
void
-My_midi_parser::set_division_4( int division_4_i )
+My_midi_parser::set_division_4 (int division_4_i)
{
- division_1_i_ = division_4_i * 4;
- Duration::division_1_i_s = division_1_i_;
- if ( division_4_i < 0 )
- warning( "seconds iso metrical time" );
+ division_1_i_ = division_4_i * 4;
+ // ugh
+ Duration::division_1_i_s = division_1_i_;
+ if (division_4_i < 0)
+ warning ("seconds iso metrical time");
}
void
-My_midi_parser::set_key( int accidentals_i, int minor_i )
+My_midi_parser::set_key (int accidentals_i, int minor_i)
{
- delete midi_key_p_;
- midi_key_p_ = new Midi_key( accidentals_i, minor_i );
+ delete mudela_key_p_;
+ mudela_key_p_ = new Mudela_key (accidentals_i, minor_i);
}
void
-My_midi_parser::set_tempo( int useconds_per_4_i )
+My_midi_parser::set_meter (int num_i, int den_i, int clocks_i, int count_32_i)
{
- delete midi_tempo_p_;
- midi_tempo_p_ = new Midi_tempo( useconds_per_4_i );
+ delete mudela_meter_p_;
+ mudela_meter_p_ = new Mudela_meter (num_i, den_i, clocks_i, count_32_i);
}
void
-My_midi_parser::set_time( int num_i, int den_i, int clocks_i, int count_32_i )
+My_midi_parser::set_tempo (int useconds_per_4_i)
{
- delete midi_time_p_;
- midi_time_p_ = new Midi_time( num_i, den_i, clocks_i, count_32_i );
+ delete mudela_tempo_p_;
+ mudela_tempo_p_ = new Mudela_tempo (useconds_per_4_i);
}
diff --git a/mi2mu/template.cc b/mi2mu/template.cc
index e0b9a92513..7de70076c3 100644
--- a/mi2mu/template.cc
+++ b/mi2mu/template.cc
@@ -8,28 +8,19 @@
#include "list.tcc"
#include "cursor.tcc"
-L_instantiate(void *);
-
class istream;
class ostream;
-#include "mi2mu.hh"
+#include "mudela-item.hh"
+#include "mudela-column.hh"
+#include "mudela-staff.hh"
+#include "mudela-voice.hh"
#include "plist.hh"
#include "plist.tcc"
-#ifdef MEVENT_LIST
-IPL_instantiate(Midi_event);
-#endif
-
-IPL_instantiate(Midi_track);
-
-#ifdef MVOICE_LIST
-PL_instantiate(Midi_voice);
-#endif
-
-IPL_instantiate(Midi_voice);
-
-#ifdef TCOL_LIST
-IPL_instantiate(Track_column);
-#endif
+template IPL_INSTANTIATE(Mudela_item);
+template IPL_INSTANTIATE(Mudela_staff);
+template PL_INSTANTIATE(Mudela_voice);
+template IPL_INSTANTIATE(Mudela_voice);
+template IPL_INSTANTIATE(Mudela_column);
diff --git a/mi2mu/track-column.cc b/mi2mu/track-column.cc
deleted file mode 100644
index a7faedf168..0000000000
--- a/mi2mu/track-column.cc
+++ /dev/null
@@ -1,27 +0,0 @@
-//
-// track-column.cc -- implement Track_column
-//
-// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
-
-#include "mi2mu.hh"
-
-Track_column::Track_column( Moment mom )
-{
- mom_ = mom;
-}
-
-void
-Track_column::add_event( Midi_event* midi_event_p )
-{
-#ifdef MEVENT_LIST
- midi_event_p_list_.bottom().add( midi_event_p );
-#else
- midi_event_p_array_.push( midi_event_p );
-#endif
-}
-
-Moment
-Track_column::mom()
-{
- return mom_;
-}
diff --git a/mi2mu/version.cc b/mi2mu/version.cc
index 03b78e14eb..1c630664d8 100644
--- a/mi2mu/version.cc
+++ b/mi2mu/version.cc
@@ -1,4 +1,5 @@
-#include "mi2mu.hh"
+#include "proto.hh"
+#include "string.hh"
const char * mi2mu_version_sz();
@@ -6,8 +7,8 @@ const char * mi2mu_version_sz();
String
mi2mu_version_str()
{
- return String( mi2mu_version_sz())
- + "/" + flower_version_sz()
- + " of " + __DATE__ + " " + __TIME__;
+ return String (mi2mu_version_sz())
+ + "/" + flower_version_sz()
+ + " of " + __DATE__ + " " + __TIME__;
}