diff options
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 @@ -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 Binary files differdeleted file mode 100644 index 59b6c23680..0000000000 --- a/Documentation/lelie_icon.gif +++ /dev/null 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 Binary files differdeleted file mode 100644 index d606099457..0000000000 --- a/Documentation/lelie_logo.gif +++ /dev/null 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} @@ -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. @@ -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 @@ -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__; } |