# HG changeset patch
# User jdv
# Date 1504075647 14400
# Node ID f8e25d69167d9f7b700ceb2d3c3afaeccb15f20b
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/albacore commit bf5788ad5a3293446a50a3246b44ba09174c9b71
diff -r 000000000000 -r f8e25d69167d albacore_1D.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/albacore_1D.py Wed Aug 30 02:47:27 2017 -0400
@@ -0,0 +1,68 @@
+#!/usr/bin/env python3
+
+import sys, os
+import glob
+import tarfile
+import subprocess
+import shutil
+import h5py
+import numpy as np
+
+def main():
+ tar_file = sys.argv[1]
+ out_file = sys.argv[2]
+ threads = sys.argv[3]
+
+ (flowcell, kit) = parse_meta(tar_file)
+
+ subprocess.call(["read_fast5_basecaller.py",
+ "--input", "in_dir",
+ "--worker_threads", threads,
+ "--save_path", "out_dir",
+ "--flowcell", flowcell,
+ "--kit", kit,
+ "--recursive",
+ "--files_per_batch_folder", "0",
+ "--output_format", "fastq",
+ "--reads_per_fastq_batch", "999999999" ])
+
+ #check for single albacore output and copy to Galaxy output
+ files = glob.glob("out_dir/workspace/*.fastq")
+ if len(files) != 1:
+ raise ValueError('No or multiple FASTQ output files found')
+ found_file = files[0]
+ shutil.copy(found_file, out_file)
+
+def parse_meta(fn):
+
+ try:
+ in_dir = "in_dir"
+ if not os.path.exists(in_dir):
+ os.makedirs(in_dir)
+
+ tar = tarfile.open(fn, mode='r')
+ tar.extractall(path=in_dir)
+
+ files = glob.glob(
+ os.path.join(in_dir, "**", "*.fast5"),
+ recursive=True
+ )
+ if len(files) < 1:
+ raise ValueError('No FAST5 files found')
+ test_file = files[0]
+
+ f = h5py.File(test_file,"r")
+ flowcell = f["/UniqueGlobalKey/context_tags"].attrs["flowcell"].upper()
+ kit = f["/UniqueGlobalKey/context_tags"].attrs["sequencing_kit"].upper()
+ except OSError as e:
+ print("Unexpected error:", e.strerror)
+ raise
+
+ except:
+ print("Unexpected error:", sys.exc_info()[0])
+ raise
+
+ return flowcell, kit
+
+if __name__ == "__main__" :
+ main()
diff -r 000000000000 -r f8e25d69167d albacore_1D.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/albacore_1D.xml Wed Aug 30 02:47:27 2017 -0400
@@ -0,0 +1,78 @@
+
+
+ ONT production basecaller
+
+
+
+
+
+
+
+ read_fast5_basecaller.py --version | perl -wnE'print "$1\n" for /\(version ([^\)]+)\)/g'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r f8e25d69167d test-data/test_data.fast5.tar.gz
Binary file test-data/test_data.fast5.tar.gz has changed
diff -r 000000000000 -r f8e25d69167d test-data/test_data.fastq
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test_data.fastq Wed Aug 30 02:47:27 2017 -0400
@@ -0,0 +1,32 @@
+@aabaf035-7aa8-439b-8773-523c69a350ca runid=d28f9f1c34b8f7416c367df1e0c4a864ba830c9c read=12103 ch=399 start_time=2017-08-09T20:02:04Z
+TTTTTTTTTTTTTTTTGCACTCATTTGGCCGCTAATTCGTCCGTATTGATCTAGTGACGCAGTGAGTAAGCAGGTATTTTCATCATCAAATAGTGAGCGAGGATTATATCTCGGCTCTGCTCGATGGTGGCGAGCAGGCATCGCTGACTGAAACATACCATGTGCCGATACCGCGTGAAACTGGCCGTGGCGCTTCGCTTTGTAGAACTTGCATTGAGGTATTTACCAAGACACCGTTTGCGGAGGTGATTGCTCGCACTCAGGTGCAGCCTATGCAGAAACGTGTAATTTAAGAGCTCATTAATGATATCATTAAAATTCGCGAGTGCTCGTCGAGGGGCTGATGCATTTCGACTCTCTGTGACATGTCTCAAGTGGCCGTGAAGTATCGCAGTAATATATGAAATATAATTAATGTCAGAGATTTCTGGCCGTCGAAATGCGCTAAAGTAAACAATATGATGTTAGCCGATAAAATTATTATAGTGCATTATTCTGATACTTGAAGCCTCGCTGATATTGAGGAAGTATGAAATATTATCGATATTCGACGTCATATCGATTAAATATGTCGAGAGCGAAATAGTCGTACAAGTATATCAAGGGCAACTTGCCGAATAAATGCTCGCTCTTATTTTTAAAAAAATTCGGCTGTTTCGTGGCCGGTGGTAGCACTCTTACTCTGGTAGCGGCCCATCAATCGGGCATCACTTTAAATTATCAGTCTGCCGATAATTGGCGGGCATGCGAAAACGTCTACTCGAAACCCGGCGACAGTGAATCGTAGCCTTTGTCGCACCAGCTTTTGCGACTCATAAGTATTC
++
+"$&')-/12348899&"#"&&.39PA:D66))-&>6O?;:79*0$)%"$33"&%)*.10)((')()'+6#*#0./)8A33*&)/+')/BJ>F$8))+1*,(&&28)/"$$)(0.1-0&"#&%))+()D-*#(#""#$(*%*&"#"#"#"&-+%"')'4)"$*+'+.#"#"%#"$&$"/3(.)&'%&&(%'&%(&*-"#.,&"3$,)1)-$"%#'"#"%%1,2B0$'&,+.#""($"$/$""&($,)#%$+'"$#""#"%$'),((#%*#)&&(+"*%%%#"#-)"'))').((($&(#&%*&1.743@A?>"@%.4917=,(&%-%.#.)+&&"'+'56D@?@980+*,.),.+#(+3.30.*$#,*'&"''"%)/+*./(('$-(*%$($')0)##$#$".-()"%'',"""%%$0$+(:A62%#%)&%,."#+)#$/(//:J>&6.()*+(""",%3+(#((&$,.1.)0(+1""""%-+15=>,:0&""/;-'#"&*('&*'("#&""(#68%%*++-&&%$(-6F4)7-(,0*$+"+'$$$($*"%))3+0#3$347*0&"%$"#.0,++"##"&1:61-,.:*$)(+'(%'%03*3$"$'$"'''+-9-'%%'1'*+,62.CDIJ@583671)+&),2,($078/.-%"#$++&&$$#)(#(*+<8,/-)&'),%,)/$40%%%%.58'*31,&73"*%'&,0675.''1%%#$"",*(&>(+""+,02/2+-'.?@.2-+**+%%&-*7=,DB*"'$'B-)3''(**%$#)-%4;-(46&+#4,*-+'(*,-,.,B(("'(2"+'5-#
+@921ea44a-1215-4f98-9f38-bf36b1bdf69c runid=d28f9f1c34b8f7416c367df1e0c4a864ba830c9c read=12085 ch=399 start_time=2017-08-09T20:01:58Z
+TCTTTCGGTAGCAAATTAAATCCAACGGTAACCGGCTTCATTCTGAAATGAAATTAAATAGAAGCGAAATAACCCTGAGGCAGTATGGTGTGACGTGGCATTCGCATTAGCCCTAAGTGCGTAATGAAGATGGTAGTGCGTCAGCAAGGCCCGGGGAGATAAATAATCCTCGATACATGGCCTTGGCTGAAAGATAGAAATTTAGAATTCATTGACCAAGTAACTCGAGCAATAGAGGCATTTCCCTCGTCGGCCTGAAGCCTCGGTGTGGAAATGGCATATAGTATTAATGCAGTAACTAATGAAATTGCCAAATGGGCATATAAGCATTGCGATGAGGGCCGTATTTGCATTGGGCTGAGGTGCGTGTGTCCTTATGGGCGAGGTAGGCTCGTCATGCCTCCGGTGAGGGGTGAGGTAGAAATATTACCGTAGAAGTGCTGAAAGCTAACCAATGAAATGGGTAAAACCATCGGAAGCGCCTAGCGATGGGCTATACAATTTCATTCGACAATCCAGCTATAAATGATGAGGCATCAGGGCGCATTCTAGAGAGGCGTGACAGCATTGATAGCATTTCGATGCAAACCATCTTCTGCGTAATGACACTGACACTATTCAGTGACAGCTCATC
++
+#"')*%"%%&"&()+-@58+2&&+#(,)$.1).((&$#+*(#&28/1..&(%%HBRC:,46')).A@11#.1+$%,:(P%+/6-%"-%"$"*'$##"%*@)"%$)"&")/.(4>)88=G-90,&,(%#)$*++$)&/$&$&%$*'/*>4)8=:*$&'-$'("*)""#)+,)+%*&-*,*#4(.""7""/1%,2,,6,-86)#)*+084(-1*%#$'((5+(578$&>?A?:,'&*/,*30&(0-54/('$""""">"""#","%#&&+%(#%%$"--.6/2D;('2%*$#"&$*#'&*)$%.14:&*5&+%)$%"-$(+$&,/,0>"#"5-/('#*(($&%"%(%#$$&*)('%"%#3-+#""$%+)7;:4(/&'1<4,)#$%&;?=B71##"##&4&%%)'()"""""#%''+'()+)3+3"3*.'"&+<5("
+@28daae22-d0dc-4fee-8453-3a2178b331c8 runid=d28f9f1c34b8f7416c367df1e0c4a864ba830c9c read=12175 ch=399 start_time=2017-08-09T20:02:22Z
+TCGTATGCTAGATCGTCGCATATCAGCGAATCCTGAGCGTAGCGTGAGTAGAGGCGAGGCCGGTAATGAGAGAGAATGAGTAGCCTGGCAGTCGAGCGTAGCGTCTCCTATCGTCATCGAGGCCTCCAGAAGCCGAAATCGCGCGAAGCTCGGTATTTTAGAAGAAACGCGAATGTGAAGCTCTCGTGAGTATTCGAGGCAAGGCCAATCTGTCGCTCTATTCAAAGAAATCCCTGAAATTGTGTTGCGTCGCCGTGGTTGTCGGCGAGGGAGCCTGCGTATGAGCCGTGGCAAAAATAGCCTAAATGAAATGAAGGCTGAAACGGCATGTTGAGGCGGTAAAGGCTATGCGAAGCTGAAATGAGCATTCATCAGGCGAAAGTAGCGCTCGTTACGCTCGACTAATTTGGCGCTTGCTGGTATGATATATGCGTAGGGTAAGGCGTGACGCGTGAAAACTGTGGCTATTATGTGCCGCTCAATGAAGCCGAGTAGCACGGCATCGTCACGAGCGAATGGCATTGCAGCCCGCTAATCGAGCATGAAACGAAATGGCCCGATAGCAAGGCGCGTAGGCGAAATGGCCTGAATCGATGGTGACGGCGAAGCCATGAAATGCGCGTAGAGCTGGGCGGAAATGCGCGGCCAATGAGAGCAGTGAGCTCGCCTAAAGCTCGATGCTGAATCTGAAACGTCTCAATAATGCGGCTCGCCCGAAAGCAATAATTGCCGAAATGGCAGCATTCGAAATGTCTCTCAAATGTGCGGCGGCATCGTGAATAATAAGCAATATCTGAATTATGATAAAATGCTAAAATGCGTATCAAATAAACAAATAGGTACAAGGCGCTGAAGAGTAACTCGAATCTATGAAGTATCGGCGAAGCGTAACAATGAGTATTGACGATATTCATTGTCGGCATAGGCTGGAAATGAAATACTCTTTGCTCGCATAAATGACTGG
++
+"'#*&'"#'%)&+)321/517.52"$"%$"&','('/00(##"#$)))*+)&+3<3+33.*-40&&'(&)#&%&(#$&)#%(&&$,:'**&%.)/.4*&&,80310.<=2$+1()+2"1"+"%*#+'9,*."$+''-+0,26*(*&-5','$#,$#"#"7,(,1)..7032,%&('(&00.*-'<)-#+&%%$$)3*596:>?983<@,(../8-.0,2-1+(#%&"+,'&$&+#4(&+$9*'%&$*+9+*.,$$"#$/5;<:-.8+&%/,.-1*$%(-(),)#'"%#%*)*%$%#(""+<9=4/,.,0,'7&/"&0B%/(1.0H66+-+45.7+)./(*(9>532*'*05'&$)'<0+"-(""''$(%$""**'+..++44-*.&%*76:71$.&$5161:(&(0,*4?4><69$,%$/,**-)';94:./0:4570/-)))-$(#4,.-0-(34)@@3-:,*,"(#%0B;$<;5,)/05$)*%("""+'"()%"&*,1(/923.,&&''#7-('.A3,+.+-.091()%%(/)('#%'-5%,)(&4:+(%/174.+$'$%"+%-(208PGENL72,(6,+%(((+)=1/*.."')'%)"(&-79,I#%",0K>.58.H223"+$(E2)(34(%$*.-+#(&-%("1,0%$$(%'+)++&$*%('"#,&"#$*')$$('($""#&('.545&((1')+%)%'+'2'"+2/-/6>-,()2).,$/**'#6,$#"*,-,&4*-/4.3&).=?;0,-*""
+@2dd21811-c9af-4c4a-aaa0-4fd1f605abf8 runid=d28f9f1c34b8f7416c367df1e0c4a864ba830c9c read=12153 ch=399 start_time=2017-08-09T20:02:16Z
+CAAGTAATGTAATTGGATGTCCAACATGGTGGCGGTAGATGACGAGATAATTCCTAAAATTAAACGTGATGATGATAAAATTGCTAAGTAAACATTCTGGCTGTCAAATAGTAATAACGATGCATTTTAAGATTTAATGCTGACGCTGTATTATGCATAACATCGGCATCGGCATATGCATAGCGAGAATATTTGATGGAGTCGATAACCGTGAGATGGCATCTTTGTCTCTTCTGGCGCTGAGAGAATCAGAAGCCTCTCATCCAATAAACCATCATTTCAATGATAAATTTTAAGTAAGCGATAGTATTTAATTTGCTGGTGAAGATTATTATGTCGCGTAACTAACGATAATATCAATGGCGGCGGCGCTGGTACGGTAATTTTGTCATTATCTCTCATGATGCCGAGCTTCAATGACATCGTCTCTCGGTAACTTTTCGTATATCGCTATTTTATTGTATTTATTTTGCTTTTTGGCGCCGCGCCGTGTTTAATGAGTGGTATTAGCA
++
+"$%.*,$/+-*,%$"$"<7783348)/#%."'$"$("'((#$#.*.&')#+((,*-%+%<65<,:'-4--(##/(-,6,1)''"*(8.+'2-*(/""'(*%$$'/(,,510*+-,+2)(2<>4**"&".*+.36(*"$$3)*."**6-3022--+''%'8.**''"""").,/#'%%((,.*+0)'$*3,))-,'%"/'"%*'"%"%),,:0C2))(4%*/*#9/01'.#(%,'&'&)&('',)&%'%)+"&&(,45.2:$+".&-'""$(6.37*&(#%*:92##*.2)25+3(%%')+,''*%/6=073C:')$).,')#(%:,((#(%"'"#%+"-&""#"$')*#0#+$&%4=*)&%(%#'.,'++?@D2NSL15?@CHM1EFFDB@%,-+.+(&+)+)'(*0223140#-)0%-(+0%(*('(&(%"&*1-+'""''.*)"$7)&*26=7/6?6+"$,07-&/&($(4*0&'*+2)9L8+""%##-#&%).++#%#
+@3030a28d-1f16-4086-9ba1-ff31a97f434d runid=d28f9f1c34b8f7416c367df1e0c4a864ba830c9c read=12068 ch=399 start_time=2017-08-09T20:01:48Z
+TCGTGTAGCCTGAATTCGATGCGTATCGCTTGAGAAAATAAACTCGCTGGCGTGACGAAACGTAATGAATTACGACGCTGTCGAAATGAAACTCTTCGCCGGCATGTCGCAGGCATTAGCGGGCCGAAACTAGTGATAGCACATTATCGATAAAAACTGGCGAATCTCATCTAAAGAGGCGGCGCTGTTCGTGAATAAGGGCAGCAATGGCTGCGAAGCGTGTTCAGGCAGAATTGCCAGAGAGAATCATCGAAGGCATCGAAAATGATATGCTCTTCTTTCGCTGGCGATATGAGAATGTCGAGAGCTTCGTTCGTAATAAATGGCGAGGCAATGTGAGCTCTCGTATAAAGATGGGCGGGCGTCTTGAATGGCATCGCGAAAGCCAAGCTTCGGTATGACTCGGTAGAAGCTGACGTGTTATCGAGGCATAGCGAGAGA
++
+"%(()""#2.,$.*->,,,,*-27,1,#"&"($&+6:0/$+.&)*&,0>E(,(($/.39'$""$'((+).%"&/'<&$&"($"$$#*&+'"#-$')""(&0.<+=0:?7C&'MN%K'&"*/),/9,/1"%#-##1"(*&*#4,,/=%%&,8:=27'*&"%-(-+-+&(("&*%)'-7D>FEE=<&*'(%'*'%%"$,)&$%"&))(**$"#")$$(,+%/#(6.'%0'(1)&*(#()()',(/6-))%&(--47?:&02@,%$)),-""$"#($%+(&*4+6)%'$#""&')+01/;C2.2$&:5>.&/71)B*.*(*"""$(&%(%)*1&(2.*((%''%"$"%.7.-$,/6*'-?/352&'&'*=0(+'),+$&+6EB35:2.&+2)--#%'--""#$(+#&&-+"$$'",&*"%""$=-0959&+'%#$+&&(%
+@86fd3e14-b5ee-4453-98fa-084d75821456 runid=d28f9f1c34b8f7416c367df1e0c4a864ba830c9c read=12091 ch=399 start_time=2017-08-09T20:02:00Z
+ATATTATGCTAAATTGGAAGTGCGTATGAATACAGAAGCTGACGCGAGAGTGAGCGAAAGCGAAATGACGAAGCATGTCAAAAATTACAACTTTAATATCGGCTAGAATGAGCTGCTAAGCATGTCGCAAGCGTGGGCCGAAACTAAAGATGATATTTGATATCATTAAGCTGGCATAGAATCAGAAAGCGGCGTAAAGTCTCGGCATCGAGCATTATAGTGCGAAAGCGGGAAATGATGAAGCGGTGAGAATACATCAAAGGCGCTCAAAGTAAATGTAGAATGCGCGATATCAATGATATATTAATGAAAGAAATATCGAAATCAGTGTATAAACGACACGGCTGGCGAATTCACTAATATCGAAATGGGCCGAGGCGGTAATGAGCCGAGCGCATCGCTGAGGCAGTATAGTGTAATCCTGATATAAATTCCAGGGCGCAATATACTCGAAGCTTTGCGAAGAGAGCGTGGAAACACAATGGCATATATGAGGGGCGTAGCAATGAGATATAAAGTAACGATGAAATTCTCATCGAGAGCTCAAATGAAATAATCGGCGCGGTCGTCCTGCCTCGAAGCCCTAAAGAGGTAATGAAGGCGAAATGATGAGGCATATCTCCCAAGCGAAAGCGAGAAAATGGAGAGCAATCAGGCCGAAGTGGCTCGGTATTGATCGAAAGTGCGCGATCGAAACGAGAGAGCGACGGGCGATCAGCCAGCGCTTGGTATAACGTAGCTCAATGGGCGAAACCGAAACACCGACAATAGTGATAAAGAAACGCGCCATTTC
++
+""$'#$+-.(55':)5-+*$'"%#$&32)%%"#(#))&0",0<64%*#')&()-557-*,-*''%&$"6/)3/4".0%1**),0$*'&',0))"#((('%&.4&2'%,$"$'"$%%#)+"'$1037'8&+*(%#"0)-2?540$.$'&$*"+0$#(&)4/",,(*"$#'$&"(#&8737)$,)&%#.74)0+&$%,)-$%$"#$%#()*+;%"#"#(&('./5$-(-"-&.+#$3)'&$"%"&$+%+.%$%$&%)0-33.)1/5-.'%#**#%"""**&),CCF87:>=0)%&$+,.40-?):0)61,%6D56)3%()(%'#,):++1,7&"#%'+,')%"">$)#7';1I,-"2.=>9F/2?D/7($6:3*,893/,0*(($+.),8)//<97$0#,$%($&*).++&1387>>290.,:12#&&)2(+/$-,11+)()""#%#%757?;A=1)'-12("$"$%)3A28/%#*$*-64#*#"&,122('+'()28>MN-#."1&'C(.;5,0B@52/4$&""$)*1?&"$$&&$-%%'*+'(*/0(&'-&('-1(/%('&%%"*&./(&*-+-.@/$$##$&*..1%#&*65245+%'3356.2**')+.01./)$015-/-&'%#"#&+(&$-"$"9123;1-.)((%(2/+%6)%'%($,2)$(##/.9F6%$+)&""#%""""+&""(%"#"#""$%%1%(%60++)01(%$((#""""#)"'$?--0':4-"+"""',$$3//"
+@310f7b48-a3e0-4cdc-b396-09f4b86081dd runid=d28f9f1c34b8f7416c367df1e0c4a864ba830c9c read=12113 ch=399 start_time=2017-08-09T20:02:08Z
+TCTTTCATTTGTGGCAGGTGGAGCGTATTCGAATCTCGAAACTGGCGCGGTGATGAAACTTGAGGTATTTTATCGCTAAATAATTTGGCCGAGGTTACTCGCTCAACTCTGCTTCGGCTGATAATTGAAACAATAAAGCGTCATCTGTTGACTGATGCTCTGTGTTGCTGTCGTGGCAGCGATCATTGTTCTTAGAGCTTTAGCGACAAGTGTTATAAACAAGAACAACGGAGGTAGGAATGCTCGTATGGCGGCGAAGTGTATGAATTTCATGAGAGGGCTCGACTATTGATGCAATAAAATTGCATTCGAGTCTCGTCAGGGGCTTTTGATAGCCCTGACGTCTCGTCGGTATATGAGAGAAATGGCGATGAAATTTCTCGCGATTCAACCATAACTATAAAGTACAATGGCCATCAGGTTTCGGCGTCAGTCGCTGAAAGTAAAACACCGACCATATGATATTTGTAAATGCGTTATTAACAATTCGTGCAATGCCGAGGCGCAAGCACCTGTTGGTATGGCGCATCAGGCAATCATCGATATTCTTCAATAGTCATATCGGTCGATATGGTGGCAGGCAGGCAATAGTCGTACCGAGTGGCACTCCATCGTTAACTACTCTCGAAATCGCTCATATCATTTTACGCGTCTTCTTCGTGTCCGGGCCGAAATTAGCCTGCTCTTGCATAAGAACCTGATGCGGCGCGGCCATCGAGGTCTCCGATGCTGCCGTCGTGCATGCTTGAAAACTTGTCTACTCGAAAGCTCGACGCGTGTCAAAGCTAAAATTATGTTTTTTATTGGCATATTTATCGCTT
++
+$"%%##",/')/#,)'/-70/$#"'4--+""*'%&&""1+%)'7*-/,*%#(#)".,($""&&)+,)-:.%%)'"%'-=0.)$/)"%""#+/))*,#&""%%#%*::0,..,(-*."("(+#("(#02,72)6B8,=9A,$+4545&&&%$%&/""(*6+5.2.#"&"/#&((1$"""$")2"&""%(#'%0#()1($%('#$(*"*"/)"""##$+/#''$%$"%/)-,$%*)(%&''**&/$'&4,6&"#'+)2--%"%'$@E--&$%#(%/26AB++%&)'4+,2D18/,1H96)>+$'+7@"#(+*-04075$:B:%"-*/'))'*#"(#"#$%"*+0/*-.,5+*+"%%)))*)*+&(0.6"**-/'*/&&-<37,&+'#+.+"$"$%$&$&+2.''%"&$%$"*)"+""+#-8'#%"%(3)$#('%()&850&,$51-'+6C::#)0101/04,0B;%()'#+*#%.'%++03161*-("0""#'*"&%*#7A&538/%%'2)6;-/,('+"$&46;8$+)%,0$'),%""/+%.+()"%&5>KLMKACC;4#(*,%.+(%"&*)($)&"")313:"$%"%##&*-610%()*+&-.,202""""/531'#09/--),6?9><8.*-57/%)*,-*)*:=NPA7?64F%61$5'%-6-0+'"'&*&*+-34$*'($)#--05%%+0)-2+0&,/69G35G+,'(#*./"#$$"((",&""%%##%'B2(%"(21,$+2*89D;B=1.&5/,'),)%",/334581693#-09PF'8//6DJJYWZ>%(,-.10)%25$%)%"%##