changeset 1:c5d770f2afea draft

Uploaded
author fubar
date Tue, 24 Nov 2020 22:04:10 +0000
parents bf92b6bd8b20
children d71d20536d3b
files pyrevpos/.shed.yml pyrevpos/output pyrevpos/pyrevpos.xml pyrevpos/test-data/input1_sample pyrevpos/test-data/output_sample pyrevpos/test-data/test1_log.txt pyrevpos/test1_log_outfiletxt tacrev/outfile tacrev/tacrev.xml tacrev/test-data/input1_sample tacrev/test-data/outfile_sample
diffstat 11 files changed, 535 insertions(+), 2278 deletions(-) [+]
line wrap: on
line diff
--- a/pyrevpos/.shed.yml	Tue Nov 24 21:59:01 2020 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-description: pyrevpos
-name: pyrevpos
-owner: fubar
-type: unrestricted
--- a/pyrevpos/output	Tue Nov 24 21:59:01 2020 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,741 +0,0 @@
-nohtyp vne/nib/rsu/!#
-yp.yrotcaFlooTgr #
-yrotcafloot/2rabuf/moc.buhtig//:sptth ees #
-#
-2102 yaM )moc pots liamg ta surazal pots ssor( surazal ssor thgirypoc #
-#
-devreser sthgir lla #
-LPGL eht rednu desneciL #
-yrotcafloot/2rabuf/moc.buhtig//:sptth ta emoclew sexif gub dna tnemevorpmi rof snoitseggus #
-#
-.sraey 5 retfa elkniw nav pir ekil leef I dna nuf saw CCB :0202 yluJ #
-ot dediceD #
-esac tselpmis rof enod - skrow ti os yrotcafloot eht xiF .1 #
-skrow noitcnuf yrotcafloot eht os omenalp xiF .2 #
-enod - esnes sekam taht erehw snoitcnuf lmxyxalag gnisu stib etirweR .3 #
-#
-tpircs emas siht esu loot wen eht gnikam gnidulcni snoitacilpmoc dlo eht lla devomer #
-lmxyxalag/anelyxeh/moc.buhtig//:sptth lmx loot eht setareneg won lmxyxalag #
-stuptuo yrartibra morf noitaerc elif LMTH citamotua rof troppus oN #
-kooh noitucexe tsop a sa edoc taht nur ot noitpo dda :ODOT #
-eno ylno yltnerruc - sretemarap tupni yrotsih lanoitidda dda :ODOT #
-
-
-esrapgra tropmi
-gniggol tropmi
-so tropmi
-er tropmi
-lituhs tropmi
-ssecorpbus tropmi
-sys tropmi
-elifrat tropmi
-elifpmet tropmi
-emit tropmi
-
-txg sa loot.lmxyxalag tropmi
-ptxg sa sretemarap.loot.lmxyxalag tropmi
-
-lmxl tropmi
-
-"0202 yluJ 1.2V" = noisrevym
-eurT = esobrev
-eurT = gubed
-"yrotcafloot/2rabuf/moc.buhtig//:sptth" = LRUyrotcaFloot
-"~~~" = miledruo
-
-lebal_tupni$~~~stamrof_tupni$~~~LC$~~~selif_tupni$"=selif_tupni-- #
-"pleh_tupni$~~~ #
-0 = SOPHTAPI
-1 = SOPLCI
-2 = SOPTMFI
-3 = SOPBALI
-4 = SOPLEHI
-5 = SOPLCOI
-
-LC.bato$~~~tamrof_yrotsih.bato$~~~eman_yrotsih.bato$" selif_tuptuo-- #
-0 = SOPEMANO
-1 = SOPTMFO
-2 = SOPLCO
-3 = SOPLCOO
-
-~~~eulav_marap.i$~~~eman_marap.i$"=sretemarap_lanoitidda-- #
-"edirrevoLC_marap.$i~~~LC.i$~~~epyt_marap.i$~~~pleh_marap.i$~~~lebal_marap.i$ #
-0 = SOPEMANA
-1 = SOPLAVA
-2 = SOPBALA
-3 = SOPPLEHA
-4 = SOPEPYTA
-5 = SOPLCA
-6 = SOPREVOA
-7 = SOPLCOA
-
-
-)__noisrev__.lmxl(nel = oof
-!eman ym yaS .8ekalf ,uoy guf #
-
-:)(wonemit fed
-gnirts a sa emit tnerruc nruter"""    
-"""    
-)))(emit.emit(emitlacol.emit ,"S%:M%:H% Y%/m%/d%"(emitfrts.emit nruter    
-
-
-:)s(ciremun_non_etouq fed
-sciremun-non rof gnirts detouqerp a nruter"""    
-?gnissap retemarap tpircsR dna lrep rof lufesu    
-"""    
-:yrt    
-)s(taolf = _        
-s nruter        
-:rorrEeulaV tpecxe    
-s % '"s%"' nruter        
-
-
-}"$\"r :"$" ,";tl&" :"<" ,";tg&" :">" ,";pma&" :"&"{ = elbat_epacse_lmth
-
-
-:)txet(epacse_lmth fed
-""".txet nihtiw seititne ecudorP"""    
-)txet ni c rof )c ,c(teg.elbat_epacse_lmth(nioj."" nruter    
-
-
-:)txet(epacsenu_lmth fed
-"""ecalper esu os stegrat retcarahc elpitluM .txet nihtiw seititne treveR"""    
-)"&" ,";pma&"(ecalper.txet = t    
-)">" ,";tg&"(ecalper.t = t    
-)"<" ,";tl&"(ecalper.t = t    
-)"$" ,"$\\"(ecalper.t = t    
-t nruter    
-
-
-:)txet_snoitatic(snoitatic_esrap fed
-"""    
-"""    
-])(pirts.c fi )"**YRTNE**"(tilps.txet_snoitatic ni c rof c[ = snoitatic    
-][ = selput_noitatic    
-:snoitatic ni noitatic rof    
-:)"iod"(htiwstrats.noitatic fi        
-)))(pirts.]: )"iod"(nel[noitatic ,"iod"((dneppa.selput_noitatic            
-:esle        
-(dneppa.selput_noitatic            
-))(pirts.]: )"xetbib"(nel[noitatic ,"xetbib"(                
-)            
-selput_noitatic nruter    
-
-
-:rennuRtpircS ssalc
-tpircs yrartibra na rof repparW"""    
-lmxyxalag sesu    
-
-"""    
-
-:)enoN=sgra ,fles(__tini__ fed    
-"""        
-ereh loot eht gninnur rof lc enil dnammoc eraperp        
-noitareneg loot lmxyxalag rof dedeen stnemele eraperp dna        
-"""        
-
-]selif_tupni.sgra ni x rof )miledruo(tilps.x[ = selifni.fles        
-]selif_tuptuo.sgra ni x rof )miledruo(tilps.x[ = seliftuo.fles        
-]sretemarap_lanoitidda.sgra ni x rof )miledruo(tilps.x[ = rapdda.fles        
-sgra = sgra.fles        
-)(rappunaelc.fles        
-enoN = tceriderlctsal.fles        
-enoN = tceriderlcxtsal.fles        
-][ = lc.fles        
-][ = lclmx.fles        
-"lanoitisop" == ssapmarap.sgra.fles = lanoitisop_si.fles        
-dneppa.lc.fles = LCa        
-[ ni ssapmarap.sgra tressa        
-,"0"            
-,"esrapgra"            
-,"lanoitisop"            
-'"esrapgra" ro "lanoitisop","0" eb tsum ssapmarap.sgra ni gnissap retemaraP' ,]        
-)eman_loot.sgra ,"" ,"+]_9-0Z-Az-a^["(bus.er = eman_loot.fles        
-eman_loot.fles = di_loot.fles        
-:eman_reterpretni.sgra.fles fi        
-"eMnur$" = exe            
-:esle        
-egakcap_exe.sgra.fles = exe            
-( tressa        
-enoN ton si exe            
-"dliub tonnac os nur ot gnihton - ni dessap elbatucexe ro retepretni oN" ,)        
-(looT.txg = loot.fles        
-,eman_loot.sgra.fles            
-,di_loot.fles            
-,noisrev_loot.sgra.fles            
-,csed_loot.sgra.fles            
-,exe            
-)        
-)(stupnI.ptxg = stupnit.fles        
-)(stuptuO.ptxg = stuptuot.fles        
-][ = maraptset.fles        
-( fi        
-"metsys" == edomnur.sgra.fles ro "elbatucexE" == edomnur.sgra.fles            
-deen on - yranib #  :)        
-nur tsuj lliw LC elttil siht #  )egakcap_exe.sgra.fles(LCa            
-:esle        
-)(tpircSperp.fles            
-eman_loot.fles % "txt.gol_rorre_s%" = gole.fles        
-eman_loot.fles % "txt.gol_rennur_s%" = golt.fles        
-
-:"0" == ssapmarap.sgra.fles fi        
-)(elpmislc.fles            
-:esle        
-][ = xiffuslc            
-][ = xiffuslcx            
-:)selifni.fles(etaremune ni p ,i rof            
-:"NIDTS" == ]SOPLCOI[p fi                
-[ = emdneppa                    
-,]SOPLCOI[p                        
-,]SOPLCI[p                        
-,]SOPHTAPI[p                        
-,]SOPHTAPI[p % "s% <"                        
-]                    
-[ = emdneppax                    
-,]SOPLCOI[p                        
-,]SOPLCI[p                        
-,]SOPHTAPI[p                        
-,]SOPLCI[p % "s%$ <"                        
-]                    
-:esle                
-]"" ,]SOPHTAPI[p ,]SOPLCI[p ,]SOPLCOI[p[ = emdneppa                    
-]"" ,]SOPLCI[p % "s%$" ,]SOPLCI[p ,]SOPLCOI[p[ = emdneppax                    
-)emdneppa(dneppa.xiffuslc                
-)emdneppax(dneppa.xiffuslcx                
-))emdneppa,i( % 's%=emdneppa ,d%=i elifni##'(tnirp #                
-:)seliftuo.fles(etaremune ni p ,i rof            
-:"TUODTS" == ]SOPLCOO[p fi                
-]]SOPEMANO[p ,">"[ = tceriderlctsal.fles                    
-]]SOPLCO[p % "s%$" ,">"[ = tceriderlcxtsal.fles                    
-:esle                
-)]"" ,]SOPEMANO[p ,]SOPLCO[p ,]SOPLCOO[p[(dneppa.xiffuslc                    
-(dneppa.xiffuslcx                    
-]"" ,]SOPEMANO[p % "s%$" ,]SOPLCO[p ,]SOPLCOO[p[                        
-)                    
-:rapdda.fles ni p rof            
-(dneppa.xiffuslc                
-]]SOPREVOA[p ,]SOPLAVA[p ,]SOPLCA[p ,]SOPLCOA[p[                    
-)                
-(dneppa.xiffuslcx                
-]]SOPREVOA[p ,]SOPEMANA[p % '"s%$"' ,]SOPLCA[p ,]SOPLCOA[p[                    
-)                
-)(tros.xiffuslc            
-)(tros.xiffuslcx            
-xiffuslcx = xiffuslcx.fles            
-xiffuslc = xiffuslc.fles            
-:"lanoitisop" == ssapmarap.sgra.fles fi            
-)(lanoitisoplc.fles                
-:esle            
-)(esrapgralc.fles                
-
-:)fles(tpircSperp fed    
-dneppa.lc.fles = LCa        
-)(senildaer.)"r" ,htap_tpircs.sgra.fles(nepo = xr        
-]xr ni x rof )(pirtsr.x[ = xr        
-]"" > )(pirts.x fi xr ni x rof )(pirts.x[ = kcehcxr        
-"nur tonnaC .ytpme si tpircs deilppuS" ,0 > )kcehcxr(nel tressa        
-)xr(nioj."n\" = tpircs.fles        
-(pmetskm.elifpmet = elifs.fles ,eldnahf        
-)eman_reterpretni.sgra.fles( % "s%_"=xiffus ,eman_loot.fles=xiferp            
-)        
-)"w" ,elifs.fles(nepo = tpircst        
-)tpircs.fles(etirw.tpircst        
-)(esolc.tpircst        
-(nioj."n\" % "s%  " = tpircSdetnedni.fles        
-]xr ni x rof )x(epacse_lmth % "s% "[            
-)        
-(nioj."n\" % "s%" = tpircSdepacse.fles        
-]xr ni x rof )x(epacse_lmth % "s% "[            
-)        
-)eman_reterpretni.sgra.fles ,eman_loot.fles( % "s%.s%" = tra        
-)"bw" ,tra(nepo = tcafitra        
-))"8ftu" ,tpircs.fles(setyb(etirw.tcafitra        
-)(esolc.tcafitra        
-)eman_reterpretni.sgra.fles(LCa        
-)elifs.fles(LCa        
-
-:)fles(rappunaelc fed    
-"""lanidro ciremun rieht yb detacilpmoc era sretemarap lanoitisop """        
-:)selifni.fles(etaremune ni p ,i rof        
-:"lanoitisop" == ssapmarap.sgra.fles fi            
-( ,)(tigidsi.]SOPLCI[p tressa                
-"s% rof s% tog - sregetni lanidro eb tsum sretemarap lanoitisoP"                    
-)]SOPBALI[p ,]SOPLCI[p( %                    
-)                
-)]SOPLCI[p(dneppa.p            
-:"0" == ssapmarap.sgra.fles ro )(tigidsi.]SOPLCI[p fi            
-)1 + i( % "d%tupni" = lcs                
-lcs = ]SOPLCI[p                
-p = ]i[selifni.fles            
-(etaremune ni p ,i rof        
-seliftuo.fles            
-snoisnetxe gnisu rehtag yllacigamotua ot gniyrt #  :)        
-:"TUODTS" =! ]SOPLCO[p dna "lanoitisop" == ssapmarap.sgra.fles fi            
-( ,)(tigidsi.]SOPLCO[p tressa                
-"s% rof s% tog - sregetni lanidro eb tsum sretemarap lanoitisoP"                    
-)]SOPEMANO[p ,]SOPLCO[p( %                    
-)                
-)]SOPLCO[p(dneppa.p            
-:"TUODTS" == ]SOPLCO[p ro )(tigidsi.]SOPLCO[p fi            
-]SOPEMANO[p = lcs                
-lcs = ]SOPLCO[p                
-p = ]i[seliftuo.fles            
-:)rapdda.fles(etaremune ni p ,i rof        
-:"lanoitisop" == ssapmarap.sgra.fles fi            
-( ,)(tigidsi.]SOPLCA[p tressa                
-"s% rof s% tog - sregetni lanidro eb tsum sretemarap lanoitisoP"                    
-)]SOPEMANA[p ,]SOPLCA[p( %                    
-)                
-)]SOPLCA[p(dneppa.p            
-:)(tigidsi.]SOPLCA[p fi            
-]SOPLCA[p % "s%tupni" = lcs                
-lcs = ]SOPLCA[p                
-p = ]i[rapdda.fles            
-
-:)fles(elpmislc fed    
-o/i rof > dna < sesu - sretemarap on """        
-"""        
-dneppa.lc.fles = LCa        
-)"<"(LCa        
-)]SOPHTAPI[]0[selifni.fles(LCa        
-)">"(LCa        
-)]SOPLCO[]0[seliftuo.fles(LCa        
-dneppa.lclmx.fles = LCXa        
-)"<"(LCXa        
-)]SOPLCI[]0[selifni.fles % "s%$"(LCXa        
-)">"(LCXa        
-)]SOPEMANO[]0[seliftuo.fles % "s%$"(LCXa        
-
-:)fles(lanoitisoplc fed    
-smarap neht redro ni stupni #        
-dneppa.lc.fles = LCa        
-:xiffuslc.fles ni )edirrevok ,v ,k ,v_o( rof        
-:v ni " " fi            
-)v % "s%"(LCa                
-:esle            
-)v(LCa                
-dneppa.lclmx.fles = LCXa        
-:xiffuslcx.fles ni )edirrevok ,v ,k ,v_o( rof        
-)v(LCXa            
-:tceriderlcxtsal.fles fi        
-)]0[tceriderlcxtsal.fles(LCXa            
-)]1[tceriderlcxtsal.fles(LCXa            
-
-:)fles(esrapgralc fed    
-elyts esrapgra """        
-"""        
-dneppa.lc.fles = LCa        
-dneppa.lclmx.fles = LCXa        
-mrof deman esrapgra ni smarap neht stupni #        
-:xiffuslcx.fles ni )edirrevok ,v ,k ,v_o( rof        
-:"" > edirrevok fi            
-edirrevok = k                
-:1 == ))(pirts.k(nel file            
-k % "s%-" = k                
-:esle            
-k % "s%--" = k                
-)k(LCXa            
-)v(LCXa            
-:xiffuslc.fles ni )edirrevok ,v ,k ,v_o( rof        
-:"" > edirrevok fi            
-edirrevok = k                
-:1 == ))(pirts.k(nel file            
-k % "s%-" = k                
-:esle            
-k % "s%--" = k                
-)k(LCa            
-)v(LCa            
-
-:)emanwen ,fles(hsadNteg fed    
-:lanoitisop_si.fles fi        
-0 = hsadn            
-:esle        
-2 = hsadn            
-:2 < )emanwen(nel fi            
-1 = hsadn                
-hsadn nruter        
-
-:)fles(marapLMXod fed    
-"""...siht od em edam 8ekalf"""        
-:seliftuo.fles ni p rof        
-p = lcdlo ,lcwen ,tmfwen ,emanwen            
-)lcwen(hsadNteg.fles = hsadn            
-)hsadn=sehsad_mun ,tmfwen=tamrof ,lcwen(ataDtuptuO.ptxg = mrapa            
-lanoitisop_si.fles = lanoitisop.mrapa            
-:lanoitisop_si.fles fi            
-:"TUODTS" == lcdlo fi                
-9999999 = lanoitisop.mrapa                    
-lcwen % "s%$ >" = edirrevo_enil_dnammoc.mrapa                    
-:esle                
-)lcdlo(tni = lanoitisop.mrapa                    
-lcwen % "s%$" = edirrevo_enil_dnammoc.mrapa                    
-)mrapa(dneppa.stuptuot.fles            
-(tuptuOtseT.ptxg = pt            
-tmfwen=tamrof ,lcwen % "elpmas_s%"=eulav ,lcwen=eman                
-)            
-)pt(dneppa.maraptset.fles            
-:selifni.fles ni p rof        
-]SOPLCI[p = emanwen            
-]SOPTMFI[p = tmfwen            
-)emanwen(hsadNteg.fles = hsadn            
-:0 > )]SOPBALI[p(nel ton fi            
-]SOPLCI[p = bala                
-:esle            
-]SOPBALI[p = bala                
-(maraPataD.ptxg = tupnina            
-,emanwen                
-,eslaF=lanoitpo                
-,bala=lebal                
-,]SOPLEHI[p=pleh                
-,tmfwen=tamrof                
-,eslaF=elpitlum                
-,hsadn=sehsad_mun                
-)            
-lanoitisop_si.fles = lanoitisop.tupnina            
-)tupnina(dneppa.stupnit.fles            
-)emanwen % "elpmas_s%"=eulav ,emanwen=eman(maraPtseT.ptxg = mrapt            
-)mrapt(dneppa.maraptset.fles            
-:rapdda.fles ni p rof        
-p = lcdlo ,edirrevo ,lcwen ,epytwen ,plehwen ,lebalwen ,lavwen ,emanwen            
-:0 > )lebalwen(nel ton fi            
-emanwen = lebalwen                
-)emanwen(hsadNteg.fles = hsadn            
-:"txet" == epytwen fi            
-(maraPtxeT.ptxg = mrapa                
-,emanwen                    
-,lebalwen=lebal                    
-,plehwen=pleh                    
-,lavwen=eulav                    
-,hsadn=sehsad_mun                    
-)                
-:"regetni" == epytwen file            
-(maraPregetnI.ptxg = mrapa                
-,emanwen                    
-,emanwen=lebal                    
-,plehwen=pleh                    
-,lavwen=eulav                    
-,hsadn=sehsad_mun                    
-)                
-:"taolf" == epytwen file            
-(maraPtaolF.ptxg = mrapa                
-,emanwen                    
-,emanwen=lebal                    
-,plehwen=pleh                    
-,lavwen=eulav                    
-,hsadn=sehsad_mun                    
-)                
-:esle            
-(rorrEeulaV esiar                
-\rof "s%" epyt retemarap desingocernU'                    
-'LMXekam ni s% retemarap lanoitidda                 
-)emanwen ,epytwen( %                    
-)                
-lanoitisop_si.fles = lanoitisop.mrapa            
-:lanoitisop_si.fles fi            
-)lcdlo(tni = lanoitisop.tupnina                
-)mrapa(dneppa.stupnit.fles            
-)lavwen=eulav ,emanwen(maraPtseT.ptxg = mrapt.fles            
-)mrapt(dneppa.maraptset.fles            
-
-:)fles(marapLMXoNod fed    
-]SOPBALI[]0[selifni.fles = bala        
-:0 == )bala(nel fi        
-]SOPLCI[]0[selifni.fles = bala            
-( = s1xam        
-"s% - deilppus selif tupni eno naht erom - 0 si ssapmarap fi tupni eno mumixaM"            
-)selifni.fles(rts %            
-)        
-s1xam ,1 == )selifni.fles(nel tressa        
-]SOPLCI[]0[selifni.fles = emanwen        
-(maraPataD.ptxg = tupnina        
-,emanwen            
-,eslaF=lanoitpo            
-,bala=lebal            
-,]SOPLEHI[]0[selifni.fles=pleh            
-,]SOPTMFI[]0[selifni.fles=tamrof            
-,eslaF=elpitlum            
-,0=sehsad_mun            
-)        
-emanwen % "s%$ <" = edirrevo_enil_dnammoc.tupnina        
-lanoitisop_si.fles = lanoitisop.tupnina        
-)tupnina(dneppa.stupnit.fles        
-)emanwen % "elpmas_s%"=eulav ,emanwen=eman(maraPtseT.ptxg = pt        
-)pt(dneppa.maraptset.fles        
-]SOPLCO[]0[seliftuo.fles = emanwen        
-]SOPTMFO[]0[seliftuo.fles = tmfwen        
-)0=sehsad_mun ,tmfwen=tamrof ,emanwen(ataDtuptuO.ptxg = tuona        
-emanwen % "s%$ >" = edirrevo_enil_dnammoc.tuona        
-lanoitisop_si.fles = lanoitisop.tuona        
-)tuona(dneppa.stuptuot.fles        
-(tuptuOtseT.ptxg = pt        
-tmfwen=tamrof ,emanwen % "elpmas_s%"=eulav ,emanwen=eman            
-)        
-)pt(dneppa.maraptset.fles        
-
-:)fles(LMXekam fed    
-"""        
-tpircs wen eht rof repparw loot lmx yxalaG a etaerC        
-lmthyxalag sesU        
-...redro tcerroc otni enil dnammoc eht teg ot woH .mmmH        
-"""        
-lclmx.fles = edirrevo_enil_dnammoc.loot.fles        
-:eman_reterpretni.sgra.fles fi        
-eman_reterpretni.sgra.fles = reterpretni.loot.fles            
-:txet_pleh.sgra.fles fi        
-)(senildaer.)"r" ,txet_pleh.sgra.fles(nepo = txetpleh            
-]txetpleh ni x rof )x(epacse_lmth[ = txetpleh            
-)]txetpleh ni x rof x[(nioj."" = pleh.loot.fles            
-:esle        
-( = pleh.loot.fles            
-\ pleh rof )s%( rohtua loot eht ksa esaelP"                
-"n\noitareneg loot ta deilppus saw enon sa              
-)liame_resu.sgra.fles( %                
-)            
-tnaw ton od #  enoN = dnammoc_noisrev.loot.fles        
-)(stnemeriuqeR.ptxg = stnemeriuqer        
-
-:eman_reterpretni.sgra.fles fi        
-:"nohtyp" == eman_reterpretni.sgra.fles fi            
-(dneppa.stnemeriuqer                
-(tnemeriuqeR.ptxg                    
-noisrev_reterpretni.sgra.fles ,"nohtyp" ,"egakcap"                        
-)                    
-)                
-:]"hs" ,"hsab"[ ni ton eman_reterpretni.sgra.fles file            
-(dneppa.stnemeriuqer                
-(tnemeriuqeR.ptxg                    
-,"egakcap"                        
-,eman_reterpretni.sgra.fles                        
-,noisrev_reterpretni.sgra.fles                        
-)                    
-)                
-:esle        
-:"metsys" =! ssapmarap.sgra.fles dna egakcap_exe.sgra.fles fi            
-(dneppa.stnemeriuqer                
-(tnemeriuqeR.ptxg                    
-,"egakcap"                        
-,egakcap_exe.sgra.fles                        
-,noisrev_egakcap_exe.sgra.fles                        
-)                    
-)                
-stnemeriuqer = stnemeriuqer.loot.fles        
-:"0" == ssapmarap.sgra.fles fi        
-)(marapLMXoNod.fles            
-:esle        
-)(marapLMXod.fles            
-stuptuot.fles = stuptuo.loot.fles        
-stupnit.fles = stupni.loot.fles        
-:]"metsys" ,"elbatucexE"[ ni ton edomnur.sgra.fles fi        
-)(selifgifnoC.ptxg = selifgifnoc            
-))tpircs.fles=txet ,"eMnur"=eman(elifgifnoC.ptxg(dneppa.selifgifnoc            
-selifgifnoc = selifgifnoc.loot.fles            
-)(stseT.ptxg = stset        
-)(tseT.ptxg = a_tset        
-:maraptset.fles ni pt rof        
-)pt(dneppa.a_tset            
-)a_tset(dneppa.stset        
-stset = stset.loot.fles        
-(tnemmoc_dda.loot.fles        
-".yrotcaF looT yxalaG eht gnisu s% ta s% yb detaerC"            
-))(wonemit ,liame_resu.sgra.fles( %            
-)        
-))LRUyrotcaFloot( % "s% :ta tig ni ecruoS"(tnemmoc_dda.loot.fles        
-(tnemmoc_dda.loot.fles        
-"375stb/scitamrofnioib/3901.01 :iod stpircs morf sloot elbasu-er gnitaerC :etiC"            
-)        
-)(tropxe.loot.fles = lmxe        
-)"w" ,eman_loot.fles % 'lmx.s%'(nepo = fx        
-)lmxe(etirw.fx        
-)"n\"(etirw.fx        
-)(esolc.fx        
-llabrat eht rof ydaer #        
-
-:)fles(ratlooTekam fed    
-"""        
-ge htiw llabrat zg a si loot a        
-... oof.ni_1tset/atad-tset/emanloot/ yp.loot/emanloot/ lmx.loot/emanloot/        
-tsum os ereh degnum era stuptuo dna stupni tset rof seman ETON        
-lc detareneg eht no desu seman tuptuo dna tupni lautca ot dnopserroc        
-"""        
-)(nur.fles = lavter        
-:lavter fi        
-(etirw.rredts.sys            
-"yrter dna xif esaelP .tey dliub tonnaC .deliaf nuR ##"                
-)            
-)1(tixe.sys            
-"tuoft" = ridt        
-:)ridt(stsixe.htap.so ton fi        
-)ridt(ridkm.so            
-)(LMXekam.fles        
-)"atad-tset" ,ridt(nioj.htap.so = ridtset        
-:)ridtset(stsixe.htap.so ton fi        
-yrotcerid stset ekam #  )ridtset(ridkm.so            
-:selifni.fles ni p rof        
-]SOPHTAPI[p = htp            
-)]SOPLCI[p % "elpmas_s%" ,ridtset(nioj.htap.so = tsed            
-)tsed ,htp(elifypoc.lituhs            
-:seliftuo.fles ni p rof        
-]SOPLCO[p = htp            
-:"0" == ssapmarap.sgra.fles ro "TUODTS" == ]SOPLCOO[p fi            
-]SOPEMANO[p = htp                
-)]SOPEMANO[p % "elpmas_s%" ,ridtset(nioj.htap.so = tsed                
-)tsed ,htp(elifypoc.lituhs                
-)]SOPEMANO[p ,ridt(nioj.htap.so = tsed                
-)tsed ,htp(elifypoc.lituhs                
-:esle            
-]SOPLCO[p = htp                
-)]SOPLCO[p % "elpmas_s%" ,ridtset(nioj.htap.so = tsed                
-)tsed ,htp(elifypoc.lituhs                
-)]SOPLCO[p ,ridt(nioj.htap.so = tsed                
-)tsed ,htp(elifypoc.lituhs                
-
-:0 > ezis_ts.)golt.fles(tats.so dna )golt.fles(stsixe.htap.so fi        
-))"txteliftuo_gol_1tset" ,ridtset(nioj.htap.so ,golt.fles(elifypoc.lituhs            
-:]"metsys" ,"elbatucexE"[ ni ton edomnur.sgra.fles fi        
-))elifs.fles( % "s%" ,ridt(nioj.htap.so = emants            
-:)emants(stsixe.htap.so ton fi            
-)emants ,elifs.fles(elifypoc.lituhs                
-eman_loot.fles % 'lmx.s%' = laerx        
-)laerx,ridt(nioj.htap.so = tuox        
-)tuox ,laerx(elifypoc.lituhs        
-eman_loot.fles % "zgt.s%_yrotcafloot" = htaprat        
-)"zg:w" ,htaprat(nepo.elifrat = ft        
-)eman_loot.fles=emancra ,ridt=eman(dda.ft        
-)(esolc.ft        
-)loot_wen.sgra.fles ,htaprat(elifypoc.lituhs        
-)"txt.lmx_loot",laerx(elifypoc.lituhs        
-"ridpmet_troper_nur_FT" = ridper        
-:)ridper(stsixe.htap.so ton fi        
-)ridper(ridkm.so            
-]seliftuo.fles ni x rof ]SOPLCO[x[ = semantuoper        
-:stuo sa )'.'(ridnacs.so htiw        
-:stuo ni yrtne rof            
-:)(elif_si.yrtne ton ro )'zgt.'(htiwsdne.eman.yrtne fi                
-eunitnoc                    
-:semantuoper ni eman.yrtne fi                
-))eman.yrtne,ridper(nioj.htap.so,eman.yrtne(elifypoc.lituhs                    
-:eman_loot.fles % "lmx.s%" == eman.yrtne file                
-))"lmx_loot_wen",ridper(nioj.htap.so,eman.yrtne(elifypoc.lituhs                    
-lavter nruter        
-
-:)fles(nur fed    
-"""        
-htiaf eht htiw gnipeek m'I os daer rredts evisnefed siht evah sloot maetved emoS        
-.etadpu ot eerf leeF        
-"""        
-)lc.fles(rts % "s%=lc nur" = s        
-
-)s(gubed.gniggol        
-)lc.fles(nioj." " = lcs        
-enoN = rre        
-:"0" =! ssapmarap.sgra.fles fi        
-)"bw" ,gole.fles(nepo = ets            
-:tceriderlctsal.fles fi            
-(nepo = ots                
-"bw" ,]1[tceriderlctsal.fles                    
-elif tuptuo na fo eman si #  )                
-:esle            
-)"bw" ,golt.fles(nepo = ots                
-(etirw.ots                
-(setyb                    
-"n\s% = enil dnammoc detareneg yrotcaflooT gnitucexE ##"                        
-,lcs %                        
-,"8ftu"                        
-)                    
-)                
-)(hsulf.ots            
-)ets=rredts ,ots=tuodts ,eslaF=llehs ,lc.fles(nur.ssecorpbus = p            
-)(esolc.ots            
-)(esolc.ets            
-)"br" ,gole.fles(nepo = rredts_pmt            
-"" = rre            
-6758401 = ezisffub            
-:yrt            
-:eurT elihw                
-))ezisffub(daer.rredts_pmt(rts =+ rre                    
-:0 =! ezisffub % )rre(nel ro rre ton fi                    
-kaerb                        
-:rorrEwolfrevO tpecxe            
-ssap                
-)(esolc.rredts_pmt            
-edocnruter.p = lavter            
-tuodts ot etirw dna nidts ekat taht stpircs elpmis fo esac laiceps dnuora krow #  :esle        
-)"br" ,]SOPHTAPI[]0[selifni.fles(nepo = its            
-)"bw" ,]SOPEMANO[]0[seliftuo.fles(nepo = ots            
-tcerider ot llehs esu tsum #            
-)its=nidts ,ots=tuodts ,eslaF=llehs ,lc.fles(nur.ssecorpbus = p            
-edocnruter.p = lavter            
-)(esolc.ots            
-)(esolc.its            
-:0 == ezis_ts.)golt.fles(tats.so dna )golt.fles(elifsi.htap.so fi        
-)golt.fles(knilnu.so            
-:0 == ezis_ts.)gole.fles(tats.so dna )gole.fles(elifsi.htap.so fi        
-)gole.fles(knilnu.so            
-melborp #  :rre dna 0 =! edocnruter.p fi        
-)rre(etirw.rredts.sys            
-)"enod nur"(gubed.gniggol        
-lavter nruter        
-
-
-:)(niam fed
-"""    
-:sa lmx.loot esoprup laiceps a yb dellac eb ot stcepxe tI .repparw yxalaG a si sihT    
-"tpircsR" reterpretni-- "oof" eman_loot-- "htaPtpircs$" htap_tpircs-- yp.repparWtpircSesaBgr>"nohtyp"=reterpretni dnammoc<    
->dnammoc/<    
-"""    
-)(resraPtnemugrA.esrapgra = resrap    
-tnemugra_dda.resrap = a    
-)""=tluafed ,"htap_tpircs--"(a    
-)enoN=tluafed ,"eman_loot--"(a    
-)enoN=tluafed ,"eman_reterpretni--"(a    
-)enoN=tluafed ,"noisrev_reterpretni--"(a    
-)enoN=tluafed ,"egakcap_exe--"(a    
-)enoN=tluafed ,"noisrev_egakcap_exe--"(a    
-)"dneppa"=noitca ,][=tluafed ,"selif_tupni--"(a    
-)"dneppa"=noitca ,][=tluafed ,"selif_tuptuo--"(a    
-)"nwonknU"=tluafed ,"liame_resu--"(a    
-)enoN=tluafed ,"resu_dab--"(a    
-)enoN=tluafed ,"looT_ekam--"(a    
-)enoN=tluafed ,"txet_pleh--"(a    
-)enoN=tluafed ,"csed_loot--"(a    
-)enoN=tluafed ,"noisrev_loot--"(a    
-)enoN=tluafed ,"snoitatic--"(a    
-)][=tluafed ,"dneppa"=noitca ,"sretemarap_lanoitidda--"(a    
-)eslaF=tluafed ,"eurt_erots"=noitca ,"sretemarap_lanoitidda_tide--"(a    
-)"lanoitisop"=tluafed ,"ssapmarap--"(a    
-)"tuoft/."=tluafed ,"tuoft--"(a    
-)"loot_wen"=tluafed ,"loot_wen--"(a    
-)enoN=tluafed ,"edomnur--"(a    
-)(sgra_esrap.resrap = sgra    
-( ,resu_dab.sgra ton tressa    
-'elif noitarugifnoc yxalaG eht ni "sresu_nimda" ot s% sdda nimda yxalaG litnu loot siht esu ot dezirohtua TON si s% :DESIROHTUANU'        
-)resu_dab.sgra ,resu_dab.sgra( %        
-)    
-( tressa    
-eman_loot.sgra        
-"qeSED=eman_loot-- ge - eman loot a stcepxe yrotcaF looT ##" ,)    
-( tressa    
-egakcap_exe.sgra ro eman_reterpretni.sgra        
-"egakcap elbatucexe na ro reterpretni na stcepxe repparw yrotcaF looT ##" ,)    
-( ro egakcap_exe.sgra tressa    
-)htap_tpircs.sgra(elifsi.htap.so dna 0 > )htap_tpircs.sgra(nel        
-"elbatucexe on fi R.oof=htap_tpircs-- ge - htap tpircs a stcepxe repparw yrotcaF looT ##" ,)    
-[ = selif_tupni.sgra    
-selif_tupni.sgra ni x rof )"" ,"'"(ecalper.)"" ,'"'(ecalper.x        
-]    
-smarap LC ni secaps htiw laed ot deen ew setouq evomer #    
-:)sretemarap_lanoitidda.sgra(etaremune ni x ,i rof    
-(ecalper.]i[sretemarap_lanoitidda.sgra = ]i[sretemarap_lanoitidda.sgra        
-"" ,'"'            
-)        
-)sgra(rennuRtpircS = r    
-:looT_ekam.sgra fi    
-)(ratlooTekam.r = edocter        
-:esle    
-)(nur.r = edocter        
-:edocter fi    
-rennur boj ot eruliaf etacidni #  )edocter(tixe.sys        
-
-
-:"__niam__" == __eman__ fi
-)(niam    
--- a/pyrevpos/pyrevpos.xml	Tue Nov 24 21:59:01 2020 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-<tool name="pyrevpos" id="pyrevpos" version="0.01">
-  <!--Cite: Creating re-usable tools from scripts doi:             10.1093/bioinformatics/bts573-->
-  <!--Source in git at: https://github.com/fubar2/toolfactory-->
-  <!--Created by ross.lazarus@gmail.com at 22/08/2020 22:44:22 using the Galaxy Tool Factory.-->
-  <description>pyrevpos</description>
-  <requirements>
-    <requirement version="" type="package">python</requirement>
-  </requirements>
-  <configfiles>
-    <configfile name="runMe"><![CDATA[
-
-# reverse order of text by row
-import sys
-inp = sys.argv[1]
-outp = sys.argv[2]
-i = open(inp,'r').readlines()
-o = open(outp,'w')
-for row in i:
-  rs = row.rstrip()
-  rs = list(rs)
-  rs.reverse()
-  o.write(''.join(rs))
-  o.write('\n')
-o.close()
-]]></configfile>
-  </configfiles>
-  <stdio>
-    <exit_code range="1:" level="fatal"/>
-  </stdio>
-  <version_command/>
-  <command interpreter="python"><![CDATA[$runMe $input1
-$output]]></command>
-  <inputs>
-    <param help="parameter_help" label="inputfile" optional="false" multiple="false" format="txt" type="data" name="input1" argument="input1"/>
-  </inputs>
-  <outputs>
-    <data hidden="false" format="txt" name="output"/>
-  </outputs>
-  <tests>
-    <test>
-      <output value="output_sample" name="output" format="txt"/>
-      <param value="input1_sample" name="input1"/>
-    </test>
-  </tests>
-  <help><![CDATA[
-**What it Does**
- ]]></help>
-</tool>
-
--- a/pyrevpos/test-data/input1_sample	Tue Nov 24 21:59:01 2020 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,741 +0,0 @@
-#!/usr/bin/env python
-# rgToolFactory.py
-# see https://github.com/fubar2/toolfactory
-#
-# copyright ross lazarus (ross stop lazarus at gmail stop com) May 2012
-#
-# all rights reserved
-# Licensed under the LGPL
-# suggestions for improvement and bug fixes welcome at https://github.com/fubar2/toolfactory
-#
-# July 2020: BCC was fun and I feel like rip van winkle after 5 years.
-# Decided to
-# 1. Fix the toolfactory so it works - done for simplest case
-# 2. Fix planemo so the toolfactory function works
-# 3. Rewrite bits using galaxyxml functions where that makes sense - done
-#
-# removed all the old complications including making the new tool use this same script
-# galaxyxml now generates the tool xml https://github.com/hexylena/galaxyxml
-# No support for automatic HTML file creation from arbitrary outputs
-# TODO: add option to run that code as a post execution hook
-# TODO: add additional history input parameters - currently only one
-
-
-import argparse
-import logging
-import os
-import re
-import shutil
-import subprocess
-import sys
-import tarfile
-import tempfile
-import time
-
-import galaxyxml.tool as gxt
-import galaxyxml.tool.parameters as gxtp
-
-import lxml
-
-myversion = "V2.1 July 2020"
-verbose = True
-debug = True
-toolFactoryURL = "https://github.com/fubar2/toolfactory"
-ourdelim = "~~~"
-
-# --input_files="$input_files~~~$CL~~~$input_formats~~~$input_label
-# ~~~$input_help"
-IPATHPOS = 0
-ICLPOS = 1
-IFMTPOS = 2
-ILABPOS = 3
-IHELPOS = 4
-IOCLPOS = 5
-
-# --output_files "$otab.history_name~~~$otab.history_format~~~$otab.CL
-ONAMEPOS = 0
-OFMTPOS = 1
-OCLPOS = 2
-OOCLPOS = 3
-
-# --additional_parameters="$i.param_name~~~$i.param_value~~~
-# $i.param_label~~~$i.param_help~~~$i.param_type~~~$i.CL~~~i$.param_CLoverride"
-ANAMEPOS = 0
-AVALPOS = 1
-ALABPOS = 2
-AHELPPOS = 3
-ATYPEPOS = 4
-ACLPOS = 5
-AOVERPOS = 6
-AOCLPOS = 7
-
-
-foo = len(lxml.__version__)  
-# fug you, flake8. Say my name! 
-
-def timenow():
-    """return current time as a string
-    """
-    return time.strftime("%d/%m/%Y %H:%M:%S", time.localtime(time.time()))
-
-
-def quote_non_numeric(s):
-    """return a prequoted string for non-numerics
-    useful for perl and Rscript parameter passing?
-    """
-    try:
-        _ = float(s)
-        return s
-    except ValueError:
-        return '"%s"' % s
-
-
-html_escape_table = {"&": "&amp;", ">": "&gt;", "<": "&lt;", "$": r"\$"}
-
-
-def html_escape(text):
-    """Produce entities within text."""
-    return "".join(html_escape_table.get(c, c) for c in text)
-
-
-def html_unescape(text):
-    """Revert entities within text. Multiple character targets so use replace"""
-    t = text.replace("&amp;", "&")
-    t = t.replace("&gt;", ">")
-    t = t.replace("&lt;", "<")
-    t = t.replace("\\$", "$")
-    return t
-
-
-def parse_citations(citations_text):
-    """
-    """
-    citations = [c for c in citations_text.split("**ENTRY**") if c.strip()]
-    citation_tuples = []
-    for citation in citations:
-        if citation.startswith("doi"):
-            citation_tuples.append(("doi", citation[len("doi") :].strip()))
-        else:
-            citation_tuples.append(
-                ("bibtex", citation[len("bibtex") :].strip())
-            )
-    return citation_tuples
-
-
-class ScriptRunner:
-    """Wrapper for an arbitrary script
-    uses galaxyxml
-
-    """
-
-    def __init__(self, args=None):
-        """
-        prepare command line cl for running the tool here
-        and prepare elements needed for galaxyxml tool generation
-        """
-
-        self.infiles = [x.split(ourdelim) for x in args.input_files]
-        self.outfiles = [x.split(ourdelim) for x in args.output_files]
-        self.addpar = [x.split(ourdelim) for x in args.additional_parameters]
-        self.args = args
-        self.cleanuppar()
-        self.lastclredirect = None
-        self.lastxclredirect = None
-        self.cl = []
-        self.xmlcl = []
-        self.is_positional = self.args.parampass == "positional"
-        aCL = self.cl.append
-        assert args.parampass in [
-            "0",
-            "argparse",
-            "positional",
-        ], 'Parameter passing in args.parampass must be "0","positional" or "argparse"'
-        self.tool_name = re.sub("[^a-zA-Z0-9_]+", "", args.tool_name)
-        self.tool_id = self.tool_name
-        if self.args.interpreter_name:
-            exe = "$runMe"
-        else:
-            exe = self.args.exe_package
-        assert (
-            exe is not None
-        ), "No interpeter or executable passed in - nothing to run so cannot build"
-        self.tool = gxt.Tool(
-            self.args.tool_name,
-            self.tool_id,
-            self.args.tool_version,
-            self.args.tool_desc,
-            exe,
-        )
-        self.tinputs = gxtp.Inputs()
-        self.toutputs = gxtp.Outputs()
-        self.testparam = []
-        if (
-            self.args.runmode == "Executable" or self.args.runmode == "system"
-        ):  # binary - no need
-            aCL(self.args.exe_package)  # this little CL will just run
-        else:
-            self.prepScript()
-        self.elog = "%s_error_log.txt" % self.tool_name
-        self.tlog = "%s_runner_log.txt" % self.tool_name
-
-        if self.args.parampass == "0":
-            self.clsimple()
-        else:
-            clsuffix = []
-            xclsuffix = []
-            for i, p in enumerate(self.infiles):
-                if p[IOCLPOS] == "STDIN":
-                    appendme = [
-                        p[IOCLPOS],
-                        p[ICLPOS],
-                        p[IPATHPOS],
-                        "< %s" % p[IPATHPOS],
-                    ]
-                    xappendme = [
-                        p[IOCLPOS],
-                        p[ICLPOS],
-                        p[IPATHPOS],
-                        "< $%s" % p[ICLPOS],
-                    ]
-                else:
-                    appendme = [p[IOCLPOS], p[ICLPOS], p[IPATHPOS], ""]
-                    xappendme = [p[IOCLPOS], p[ICLPOS], "$%s" % p[ICLPOS], ""]
-                clsuffix.append(appendme)
-                xclsuffix.append(xappendme)
-                # print('##infile i=%d, appendme=%s' % (i,appendme))
-            for i, p in enumerate(self.outfiles):
-                if p[OOCLPOS] == "STDOUT":
-                    self.lastclredirect = [">", p[ONAMEPOS]]
-                    self.lastxclredirect = [">", "$%s" % p[OCLPOS]]
-                else:
-                    clsuffix.append([p[OOCLPOS], p[OCLPOS], p[ONAMEPOS], ""])
-                    xclsuffix.append(
-                        [p[OOCLPOS], p[OCLPOS], "$%s" % p[ONAMEPOS], ""]
-                    )
-            for p in self.addpar:
-                clsuffix.append(
-                    [p[AOCLPOS], p[ACLPOS], p[AVALPOS], p[AOVERPOS]]
-                )
-                xclsuffix.append(
-                    [p[AOCLPOS], p[ACLPOS], '"$%s"' % p[ANAMEPOS], p[AOVERPOS]]
-                )
-            clsuffix.sort()
-            xclsuffix.sort()
-            self.xclsuffix = xclsuffix
-            self.clsuffix = clsuffix
-            if self.args.parampass == "positional":
-                self.clpositional()
-            else:
-                self.clargparse()
-
-    def prepScript(self):
-        aCL = self.cl.append
-        rx = open(self.args.script_path, "r").readlines()
-        rx = [x.rstrip() for x in rx]
-        rxcheck = [x.strip() for x in rx if x.strip() > ""]
-        assert len(rxcheck) > 0, "Supplied script is empty. Cannot run"
-        self.script = "\n".join(rx)
-        fhandle, self.sfile = tempfile.mkstemp(
-            prefix=self.tool_name, suffix="_%s" % (self.args.interpreter_name)
-        )
-        tscript = open(self.sfile, "w")
-        tscript.write(self.script)
-        tscript.close()
-        self.indentedScript = "  %s" % "\n".join(
-            [" %s" % html_escape(x) for x in rx]
-        )
-        self.escapedScript = "%s" % "\n".join(
-            [" %s" % html_escape(x) for x in rx]
-        )
-        art = "%s.%s" % (self.tool_name, self.args.interpreter_name)
-        artifact = open(art, "wb")
-        artifact.write(bytes(self.script, "utf8"))
-        artifact.close()
-        aCL(self.args.interpreter_name)
-        aCL(self.sfile)
-
-    def cleanuppar(self):
-        """ positional parameters are complicated by their numeric ordinal"""
-        for i, p in enumerate(self.infiles):
-            if self.args.parampass == "positional":
-                assert p[ICLPOS].isdigit(), (
-                    "Positional parameters must be ordinal integers - got %s for %s"
-                    % (p[ICLPOS], p[ILABPOS])
-                )
-            p.append(p[ICLPOS])
-            if p[ICLPOS].isdigit() or self.args.parampass == "0":
-                scl = "input%d" % (i + 1)
-                p[ICLPOS] = scl
-            self.infiles[i] = p
-        for i, p in enumerate(
-            self.outfiles
-        ):  # trying to automagically gather using extensions
-            if self.args.parampass == "positional" and p[OCLPOS] != "STDOUT":
-                assert p[OCLPOS].isdigit(), (
-                    "Positional parameters must be ordinal integers - got %s for %s"
-                    % (p[OCLPOS], p[ONAMEPOS])
-                )
-            p.append(p[OCLPOS])
-            if p[OCLPOS].isdigit() or p[OCLPOS] == "STDOUT":
-                scl = p[ONAMEPOS]
-                p[OCLPOS] = scl
-            self.outfiles[i] = p
-        for i, p in enumerate(self.addpar):
-            if self.args.parampass == "positional":
-                assert p[ACLPOS].isdigit(), (
-                    "Positional parameters must be ordinal integers - got %s for %s"
-                    % (p[ACLPOS], p[ANAMEPOS])
-                )
-            p.append(p[ACLPOS])
-            if p[ACLPOS].isdigit():
-                scl = "input%s" % p[ACLPOS]
-                p[ACLPOS] = scl
-            self.addpar[i] = p
-
-    def clsimple(self):
-        """ no parameters - uses < and > for i/o
-        """
-        aCL = self.cl.append
-        aCL("<")
-        aCL(self.infiles[0][IPATHPOS])
-        aCL(">")
-        aCL(self.outfiles[0][OCLPOS])
-        aXCL = self.xmlcl.append
-        aXCL("<")
-        aXCL("$%s" % self.infiles[0][ICLPOS])
-        aXCL(">")
-        aXCL("$%s" % self.outfiles[0][ONAMEPOS])
-
-    def clpositional(self):
-        # inputs in order then params
-        aCL = self.cl.append
-        for (o_v, k, v, koverride) in self.clsuffix:
-            if " " in v:
-                aCL("%s" % v)
-            else:
-                aCL(v)
-        aXCL = self.xmlcl.append
-        for (o_v, k, v, koverride) in self.xclsuffix:
-            aXCL(v)
-        if self.lastxclredirect:
-            aXCL(self.lastxclredirect[0])
-            aXCL(self.lastxclredirect[1])
-
-    def clargparse(self):
-        """ argparse style
-        """
-        aCL = self.cl.append
-        aXCL = self.xmlcl.append
-        # inputs then params in argparse named form
-        for (o_v, k, v, koverride) in self.xclsuffix:
-            if koverride > "":
-                k = koverride
-            elif len(k.strip()) == 1:
-                k = "-%s" % k
-            else:
-                k = "--%s" % k
-            aXCL(k)
-            aXCL(v)
-        for (o_v, k, v, koverride) in self.clsuffix:
-            if koverride > "":
-                k = koverride
-            elif len(k.strip()) == 1:
-                k = "-%s" % k
-            else:
-                k = "--%s" % k
-            aCL(k)
-            aCL(v)
-
-    def getNdash(self, newname):
-        if self.is_positional:
-            ndash = 0
-        else:
-            ndash = 2
-            if len(newname) < 2:
-                ndash = 1
-        return ndash
-
-    def doXMLparam(self):
-        """flake8 made me do this..."""
-        for p in self.outfiles:
-            newname, newfmt, newcl, oldcl = p
-            ndash = self.getNdash(newcl)
-            aparm = gxtp.OutputData(newcl, format=newfmt, num_dashes=ndash)
-            aparm.positional = self.is_positional
-            if self.is_positional:
-                if oldcl == "STDOUT":
-                    aparm.positional = 9999999
-                    aparm.command_line_override = "> $%s" % newcl
-                else:
-                    aparm.positional = int(oldcl)
-                    aparm.command_line_override = "$%s" % newcl
-            self.toutputs.append(aparm)
-            tp = gxtp.TestOutput(
-                name=newcl, value="%s_sample" % newcl, format=newfmt
-            )
-            self.testparam.append(tp)
-        for p in self.infiles:
-            newname = p[ICLPOS]
-            newfmt = p[IFMTPOS]
-            ndash = self.getNdash(newname)
-            if not len(p[ILABPOS]) > 0:
-                alab = p[ICLPOS]
-            else:
-                alab = p[ILABPOS]
-            aninput = gxtp.DataParam(
-                newname,
-                optional=False,
-                label=alab,
-                help=p[IHELPOS],
-                format=newfmt,
-                multiple=False,
-                num_dashes=ndash,
-            )
-            aninput.positional = self.is_positional
-            self.tinputs.append(aninput)
-            tparm = gxtp.TestParam(name=newname, value="%s_sample" % newname)
-            self.testparam.append(tparm)
-        for p in self.addpar:
-            newname, newval, newlabel, newhelp, newtype, newcl, override, oldcl = p
-            if not len(newlabel) > 0:
-                newlabel = newname
-            ndash = self.getNdash(newname)
-            if newtype == "text":
-                aparm = gxtp.TextParam(
-                    newname,
-                    label=newlabel,
-                    help=newhelp,
-                    value=newval,
-                    num_dashes=ndash,
-                )
-            elif newtype == "integer":
-                aparm = gxtp.IntegerParam(
-                    newname,
-                    label=newname,
-                    help=newhelp,
-                    value=newval,
-                    num_dashes=ndash,
-                )
-            elif newtype == "float":
-                aparm = gxtp.FloatParam(
-                    newname,
-                    label=newname,
-                    help=newhelp,
-                    value=newval,
-                    num_dashes=ndash,
-                )
-            else:
-                raise ValueError(
-                    'Unrecognised parameter type "%s" for\
-                 additional parameter %s in makeXML'
-                    % (newtype, newname)
-                )
-            aparm.positional = self.is_positional
-            if self.is_positional:
-                aninput.positional = int(oldcl)
-            self.tinputs.append(aparm)
-            self.tparm = gxtp.TestParam(newname, value=newval)
-            self.testparam.append(tparm)
-
-    def doNoXMLparam(self):
-        alab = self.infiles[0][ILABPOS]
-        if len(alab) == 0:
-            alab = self.infiles[0][ICLPOS]
-        max1s = (
-            "Maximum one input if parampass is 0 - more than one input files supplied - %s"
-            % str(self.infiles)
-        )
-        assert len(self.infiles) == 1, max1s
-        newname = self.infiles[0][ICLPOS]
-        aninput = gxtp.DataParam(
-            newname,
-            optional=False,
-            label=alab,
-            help=self.infiles[0][IHELPOS],
-            format=self.infiles[0][IFMTPOS],
-            multiple=False,
-            num_dashes=0,
-        )
-        aninput.command_line_override = "< $%s" % newname
-        aninput.positional = self.is_positional
-        self.tinputs.append(aninput)
-        tp = gxtp.TestParam(name=newname, value="%s_sample" % newname)
-        self.testparam.append(tp)
-        newname = self.outfiles[0][OCLPOS]
-        newfmt = self.outfiles[0][OFMTPOS]
-        anout = gxtp.OutputData(newname, format=newfmt, num_dashes=0)
-        anout.command_line_override = "> $%s" % newname
-        anout.positional = self.is_positional
-        self.toutputs.append(anout)
-        tp = gxtp.TestOutput(
-            name=newname, value="%s_sample" % newname, format=newfmt
-        )
-        self.testparam.append(tp)
-
-    def makeXML(self):
-        """
-        Create a Galaxy xml tool wrapper for the new script
-        Uses galaxyhtml
-        Hmmm. How to get the command line into correct order...
-        """
-        self.tool.command_line_override = self.xmlcl
-        if self.args.interpreter_name:
-            self.tool.interpreter = self.args.interpreter_name
-        if self.args.help_text:
-            helptext = open(self.args.help_text, "r").readlines()
-            helptext = [html_escape(x) for x in helptext]
-            self.tool.help = "".join([x for x in helptext])
-        else:
-            self.tool.help = (
-                "Please ask the tool author (%s) for help \
-              as none was supplied at tool generation\n"
-                % (self.args.user_email)
-            )
-        self.tool.version_command = None  # do not want
-        requirements = gxtp.Requirements()
-
-        if self.args.interpreter_name:
-            if self.args.interpreter_name == "python":
-                requirements.append(
-                    gxtp.Requirement(
-                        "package", "python", self.args.interpreter_version
-                    )
-                )
-            elif self.args.interpreter_name not in ["bash", "sh"]:
-                requirements.append(
-                    gxtp.Requirement(
-                        "package",
-                        self.args.interpreter_name,
-                        self.args.interpreter_version,
-                    )
-                )
-        else:
-            if self.args.exe_package and self.args.parampass != "system":
-                requirements.append(
-                    gxtp.Requirement(
-                        "package",
-                        self.args.exe_package,
-                        self.args.exe_package_version,
-                    )
-                )
-        self.tool.requirements = requirements
-        if self.args.parampass == "0":
-            self.doNoXMLparam()
-        else:
-            self.doXMLparam()
-        self.tool.outputs = self.toutputs
-        self.tool.inputs = self.tinputs
-        if self.args.runmode not in ["Executable", "system"]:
-            configfiles = gxtp.Configfiles()
-            configfiles.append(gxtp.Configfile(name="runMe", text=self.script))
-            self.tool.configfiles = configfiles
-        tests = gxtp.Tests()
-        test_a = gxtp.Test()
-        for tp in self.testparam:
-            test_a.append(tp)
-        tests.append(test_a)
-        self.tool.tests = tests
-        self.tool.add_comment(
-            "Created by %s at %s using the Galaxy Tool Factory."
-            % (self.args.user_email, timenow())
-        )
-        self.tool.add_comment("Source in git at: %s" % (toolFactoryURL))
-        self.tool.add_comment(
-            "Cite: Creating re-usable tools from scripts doi: 10.1093/bioinformatics/bts573"
-        )
-        exml = self.tool.export()
-        xf = open('%s.xml' % self.tool_name, "w")
-        xf.write(exml)
-        xf.write("\n")
-        xf.close()
-        # ready for the tarball
-
-    def makeTooltar(self):
-        """
-        a tool is a gz tarball with eg
-        /toolname/tool.xml /toolname/tool.py /toolname/test-data/test1_in.foo ...
-        NOTE names for test inputs and outputs are munged here so must
-        correspond to actual input and output names used on the generated cl
-        """
-        retval = self.run()
-        if retval:
-            sys.stderr.write(
-                "## Run failed. Cannot build yet. Please fix and retry"
-            )
-            sys.exit(1)
-        tdir = "tfout"
-        if not os.path.exists(tdir):
-            os.mkdir(tdir)
-        self.makeXML()
-        testdir = os.path.join(tdir, "test-data")
-        if not os.path.exists(testdir):
-            os.mkdir(testdir)  # make tests directory
-        for p in self.infiles:
-            pth = p[IPATHPOS]
-            dest = os.path.join(testdir, "%s_sample" % p[ICLPOS])
-            shutil.copyfile(pth, dest)
-        for p in self.outfiles:
-            pth = p[OCLPOS]
-            if p[OOCLPOS] == "STDOUT" or self.args.parampass == "0":
-                pth = p[ONAMEPOS]
-                dest = os.path.join(testdir, "%s_sample" % p[ONAMEPOS])
-                shutil.copyfile(pth, dest)
-                dest = os.path.join(tdir, p[ONAMEPOS])
-                shutil.copyfile(pth, dest)
-            else:
-                pth = p[OCLPOS]
-                dest = os.path.join(testdir, "%s_sample" % p[OCLPOS])
-                shutil.copyfile(pth, dest)
-                dest = os.path.join(tdir, p[OCLPOS])
-                shutil.copyfile(pth, dest)
-
-        if os.path.exists(self.tlog) and os.stat(self.tlog).st_size > 0:
-            shutil.copyfile(self.tlog, os.path.join(testdir, "test1_log_outfiletxt"))
-        if self.args.runmode not in ["Executable", "system"]:
-            stname = os.path.join(tdir, "%s" % (self.sfile))
-            if not os.path.exists(stname):
-                shutil.copyfile(self.sfile, stname)
-        xreal = '%s.xml' % self.tool_name
-        xout = os.path.join(tdir,xreal)
-        shutil.copyfile(xreal, xout)
-        tarpath = "toolfactory_%s.tgz" % self.tool_name
-        tf = tarfile.open(tarpath, "w:gz")
-        tf.add(name=tdir, arcname=self.tool_name)
-        tf.close()
-        shutil.copyfile(tarpath, self.args.new_tool)
-        shutil.copyfile(xreal,"tool_xml.txt")
-        repdir = "TF_run_report_tempdir"
-        if not os.path.exists(repdir):
-            os.mkdir(repdir)
-        repoutnames = [x[OCLPOS] for x in self.outfiles]
-        with os.scandir('.') as outs:
-            for entry in outs:
-                if entry.name.endswith('.tgz') or not entry.is_file():
-                    continue
-                if entry.name in repoutnames:
-                    shutil.copyfile(entry.name,os.path.join(repdir,entry.name))
-                elif entry.name == "%s.xml" % self.tool_name:
-                    shutil.copyfile(entry.name,os.path.join(repdir,"new_tool_xml"))
-        return retval
-
-    def run(self):
-        """
-        Some devteam tools have this defensive stderr read so I'm keeping with the faith
-        Feel free to update.
-        """
-        s = "run cl=%s" % str(self.cl)
-
-        logging.debug(s)
-        scl = " ".join(self.cl)
-        err = None
-        if self.args.parampass != "0":
-            ste = open(self.elog, "wb")
-            if self.lastclredirect:
-                sto = open(
-                    self.lastclredirect[1], "wb"
-                )  # is name of an output file
-            else:
-                sto = open(self.tlog, "wb")
-                sto.write(
-                    bytes(
-                        "## Executing Toolfactory generated command line = %s\n"
-                        % scl,
-                        "utf8",
-                    )
-                )
-            sto.flush()
-            p = subprocess.run(self.cl, shell=False, stdout=sto, stderr=ste)
-            sto.close()
-            ste.close()
-            tmp_stderr = open(self.elog, "rb")
-            err = ""
-            buffsize = 1048576
-            try:
-                while True:
-                    err += str(tmp_stderr.read(buffsize))
-                    if not err or len(err) % buffsize != 0:
-                        break
-            except OverflowError:
-                pass
-            tmp_stderr.close()
-            retval = p.returncode
-        else:  # work around special case of simple scripts that take stdin and write to stdout
-            sti = open(self.infiles[0][IPATHPOS], "rb")
-            sto = open(self.outfiles[0][ONAMEPOS], "wb")
-            # must use shell to redirect
-            p = subprocess.run(self.cl, shell=False, stdout=sto, stdin=sti)
-            retval = p.returncode
-            sto.close()
-            sti.close()
-        if os.path.isfile(self.tlog) and os.stat(self.tlog).st_size == 0:
-            os.unlink(self.tlog)
-        if os.path.isfile(self.elog) and os.stat(self.elog).st_size == 0:
-            os.unlink(self.elog)
-        if p.returncode != 0 and err:  # problem
-            sys.stderr.write(err)
-        logging.debug("run done")
-        return retval
-
-
-def main():
-    """
-    This is a Galaxy wrapper. It expects to be called by a special purpose tool.xml as:
-    <command interpreter="python">rgBaseScriptWrapper.py --script_path "$scriptPath" --tool_name "foo" --interpreter "Rscript"
-    </command>
-    """
-    parser = argparse.ArgumentParser()
-    a = parser.add_argument
-    a("--script_path", default="")
-    a("--tool_name", default=None)
-    a("--interpreter_name", default=None)
-    a("--interpreter_version", default=None)
-    a("--exe_package", default=None)
-    a("--exe_package_version", default=None)
-    a("--input_files", default=[], action="append")
-    a("--output_files", default=[], action="append")
-    a("--user_email", default="Unknown")
-    a("--bad_user", default=None)
-    a("--make_Tool", default=None)
-    a("--help_text", default=None)
-    a("--tool_desc", default=None)
-    a("--tool_version", default=None)
-    a("--citations", default=None)
-    a("--additional_parameters", action="append", default=[])
-    a("--edit_additional_parameters", action="store_true", default=False)
-    a("--parampass", default="positional")
-    a("--tfout", default="./tfout")
-    a("--new_tool", default="new_tool")
-    a("--runmode", default=None)
-    args = parser.parse_args()
-    assert not args.bad_user, (
-        'UNAUTHORISED: %s is NOT authorized to use this tool until Galaxy admin adds %s to "admin_users" in the Galaxy configuration file'
-        % (args.bad_user, args.bad_user)
-    )
-    assert (
-        args.tool_name
-    ), "## Tool Factory expects a tool name - eg --tool_name=DESeq"
-    assert (
-        args.interpreter_name or args.exe_package
-    ), "## Tool Factory wrapper expects an interpreter or an executable package"
-    assert args.exe_package or (
-        len(args.script_path) > 0 and os.path.isfile(args.script_path)
-    ), "## Tool Factory wrapper expects a script path - eg --script_path=foo.R if no executable"
-    args.input_files = [
-        x.replace('"', "").replace("'", "") for x in args.input_files
-    ]
-    # remove quotes we need to deal with spaces in CL params
-    for i, x in enumerate(args.additional_parameters):
-        args.additional_parameters[i] = args.additional_parameters[i].replace(
-            '"', ""
-        )
-    r = ScriptRunner(args)
-    if args.make_Tool:
-        retcode = r.makeTooltar()
-    else:
-        retcode = r.run()
-    if retcode:
-        sys.exit(retcode)  # indicate failure to job runner
-
-
-if __name__ == "__main__":
-    main()
--- a/pyrevpos/test-data/output_sample	Tue Nov 24 21:59:01 2020 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,741 +0,0 @@
-nohtyp vne/nib/rsu/!#
-yp.yrotcaFlooTgr #
-yrotcafloot/2rabuf/moc.buhtig//:sptth ees #
-#
-2102 yaM )moc pots liamg ta surazal pots ssor( surazal ssor thgirypoc #
-#
-devreser sthgir lla #
-LPGL eht rednu desneciL #
-yrotcafloot/2rabuf/moc.buhtig//:sptth ta emoclew sexif gub dna tnemevorpmi rof snoitseggus #
-#
-.sraey 5 retfa elkniw nav pir ekil leef I dna nuf saw CCB :0202 yluJ #
-ot dediceD #
-esac tselpmis rof enod - skrow ti os yrotcafloot eht xiF .1 #
-skrow noitcnuf yrotcafloot eht os omenalp xiF .2 #
-enod - esnes sekam taht erehw snoitcnuf lmxyxalag gnisu stib etirweR .3 #
-#
-tpircs emas siht esu loot wen eht gnikam gnidulcni snoitacilpmoc dlo eht lla devomer #
-lmxyxalag/anelyxeh/moc.buhtig//:sptth lmx loot eht setareneg won lmxyxalag #
-stuptuo yrartibra morf noitaerc elif LMTH citamotua rof troppus oN #
-kooh noitucexe tsop a sa edoc taht nur ot noitpo dda :ODOT #
-eno ylno yltnerruc - sretemarap tupni yrotsih lanoitidda dda :ODOT #
-
-
-esrapgra tropmi
-gniggol tropmi
-so tropmi
-er tropmi
-lituhs tropmi
-ssecorpbus tropmi
-sys tropmi
-elifrat tropmi
-elifpmet tropmi
-emit tropmi
-
-txg sa loot.lmxyxalag tropmi
-ptxg sa sretemarap.loot.lmxyxalag tropmi
-
-lmxl tropmi
-
-"0202 yluJ 1.2V" = noisrevym
-eurT = esobrev
-eurT = gubed
-"yrotcafloot/2rabuf/moc.buhtig//:sptth" = LRUyrotcaFloot
-"~~~" = miledruo
-
-lebal_tupni$~~~stamrof_tupni$~~~LC$~~~selif_tupni$"=selif_tupni-- #
-"pleh_tupni$~~~ #
-0 = SOPHTAPI
-1 = SOPLCI
-2 = SOPTMFI
-3 = SOPBALI
-4 = SOPLEHI
-5 = SOPLCOI
-
-LC.bato$~~~tamrof_yrotsih.bato$~~~eman_yrotsih.bato$" selif_tuptuo-- #
-0 = SOPEMANO
-1 = SOPTMFO
-2 = SOPLCO
-3 = SOPLCOO
-
-~~~eulav_marap.i$~~~eman_marap.i$"=sretemarap_lanoitidda-- #
-"edirrevoLC_marap.$i~~~LC.i$~~~epyt_marap.i$~~~pleh_marap.i$~~~lebal_marap.i$ #
-0 = SOPEMANA
-1 = SOPLAVA
-2 = SOPBALA
-3 = SOPPLEHA
-4 = SOPEPYTA
-5 = SOPLCA
-6 = SOPREVOA
-7 = SOPLCOA
-
-
-)__noisrev__.lmxl(nel = oof
-!eman ym yaS .8ekalf ,uoy guf #
-
-:)(wonemit fed
-gnirts a sa emit tnerruc nruter"""    
-"""    
-)))(emit.emit(emitlacol.emit ,"S%:M%:H% Y%/m%/d%"(emitfrts.emit nruter    
-
-
-:)s(ciremun_non_etouq fed
-sciremun-non rof gnirts detouqerp a nruter"""    
-?gnissap retemarap tpircsR dna lrep rof lufesu    
-"""    
-:yrt    
-)s(taolf = _        
-s nruter        
-:rorrEeulaV tpecxe    
-s % '"s%"' nruter        
-
-
-}"$\"r :"$" ,";tl&" :"<" ,";tg&" :">" ,";pma&" :"&"{ = elbat_epacse_lmth
-
-
-:)txet(epacse_lmth fed
-""".txet nihtiw seititne ecudorP"""    
-)txet ni c rof )c ,c(teg.elbat_epacse_lmth(nioj."" nruter    
-
-
-:)txet(epacsenu_lmth fed
-"""ecalper esu os stegrat retcarahc elpitluM .txet nihtiw seititne treveR"""    
-)"&" ,";pma&"(ecalper.txet = t    
-)">" ,";tg&"(ecalper.t = t    
-)"<" ,";tl&"(ecalper.t = t    
-)"$" ,"$\\"(ecalper.t = t    
-t nruter    
-
-
-:)txet_snoitatic(snoitatic_esrap fed
-"""    
-"""    
-])(pirts.c fi )"**YRTNE**"(tilps.txet_snoitatic ni c rof c[ = snoitatic    
-][ = selput_noitatic    
-:snoitatic ni noitatic rof    
-:)"iod"(htiwstrats.noitatic fi        
-)))(pirts.]: )"iod"(nel[noitatic ,"iod"((dneppa.selput_noitatic            
-:esle        
-(dneppa.selput_noitatic            
-))(pirts.]: )"xetbib"(nel[noitatic ,"xetbib"(                
-)            
-selput_noitatic nruter    
-
-
-:rennuRtpircS ssalc
-tpircs yrartibra na rof repparW"""    
-lmxyxalag sesu    
-
-"""    
-
-:)enoN=sgra ,fles(__tini__ fed    
-"""        
-ereh loot eht gninnur rof lc enil dnammoc eraperp        
-noitareneg loot lmxyxalag rof dedeen stnemele eraperp dna        
-"""        
-
-]selif_tupni.sgra ni x rof )miledruo(tilps.x[ = selifni.fles        
-]selif_tuptuo.sgra ni x rof )miledruo(tilps.x[ = seliftuo.fles        
-]sretemarap_lanoitidda.sgra ni x rof )miledruo(tilps.x[ = rapdda.fles        
-sgra = sgra.fles        
-)(rappunaelc.fles        
-enoN = tceriderlctsal.fles        
-enoN = tceriderlcxtsal.fles        
-][ = lc.fles        
-][ = lclmx.fles        
-"lanoitisop" == ssapmarap.sgra.fles = lanoitisop_si.fles        
-dneppa.lc.fles = LCa        
-[ ni ssapmarap.sgra tressa        
-,"0"            
-,"esrapgra"            
-,"lanoitisop"            
-'"esrapgra" ro "lanoitisop","0" eb tsum ssapmarap.sgra ni gnissap retemaraP' ,]        
-)eman_loot.sgra ,"" ,"+]_9-0Z-Az-a^["(bus.er = eman_loot.fles        
-eman_loot.fles = di_loot.fles        
-:eman_reterpretni.sgra.fles fi        
-"eMnur$" = exe            
-:esle        
-egakcap_exe.sgra.fles = exe            
-( tressa        
-enoN ton si exe            
-"dliub tonnac os nur ot gnihton - ni dessap elbatucexe ro retepretni oN" ,)        
-(looT.txg = loot.fles        
-,eman_loot.sgra.fles            
-,di_loot.fles            
-,noisrev_loot.sgra.fles            
-,csed_loot.sgra.fles            
-,exe            
-)        
-)(stupnI.ptxg = stupnit.fles        
-)(stuptuO.ptxg = stuptuot.fles        
-][ = maraptset.fles        
-( fi        
-"metsys" == edomnur.sgra.fles ro "elbatucexE" == edomnur.sgra.fles            
-deen on - yranib #  :)        
-nur tsuj lliw LC elttil siht #  )egakcap_exe.sgra.fles(LCa            
-:esle        
-)(tpircSperp.fles            
-eman_loot.fles % "txt.gol_rorre_s%" = gole.fles        
-eman_loot.fles % "txt.gol_rennur_s%" = golt.fles        
-
-:"0" == ssapmarap.sgra.fles fi        
-)(elpmislc.fles            
-:esle        
-][ = xiffuslc            
-][ = xiffuslcx            
-:)selifni.fles(etaremune ni p ,i rof            
-:"NIDTS" == ]SOPLCOI[p fi                
-[ = emdneppa                    
-,]SOPLCOI[p                        
-,]SOPLCI[p                        
-,]SOPHTAPI[p                        
-,]SOPHTAPI[p % "s% <"                        
-]                    
-[ = emdneppax                    
-,]SOPLCOI[p                        
-,]SOPLCI[p                        
-,]SOPHTAPI[p                        
-,]SOPLCI[p % "s%$ <"                        
-]                    
-:esle                
-]"" ,]SOPHTAPI[p ,]SOPLCI[p ,]SOPLCOI[p[ = emdneppa                    
-]"" ,]SOPLCI[p % "s%$" ,]SOPLCI[p ,]SOPLCOI[p[ = emdneppax                    
-)emdneppa(dneppa.xiffuslc                
-)emdneppax(dneppa.xiffuslcx                
-))emdneppa,i( % 's%=emdneppa ,d%=i elifni##'(tnirp #                
-:)seliftuo.fles(etaremune ni p ,i rof            
-:"TUODTS" == ]SOPLCOO[p fi                
-]]SOPEMANO[p ,">"[ = tceriderlctsal.fles                    
-]]SOPLCO[p % "s%$" ,">"[ = tceriderlcxtsal.fles                    
-:esle                
-)]"" ,]SOPEMANO[p ,]SOPLCO[p ,]SOPLCOO[p[(dneppa.xiffuslc                    
-(dneppa.xiffuslcx                    
-]"" ,]SOPEMANO[p % "s%$" ,]SOPLCO[p ,]SOPLCOO[p[                        
-)                    
-:rapdda.fles ni p rof            
-(dneppa.xiffuslc                
-]]SOPREVOA[p ,]SOPLAVA[p ,]SOPLCA[p ,]SOPLCOA[p[                    
-)                
-(dneppa.xiffuslcx                
-]]SOPREVOA[p ,]SOPEMANA[p % '"s%$"' ,]SOPLCA[p ,]SOPLCOA[p[                    
-)                
-)(tros.xiffuslc            
-)(tros.xiffuslcx            
-xiffuslcx = xiffuslcx.fles            
-xiffuslc = xiffuslc.fles            
-:"lanoitisop" == ssapmarap.sgra.fles fi            
-)(lanoitisoplc.fles                
-:esle            
-)(esrapgralc.fles                
-
-:)fles(tpircSperp fed    
-dneppa.lc.fles = LCa        
-)(senildaer.)"r" ,htap_tpircs.sgra.fles(nepo = xr        
-]xr ni x rof )(pirtsr.x[ = xr        
-]"" > )(pirts.x fi xr ni x rof )(pirts.x[ = kcehcxr        
-"nur tonnaC .ytpme si tpircs deilppuS" ,0 > )kcehcxr(nel tressa        
-)xr(nioj."n\" = tpircs.fles        
-(pmetskm.elifpmet = elifs.fles ,eldnahf        
-)eman_reterpretni.sgra.fles( % "s%_"=xiffus ,eman_loot.fles=xiferp            
-)        
-)"w" ,elifs.fles(nepo = tpircst        
-)tpircs.fles(etirw.tpircst        
-)(esolc.tpircst        
-(nioj."n\" % "s%  " = tpircSdetnedni.fles        
-]xr ni x rof )x(epacse_lmth % "s% "[            
-)        
-(nioj."n\" % "s%" = tpircSdepacse.fles        
-]xr ni x rof )x(epacse_lmth % "s% "[            
-)        
-)eman_reterpretni.sgra.fles ,eman_loot.fles( % "s%.s%" = tra        
-)"bw" ,tra(nepo = tcafitra        
-))"8ftu" ,tpircs.fles(setyb(etirw.tcafitra        
-)(esolc.tcafitra        
-)eman_reterpretni.sgra.fles(LCa        
-)elifs.fles(LCa        
-
-:)fles(rappunaelc fed    
-"""lanidro ciremun rieht yb detacilpmoc era sretemarap lanoitisop """        
-:)selifni.fles(etaremune ni p ,i rof        
-:"lanoitisop" == ssapmarap.sgra.fles fi            
-( ,)(tigidsi.]SOPLCI[p tressa                
-"s% rof s% tog - sregetni lanidro eb tsum sretemarap lanoitisoP"                    
-)]SOPBALI[p ,]SOPLCI[p( %                    
-)                
-)]SOPLCI[p(dneppa.p            
-:"0" == ssapmarap.sgra.fles ro )(tigidsi.]SOPLCI[p fi            
-)1 + i( % "d%tupni" = lcs                
-lcs = ]SOPLCI[p                
-p = ]i[selifni.fles            
-(etaremune ni p ,i rof        
-seliftuo.fles            
-snoisnetxe gnisu rehtag yllacigamotua ot gniyrt #  :)        
-:"TUODTS" =! ]SOPLCO[p dna "lanoitisop" == ssapmarap.sgra.fles fi            
-( ,)(tigidsi.]SOPLCO[p tressa                
-"s% rof s% tog - sregetni lanidro eb tsum sretemarap lanoitisoP"                    
-)]SOPEMANO[p ,]SOPLCO[p( %                    
-)                
-)]SOPLCO[p(dneppa.p            
-:"TUODTS" == ]SOPLCO[p ro )(tigidsi.]SOPLCO[p fi            
-]SOPEMANO[p = lcs                
-lcs = ]SOPLCO[p                
-p = ]i[seliftuo.fles            
-:)rapdda.fles(etaremune ni p ,i rof        
-:"lanoitisop" == ssapmarap.sgra.fles fi            
-( ,)(tigidsi.]SOPLCA[p tressa                
-"s% rof s% tog - sregetni lanidro eb tsum sretemarap lanoitisoP"                    
-)]SOPEMANA[p ,]SOPLCA[p( %                    
-)                
-)]SOPLCA[p(dneppa.p            
-:)(tigidsi.]SOPLCA[p fi            
-]SOPLCA[p % "s%tupni" = lcs                
-lcs = ]SOPLCA[p                
-p = ]i[rapdda.fles            
-
-:)fles(elpmislc fed    
-o/i rof > dna < sesu - sretemarap on """        
-"""        
-dneppa.lc.fles = LCa        
-)"<"(LCa        
-)]SOPHTAPI[]0[selifni.fles(LCa        
-)">"(LCa        
-)]SOPLCO[]0[seliftuo.fles(LCa        
-dneppa.lclmx.fles = LCXa        
-)"<"(LCXa        
-)]SOPLCI[]0[selifni.fles % "s%$"(LCXa        
-)">"(LCXa        
-)]SOPEMANO[]0[seliftuo.fles % "s%$"(LCXa        
-
-:)fles(lanoitisoplc fed    
-smarap neht redro ni stupni #        
-dneppa.lc.fles = LCa        
-:xiffuslc.fles ni )edirrevok ,v ,k ,v_o( rof        
-:v ni " " fi            
-)v % "s%"(LCa                
-:esle            
-)v(LCa                
-dneppa.lclmx.fles = LCXa        
-:xiffuslcx.fles ni )edirrevok ,v ,k ,v_o( rof        
-)v(LCXa            
-:tceriderlcxtsal.fles fi        
-)]0[tceriderlcxtsal.fles(LCXa            
-)]1[tceriderlcxtsal.fles(LCXa            
-
-:)fles(esrapgralc fed    
-elyts esrapgra """        
-"""        
-dneppa.lc.fles = LCa        
-dneppa.lclmx.fles = LCXa        
-mrof deman esrapgra ni smarap neht stupni #        
-:xiffuslcx.fles ni )edirrevok ,v ,k ,v_o( rof        
-:"" > edirrevok fi            
-edirrevok = k                
-:1 == ))(pirts.k(nel file            
-k % "s%-" = k                
-:esle            
-k % "s%--" = k                
-)k(LCXa            
-)v(LCXa            
-:xiffuslc.fles ni )edirrevok ,v ,k ,v_o( rof        
-:"" > edirrevok fi            
-edirrevok = k                
-:1 == ))(pirts.k(nel file            
-k % "s%-" = k                
-:esle            
-k % "s%--" = k                
-)k(LCa            
-)v(LCa            
-
-:)emanwen ,fles(hsadNteg fed    
-:lanoitisop_si.fles fi        
-0 = hsadn            
-:esle        
-2 = hsadn            
-:2 < )emanwen(nel fi            
-1 = hsadn                
-hsadn nruter        
-
-:)fles(marapLMXod fed    
-"""...siht od em edam 8ekalf"""        
-:seliftuo.fles ni p rof        
-p = lcdlo ,lcwen ,tmfwen ,emanwen            
-)lcwen(hsadNteg.fles = hsadn            
-)hsadn=sehsad_mun ,tmfwen=tamrof ,lcwen(ataDtuptuO.ptxg = mrapa            
-lanoitisop_si.fles = lanoitisop.mrapa            
-:lanoitisop_si.fles fi            
-:"TUODTS" == lcdlo fi                
-9999999 = lanoitisop.mrapa                    
-lcwen % "s%$ >" = edirrevo_enil_dnammoc.mrapa                    
-:esle                
-)lcdlo(tni = lanoitisop.mrapa                    
-lcwen % "s%$" = edirrevo_enil_dnammoc.mrapa                    
-)mrapa(dneppa.stuptuot.fles            
-(tuptuOtseT.ptxg = pt            
-tmfwen=tamrof ,lcwen % "elpmas_s%"=eulav ,lcwen=eman                
-)            
-)pt(dneppa.maraptset.fles            
-:selifni.fles ni p rof        
-]SOPLCI[p = emanwen            
-]SOPTMFI[p = tmfwen            
-)emanwen(hsadNteg.fles = hsadn            
-:0 > )]SOPBALI[p(nel ton fi            
-]SOPLCI[p = bala                
-:esle            
-]SOPBALI[p = bala                
-(maraPataD.ptxg = tupnina            
-,emanwen                
-,eslaF=lanoitpo                
-,bala=lebal                
-,]SOPLEHI[p=pleh                
-,tmfwen=tamrof                
-,eslaF=elpitlum                
-,hsadn=sehsad_mun                
-)            
-lanoitisop_si.fles = lanoitisop.tupnina            
-)tupnina(dneppa.stupnit.fles            
-)emanwen % "elpmas_s%"=eulav ,emanwen=eman(maraPtseT.ptxg = mrapt            
-)mrapt(dneppa.maraptset.fles            
-:rapdda.fles ni p rof        
-p = lcdlo ,edirrevo ,lcwen ,epytwen ,plehwen ,lebalwen ,lavwen ,emanwen            
-:0 > )lebalwen(nel ton fi            
-emanwen = lebalwen                
-)emanwen(hsadNteg.fles = hsadn            
-:"txet" == epytwen fi            
-(maraPtxeT.ptxg = mrapa                
-,emanwen                    
-,lebalwen=lebal                    
-,plehwen=pleh                    
-,lavwen=eulav                    
-,hsadn=sehsad_mun                    
-)                
-:"regetni" == epytwen file            
-(maraPregetnI.ptxg = mrapa                
-,emanwen                    
-,emanwen=lebal                    
-,plehwen=pleh                    
-,lavwen=eulav                    
-,hsadn=sehsad_mun                    
-)                
-:"taolf" == epytwen file            
-(maraPtaolF.ptxg = mrapa                
-,emanwen                    
-,emanwen=lebal                    
-,plehwen=pleh                    
-,lavwen=eulav                    
-,hsadn=sehsad_mun                    
-)                
-:esle            
-(rorrEeulaV esiar                
-\rof "s%" epyt retemarap desingocernU'                    
-'LMXekam ni s% retemarap lanoitidda                 
-)emanwen ,epytwen( %                    
-)                
-lanoitisop_si.fles = lanoitisop.mrapa            
-:lanoitisop_si.fles fi            
-)lcdlo(tni = lanoitisop.tupnina                
-)mrapa(dneppa.stupnit.fles            
-)lavwen=eulav ,emanwen(maraPtseT.ptxg = mrapt.fles            
-)mrapt(dneppa.maraptset.fles            
-
-:)fles(marapLMXoNod fed    
-]SOPBALI[]0[selifni.fles = bala        
-:0 == )bala(nel fi        
-]SOPLCI[]0[selifni.fles = bala            
-( = s1xam        
-"s% - deilppus selif tupni eno naht erom - 0 si ssapmarap fi tupni eno mumixaM"            
-)selifni.fles(rts %            
-)        
-s1xam ,1 == )selifni.fles(nel tressa        
-]SOPLCI[]0[selifni.fles = emanwen        
-(maraPataD.ptxg = tupnina        
-,emanwen            
-,eslaF=lanoitpo            
-,bala=lebal            
-,]SOPLEHI[]0[selifni.fles=pleh            
-,]SOPTMFI[]0[selifni.fles=tamrof            
-,eslaF=elpitlum            
-,0=sehsad_mun            
-)        
-emanwen % "s%$ <" = edirrevo_enil_dnammoc.tupnina        
-lanoitisop_si.fles = lanoitisop.tupnina        
-)tupnina(dneppa.stupnit.fles        
-)emanwen % "elpmas_s%"=eulav ,emanwen=eman(maraPtseT.ptxg = pt        
-)pt(dneppa.maraptset.fles        
-]SOPLCO[]0[seliftuo.fles = emanwen        
-]SOPTMFO[]0[seliftuo.fles = tmfwen        
-)0=sehsad_mun ,tmfwen=tamrof ,emanwen(ataDtuptuO.ptxg = tuona        
-emanwen % "s%$ >" = edirrevo_enil_dnammoc.tuona        
-lanoitisop_si.fles = lanoitisop.tuona        
-)tuona(dneppa.stuptuot.fles        
-(tuptuOtseT.ptxg = pt        
-tmfwen=tamrof ,emanwen % "elpmas_s%"=eulav ,emanwen=eman            
-)        
-)pt(dneppa.maraptset.fles        
-
-:)fles(LMXekam fed    
-"""        
-tpircs wen eht rof repparw loot lmx yxalaG a etaerC        
-lmthyxalag sesU        
-...redro tcerroc otni enil dnammoc eht teg ot woH .mmmH        
-"""        
-lclmx.fles = edirrevo_enil_dnammoc.loot.fles        
-:eman_reterpretni.sgra.fles fi        
-eman_reterpretni.sgra.fles = reterpretni.loot.fles            
-:txet_pleh.sgra.fles fi        
-)(senildaer.)"r" ,txet_pleh.sgra.fles(nepo = txetpleh            
-]txetpleh ni x rof )x(epacse_lmth[ = txetpleh            
-)]txetpleh ni x rof x[(nioj."" = pleh.loot.fles            
-:esle        
-( = pleh.loot.fles            
-\ pleh rof )s%( rohtua loot eht ksa esaelP"                
-"n\noitareneg loot ta deilppus saw enon sa              
-)liame_resu.sgra.fles( %                
-)            
-tnaw ton od #  enoN = dnammoc_noisrev.loot.fles        
-)(stnemeriuqeR.ptxg = stnemeriuqer        
-
-:eman_reterpretni.sgra.fles fi        
-:"nohtyp" == eman_reterpretni.sgra.fles fi            
-(dneppa.stnemeriuqer                
-(tnemeriuqeR.ptxg                    
-noisrev_reterpretni.sgra.fles ,"nohtyp" ,"egakcap"                        
-)                    
-)                
-:]"hs" ,"hsab"[ ni ton eman_reterpretni.sgra.fles file            
-(dneppa.stnemeriuqer                
-(tnemeriuqeR.ptxg                    
-,"egakcap"                        
-,eman_reterpretni.sgra.fles                        
-,noisrev_reterpretni.sgra.fles                        
-)                    
-)                
-:esle        
-:"metsys" =! ssapmarap.sgra.fles dna egakcap_exe.sgra.fles fi            
-(dneppa.stnemeriuqer                
-(tnemeriuqeR.ptxg                    
-,"egakcap"                        
-,egakcap_exe.sgra.fles                        
-,noisrev_egakcap_exe.sgra.fles                        
-)                    
-)                
-stnemeriuqer = stnemeriuqer.loot.fles        
-:"0" == ssapmarap.sgra.fles fi        
-)(marapLMXoNod.fles            
-:esle        
-)(marapLMXod.fles            
-stuptuot.fles = stuptuo.loot.fles        
-stupnit.fles = stupni.loot.fles        
-:]"metsys" ,"elbatucexE"[ ni ton edomnur.sgra.fles fi        
-)(selifgifnoC.ptxg = selifgifnoc            
-))tpircs.fles=txet ,"eMnur"=eman(elifgifnoC.ptxg(dneppa.selifgifnoc            
-selifgifnoc = selifgifnoc.loot.fles            
-)(stseT.ptxg = stset        
-)(tseT.ptxg = a_tset        
-:maraptset.fles ni pt rof        
-)pt(dneppa.a_tset            
-)a_tset(dneppa.stset        
-stset = stset.loot.fles        
-(tnemmoc_dda.loot.fles        
-".yrotcaF looT yxalaG eht gnisu s% ta s% yb detaerC"            
-))(wonemit ,liame_resu.sgra.fles( %            
-)        
-))LRUyrotcaFloot( % "s% :ta tig ni ecruoS"(tnemmoc_dda.loot.fles        
-(tnemmoc_dda.loot.fles        
-"375stb/scitamrofnioib/3901.01 :iod stpircs morf sloot elbasu-er gnitaerC :etiC"            
-)        
-)(tropxe.loot.fles = lmxe        
-)"w" ,eman_loot.fles % 'lmx.s%'(nepo = fx        
-)lmxe(etirw.fx        
-)"n\"(etirw.fx        
-)(esolc.fx        
-llabrat eht rof ydaer #        
-
-:)fles(ratlooTekam fed    
-"""        
-ge htiw llabrat zg a si loot a        
-... oof.ni_1tset/atad-tset/emanloot/ yp.loot/emanloot/ lmx.loot/emanloot/        
-tsum os ereh degnum era stuptuo dna stupni tset rof seman ETON        
-lc detareneg eht no desu seman tuptuo dna tupni lautca ot dnopserroc        
-"""        
-)(nur.fles = lavter        
-:lavter fi        
-(etirw.rredts.sys            
-"yrter dna xif esaelP .tey dliub tonnaC .deliaf nuR ##"                
-)            
-)1(tixe.sys            
-"tuoft" = ridt        
-:)ridt(stsixe.htap.so ton fi        
-)ridt(ridkm.so            
-)(LMXekam.fles        
-)"atad-tset" ,ridt(nioj.htap.so = ridtset        
-:)ridtset(stsixe.htap.so ton fi        
-yrotcerid stset ekam #  )ridtset(ridkm.so            
-:selifni.fles ni p rof        
-]SOPHTAPI[p = htp            
-)]SOPLCI[p % "elpmas_s%" ,ridtset(nioj.htap.so = tsed            
-)tsed ,htp(elifypoc.lituhs            
-:seliftuo.fles ni p rof        
-]SOPLCO[p = htp            
-:"0" == ssapmarap.sgra.fles ro "TUODTS" == ]SOPLCOO[p fi            
-]SOPEMANO[p = htp                
-)]SOPEMANO[p % "elpmas_s%" ,ridtset(nioj.htap.so = tsed                
-)tsed ,htp(elifypoc.lituhs                
-)]SOPEMANO[p ,ridt(nioj.htap.so = tsed                
-)tsed ,htp(elifypoc.lituhs                
-:esle            
-]SOPLCO[p = htp                
-)]SOPLCO[p % "elpmas_s%" ,ridtset(nioj.htap.so = tsed                
-)tsed ,htp(elifypoc.lituhs                
-)]SOPLCO[p ,ridt(nioj.htap.so = tsed                
-)tsed ,htp(elifypoc.lituhs                
-
-:0 > ezis_ts.)golt.fles(tats.so dna )golt.fles(stsixe.htap.so fi        
-))"txteliftuo_gol_1tset" ,ridtset(nioj.htap.so ,golt.fles(elifypoc.lituhs            
-:]"metsys" ,"elbatucexE"[ ni ton edomnur.sgra.fles fi        
-))elifs.fles( % "s%" ,ridt(nioj.htap.so = emants            
-:)emants(stsixe.htap.so ton fi            
-)emants ,elifs.fles(elifypoc.lituhs                
-eman_loot.fles % 'lmx.s%' = laerx        
-)laerx,ridt(nioj.htap.so = tuox        
-)tuox ,laerx(elifypoc.lituhs        
-eman_loot.fles % "zgt.s%_yrotcafloot" = htaprat        
-)"zg:w" ,htaprat(nepo.elifrat = ft        
-)eman_loot.fles=emancra ,ridt=eman(dda.ft        
-)(esolc.ft        
-)loot_wen.sgra.fles ,htaprat(elifypoc.lituhs        
-)"txt.lmx_loot",laerx(elifypoc.lituhs        
-"ridpmet_troper_nur_FT" = ridper        
-:)ridper(stsixe.htap.so ton fi        
-)ridper(ridkm.so            
-]seliftuo.fles ni x rof ]SOPLCO[x[ = semantuoper        
-:stuo sa )'.'(ridnacs.so htiw        
-:stuo ni yrtne rof            
-:)(elif_si.yrtne ton ro )'zgt.'(htiwsdne.eman.yrtne fi                
-eunitnoc                    
-:semantuoper ni eman.yrtne fi                
-))eman.yrtne,ridper(nioj.htap.so,eman.yrtne(elifypoc.lituhs                    
-:eman_loot.fles % "lmx.s%" == eman.yrtne file                
-))"lmx_loot_wen",ridper(nioj.htap.so,eman.yrtne(elifypoc.lituhs                    
-lavter nruter        
-
-:)fles(nur fed    
-"""        
-htiaf eht htiw gnipeek m'I os daer rredts evisnefed siht evah sloot maetved emoS        
-.etadpu ot eerf leeF        
-"""        
-)lc.fles(rts % "s%=lc nur" = s        
-
-)s(gubed.gniggol        
-)lc.fles(nioj." " = lcs        
-enoN = rre        
-:"0" =! ssapmarap.sgra.fles fi        
-)"bw" ,gole.fles(nepo = ets            
-:tceriderlctsal.fles fi            
-(nepo = ots                
-"bw" ,]1[tceriderlctsal.fles                    
-elif tuptuo na fo eman si #  )                
-:esle            
-)"bw" ,golt.fles(nepo = ots                
-(etirw.ots                
-(setyb                    
-"n\s% = enil dnammoc detareneg yrotcaflooT gnitucexE ##"                        
-,lcs %                        
-,"8ftu"                        
-)                    
-)                
-)(hsulf.ots            
-)ets=rredts ,ots=tuodts ,eslaF=llehs ,lc.fles(nur.ssecorpbus = p            
-)(esolc.ots            
-)(esolc.ets            
-)"br" ,gole.fles(nepo = rredts_pmt            
-"" = rre            
-6758401 = ezisffub            
-:yrt            
-:eurT elihw                
-))ezisffub(daer.rredts_pmt(rts =+ rre                    
-:0 =! ezisffub % )rre(nel ro rre ton fi                    
-kaerb                        
-:rorrEwolfrevO tpecxe            
-ssap                
-)(esolc.rredts_pmt            
-edocnruter.p = lavter            
-tuodts ot etirw dna nidts ekat taht stpircs elpmis fo esac laiceps dnuora krow #  :esle        
-)"br" ,]SOPHTAPI[]0[selifni.fles(nepo = its            
-)"bw" ,]SOPEMANO[]0[seliftuo.fles(nepo = ots            
-tcerider ot llehs esu tsum #            
-)its=nidts ,ots=tuodts ,eslaF=llehs ,lc.fles(nur.ssecorpbus = p            
-edocnruter.p = lavter            
-)(esolc.ots            
-)(esolc.its            
-:0 == ezis_ts.)golt.fles(tats.so dna )golt.fles(elifsi.htap.so fi        
-)golt.fles(knilnu.so            
-:0 == ezis_ts.)gole.fles(tats.so dna )gole.fles(elifsi.htap.so fi        
-)gole.fles(knilnu.so            
-melborp #  :rre dna 0 =! edocnruter.p fi        
-)rre(etirw.rredts.sys            
-)"enod nur"(gubed.gniggol        
-lavter nruter        
-
-
-:)(niam fed
-"""    
-:sa lmx.loot esoprup laiceps a yb dellac eb ot stcepxe tI .repparw yxalaG a si sihT    
-"tpircsR" reterpretni-- "oof" eman_loot-- "htaPtpircs$" htap_tpircs-- yp.repparWtpircSesaBgr>"nohtyp"=reterpretni dnammoc<    
->dnammoc/<    
-"""    
-)(resraPtnemugrA.esrapgra = resrap    
-tnemugra_dda.resrap = a    
-)""=tluafed ,"htap_tpircs--"(a    
-)enoN=tluafed ,"eman_loot--"(a    
-)enoN=tluafed ,"eman_reterpretni--"(a    
-)enoN=tluafed ,"noisrev_reterpretni--"(a    
-)enoN=tluafed ,"egakcap_exe--"(a    
-)enoN=tluafed ,"noisrev_egakcap_exe--"(a    
-)"dneppa"=noitca ,][=tluafed ,"selif_tupni--"(a    
-)"dneppa"=noitca ,][=tluafed ,"selif_tuptuo--"(a    
-)"nwonknU"=tluafed ,"liame_resu--"(a    
-)enoN=tluafed ,"resu_dab--"(a    
-)enoN=tluafed ,"looT_ekam--"(a    
-)enoN=tluafed ,"txet_pleh--"(a    
-)enoN=tluafed ,"csed_loot--"(a    
-)enoN=tluafed ,"noisrev_loot--"(a    
-)enoN=tluafed ,"snoitatic--"(a    
-)][=tluafed ,"dneppa"=noitca ,"sretemarap_lanoitidda--"(a    
-)eslaF=tluafed ,"eurt_erots"=noitca ,"sretemarap_lanoitidda_tide--"(a    
-)"lanoitisop"=tluafed ,"ssapmarap--"(a    
-)"tuoft/."=tluafed ,"tuoft--"(a    
-)"loot_wen"=tluafed ,"loot_wen--"(a    
-)enoN=tluafed ,"edomnur--"(a    
-)(sgra_esrap.resrap = sgra    
-( ,resu_dab.sgra ton tressa    
-'elif noitarugifnoc yxalaG eht ni "sresu_nimda" ot s% sdda nimda yxalaG litnu loot siht esu ot dezirohtua TON si s% :DESIROHTUANU'        
-)resu_dab.sgra ,resu_dab.sgra( %        
-)    
-( tressa    
-eman_loot.sgra        
-"qeSED=eman_loot-- ge - eman loot a stcepxe yrotcaF looT ##" ,)    
-( tressa    
-egakcap_exe.sgra ro eman_reterpretni.sgra        
-"egakcap elbatucexe na ro reterpretni na stcepxe repparw yrotcaF looT ##" ,)    
-( ro egakcap_exe.sgra tressa    
-)htap_tpircs.sgra(elifsi.htap.so dna 0 > )htap_tpircs.sgra(nel        
-"elbatucexe on fi R.oof=htap_tpircs-- ge - htap tpircs a stcepxe repparw yrotcaF looT ##" ,)    
-[ = selif_tupni.sgra    
-selif_tupni.sgra ni x rof )"" ,"'"(ecalper.)"" ,'"'(ecalper.x        
-]    
-smarap LC ni secaps htiw laed ot deen ew setouq evomer #    
-:)sretemarap_lanoitidda.sgra(etaremune ni x ,i rof    
-(ecalper.]i[sretemarap_lanoitidda.sgra = ]i[sretemarap_lanoitidda.sgra        
-"" ,'"'            
-)        
-)sgra(rennuRtpircS = r    
-:looT_ekam.sgra fi    
-)(ratlooTekam.r = edocter        
-:esle    
-)(nur.r = edocter        
-:edocter fi    
-rennur boj ot eruliaf etacidni #  )edocter(tixe.sys        
-
-
-:"__niam__" == __eman__ fi
-)(niam    
--- a/pyrevpos/test-data/test1_log.txt	Tue Nov 24 21:59:01 2020 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-## Executing Toolfactory generated command line = python /home/ross/galaxy/database/tmp/pyrevposz9rx5n8f.python /home/ross/galaxy/database/objects/9/8/a/dataset_98a46be8-3a8f-4152-90ba-4a9e913f4eb4.dat output
--- a/pyrevpos/test1_log_outfiletxt	Tue Nov 24 21:59:01 2020 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-## Executing Toolfactory generated command line = python /home/ross/galaxy/database/tmp/pyrevposygle0d43_python /home/ross/galaxy/database/objects/f/a/6/dataset_fa66be33-3c07-465d-be42-f2b0950b293d.dat output
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tacrev/outfile	Tue Nov 24 22:04:10 2020 +0000
@@ -0,0 +1,166 @@
+
+gnp.looTtpircScimanyd/segami/989ef2308adf/crs/rekamlootyxalag/rabuf/gro.tekcubtib//:ptth
+
+**tohsneercs yrotagilbO**
+
+LPGL eht rednu desneciL
+
+.devreser sthgir llA
+
+moc doirep liam g ta surazal ssor
+0102 surazaL ssoR thgirypoC
+
+**gnisneciL**
+
+fer=epytyek&JWYdwMrWs1hQzcl=yekji?375stb/tnirper/igc/gro.slanruojdrofxo.scitamrofnioib//:ptth
+
+375stb/scitamrofnioib/3901.01 :iod ;2102 scitamrofnioiB
+maeT yxalaG ehT ;nnameiZ kraM ;ipsaK ynotnA ;surazaL ssoR
+yrotcaF looT yxalaG ehT :stpircs morf sloot elbasu-er gnitaerC
+
+**noitubirttA**
+
+?esaelp seussi tekcubtib sa emoclew snoitseggus dna sehctaP
+
+**edoC dneS**
+
+.yracs yllaer si ti - eno siht yllaicepsE .loot yna llatsni uoy erofeb edoc eht daeR
+.dehsloot efas ecitcarp ,esaelp tub erucesni yllausunu gnihtyna od tonnac resu
+rieht dna yllamron nur tsuj yehT .efas si tpircs eht gnimussa - loot rehtona
+tsuj s'ti ,loot detareneg a llatsni uoy ecnO
+
+**ytiruceS loot detareneG**
+
+.dehsloot ruoy esu ot derugifnoc yxalaG noitcudorp yna ni noitallatsni
+detamotua ylegral dna efas snaem tahT .dehsloot lacol ruoy no yrotisoper a
+ni loot yxalaG yranidro na sa nur ot ydaer tpircs ruoy gniniatnoc elif pizg
+elbitapmoc dehsloot a etareneg nac uoy ,atad tset emos no skrow tpircs eht ecnO
+
+.llew ytterp skrow ti - gubed uoy sa ti nurer ot gniyrt
+erofeb tpircs eht tide dna nottub oder eht esu nac uoY .snur ti yllautneve
+dna srorre xatnys eht xif uoy ,tpircs ruoy nur dna etsap uoY
+
+**od uoy tahW**
+
+.eno xelpmoc erom
+a ot pu gel suoires a uoy steg tpircs detareneg a ecnis pu dliub dna llams
+trats os ,loot yxalaG yna ekil decnahne dna detide eb nac sloot detareneG
+
+.elbaliava eb ot deen kigamegami
+dna taht os tpircstsohg htiw knurhs era s'fdp detaolb s'R dna slianbmuht sa
+nwohs era stuptuo fdp - selif tuptuo dna segami setirw tpircs eht fi lufesu
+- etagivan ot resu eht rof egap xedni LMTH detarenegotua na no sknil otni
+stuptuo fo rebmun yna tcelloc yllanoitpo dna ,tesatad yrotsih wen eno etirw
+nac yllanoitpO .yrotsih eht morf tupni eno daer taht stpircs elpmis ot DETIMIL
+
+.taht si looc woH .detareneg yllacitamotua era stset lanoitcnuF .yltnerruc lrep
+dna R ,nohtyp ni stpircs elpmis rof yrotcaf loot a si sihT
+
+ **seod ti tahW**
+
+.slliks lacinhcet etairporppa fo kcal eb
+ylbaborp dluow atad yxalaG ruoy lla gniyortsed no tneb tnaercsim a edepmi
+dluow taht gniht ylno eht ,revres yxalaG ruoy no tpircs yrartibra yna nur
+ot dewolla fI .tnemom a rof ti tuoba knihT **loot siht nur nac sresu_nimda
+YLNO .thgir s'taht ,seY** ini.igsw_esrevinu ni sresu_nimda ni sDI htiw elpoep
+- sresu nimda yb YLNO elbasu eb neht lliw flesti loot yrotcaf loot ehT
+
+**noitucexe detcirtseR**
+
+
+.lmx.fnoc_sepyt_atad lacol ruoy ot
+>/ "eurT"=ssalcbus "pizg-x/trapitlum"=epytemim
+"yraniB:yranib.sepytatad.yxalag"=epyt "zg.dehsloot"=noisnetxe epytatad<
+:dda esaelp
+,ereht ydaerla ton fI
+
+>noitces/<  
+>/"lmx.yrotcaFlooTgr/yrotcafloot"=elif loot<    
+>"sredliubloot"=di "sloot gnidliub looT"=eman noitces<  
+
+::ekil gnihtemos - elif
+lmx eht ot gnitniop
+yrtne wen a sdeen lmx.fnoc_loot ruoY yrotcafloot/sloot sa hcus yrotceridbus
+sloot wen a otni deipoc
+eb ot deen ereh selif yp dna lmx eht ,yaw taht loot eht teg t'nac uoy fI
+
+.ti llatsni ot noitpo eht tceles dna edoc eht weiver dna ti nepO .yrotisoper
+yrotcafloot eht rof hcraes dna /ude.usp.xb.2g.dehsloot//:sptth ta dehsloot
+niaM yxalaG eht dniF .knil "sdehs loot esworb dna hcraeS" evitartsinimda
+eht gnisu yltneinevnoc tsom ti llatsni nac uoY .loot yxalaG a si sihT
+**noitallatsnI**
+
+emoH/ikiw/yrotcaflootyxalag/rabuf/gro.tekcubtib//:sptth
+ees seceip eht lla peek ot teg uoy ,ti kaerb uoy fi ,nehT .resu_nimda
+na era uoy erehw ecnatsni lacol hctarcs/lanosrep/etavirp a no loot
+siht gnillatsni repoleved a eb dluohs uoy ,dehSlooT eht dna yxalaG
+,loot siht fo *rewop emosewa eht tiolpxe ylefas dna ylluf oT*
+
+.selbairav on
+,tuptuo eno ,tupni enO .stnenopmoc wolfkrow rof tcefrep era sloot yrotcaf looT
+
+.emit yreve tpircs ruoy nur tub,loot yxalaG rehto yna ekil tsuj nur yrotcaFlooT
+eht htiw etareneg uoy sloot eht ,sdrow rehto nI .yrotsih s'resu eht morf
+nesohc tupni eht htiw detucexe eb lliw tliub saw ti nehw deilppus saw taht
+tpircs eht ,emit hcae - ti nur nac sresu lacol ,dellatsni si loot wen eht ecnO
+
+.ecafretni evitartsinimda revres eht morf
+revres yxalaG lacol yna otni dellatsni eb nac ti ,dehSlooT a ni s'ti ecnO
+
+.yrotisoper loot wen a sa dehSlooT yxalaG
+a ot daolpu ot ydaer evihcra na s'ti ,stseggus eman eht sa - *zg.dehsloot*
+epytatad yxalaG wen a fo mrof eht ni detareneg eb lliw loot wen ehT .seman
+dna txet pleh emos ylppus dna noitpo "etareneg" eht tceleS .detareneg eb nac
+tpircs ruoy snur taht loot yxalaG wen a ,yllufssecus snur tpircs eht ecnO
+
+.taeper ,hsaw ,esniR .niaga etucexe dna
+gub eht xiF .tpircs nekorb htiw etelpmoc mrof eht etaercer ot yrotsih ruoy
+ni tuptuo loot eht no nottub "oder" eht esu ,wohemos sliaf tpircs eht fI
+
+.loot atad wen dda yrotsih yxalaG eht
+gnisu tes atad tset llams a etaerc ot deen osla ll'uoY .esaelp reterpretni
+thgir eht tceles ot rebmemer - tuo ti yrt ot eseht etsap dna tuc tsuj nac
+uoY .mrof yrotcaF looT eht no egaugnal gnitpircs hcae ni elpmaxe na si erehT
+
+em rof skrow ```atad-tset/yrotcafloot/srekam_loot/sloot/yxalag/~ atad_tset-- yxalag/~ toor_yxalag-- lmx.2yrotcaFlooTgr tset omenalp```
+
+.tpircs wen ruoy tset ot
+yrotsih ruoy morf tceles ot ydaer elpmaxe tupni tset llams a dna dnim ni egakcap a evah ro ,xob txet
+a otni etsap ot tpircs a deraperp evah dluohs uoy ,yrotcaFlooT eht esu oT
+
+**liateD eroM**
+
+.sresu ruoy rof sloot yxalaG rehto lla ekil yltcaxe krow dna
+rotartsinimda na yb dehs loot a aiv dellatsni era sloot detareneG
+.xob eht fo tuo elbitapmoc wolfkrow ylluf ,loot yxalaG yranidro ,wen a otni
+tnemeriuqer a sa dekab si elbatucexe ro tpircs deilppus ehT .loot yxalaG wen
+a dliub ot desu eb nac yeht ,decudorp neeb evah stuptuo esac tset eht ecnO
+.ylppus uoy sgnittes retemarap dna stupni atad tset elpmas llams gnisu detareneg si tset A
+
+**yxalaG yna otni noitallatsni rof sloot yxalaG wen fo noitareneg detamotuA**
+
+
+.loot yxalaG a gnisu ,setunim ni loot yxalaG yranidro na otni denrut eb nac tI
+
+*sretemarap elyts esrapgra ro lanoitisop htiw elbatucexe yna ro tpircs hsab/lrep/nohtyp/r gnikrow a evah uoY*
+
+.tuptuo sa tes atad wen elgnis a gnitirw
+,stes atad tupni detceles elpitlum revo lrep dna hs ,nohtyp ,R ni stpircs nur
+ot meht gniwolla ,revres yxalaG tsoh eht fo srotartsinimda detangised lla ot
+gnitpircs suoregnad ylemertxe erofereht dna *detcirtsernu* gnisopxe yb skrow tI
+.sloot yxalaG wen gnitareneg fo elbapac loot yxalaG lausunu na si sihT
+
+**yrotS trohS**
+
+.krow dehsilbup ruoy ni loot siht esu uoy fi
+fer=epytyek&JWYdwMrWs1hQzcl=yekji?375stb/tnirper/igc/gro.slanruojdrofxo.scitamrofnioib//:ptth
+ta ecruoser eht etic esaelP
+
+keeB ned nav suiraM yb detroper sgub xif ot 4102 8 tsugua detadpU
+
+troppus noitatic gnidda notlihC nhoJ yb 4102 tsugua detadpU
+ 
+ecnatsni noitcudorp ro cilbup a no REVEN esaelP 
+YLNO yxalaG etavirp a no loot siht llatsnI 
+
+*trats uoy erofeb GNINRAW*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tacrev/tacrev.xml	Tue Nov 24 22:04:10 2020 +0000
@@ -0,0 +1,37 @@
+<tool name="tacrev" id="tacrev" version="0.01">
+  <!--Cite: Creating re-usable tools from scripts doi: 10.1093/bioinformatics/bts573-->
+  <!--Source in git at: https://github.com/fubar2/toolfactory-->
+  <!--Created by ross.lazarus@gmail.com at 08/08/2020 16:19:38 using the Galaxy Tool Factory.-->
+  <description>tacrev</description>
+  <requirements/>
+  <configfiles>
+    <configfile name="runMe"><![CDATA[
+
+rev | tac
+]]></configfile>
+  </configfiles>
+  <stdio>
+    <exit_code range="1:" level="fatal"/>
+  </stdio>
+  <version_command/>
+  <command interpreter="bash"><![CDATA[$runMe <
+$input1
+>
+$outfile]]></command>
+  <inputs>
+    <param help="parameter_help" label="input file" optional="false" multiple="false" format="txt" type="data" name="input1" argument="input1"/>
+  </inputs>
+  <outputs>
+    <data hidden="false" format="txt" name="outfile"/>
+  </outputs>
+  <tests>
+    <test>
+      <param value="input1_sample" name="input1"/>
+      <output value="outfile_sample" name="outfile" format="txt"/>
+    </test>
+  </tests>
+  <help><![CDATA[
+**What it Does**
+ ]]></help>
+</tool>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tacrev/test-data/input1_sample	Tue Nov 24 22:04:10 2020 +0000
@@ -0,0 +1,166 @@
+*WARNING before you start*
+
+ Install this tool on a private Galaxy ONLY
+ Please NEVER on a public or production instance
+ 
+Updated august 2014 by John Chilton adding citation support
+
+Updated august 8 2014 to fix bugs reported by Marius van den Beek
+
+Please cite the resource at
+http://bioinformatics.oxfordjournals.org/cgi/reprint/bts573?ijkey=lczQh1sWrMwdYWJ&keytype=ref
+if you use this tool in your published work.
+
+**Short Story**
+
+This is an unusual Galaxy tool capable of generating new Galaxy tools.
+It works by exposing *unrestricted* and therefore extremely dangerous scripting
+to all designated administrators of the host Galaxy server, allowing them to
+run scripts in R, python, sh and perl over multiple selected input data sets,
+writing a single new data set as output.
+
+*You have a working r/python/perl/bash script or any executable with positional or argparse style parameters*
+
+It can be turned into an ordinary Galaxy tool in minutes, using a Galaxy tool.
+
+
+**Automated generation of new Galaxy tools for installation into any Galaxy**
+
+A test is generated using small sample test data inputs and parameter settings you supply.
+Once the test case outputs have been produced, they can be used to build a
+new Galaxy tool. The supplied script or executable is baked as a requirement
+into a new, ordinary Galaxy tool, fully workflow compatible out of the box.
+Generated tools are installed via a tool shed by an administrator
+and work exactly like all other Galaxy tools for your users.
+
+**More Detail**
+
+To use the ToolFactory, you should have prepared a script to paste into a
+text box, or have a package in mind and a small test input example ready to select from your history
+to test your new script.
+
+```planemo test rgToolFactory2.xml --galaxy_root ~/galaxy --test_data ~/galaxy/tools/tool_makers/toolfactory/test-data``` works for me
+
+There is an example in each scripting language on the Tool Factory form. You
+can just cut and paste these to try it out - remember to select the right
+interpreter please. You'll also need to create a small test data set using
+the Galaxy history add new data tool.
+
+If the script fails somehow, use the "redo" button on the tool output in
+your history to recreate the form complete with broken script. Fix the bug
+and execute again. Rinse, wash, repeat.
+
+Once the script runs sucessfully, a new Galaxy tool that runs your script
+can be generated. Select the "generate" option and supply some help text and
+names. The new tool will be generated in the form of a new Galaxy datatype
+*toolshed.gz* - as the name suggests, it's an archive ready to upload to a
+Galaxy ToolShed as a new tool repository.
+
+Once it's in a ToolShed, it can be installed into any local Galaxy server
+from the server administrative interface.
+
+Once the new tool is installed, local users can run it - each time, the script
+that was supplied when it was built will be executed with the input chosen
+from the user's history. In other words, the tools you generate with the
+ToolFactory run just like any other Galaxy tool,but run your script every time.
+
+Tool factory tools are perfect for workflow components. One input, one output,
+no variables.
+
+*To fully and safely exploit the awesome power* of this tool,
+Galaxy and the ToolShed, you should be a developer installing this
+tool on a private/personal/scratch local instance where you are an
+admin_user. Then, if you break it, you get to keep all the pieces see
+https://bitbucket.org/fubar/galaxytoolfactory/wiki/Home
+
+**Installation**
+This is a Galaxy tool. You can install it most conveniently using the
+administrative "Search and browse tool sheds" link. Find the Galaxy Main
+toolshed at https://toolshed.g2.bx.psu.edu/ and search for the toolfactory
+repository. Open it and review the code and select the option to install it.
+
+If you can't get the tool that way, the xml and py files here need to be
+copied into a new tools
+subdirectory such as tools/toolfactory Your tool_conf.xml needs a new entry
+pointing to the xml
+file - something like::
+
+  <section name="Tool building tools" id="toolbuilders">
+    <tool file="toolfactory/rgToolFactory.xml"/>
+  </section>
+
+If not already there,
+please add:
+<datatype extension="toolshed.gz" type="galaxy.datatypes.binary:Binary"
+mimetype="multipart/x-gzip" subclass="True" />
+to your local data_types_conf.xml.
+
+
+**Restricted execution**
+
+The tool factory tool itself will then be usable ONLY by admin users -
+people with IDs in admin_users in universe_wsgi.ini **Yes, that's right. ONLY
+admin_users can run this tool** Think about it for a moment. If allowed to
+run any arbitrary script on your Galaxy server, the only thing that would
+impede a miscreant bent on destroying all your Galaxy data would probably
+be lack of appropriate technical skills.
+
+**What it does** 
+
+This is a tool factory for simple scripts in python, R and
+perl currently. Functional tests are automatically generated. How cool is that.
+
+LIMITED to simple scripts that read one input from the history. Optionally can
+write one new history dataset, and optionally collect any number of outputs
+into links on an autogenerated HTML index page for the user to navigate -
+useful if the script writes images and output files - pdf outputs are shown
+as thumbnails and R's bloated pdf's are shrunk with ghostscript so that and
+imagemagik need to be available.
+
+Generated tools can be edited and enhanced like any Galaxy tool, so start
+small and build up since a generated script gets you a serious leg up to a
+more complex one.
+
+**What you do**
+
+You paste and run your script, you fix the syntax errors and
+eventually it runs. You can use the redo button and edit the script before
+trying to rerun it as you debug - it works pretty well.
+
+Once the script works on some test data, you can generate a toolshed compatible
+gzip file containing your script ready to run as an ordinary Galaxy tool in
+a repository on your local toolshed. That means safe and largely automated
+installation in any production Galaxy configured to use your toolshed.
+
+**Generated tool Security**
+
+Once you install a generated tool, it's just
+another tool - assuming the script is safe. They just run normally and their
+user cannot do anything unusually insecure but please, practice safe toolshed.
+Read the code before you install any tool. Especially this one - it is really scary.
+
+**Send Code**
+
+Patches and suggestions welcome as bitbucket issues please?
+
+**Attribution**
+
+Creating re-usable tools from scripts: The Galaxy Tool Factory
+Ross Lazarus; Antony Kaspi; Mark Ziemann; The Galaxy Team
+Bioinformatics 2012; doi: 10.1093/bioinformatics/bts573
+
+http://bioinformatics.oxfordjournals.org/cgi/reprint/bts573?ijkey=lczQh1sWrMwdYWJ&keytype=ref
+
+**Licensing**
+
+Copyright Ross Lazarus 2010
+ross lazarus at g mail period com
+
+All rights reserved.
+
+Licensed under the LGPL
+
+**Obligatory screenshot**
+
+http://bitbucket.org/fubar/galaxytoolmaker/src/fda8032fe989/images/dynamicScriptTool.png
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tacrev/test-data/outfile_sample	Tue Nov 24 22:04:10 2020 +0000
@@ -0,0 +1,166 @@
+
+gnp.looTtpircScimanyd/segami/989ef2308adf/crs/rekamlootyxalag/rabuf/gro.tekcubtib//:ptth
+
+**tohsneercs yrotagilbO**
+
+LPGL eht rednu desneciL
+
+.devreser sthgir llA
+
+moc doirep liam g ta surazal ssor
+0102 surazaL ssoR thgirypoC
+
+**gnisneciL**
+
+fer=epytyek&JWYdwMrWs1hQzcl=yekji?375stb/tnirper/igc/gro.slanruojdrofxo.scitamrofnioib//:ptth
+
+375stb/scitamrofnioib/3901.01 :iod ;2102 scitamrofnioiB
+maeT yxalaG ehT ;nnameiZ kraM ;ipsaK ynotnA ;surazaL ssoR
+yrotcaF looT yxalaG ehT :stpircs morf sloot elbasu-er gnitaerC
+
+**noitubirttA**
+
+?esaelp seussi tekcubtib sa emoclew snoitseggus dna sehctaP
+
+**edoC dneS**
+
+.yracs yllaer si ti - eno siht yllaicepsE .loot yna llatsni uoy erofeb edoc eht daeR
+.dehsloot efas ecitcarp ,esaelp tub erucesni yllausunu gnihtyna od tonnac resu
+rieht dna yllamron nur tsuj yehT .efas si tpircs eht gnimussa - loot rehtona
+tsuj s'ti ,loot detareneg a llatsni uoy ecnO
+
+**ytiruceS loot detareneG**
+
+.dehsloot ruoy esu ot derugifnoc yxalaG noitcudorp yna ni noitallatsni
+detamotua ylegral dna efas snaem tahT .dehsloot lacol ruoy no yrotisoper a
+ni loot yxalaG yranidro na sa nur ot ydaer tpircs ruoy gniniatnoc elif pizg
+elbitapmoc dehsloot a etareneg nac uoy ,atad tset emos no skrow tpircs eht ecnO
+
+.llew ytterp skrow ti - gubed uoy sa ti nurer ot gniyrt
+erofeb tpircs eht tide dna nottub oder eht esu nac uoY .snur ti yllautneve
+dna srorre xatnys eht xif uoy ,tpircs ruoy nur dna etsap uoY
+
+**od uoy tahW**
+
+.eno xelpmoc erom
+a ot pu gel suoires a uoy steg tpircs detareneg a ecnis pu dliub dna llams
+trats os ,loot yxalaG yna ekil decnahne dna detide eb nac sloot detareneG
+
+.elbaliava eb ot deen kigamegami
+dna taht os tpircstsohg htiw knurhs era s'fdp detaolb s'R dna slianbmuht sa
+nwohs era stuptuo fdp - selif tuptuo dna segami setirw tpircs eht fi lufesu
+- etagivan ot resu eht rof egap xedni LMTH detarenegotua na no sknil otni
+stuptuo fo rebmun yna tcelloc yllanoitpo dna ,tesatad yrotsih wen eno etirw
+nac yllanoitpO .yrotsih eht morf tupni eno daer taht stpircs elpmis ot DETIMIL
+
+.taht si looc woH .detareneg yllacitamotua era stset lanoitcnuF .yltnerruc lrep
+dna R ,nohtyp ni stpircs elpmis rof yrotcaf loot a si sihT
+
+ **seod ti tahW**
+
+.slliks lacinhcet etairporppa fo kcal eb
+ylbaborp dluow atad yxalaG ruoy lla gniyortsed no tneb tnaercsim a edepmi
+dluow taht gniht ylno eht ,revres yxalaG ruoy no tpircs yrartibra yna nur
+ot dewolla fI .tnemom a rof ti tuoba knihT **loot siht nur nac sresu_nimda
+YLNO .thgir s'taht ,seY** ini.igsw_esrevinu ni sresu_nimda ni sDI htiw elpoep
+- sresu nimda yb YLNO elbasu eb neht lliw flesti loot yrotcaf loot ehT
+
+**noitucexe detcirtseR**
+
+
+.lmx.fnoc_sepyt_atad lacol ruoy ot
+>/ "eurT"=ssalcbus "pizg-x/trapitlum"=epytemim
+"yraniB:yranib.sepytatad.yxalag"=epyt "zg.dehsloot"=noisnetxe epytatad<
+:dda esaelp
+,ereht ydaerla ton fI
+
+>noitces/<  
+>/"lmx.yrotcaFlooTgr/yrotcafloot"=elif loot<    
+>"sredliubloot"=di "sloot gnidliub looT"=eman noitces<  
+
+::ekil gnihtemos - elif
+lmx eht ot gnitniop
+yrtne wen a sdeen lmx.fnoc_loot ruoY yrotcafloot/sloot sa hcus yrotceridbus
+sloot wen a otni deipoc
+eb ot deen ereh selif yp dna lmx eht ,yaw taht loot eht teg t'nac uoy fI
+
+.ti llatsni ot noitpo eht tceles dna edoc eht weiver dna ti nepO .yrotisoper
+yrotcafloot eht rof hcraes dna /ude.usp.xb.2g.dehsloot//:sptth ta dehsloot
+niaM yxalaG eht dniF .knil "sdehs loot esworb dna hcraeS" evitartsinimda
+eht gnisu yltneinevnoc tsom ti llatsni nac uoY .loot yxalaG a si sihT
+**noitallatsnI**
+
+emoH/ikiw/yrotcaflootyxalag/rabuf/gro.tekcubtib//:sptth
+ees seceip eht lla peek ot teg uoy ,ti kaerb uoy fi ,nehT .resu_nimda
+na era uoy erehw ecnatsni lacol hctarcs/lanosrep/etavirp a no loot
+siht gnillatsni repoleved a eb dluohs uoy ,dehSlooT eht dna yxalaG
+,loot siht fo *rewop emosewa eht tiolpxe ylefas dna ylluf oT*
+
+.selbairav on
+,tuptuo eno ,tupni enO .stnenopmoc wolfkrow rof tcefrep era sloot yrotcaf looT
+
+.emit yreve tpircs ruoy nur tub,loot yxalaG rehto yna ekil tsuj nur yrotcaFlooT
+eht htiw etareneg uoy sloot eht ,sdrow rehto nI .yrotsih s'resu eht morf
+nesohc tupni eht htiw detucexe eb lliw tliub saw ti nehw deilppus saw taht
+tpircs eht ,emit hcae - ti nur nac sresu lacol ,dellatsni si loot wen eht ecnO
+
+.ecafretni evitartsinimda revres eht morf
+revres yxalaG lacol yna otni dellatsni eb nac ti ,dehSlooT a ni s'ti ecnO
+
+.yrotisoper loot wen a sa dehSlooT yxalaG
+a ot daolpu ot ydaer evihcra na s'ti ,stseggus eman eht sa - *zg.dehsloot*
+epytatad yxalaG wen a fo mrof eht ni detareneg eb lliw loot wen ehT .seman
+dna txet pleh emos ylppus dna noitpo "etareneg" eht tceleS .detareneg eb nac
+tpircs ruoy snur taht loot yxalaG wen a ,yllufssecus snur tpircs eht ecnO
+
+.taeper ,hsaw ,esniR .niaga etucexe dna
+gub eht xiF .tpircs nekorb htiw etelpmoc mrof eht etaercer ot yrotsih ruoy
+ni tuptuo loot eht no nottub "oder" eht esu ,wohemos sliaf tpircs eht fI
+
+.loot atad wen dda yrotsih yxalaG eht
+gnisu tes atad tset llams a etaerc ot deen osla ll'uoY .esaelp reterpretni
+thgir eht tceles ot rebmemer - tuo ti yrt ot eseht etsap dna tuc tsuj nac
+uoY .mrof yrotcaF looT eht no egaugnal gnitpircs hcae ni elpmaxe na si erehT
+
+em rof skrow ```atad-tset/yrotcafloot/srekam_loot/sloot/yxalag/~ atad_tset-- yxalag/~ toor_yxalag-- lmx.2yrotcaFlooTgr tset omenalp```
+
+.tpircs wen ruoy tset ot
+yrotsih ruoy morf tceles ot ydaer elpmaxe tupni tset llams a dna dnim ni egakcap a evah ro ,xob txet
+a otni etsap ot tpircs a deraperp evah dluohs uoy ,yrotcaFlooT eht esu oT
+
+**liateD eroM**
+
+.sresu ruoy rof sloot yxalaG rehto lla ekil yltcaxe krow dna
+rotartsinimda na yb dehs loot a aiv dellatsni era sloot detareneG
+.xob eht fo tuo elbitapmoc wolfkrow ylluf ,loot yxalaG yranidro ,wen a otni
+tnemeriuqer a sa dekab si elbatucexe ro tpircs deilppus ehT .loot yxalaG wen
+a dliub ot desu eb nac yeht ,decudorp neeb evah stuptuo esac tset eht ecnO
+.ylppus uoy sgnittes retemarap dna stupni atad tset elpmas llams gnisu detareneg si tset A
+
+**yxalaG yna otni noitallatsni rof sloot yxalaG wen fo noitareneg detamotuA**
+
+
+.loot yxalaG a gnisu ,setunim ni loot yxalaG yranidro na otni denrut eb nac tI
+
+*sretemarap elyts esrapgra ro lanoitisop htiw elbatucexe yna ro tpircs hsab/lrep/nohtyp/r gnikrow a evah uoY*
+
+.tuptuo sa tes atad wen elgnis a gnitirw
+,stes atad tupni detceles elpitlum revo lrep dna hs ,nohtyp ,R ni stpircs nur
+ot meht gniwolla ,revres yxalaG tsoh eht fo srotartsinimda detangised lla ot
+gnitpircs suoregnad ylemertxe erofereht dna *detcirtsernu* gnisopxe yb skrow tI
+.sloot yxalaG wen gnitareneg fo elbapac loot yxalaG lausunu na si sihT
+
+**yrotS trohS**
+
+.krow dehsilbup ruoy ni loot siht esu uoy fi
+fer=epytyek&JWYdwMrWs1hQzcl=yekji?375stb/tnirper/igc/gro.slanruojdrofxo.scitamrofnioib//:ptth
+ta ecruoser eht etic esaelP
+
+keeB ned nav suiraM yb detroper sgub xif ot 4102 8 tsugua detadpU
+
+troppus noitatic gnidda notlihC nhoJ yb 4102 tsugua detadpU
+ 
+ecnatsni noitcudorp ro cilbup a no REVEN esaelP 
+YLNO yxalaG etavirp a no loot siht llatsnI 
+
+*trats uoy erofeb GNINRAW*