[Gtdb-commits] r25 - in pkg/gt.db: R demo inst/doc inst/schema man

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Fri Oct 30 20:49:03 CET 2009


Author: dahinds
Date: 2009-10-30 20:49:03 +0100 (Fri, 30 Oct 2009)
New Revision: 25

Modified:
   pkg/gt.db/R/admin.R
   pkg/gt.db/R/cluster.R
   pkg/gt.db/R/genotype.R
   pkg/gt.db/demo/setup.gt.demo.R
   pkg/gt.db/inst/doc/gt.db.pdf
   pkg/gt.db/inst/schema/mk_mysql.sql
   pkg/gt.db/inst/schema/mk_oracle.sql
   pkg/gt.db/inst/schema/mk_sqlite.sql
   pkg/gt.db/man/adjust.gt.calls.Rd
   pkg/gt.db/man/fetch.gt.data.Rd
   pkg/gt.db/man/gt.cluster.plot.Rd
   pkg/gt.db/man/ls.dataset.Rd
   pkg/gt.db/man/mk.assay.data.Rd
   pkg/gt.db/man/mk.dataset.Rd
   pkg/gt.db/man/reshape.gt.data.Rd
Log:
Crude support for handling multiple types of raw supporting data
for genotypes (either signal intensities, or fwd/rev read counts)


Modified: pkg/gt.db/R/admin.R
===================================================================
--- pkg/gt.db/R/admin.R	2009-10-30 19:43:05 UTC (rev 24)
+++ pkg/gt.db/R/admin.R	2009-10-30 19:49:03 UTC (rev 25)
@@ -97,7 +97,8 @@
      "select dataset_id, d.name dataset_name,
              d.project_id, p.name project_name,
              d.platform_id, m.name platform_name,
-             d.description, d.is_hidden, d.created_by, d.created_dt
+             d.description, d.raw_layout, d.is_hidden,
+             d.created_by, d.created_dt
       from dataset d, project p, platform m
       where d.project_id=p.project_id
         and d.platform_id=m.platform_id
@@ -112,16 +113,18 @@
 
 mk.dataset <-
 function(dataset.name, project.name, platform.name,
-         description, is.hidden=FALSE)
+         description, raw.layout=c(NA,'signal','seqread'),
+         is.hidden=FALSE)
 {
+    raw.layout <- match.arg(raw.layout)
     .check.name(dataset.name)
     proj.id <- lookup.id('project', project.name)
     plat.id <- lookup.id('platform', platform.name)
     sql <-
      "insert into dataset
-      values (null, :1, :2, :3, :4, :5, :user:, :sysdate:)"
+      values (null, :1, :2, :3, :4, :5, :6, :user:, :sysdate:)"
     sql.exec(gt.db::.gt.db, sql, proj.id, plat.id, dataset.name,
-             description, is.hidden)
+             description, raw.layout, is.hidden)
 }
 
 rm.dataset <- function(dataset.name)

Modified: pkg/gt.db/R/cluster.R
===================================================================
--- pkg/gt.db/R/cluster.R	2009-10-30 19:43:05 UTC (rev 24)
+++ pkg/gt.db/R/cluster.R	2009-10-30 19:49:03 UTC (rev 25)
@@ -44,7 +44,8 @@
         col=c('#377db8','#e31a1c','#2daf4a','black')
     ),
     superpose.line=list(
-        lty=c(1,1,1,0)
+        lty=c(1,1,1,0),
+        col=c('#377db8','#e31a1c','#2daf4a','black')
     )
 )
 
@@ -59,14 +60,21 @@
         p$xlim <- c(min(p$xlim,p$ylim), max(p$xlim,p$ylim))
         p
     }
-    x <- data$intensity.a
-    y <- data$intensity.b
+    if ('signal.a' %in% names(data)) {
+        x <- data$signal.a
+        y <- data$signal.b
+    } else if ('fwd.a' %in% names(data)) {
+        x <- data$fwd.a+data$rev.a
+        y <- data$fwd.b+data$rev.b
+    } else {
+        stop("raw data not available")
+    }
     n <- factor(data$assay.name)
     if (rescale) {
-      q <- tapply(c(x,y), rep(n,2), range, na.rm=TRUE)
-      q <- do.call('rbind', q)
-      x <- 0.01 + 0.98*(x - q[n,1])/(q[n,2]-q[n,1])
-      y <- 0.01 + 0.98*(y - q[n,1])/(q[n,2]-q[n,1])
+        q <- tapply(c(x,y), rep(n,2), range, na.rm=TRUE)
+        q <- do.call('rbind', q)
+        x <- 0.01 + 0.98*(x - q[n,1])/(q[n,2]-q[n,1])
+        y <- 0.01 + 0.98*(y - q[n,1])/(q[n,2]-q[n,1])
     }
     gt <- data$genotype
     if (is.numeric(gt)) {

Modified: pkg/gt.db/R/genotype.R
===================================================================
--- pkg/gt.db/R/genotype.R	2009-10-30 19:43:05 UTC (rev 24)
+++ pkg/gt.db/R/genotype.R	2009-10-30 19:49:03 UTC (rev 25)
@@ -63,8 +63,8 @@
         and mapping_id=:2')
 
     dset.id <- lookup.id('dataset', dataset.name)
-    platform.name <- ls.dataset(,dataset.name)$platform.name
-    map.id <- lookup.mapping.id(platform.name, mapping.name)
+    ds <- ls.dataset(,dataset.name)
+    map.id <- lookup.mapping.id(ds$platform.name, mapping.name)
     dat <- .sql.prep.data(dset.id, map.id)
     if (!missing(assay.name)) {
         sql <- paste(sql, 'and a.name=:3')
@@ -101,7 +101,7 @@
 
     s <- subset(ls.sample(dataset.name), !is.na(position))
     s <- s[order(s$position),]
-    if (!all.equal(s$position,1:nrow(s)) ||
+    if (!identical(s$position,1:nrow(s)) ||
         any(nchar(d$genotype) != nrow(s))) {
         stop('inconsistent sample layout information!');
     }
@@ -111,7 +111,8 @@
                      show.ids, 'assay.data.id')
     class(d) <- c('gt.data','data.frame')
     keep.attr(d, dataset.name=dataset.name,
-              platform.name=platform.name,
+              raw.layout=ds$raw.layout,
+              platform.name=ds$platform.name,
               mapping.name=names(map.id),
               gender=g, sample.name=s$sample.name)
 }
@@ -210,15 +211,28 @@
     if (!is.null(gt.data$qscore)) {
         d$qscore <- as.integer(cvt.fn(gt.data$qscore))
     }
-    if (!is.null(gt.data$raw.data)) {
-        n <- nrow(d)
+    if (is.null(gt.data$raw.data))
+        return(d)
+    f <- attr(gt.data,'raw.layout')
+    if (is.null(f))
+        stop('raw data layout unavailable')
+    nr <- nrow(d)
+    if (f == 'signal') {
         i <- readBin(cvt.fn(gt.data$raw.data), what='int',
-                     n=2*n, size=2, signed=FALSE, endian='little')
+                     n=2*nr, size=2, signed=FALSE, endian='little')
         i <- na.if(i, 65535)
-        dim(i) <- c(2,n)
-        d <- cbind(d, intensity.a=i[1,], intensity.b=i[2,])
+        dim(i) <- c(2,nr)
+        cbind(d, signal.a=i[1,], signal.b=i[2,])
+    } else if (f == 'seqread') {
+        i <- readBin(cvt.fn(gt.data$raw.data), what='int',
+                     n=4*nr, size=1, signed=FALSE, endian='little')
+        i <- na.if(i, 255)
+        dim(i) <- c(4,nr)
+        cbind(d, fwd.a=i[1,], rev.a=i[2,], fwd.b=i[3,], rev.b=i[4,])
+    } else {
+        warning('unknown raw data layout')
+        d
     }
-    d
 }
 
 .mask.dat <- function(str, mask, squeeze=FALSE)

Modified: pkg/gt.db/demo/setup.gt.demo.R
===================================================================
--- pkg/gt.db/demo/setup.gt.demo.R	2009-10-30 19:43:05 UTC (rev 24)
+++ pkg/gt.db/demo/setup.gt.demo.R	2009-10-30 19:49:03 UTC (rev 25)
@@ -54,7 +54,8 @@
 mk.assay.group('Demo_Set_2', 'Des11', 'Array 11')
 mk.mapping('Demo_Set_2', 'Demo_Set_2_b36',
            'Platform 2 Mapping to NCBI Build 36', 'ncbi_b36')
-mk.dataset('Demo_2', 'Demo', 'Demo_Set_2', 'Demo (HapMap) Dataset #2')
+mk.dataset('Demo_2', 'Demo', 'Demo_Set_2',
+           'Demo (HapMap) Dataset #2', 'signal')
 mk.flag('assay_data', 'Demo_2', 1, 'pass', 'Passed QC filters')
 
 # now load the data: note that there are some duplicate samples

Modified: pkg/gt.db/inst/doc/gt.db.pdf
===================================================================
--- pkg/gt.db/inst/doc/gt.db.pdf	2009-10-30 19:43:05 UTC (rev 24)
+++ pkg/gt.db/inst/doc/gt.db.pdf	2009-10-30 19:49:03 UTC (rev 25)
@@ -632,11 +632,9 @@
 /Filter /FlateDecode
 >>
 stream
-xÚíš[“›6€ß÷WðV˜)ª®€2m¦Ùq㶳;I7ž¾¤V­Mƒävöß÷`À±w¯½}Òƒ::‡ï\²±·ð°7½Â_9^Ï®¾{˸G1Š"*¼Ù½GYŒ¸`^Dc	îÍ2ï£ÿ> ØWéƒZè ¤û/,ÊæßÎ~…	„G’BÐÍ1ÂRx01žtòïR[ÍuÓÉ’øÛ®A1–í[s6¶H$#µ3…$âˆb
-sÁôqÔÍõ;Ø‚}ݘ¼*ŸJ‹i¸"	\ÙHa$BrPY?>tn¤&ÊêC:(G‰Œíý„‡89¨¨ê±NtÄÏmqL[L·Ú¦³ æ>š\¿êhNuYÙǺwX®ºÖ­*Ám+]Ú®¯Ê¬k¼)UñhrsÌØVç•7H¯í²jòˆÇ[k'* Øÿ'ïuÿœ—ÙaŽø¥[•—>ú bÁaä âMóûlÙv~4U™§¨ÔöõAƒúi÷ãC›´Ék{$„1‹‹Þ6j¥*üÛ¬ªš‡ÎœûªÏc«&/O¼µRe^¯e·—{ÏÀá}^Õ˯]ÙΦŒ©Ò\
-†Ã]IĨ„”k¹Ï4c×Ùc7¾Ñf]Ø£¡"ñ“P¹ÉS]}$Oq²u×ôýͱ,mGï…ÅD×úá´«„$”Üu7õøõ}-B01œ =) mÁö¾·hò¬o®4~fúÞäú—ƒæöz÷˜|X/ÚØì-‹Õ`IZ¬…øçØÊïÞµgß5*-†Ñw·~»:ÐÌ»zڏp(Ðݳ“1³R7ï$I.»lUçiŸMY•®Û"£³WÛUa§taÀ"1²‘VÙ'¸+IªŠ¦‰¡®£ îÀ¥üÜÛ
-ß%^Óv»æÝôÊûÆ°ÏžŒíŽðµIëXöÜëºx"á·èÛâ`4,
-1KõgQ燩'O©•Ê ˆCÀsÌ]ÀŸƒ^ŒCoÐJXfc9ÞÇèŸì„hTՙ狝ÈŒ9ö`J€t‰¬šÃËE˜ê¸_ÜÉ(/dzUý…I‡ý£/wéSGÿÂôå¨Ø¿×ŠPÿ¼Ù*‰üóž`Oð¨Ðïà×MZ­jX¤{::9!âkñ—…OO€oÔª.tï€SÇú4Öì„êbÖóO:µösaóÛjc‘I«F·¯Rsµä‘/ꢲAȤ۫yÁgɍCĨ‚³qÈçÇ&ôs Gã²À¢á§!|ÔåDÜ6]Ü?¿ÅcÙo·éé_ÐãöZèU…Ò¥N`)ˆÜÂYÔåè°ÏM[f¨{wz±ò?Ú¦.rpçÒq!gÐ/ïçlB"e›ÿVQL:×ìoGü4»ú^žŽ@
+xÚíš[“›6€ß÷WðV˜)ª®€2m¦Ùq㶳;I7ž¾¤V­Mƒävöß÷`À±w¯½}Òƒ::‡ï\²±·ð°7½Â_9^Ï®¾{˸G1Š"*¼Ù½GYŒ¸`^Dc	îÍ2ï£ÿ> ØWéƒZè ¤û/,ÊæßÎ~…	„G’BÐÍ1ÂRx01žtòïR[ÍuÓÉ2üm× Ëv†­9[$’Ú™BqD1…¹`ú8êæúlÁ¾nL^•O¥ÅŽ4Ü‘®l¤0!9¨¬:7Reõ!”£DƃŽö~B‚CœTÔuŠX':Hâç¶8¦-¦[mÓYsM®_u4§º¬ìcÝ;,W]ëV•à¶•.m×WeÖ5Þ”ªx4¹9fl«sÊ› ¤×vY5ùÄã­µPìÿ“÷ºÎËì°â^|Ò­ÊK}P±`ˆ0rPñ¦ù}¶l;?šªÌSTjûú Aý´ûñ¡MÚäµ=Š˜EƒEoµÒþ¿mVUÍCgÎ}Õ燱U“—‹'ÞZ©2¯×…²ÛK‹=‡gàð>¯êå×®lgSÆTi®Ãá®$bTBʵ‰Ügš±ëì±ßh³.ìÑP‘øI¨Üä©.>’§8ÙºkúþæX–¶£÷Âb¢ký…pÚUÂ	„Júüú‡¾!˜Nž€¶`{ß[4yÖ7W?3}orýËAs{½{L>¬mì	ö–Åj°$-ÖÆBüsìeƒwïÚ³ï•Ãè»ÛÇ¿Ýhæ]=m‰G8èˆîÙÉŠÙ ©Èw†$ƒ]¶ªó´Ï¦¬J×m‘ÑÙ«íª°Sº@Ž0à@ƒÙH«ìÜ‚•$UEÓÄP×Q
+wàR~îí†	†oŒ¯i»]ónzå}	c°²>Ûák“Ö±ì¹×uñDÂoÑ·ÅÁhXb–8êÏ¢ÎSOžR/*•A‡€ç˜»€?½‡Þ •2°ÌÆ"r¼Ñ?Ù	Ѩª3Ï;‘/sì/À>• éY5‡—‹0!Ôq¿¸’Q^Èôªú“ „3ûÿF_îÒ§Žþ…éËQ±¯-¡þy³U;øç=ÿ$ÀžàQ¡ßÁ¯›´ZÕ°H÷ttrBÄ×.â/Ÿž ߨU]èÞ1¦Žõi¬Ù	ÕŬçŸtjìçÂæ'¶ÕÆ"“Vn_¥"æjÉ"_ÔEeƒI·Wó‚Ï’‡ˆQgãÏ3L:èç@ÆeEÃOBø¨Ë‰¸mº¸~ŠÇ²ßnÓ'Ò!¿ Æí´Ы
+¥K>ÀR¹„³¨ËÑaŸ›¶ÌP÷îôbå´/L]äàÎ¥ãþBΠ_ÞÏÙ:…D	Ê6ÿ­¢˜t®Ùߎøivõ£¶Ž;
 endstream
 endobj
 421 0 obj <<
@@ -1206,19 +1204,15 @@
 /ProcSet [ /PDF /Text ]
 >> endobj
 609 0 obj <<
-/Length 1196      
+/Length 1209      
 /Filter /FlateDecode
 >>
 stream
-xÚí[;sÛ8îõ+XJ3!ŒA ¸"÷pæ2sÅ%ºÊIA‹°D›") Lœ 2¥ØRf:4&8ÂØo?,v‰5¶>,~_/®®)	³`} ¡,ˆÁÁ:
-n–Iz_k¶l’<׫¯ëW×$ˆQÈ@Ì°´ ®Ëv³!aHƒÇN¤ít8TßV8Z&ù*Œ Y÷€þñòƒ
-ñô6DÚ¿ð@¹×¶ùÉâ~r—1<ëÛY!€Ú›Ãì²b2J=Ü¿Êh”)vr…¢åãzÅá²ü”¸—ïvJŒ=øó™¿n
-ÒšBI½K*é|_š˜dŠÈ[aˆûxÀÉ(î+é΄o›r_Ù)bæÁžùtóõ¦T$E
-´±-ÏüË™OG1¿|³ËôàG¼
-c,<àMܲ;ö`Ïá\ØçòB¬wR­Bθ‡}ôã	Äßæ{ëc¸ögÄŸO`¿Åle!U“ ä!ŸæäÅ4®ƒ­*ëJ[_ƒ°‡zÔNºÏ”ˆðÁûà£	>åÞ¬Bì]ú/sðœLØ	ªÖιs¿Þ¶¦d¬.ª‰ˆßósJV5ŒmEø‹xÏ&"ÞE8óÎe'8šJµ)cyz¿t>åFÉ"u1ŽÇ|Fˆq´—ì²4•î–ÅòÙ F&XEò2I³b«ý}à\؏»“Õ‡j©~Xçùp~~3Œ»mG¯ˆ|dù&ÐG¦³
-è:ÙW¹ì>îÄQì!ŸÌ:àº¾½—ãÁ¾ìh±Ô4á¥v¿‰ºò‘Éj½ß'öe6€úTLýåëe KXë¢J6ï}bTöhONL<ÔÓ —¦Öº½¹µ¬&žÕó‡,ÏçªWׄê‘Cñ Ä0Ê[Óü]¤ò±“~v"ˆ…諘<MËþZ/ÔH c¡4ÁÀ,6ûÅÍW¤öǏv@"xð½éº(B ¦Ä¶óàóâߟÖOª±Ù°A»|Á£«±0ÐøD[9Ô+ôORÔV¤Iaàò½ÖÙ¶hÛdQš•lßþ8Žû¬ÊXD ælŠÊj':Æ ´+	ÿSêÊ*“•ÅKVV#k`$ ‰io`#U²1YSBèÊfe¯l2Pv{¢lbÓ¼í:g…®lôåVѼ—wÝ í£ÊKsúƒ’wRÉbÓ
-ÙN­tݍ›äv]Ebd?¼‘…ÎL&5èjéO¸ëÔÂD¤3ø:ÙÊgñøŸSúœásÆœ/0‚îü}g£·	èZ*I³ZÿÆl4fïÕ
-YXë½,Œ~u¡/-°¨‰Nù|bð˜Y:ÿË 3GB¸ÖJö²·ˆ©U!Ó£a_ÞögkpFû9Îë_Y€=	‚ó}9œ#ÄŒYå°¾£ `‚êiš9~ºë•†aÖüh–¥–ò½þ¦¯?²Z—ÙÍäÈ’[ÖHÞÏ€À Ú3³E u`7¼‚ÙõÖn;(ʺèõî;ìK{.w¸”nÿ©öEËÜnôMZ—g›‡¬Ø¾ë÷ë@Rƒg	nåÿ£(Ù
+xÚí›Kw›8Ç÷þ,Í9EÑIh1‹Î#=Ósf1­g•vA@±I0`$ÚôۏÄÃÁ©“Ýi$#!éwÿººz[zV¿oVW×!ñ3osç!	™Ç”`o“z7ë8½o”[
+’8Ï•ÿuóñêšÐQµ2À6m+[dûV¼€°zæ¶JWèp¨¾ù˜®ãÜ($k`/Ð]^¾„B<åÆ„¡ùAäÕ6Û%?î7ADàšÃge{«@/@`Dsè]VøC‡ûW™½nŠ°3ÅNúˆ®7~×å§Øf¾›&1vð—3ždŠZª]\IëûÒXÇ~ ¨³Â˜ûtàd"p»&|KÊ}ešàÌÁ^\ùá¤õ@%e-A\¤@i“rÊ¿\ùá$åwÀ“]¦ ?b?àX8à§sus{	çÂf8—/bµ“µD,rØ Ïg›ï‰\´¿ ÿh°•…¬Û
+°@ù<'/沮˦RÆ× ìPÏBÁNý¸S"ÂïKÀG3t~¯ý ;—þË|Dfã¡nÔƒuî‘›	o›s6P6ª¡ÄMåµOg¬ã؆„ȁ¿H÷l–îe.¹LâsöOUݽ¤äuò~ôh†_ѵ,Rã8æZ`âVJj°ËÒTÚ¯„ˆ;ä‹@Ài(*—qš[å¾.Å~âþꐃC#ëÆùPÎ/o<mÐã¥WPY¾	úÄíl]Åû*—ýËN¹C>+˜áÖÍí½L´ƒ})l:Ûh©4hÃKe÷%ê2ä7«Í~›U”™ þéUqè>¾^}Ú†µ)ª8y°¼÷±®³G³rbâPÏC=íÛ^£ºO ·FÕÄ©zùåü^õêš„£óÈá ¢‘`Hïìÿ.RùØW>Û p!†CÌžîÊþÚ¬+ÔÖ@Çs҄ඡd¿ºù
+½ÔÜühHDä}o‹î½!ÀCbÒ¹÷yõïO]‡'‡±Ùø06‚€…È#ˆnzá0öˆBÈOêc "4蟸hL•v×ï•Ê¶E—þ ‹Rÿ¨d—ûãøÜóC†PÌç¹Ú‰†‡anû¹ó§TIU:+‹—Œ<>tŽŒ}‘ P ÁÀZÖq¢³ö¡=5+ÛÁ¶Ž‡Á¾Þ>
+ÖÜé ¶ÉÛ¾pV¨Ê_¶m…ò®Hw©òRŸÞ¨å¬e‘ôìš®U£ºbqnúUĺ¿m{b_‹wMiYv°­A@Ð!4Ét&èÏÚŸhÛŽsÀéŠþ§â­<ìg€§ú žUÖH¡]žß™ ÈÎQ úT§Y£~c¦ šÒ¿÷µàzÛìe¡Õ«ý|½m¬p*÷=pfÔ~ü„¸s`ØÔ]ï{…×R7u!Ó.gìþ²WxÖ%!@Ä¡ç§ƒ_é\$ {ªžOÛqfPdÆÎ áýKü3Æž¦™Õo+33ÂØX :Z ý©2Sb  Ëé ¦ £¡%+–ܨFÖ Kؘ=<EÐén:½ÌÝUìQ”M1Œ{(°/ͲÝs)휬»Œ’¹q#´×$Ï’‡¬Ø¾ë²Y1ª©ÀYGú?&/¸
 endstream
 endobj
 608 0 obj <<
@@ -1240,243 +1234,243 @@
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 719.08 513.085 727.927]
+/Rect [501.13 719.26 513.085 728.106]
 /A << /S /GoTo /D (page.71) >>
 >> endobj
 576 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 706.687 513.085 715.533]
+/Rect [501.13 707.045 513.085 715.892]
 /A << /S /GoTo /D (page.72) >>
 >> endobj
 577 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 694.293 513.085 703.14]
+/Rect [501.13 694.831 513.085 703.678]
 /A << /S /GoTo /D (page.73) >>
 >> endobj
 578 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 681.899 513.085 690.746]
+/Rect [501.13 682.617 513.085 691.463]
 /A << /S /GoTo /D (page.74) >>
 >> endobj
 579 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 669.506 513.085 678.353]
+/Rect [501.13 670.402 513.085 679.249]
 /A << /S /GoTo /D (page.74) >>
 >> endobj
 580 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 657.112 513.085 665.959]
+/Rect [501.13 658.188 513.085 667.035]
 /A << /S /GoTo /D (page.75) >>
 >> endobj
 581 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 644.719 513.085 653.565]
+/Rect [501.13 645.974 513.085 654.821]
 /A << /S /GoTo /D (page.76) >>
 >> endobj
 582 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 632.325 513.085 640.903]
+/Rect [501.13 633.76 513.085 642.337]
 /A << /S /GoTo /D (page.77) >>
 >> endobj
 583 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 619.931 513.085 628.778]
+/Rect [501.13 621.545 513.085 630.392]
 /A << /S /GoTo /D (page.78) >>
 >> endobj
 584 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 607.418 513.085 616.384]
+/Rect [501.13 609.211 513.085 618.178]
 /A << /S /GoTo /D (page.79) >>
 >> endobj
 585 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 595.144 513.085 603.991]
+/Rect [501.13 597.117 513.085 605.963]
 /A << /S /GoTo /D (page.80) >>
 >> endobj
 586 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 582.751 513.085 591.597]
+/Rect [501.13 584.903 513.085 593.749]
 /A << /S /GoTo /D (page.81) >>
 >> endobj
 587 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 570.357 513.085 579.204]
+/Rect [501.13 572.688 513.085 581.535]
 /A << /S /GoTo /D (page.83) >>
 >> endobj
 588 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 557.963 513.085 566.81]
+/Rect [501.13 560.474 513.085 569.321]
 /A << /S /GoTo /D (page.84) >>
 >> endobj
 589 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 545.57 513.085 554.416]
+/Rect [501.13 548.26 513.085 557.106]
 /A << /S /GoTo /D (page.85) >>
 >> endobj
 590 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 533.176 513.085 542.023]
+/Rect [501.13 536.045 513.085 544.892]
 /A << /S /GoTo /D (page.86) >>
 >> endobj
 591 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 520.783 513.085 529.629]
+/Rect [501.13 523.831 513.085 532.678]
 /A << /S /GoTo /D (page.87) >>
 >> endobj
 592 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 508.389 513.085 517.236]
+/Rect [501.13 511.617 513.085 520.464]
 /A << /S /GoTo /D (page.88) >>
 >> endobj
 593 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 495.876 513.085 504.842]
+/Rect [501.13 499.283 513.085 508.249]
 /A << /S /GoTo /D (page.89) >>
 >> endobj
 594 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 483.482 513.085 492.448]
+/Rect [501.13 487.069 513.085 496.035]
 /A << /S /GoTo /D (page.90) >>
 >> endobj
 595 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 471.089 513.085 480.055]
+/Rect [501.13 474.854 513.085 483.821]
 /A << /S /GoTo /D (page.91) >>
 >> endobj
 596 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 458.695 513.085 467.661]
+/Rect [501.13 462.64 513.085 471.606]
 /A << /S /GoTo /D (page.92) >>
 >> endobj
 597 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 446.301 513.085 455.268]
+/Rect [501.13 450.426 513.085 459.392]
 /A << /S /GoTo /D (page.93) >>
 >> endobj
 598 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 433.908 513.085 442.874]
+/Rect [501.13 438.212 513.085 447.178]
 /A << /S /GoTo /D (page.94) >>
 >> endobj
 599 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 421.514 513.085 430.48]
+/Rect [501.13 425.997 513.085 434.964]
 /A << /S /GoTo /D (page.95) >>
 >> endobj
 600 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 409.121 513.085 418.087]
+/Rect [501.13 413.783 513.085 422.749]
 /A << /S /GoTo /D (page.96) >>
 >> endobj
 601 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 396.727 513.085 405.693]
+/Rect [501.13 401.569 513.085 410.535]
 /A << /S /GoTo /D (page.97) >>
 >> endobj
 602 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 384.333 513.085 393.3]
+/Rect [501.13 389.354 513.085 398.321]
 /A << /S /GoTo /D (page.98) >>
 >> endobj
 603 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [501.13 371.94 513.085 380.906]
+/Rect [501.13 377.14 513.085 386.106]
 /A << /S /GoTo /D (page.99) >>
 >> endobj
 604 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [496.149 349.391 513.085 358.367]
+/Rect [496.149 354.89 513.085 363.866]
 /A << /S /GoTo /D (page.100) >>
 >> endobj
 605 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [294.196 145.096 385.852 156]
+/Rect [294.196 144.499 385.852 155.403]
 /A << /S /GoTo /D (Rfn.reshape.gt.data) >>
 >> endobj
 606 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [319.78 128.425 411.436 139.329]
+/Rect [319.78 128.127 411.436 139.03]
 /A << /S /GoTo /D (Rfn.gt.cluster.plot) >>
 >> endobj
 456 0 obj <<
 /D [608 0 R /XYZ 99.346 773.487 null]
 >> endobj
 610 0 obj <<
-/D [608 0 R /XYZ 100.346 325.466 null]
+/D [608 0 R /XYZ 100.346 333.058 null]
 >> endobj
 5 0 obj <<
-/D [608 0 R /XYZ 100.346 325.466 null]
+/D [608 0 R /XYZ 100.346 333.058 null]
 >> endobj
 613 0 obj <<
-/D [608 0 R /XYZ 100.346 254.366 null]
+/D [608 0 R /XYZ 100.346 263.362 null]
 >> endobj
 614 0 obj <<
-/D [608 0 R /XYZ 100.346 206.457 null]
+/D [608 0 R /XYZ 100.346 204.604 null]
 >> endobj
 615 0 obj <<
-/D [608 0 R /XYZ 100.346 158.548 null]
+/D [608 0 R /XYZ 100.346 157.8 null]
 >> endobj
 607 0 obj <<
 /Font << /F43 528 0 R /F35 452 0 R /F34 451 0 R /F46 611 0 R /F47 612 0 R >>
@@ -2070,29 +2064,20 @@
 /ProcSet [ /PDF /Text ]
 >> endobj
 770 0 obj <<
-/Length 1356      
+/Length 1359      
 /Filter /FlateDecode
 >>
 stream
-xÚ½XÛŽÛ6}÷Wy²Ñ5Mê® yH»I¢-Òd$H‚‚–h›n+Jqü÷Š¤,Ëò®í´}±(zx8s83œ¶Ö¶^M~º›,^ºŽ¡È·}ëneŒ‘ãúVàcä9¶u—X§+VÇTVq‘•³Ïw¿,^:^o‹	
-B l…	‘"¬·0OØÇï­™;¡#Íí@Ω¥TºC<9 lø(
-m³_)}°C䁑›bbDoL%{(1›Ûž
-V?Í‚§õ†©©&ç÷™Á?lF¼éNM¬ŠJ
-ꍁhí˜ùÞ
-,9¤€8
-&£>9ÍØù,tŠ¶ËÚQ±ºR)¬t
-µNiÊR&ÎWˆj*S*6sÁJZÑš%j2å¢>ÔÑÀ'šk6ELW«"½À£h®6å	Ëkþ	c›UGši’%úÌö¦íê¯B=·oÆíh‡ªç–Œé
-3Z–,¹üpÊBðšùîBæK*̹¬Y^d<V/¨â"^²Xq“3q¹	¢®hž\a€^ØŽ?aÿ°˜Ãƒ<pìè(¶2 Íq\|ÚÏÊ´àÉî|Šqp$cà8Ù!
-=bdŸ<2’¼l‚0ñŒ4ž6u!ŠŒ¦’‚›Xρ|çt°ïOÂz}Ø÷JÑ”ç*õ%§àÝ ¹n‡þá<ôãèsœ	âmÄàÆîx|òÛyÜd¼.âM‘Ï¥´¼tlä†pû‚"ÏSrIÅw—;p²y‰*Á¯qâdùî÷7jX‰×·—%þŽ«4/*Ùî
-Ý+–ÒšËÈÿ*¯Dsù´ptŸ@ö·ÑˆÍl*¨qœ6¢†|ë]sKÉVïJvù5UW<_î¤Åf±\ä‹oûä(±Ååß‹¸¨þ¥Jë(Qï÷
-My½3)¶—ÓVÑ-JhM¿Kø€óæy÷>Ô´¢Ò=¶úðån]΍qp“„y^³\Þ?¦&0oÅhbökòZtÁ
-êº};#WÙiûÈÇŽÒúÓ¾÷<Åh‰Šá£Ðªä«¾=âÈ¬¢ úîj²ŒV;´®e1ŒïwòF‹ž±§Ûg¿É%¹r¿ŒÂ	|{hÇÈC¾Û]$£TÙ8DvrõâÍÊaÅwêÙ*"Øf
-Ôµ**–(Þ°ø‹<ïö‚–Yƒ†ôÁÙÜÇxúã\=UÓ¡iUà þ"rt
-¼R
-¯ëSyUl¥Ä#ø7J(]ëg¤÷"ž¹ù?C‡ì!ü»)S?’§ß|6k&/î&÷Ò:é::'ÀÈ&g“Ÿ±•ÀŸ€Žœ(´¶­hf¹p®¬RëÝ䏓'®Úƃ¨ ¥§9PcHomû,¶ÁÁ;7ýµ0QþLÌKšª×Ÿ
-'|õþ–‰&­‡}ƒN-¯TÆî2Ò-°­Ýü¸P5 at Mp?-áԁ¤è{ËD\ñò¨H?´Ã³ç£<ä#ðAsšî„©ª+ØÍRŸ~røSÐ5;?3Œæû‡täD+!»XíŸý™<6nþ˜žÏ+y­›¬eè!}Iñ}½®¨‘ú_Îé*“ÞY\Ö	îÉúÔ4ÞvyE”Ç×|Úh²¥QÆÔCà 0EsÅàbdûªôìá–A“Šk¢ôõX#AGÔ}‰Ï Ï‘çû£B{
-Qª%„3
-A`GD²’«y¾RO˜©˜žj×:Ó¿¡·Ý¦|å‚/SýÒK ­¸E2›kGl÷”Ok%*áÚ6*¡Ïr»¨-OSóiCðü5lMÌ2ñ?"–!i
+xÚ½XKÛ6¾ûW9Ùèš&õVÐÒn¤h‹4Ù	’  %Úf£×ŠRÿûER–ey×vÚ^,Šg¾y[k[¯&?ÝM/]ÇŠPäÛ¾u·²ÆÈq}+ð1òÛºK¬Ó«ã
+*«¸ÈÊÙç»_/¯wÆÅ!0l‰	‘$¬¯0O¸Ç;¡#Íí@î©£TºC<9`0¸,ðQÚæ2¾Ròð‘†BlŠ-°#r{ *Ù³³¹íá©`õÓÙÜ!xZo˜Újr~ßèõ—üÃfÄ›îÔƪ¨Ô¢Þ­3ß›¢&‡ÇCa@`áÁfÔÇ §;…NÐöX»*VW
+¥9+™B-Sš²”‰ó¢Ê”ŠÍ\°’V´f‰ÚL¹¨e4ì¿ÎÉ5š"¦«U‘^àQ4W—ò„å5ÿ„±Íª#É4È’ûÌö¦í
+ê¯B=·oÆõh—ª÷–Œé3Z–,¹Ü8e!xÍ‹ü
+w!ó%Æ.k–ÕKÇTa‘/Y¬°IŽ‘¸\QW4O®P@lן°‡XÌáA°;2ÅV´1ÇÅFÐ~V¦OvçkPä ˆƒ#Ç	ÌQèCûäù“‘äe„‰oh¤ò´©Qd4•ÜŒ°õÈwNÇöýI¶^Ÿí{%hÊs•ú’SìÝ ¹nÇýÃyÜ?ŒsŸ;àLo#J 6v‡ã“ßÎÃ&ãuoŠ|.©eѱ‘Bõ!Ež§è’Š+ì.wàd)òU‚_ãÄÉòÝïoÔ²¯o/K$ü;WI^T²Ý²W,¥5—‘ÿU–DS|ZvtŸ@öÕhDg¶Ô:NQC¾õ®©R2Õ»’]^¦êŠçëAMZlËE¾ø¶OŽ’·¸á{Õ¿#TIc%êý¾¡)¯w&Ã5ârØ*ºE	­éwI`ožwïCI+*Ýc«/oër¶hŒƒ›$,ø:§©)=5Ëe-2ý)£‰¹»ÉkÑ.ˆîöuŽ\¥³í#;JƒwLûáóT£í*†_ŒB«’¯jùöO"3Hˆè:Öd­vh]?Šh!ßï²å&=ãN·o‰&—@Ëû2
+ÖøöЍ‘‡|·+*£PÙ8DvbõâÍÊa÷wêÙ
+GÐÍ  èqU„.,+P¼añiû¶XËŒŒC*Žálîc<ýq®žj Ñ°ªƒNp¬þ"ruŠ
+x¨$^קòªØJŠGøß() ­Ÿ‘Þ‹xæJÎÿwÆâ?p7¥êGò”à›ÏæÌäÅÝä~BZ‡"ÝtçÙ$°âlòñ3¶ø¸#'
+­mKšY.”ÆÀ•ÝBj½›üqÒâj„<ˆ
+Qzšý†ô¦Ñ²ï1ÁÁa¼sÓ_åo Ùļ4yágàM¾zËD“ÖÃB§™W*{wÙéЂ1ï|\è  ?¸ Ÿ‡ƒp꘥èl{ËD\ñò¨a?´Ã³Ç£<Ä#àA!ƒî„éª+ÐÍRž~røSÐ5;?3Œ(æû‡täD!'ZíŸý<6nþ˜œÏ+YÖMÖ"ô¼¤ø¾\WôKý/	çL˜IÏ—M…{°þ1·]Þåñ5Ÿ9šli„1½Ñ0 L]1(Œlß¡žÝ#Ü2èhRqM”¾ê"˜Žº¯Róøù!ò|ÿàÃThO!JÕ¢„pE!ìˆHTrµÏWê	;Ó[íYgúw#ôávò”‹¯\ðeª_z騕[NæríˆíÒð´V¤’];R!Ì\ÎáDµåij>sè?¿†cŠyB&þ:Ú$ü
 endstream
 endobj
 769 0 obj <<
@@ -2554,16 +2539,14 @@
 /Filter /FlateDecode
 >>
 stream
-xÚµXYÛ6~÷¯‚>ÈÀšEA÷aÛ@iâ´IZÐ2-³ÑU’Êî¾ä·w(’^ɱ»ilÌk†s~3Tà•^མý´œ=~Nb/Gy&Þrãá @$J¼4	PLBo¹öÞû8™\þòøyDF'Iœ!B"à3œ)»ªU¨E[wúô,°wÀшláèaª
-õS¦(¯ä„pÄ`"aæ-pŽ‚Òå–Í$M|Ùw]ÅÙÚÌ6­¨ûŠêIìsi?A(¤26cÿ³þV=UŽ¢•ÒÐ)Ç›7]oÉÖTÑ«ù"
-RŸ6–Î5»‘!¥e)ØÇ~9‡‰âMiåê›Bñ¶±MFš FyœÅ4´±'&ˆ"”ÔY^+fOúa†}ÕšEÁd_){‚7fsÅ»ÒnÌJÉš¶æsìf^´­Xó¬"‘Öû7]'ÚNpX²×PP“:gz+«Ñ,¶7EÕ¯™õ6üC™'´³ÍðöùÄ2£üm®éÝ~„MâŠwøêü["”g—ðæÿ¿Döõ%—,Â8ð™*‰I^aLPœ…C^Řšßæy¨Ã›ý›Ìº1êÄ6£võ+Üxc~‹ŠJy ˜³ád'û#%XUqùè@4Ç¥yæNÖ
-0#O°Õ-2'ß2fD¸©d{P¿³²¯uÅ>³jÐù„g™ó“2§x82qdz;Zw“G¤Ý÷È©õN¢œÈi“¨ThÍê[V|úÄüá!ç4Žm¹9؁ǒ ð\˜ß
-DÐu@HfIúXý‰õè›ò ›òR6úA*ªz9åF%ªÚ’´Ò¬ T[ëQ#Ú[ýÛ)ÍðÊv¿P¢ô걫Äô
-Y´‚6r|Ñاî;f™vÊJ70„Å–Ë¿¿º*U?ÍóËÔÀÁ ògx#±k&J6¨wUª±à³gËÙß3<)Þ•à(!(ȯ¨gï?Þ6á^D Wn‡£µª¦‘βÊ{;ûõh(
-u~õ }a(%É7ëw”NÃ1‚½Ð…ƒ-~ŸÇPe×6!_uÒÈL_g9E·¯^Û£-…:SÚ퍘G±ßÖ–îç›Ö!e¾Ä:¦Û‰t;Q¢,v­ˆ,ï\¾4Á Lèºit¨l—öpæè¾6Gi¬x»³àÎ>Õž}œm¨å% –òŽZÖÚymÃÇŸ6´º—\ÕlŠ§ï$-ÙùÈtÜãPÒá~gã¿h«kü$¶³MsíZ…áА&ßú!õïþMòè|KS”ù´€Þð‚]/ß¼{f™ÞUtuýêÝË—v~¿7G¹¤Û7G›Æx}#æ¼Ó׃IO™æ&9Ù°¤	dTè2ÊzVƒ”I%úBõ††`0n†>f«ûó[Æ‹vEK6ÚE×)é ‰ž”ºcZ/Bx5„ÝdMN¿Xw“.…jÅ^¯áÂÛL›¾^1aC}hxmvÒ^©es[*6ÍB66¹5À:I]‡?‘Kwç÷Ó¥ßrµå–€Ñbk}Ë›³5!“”8_[tŸÀã$Œ 1_ÃÌ‚¼z»§£GLä¶í«µ¯˜]Ó—º5*Í0ñ
-Ró(Òƒ=œƒÔ<tî}vÏ ›å+g÷Tc—»WÃÂ.ðõw at NW¬²ãZ^—€ª=?3èГxòb>%J˜£,ËÎË<œ(êQ, Ö] èzÍuкJBù²ò}—Ö8ŒQeߣö>Vƒˆìêùo¾!„8ôÛ^
-ýc:_?kâÅi~ì£Ç¾‰¡E!ùäwPÃÞF½Òé7 lAGZ|Ò%g°3’LpféÄx/‰`Ã5£3¦€…1ƒÎ`ÛhP~”`
-³„‚wv¬àúKÉðEÖ%SfGs×£®COº4_Äqd?ÉÀΚm´6ÐÃ^qè«Á#ÌÔ§vx£·x3’.´¯Q+Í.lkPBpÚl£ãrùÐpñÂLx£˜°è‚†t ÿ £ƒÉ
+xÚµXYÛ6~÷¯‚>ÈÀšEA÷aÛ@9œö!IZ¦µlt…¤²»/ù튤WòÚŽÝ´6æ5Ã9¿*ðJ/ð^Ì~YÎ?'±—£<	o¹ñp %^š(&¡·\{|œÌ?-{ü<"£“$Î!ðΔ]Õ*Ô‰¢­;}zØ;à‚hD¶pt‹0Õ‹†ú)S”WrB8b0‘0ó8GAˆ
+éòšÍ$M|Ùw]ÅÙÚÌ6­¨ûŠêIìsi?A(¤26cÿ«þV=UŽ¢•ÒÐ)Ç›7]oÉÖTÑ‹ù"
+RŸ6–Î5Û‘!¥e)ØÇ~9‡‰âMiåê›Bñ¶±MFš FyœÅ4´±'&ˆ"”ÔY^+fOúa†}ÕšEÁd_){‚7fsÅ»ÒnÌJÉš¶æsìf^´­Xó¬"‘ÖûW]'ÚNpX²×íQP“:gz+«Ñ,¶7EÕ¯™õ6üC™'´³Íð­öùÄ2£üm®éín„MâŠwøâô["”g÷—ðæÿ¿Döõ9—,Â8ð™*‰I^aLPœ…C^Řšßçy¨Ã›ý›Ìº2êÄ6£võ7+Üxc~‹ŠJ¹'˜³ád+û#%XUqùhO4Ç¥yæNî×
+0#O°Õ-2'ß1fD¸ªd»W¿“²«už²jÐùˆg™ó£2§x82qdz[Zw“¤ÝõÈ©õN¢­œÈi“¨ThÍê׬øü1ˆøÃCÎi	 Ûrs°%Aàÿ¼0¿ˆ kÔ9 ™!$éS`õÖ£ClʽlÊsÙtê'©¨ê唕¨jK^ÐJ³€Pm­Ghoôo§4ÃsØýB‰Ò«‡®Ó+dÑ
+6ØÈñMcŸºë˜eÚ);(ÝÀ×\~ypU6ª~šç·¨ƒAä¯:ñFb×L”lPï¢TcÁgÏ–³/3<)Þ–à(!(ȯ¨g>Þ6á^D Wn†£µª¦‘βÊ{7{s0”†:?z>‰0”’ä»õ;J'„áÁ^èÂÁÌc¨²k›/‡º id¦¯³œ¢Æ»W¯íÑ–B)íöFÌ£ØokK÷ëÕ낲 ŸcÓíD{º(Q»VD‚w®FŸš`&tÝ4:T¶Ë {8stÍQ+Þl-¸µOµcgjy	¨¥¼£–µv^Û°Æñ§
+­î$—ûA5›âé{IKv:26Á8”t¸ßÚø/Úê?‰í̶7—®_Na’®òÿöÏÐdNº4EiO{	hp 4Øåòíûg–ómEW—¯Þ¿|içw;s„Ë¼]›ä±¹aÚWbŽÁE}=Øõ˜}¾c—£]Kš@Z….­¬{5R™‘T¢/T/l|ãfhö`¶º;½ÿÀ`¼h[¹dÓ¡mˆ“2‰àI½;¤õ"„§CÐ=AÖ„àù³u79S¨Vì4.ÆÍ´éë6Þ‡®×¦Øq!í•ZÆ0Ï4Ü'JÚØ4Û×
+ëtu½þD8ݧßM—îý|ÃÕ5·Œ×ÖÁ¼9Y2É‹Ó•±å÷	<SÂZô5Ì,ŒÁûg0~:zNÀD^·}µ6ã³kúR·F¥&¾±AjžGz°ƒx𖚇ÎçÂâÐöAdS}åãmì|klÁ¾¾åÒéŠUvÜAóë²Pµ§ga½zOÞÎÇD	s”eÙié‡ó E@=Š ¼3]¯¹ZWS(À_¶…¿Ò‡1Š¢ìGÔÞl‘m%#ÿÍׄ‡~Û«áÉb¬¡çá'ŽQœæ‡>ìšš’O^ìp5ìmÔ+~2Àô¦Åg]w;Ã!Ég–n€BŒw’6\k1:c:	XÃ<è¶åG	¶ÑXKÈ !pgÇ
+®¿™ßF`]2ev4w½0ê?ôô¾ÿ@óEGöãì¬ÙFkC=ìû¾<ÂL}j‹7z‹7#éBû.µÒŒáÂv´%§MÁ¶0:®™÷­/Ì„7Š	‹.hoø@/úª»Ì«
 endstream
 endobj
 868 0 obj <<
@@ -2661,25 +2644,22 @@
 /ProcSet [ /PDF /Text ]
 >> endobj
 892 0 obj <<
-/Length 1538      
+/Length 1545      
 /Filter /FlateDecode
 >>
 stream
-xÚ¥XKÛ6¾ûWÉÅÖ)‰Ô‡mw Š6»é%
-®LÛjôª(w×ýõ>ô #»ÞìÁ¶(
-çÅo¾{[{ïg?ÞÏÞ¼/AIäGÞýÆ#£ Œ¼8ˆ¾w¿ö>Ï·-Jó½lE³ tŽê¼j_î~ó. £­!&(f Wï!±™ak	dÑìÒ
-/ýXÝ3[~_$þœç{áìi[#°™01³÷z±ô)žk×ôUõð—H»ëùMs.¥ñBt±pÂzþªmDžgòÕDŒ4 at q’t’ÈJ8‘Ê`A ´ù¼ÂxpËj2:ß1¯QKsùQÅìøysݤUQ#85oùqºÇn³ 6ŝÛWVô‹!Jéö¹ö¤hÏ™$pÀI^jS–5Ê+¾ÎÊ­<g.8ä¥Ö¶´O™ñÄ;{þ™ˆ9çûÄ‹:òÄÑTŠÂþÐc8¿°/Ƶ(*”îDúõL1|ˆR›—£„&ö¸ËãùKókNOmÐlâPø'QWWFD6Y¿R"•l}X­”ÀµúR&»cÚ"Sº¦Ç‡¨õ
-V.wäþã§ÛI›]¸¼q­B	k½›ªleö¯Xu7ZñÔ®˜Ò£qâE!¢”¹ÚxúuÛTûrÝoãy½ã+|•VùjÛðƒº;¾ÉÅrJŸFÎ@Úø”2ò6°+ˆA6Z•¨,:³ÛûÙß3¢aLzŽ¦a%Ƽ´˜}þ‚½5<„¬  aÞ£-¼@] Ác/÷îf¿Äœi×€÷QH<
-crÜÐD¥„±³ßWÖ¯=1¿eÕjKˆ?Ù¾¢7M‡K(¢ØN¸:,§<;e!p>űqîFÈ´Éê6«Êïh=Ch
-_:4‹­g:ŽSÓµ¾RPȐ@ 
-<ÏÊV”2k3!
-:µÌcÖîlwkÄ:K[±6KÕ¥j	¥i–
-­¼9X_„òe!Éé6eÊ· ý$ùV\ÎO'³q 
-×¼Ló\èb¶·´Ûr•šr¢Wªhlôêq‘•¨® 3ršrM( Ó£$#[®¢}¢ìkõi¥TÔ÷H—¶-G
-^–\UÛ
-t€­jjT?åüaõ˧¬’ÃÑÚ©YÕ»…}Ž¨ÁñÝxýÚÞ6bÑ¹ÞT–ÔÌè¢/;ZæT—o'>tÉú֍SP°ÍêºY ·ûB@ÒÏ"â<þo(‰# ˆ~êâ¥Áí¾¬z•̇jÙ4¼îHçVYVBÂ
-®Ù‰Ï7èN •;^‹ñ$u<@%(Š§ïŸÊÂ2`ªIùÌ&õé™xFØòl˜¸ÛzÞˆ6ݝ	2VLŸ\¤ÏÚ|dØçQUØå¡æÕ6ƒo;úvãmTfc<ݧ$+ŸÕ¼¹¹”»jŸw¤h§³÷Úª#_ìçvO»£dŸÝÆàœ¯a±Ë#Oa(©ö
-•Ûò¸Ëºx:'×NS™¦|èÏðØÖ@¬—{Ýg	6gž0‹r_<t­­¨ÕlRZ5'ÃSóоGÑ]Žõà0½](‘÷oyA.”Ù¤3C'a=YZ$J9‚ÚÅo"ð’Fpÿ’füœ;…÷Œè컈OÝÆô~#ZžåòÄ 3Ièqrrü;ò)!ˆ=…d*#n~^×($Ä)ì>#;ၱ/ÈC8ìq[6ª¯ð4˳–kÐÁ=¥HÀ¸5T<²|Wàªhòƒcš—¦¥ûŒ†ÌGlKJÂ9 18/Ã0ÔR¨[Âª0×m%t¾Ù—©í\ð «{i–ºàx¾äàF|LJé@(°ÒƒPÊëvßXWꦪ«F™S3ÃtKuW=žÚ	s›-|:ÿGy),?¦ºP!6ô•)§ðLðì>a> Ñ´Öˆøc,œkÞ"qì€Rq®e2;m9Du<‚¸)Qf¦gjjKãr{ÑŸZåóÿËŠÁJ¾ó¿¬oüƒ±ÿ S
+xÚ¥XYÛ6~÷¯’X3¤$êê‡mw Š6»éK\™¶Ùèª(w×ýõ:èÈ®7û`[”†sñ›oFÆÞÖÃÞûُ÷³7ïÂÀKQù‘w¿ñÆ(#/Ž0¢ïݯ½Ïóm‹²|/[Þ,(£:¯ÚÅ—ûŸß¼èhkˆ	ŠЫ÷X‰Ì°µ²áHvi…—~¬î™-¿/RÎò=wvŽ4Œ­ØL%fïõbéS<×®é«êá/žu×ó›åLJã9„8èJbDÀ	ëù«¶áy.䫉i€â4í$‘•p"#4Ð"äFðŽsãÁu.«Éè0|c”xZšË*fÇÏ£˜ë&«ŠÁé¬YËŽÓ=v;	`Sܹ}eE/°¢4!Ý>מäí9“8"éKmʲFyÅÖ¢ÜÊsæb€S@^jmÛAû”?EI’œ=ÿ€€L”8çûÄŠ:çòÄÑTŠÂþÐc8¿°/Æ5/*”íxöõL1|ˆR›—£”¦ö¸ËãùKókNOmÐlâPø'QWWFD6"‡‚_)ÈŠXV+%p­¾”Éî㘶Ȕ®éñ!j}ƒ•Ë¹ÿøévÒf.k\«PÂZï¦*[)þå«îFËŸÚU¢ôhœxQˆ(M\m,ûºmª}¹î·±¼Þ±¾Êª|µmØA݃ßäb9¥O#
+g m|JyØÄ€ ­JÔ
+ÎÙíýìïÑ0&=GÓ0„K¼¬˜}þ‚½5<„¬  M¼G-Zx!º ‚Ç^îÝÍ~;‰9Ó®x:Æ丠‰J	cg¿?®¬_{b~Ï˪=Ô–²}E/n:›—PD±ÿœpuXNyvÊBà|ŠcãÜ
+—Y#êVTåw´ž!´†-?šÅÖ‰3Ç©éZ_)(ÄÑhêDlK–›'¢ly)E+¸4HÕwE»³®ák‘µ|m–ªcÕÊÔ,rYs°~qåדÓ-˲•oÁúI²-¿œ«Nfæ.*Xº{Yg9×…moi·å*3¥E¯TÙèÕãB”¨® 3ršÒM)€Ô£$#[º¼}ä¼ìëöi¥TÔ÷H—¶-GÅ
+^–LUÞ
+Ô€­jjT?åìaõ˧¬’ÃÑÚ©_Õ(»…}ŽhÂñÝxýÚÞ6bÞ¹ÞT–àÌ£/SZU—o'>tÉú֍SP°ëºY .·û‚CÒÏ"â<þo@‰# ‹~c¥Áí¾¬†•̇ÊÙ4¬àîxçVœ(!aÓEmwTÅÄð烛aÔ*€Ê«ùxª:¦RE3œÊÂ2H("$TS!ò›Ô§gdâa˳aàq?êùxÃÛlw&ÈX±~zY~¢ÐæÛ Ã>ªÂ.5¯¶v¼5T(J`7ÖvA	+gÙî8%¢<~V³’[•»jŸw¤h§³÷Úª#bìçvO»ã£dŸÝÆàœ¯a±Ë#Ï`@©ö
+•Ùfò¸]<“k§ÁLS>ô‹gxlk Ö˽î³›E±/Ì¢Ü]›ë j5›”VÍÉðÔl´oùQt—†ã£„úNp˜Þ.ƒÈ{‚·Ž¼ ÊlÚ™…”$=YZ$J9‚ÚÅo%ðÂFpÿÂfüœ;…wŽèì{‰OÝÆô~Ã[&rybè™$ô8=9
+ù””=…•H3?
+«k
+’BâvŸ‘ŒðÀØd'A8ìq[6ª¯°Lä¢etpO)R 0n
+Տ,ßÀ¸Ê›ü`ÅÍ¿KÓÒ}FÃĝGlKJÃ9 18/Ã0ÔX¨[Âª0×m¥t¾Ù—™í\ð «{i–ºàX¾d
+gF|LJé@(°ÒƒPÆêvßXWꦪ«F™S3ÃtKu‡X=žÚ	s+>ÿ£¼ä–ŽS](ŒP2ô•)§ðLðì>I|@£i­ñÇX8×¼#DâØ¥â\ËdvÚrˆêxqS¢ÌLÏÔ8Ô–Æåö¢?¸Êçÿ¯ƒ”|çÿZßø/eÿtFæ
 endstream
 endobj
 891 0 obj <<
@@ -4559,24 +4539,22 @@
 /ProcSet [ /PDF /Text ]
 >> endobj
 1236 0 obj <<
-/Length 1213      
+/Length 1316      
 /Filter /FlateDecode
 >>
 stream
-xÚÕXMsœ8½Ï¯Ðe«<UE(U9x+vj³¾$žì%΃<ڏ	ˆµýï·Aƒ<Á{Ør•AŒºÕ¯ßë‚ 
-"èÓâ÷õâÝ…ç"Ž¹ïøh}‹(!Øõ|ø3×Aë}?ÉjœD2ª…\þX~wᲁ…G(Bp×Muy;eAôçëÅÏ…[‚èÞ·ãa‡(Îß”ÀŸüÄCtßMÍ‘GÁ)FP†®_zã«àP‚}¢€Øá“ zk0
-,Só(—i-—+‡‘“O¢(åãN¨ÑGå©î\Mô9Ä»ÏØq½	&|Ÿaꪐ>Š:®ÒL˲dQCC´¢!ªÌ×Û´V*!›ªÐƒH]²oy«®wbp«‘¸&Ä)D¢†i¡®r«gÇMU‰BîMoÀkýq®Ú(4ÄU”ßêh#&ᵩÁݳ~MÙUåß"–¸ˆrñᚸÁoí¿ÓåÊ'=¶ƒ!
-ù˜®)æŒ)×õ¶¼ÇQ–}¸8»¼:×Nº‡iR«‡°&‚ºÊÝòYµ¤î&‡ŒÕG¡ÿòäHê–2”î¥Gš¼«/—*bk
-×Åa}UüñçùD 4ÐÌ$±¤ìäaW‰ºn¥Ú9¿-+u“G2Þ¦ÅFtÄjІ]ãqú–Z\³°…ícâúj½!}ÿئ½
-¶Qá|ÈY¹Iã({¿\¹œBÑ&0’¢-évx«®Û4ID¡îEÏ¡S‰zœ‹üFTÚ®œ°3´Ò=	bm2m}Ó‘1Y5•qÖ$O6”²‘»FÏ’{˜$¨Ê%‰+IÆýV at HšSYš`»ÐÕàŸ¥ÃN¢¬1¦›š&¨FwmÅw‚y¬'Û"÷–aŸøkɝÎõKºÿÙ>-ͪ-…*•[m¡Ue‹ã^W©A¬õpªwŽB³hc=‹½	”Y“õûc¤
-‚)
-ìRN“ù„pë7Ä,ÌŒ¡F®l³tïJ“!hþ{6Eú³†pÙq·1yÐ9ª{ÙoºÚ/
-á({‹þ¦¡lËÊfa€b•i»‹ƒ˜Å3Bžª:³½!ãóhdܦ1
-~ !Á£>poÓl®S¿ôöû
-Q]—q
-Ý!Qc]G`ØÑÞv¹ãØcÔîu¯Îëó”Ðóií¶VðVx¦f'Í"	ÉËßB®Oç)€pf)À1
-p8×Ipø^ÎXÎXð@)ÀéíÚYYtz	´ËvO4*AþkT at 1óÂQrgÊ`Õžl‰A¿Þï_Åö¸þku$Odæô³ÛJˆ•bíÁœ/î¬=÷õ,­±~¯y›÷‡t™U’&±jÉçGW¢eß<¾ 94µÙŠþÅ@n#švýVy5‘&ò‘vÆ=Ùƒ˜Aûœ¬+¡
-ϲº|â 8DÕ™Û¯sN¢†æ#`a£߀=ÕSg,çYꃵL!Y¬;Õº/\¬oÇùÝVŽ ›$ápÜòG_΢|—‰zþÇ€<ú^OA ëê^»‘8y‰ã­ˆïÚïæ|ÞC´G>õÕ`Þ¬þä¿þú­?øDx¾^üá[
+xÚÕXMoÛ8½ûWè²@Ä,)™”X ‡,šÛÍ¥»—¦EblmôáŠR“üûŠ¤,ÚŠ×v²‡E€X”8Ãy|o†Ø[zØû4ù}1yw5<Ž8ó™·¸÷Æ(˜3/dÑÀ÷©÷ý,—(›XŠfúcñùÝU@sLP»®kÀU—	6\.&?'±G6¾}†ðœxI1ùþ{)|üìÁ'y]×›p
+a/÷n&_zÛ¿  1pbŽˆOÇ ôÖ`:¦>â±P®3ÙLg>ÅgŸDY5Ïk¡[µ'Ù¹È8C|°ÌG˜`Œ£À2ñQȤÎÖMV•’
+"‡y3!iëÅ*“C-š¶.M#Ö?y·º×¿Kwjqë–¸ÅØ/Eª›Y©›•é´u-ÊfczÆÈègˆs¦‚EÊt”ßd¼£èvѺԻh7¤ßbŠ×uõ·HTÆ…øp‹ƒð7õï|:c¸‡¶ó‚ðE!ƒg‚85z’«êÅyþáêâúæÒ8é^f©Ô/aL2†6
+´»q¨Ý]ÔS³Ý0ar/òýˆ‡·„îÈ"yF¾Õyl¨»ùr­v†äcÚçÄ^ŽÔ  eÀvSBÏžÖµRé´s~_Õú¡ˆ›d••KÝ2ë†
+[¢íeŽV†h¤PSD×ã
+ÙûÀ¶Åè$ؾ«ÁÃçÕ2Kâüýtp›B«*ŸUó^ÿ®²4¥~d<‡2Q¦úu!Š;Q»jÄβJÎL'ˆµÍõ]ÇÄädTV&y›¾XMª¶Y·ÍþI2`wæRò¤9"Ø™#ˆâq% "ÃhSÙX»Èuã×Ô§gqÞZ[ImÔ­•î\žåhIäs
+eXÿšr¿s}Bá¿ØDatY«\Ñ ²fe‚-Í«ºR0MŠZÀF
+çfÑ(
+W‘16½1õ¿ÊÛ¢”ï÷Q¦4 «4¦ngéá|lw“7B4m¡¶\QXaÉÆ•áB0ô÷òkËìg+,ßMGÝÒÎˀͭ¤oúõÖBû—,§(
+‰£àk›A²ªjË—2µÉÔúm1BGD<’rv
+z#Ê#‘r—Ä0²$²Ð ‚WýÀ³K"¼pI¹™øÒÛoÖ*hÄRVI¥!Õm“E`Ø‘®*ÜŒr4§Ä­s¯Öãtг鬳NìN8R°Ã8íb¼Îãæ®xŒ& Ì©# ß
+ÀçÜL‚Ï7ð·ào ^hø½}ÔCÓ-gý^Ê`ª–C+‚DÀŒØ)"€óL@¶&÷@ÌÔ‰†’-1˜mýf¶Áõ_©ÃV³Ž/‡³ûZˆ™&íÉ+îœåöÕU¬ŽQ?öã¨8` ¤GõXÕ0‘AÐo&ºiWWv•U:V¦¡×ie3$C}Ñd¨'åMÙÿÊÒ6ÎmoµåŠŸ¥Pꮲ©Ûd6¶ë‚C HžœL"³Û{›mU¶ÍšS­¬æôG›ÔBMº{>¡l¶Ò.e¿_jV±‰Ì¸~­älå´‘¦Í	‘vÆ}@‌ػí4gÓa/rY½p6…?yõÒ³_8›[’÷`…4™Åznº0ÚÜÑŒe+ÜžÁºs~pâ`ý:U<¼pÓ´Ø(>(Ûº¹|Š‹u.äá·#xd󞁘k_Ë¥¢¨P²Ƀº!±7]‘ÀP$øØ=ÊN¯ÑÛ–þ.dñõ[²áåbò-(×
 endstream
 endobj
 1235 0 obj <<
@@ -4591,49 +4569,49 @@
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [117.35 192.756 179.119 202.654]
+/Rect [117.35 184.876 179.119 194.774]
 /A << /S /GoTo /D (Rfn.ls.project) >>
 >> endobj
 1232 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [182.107 192.756 249.853 202.654]
+/Rect [182.107 184.876 249.853 194.774]
 /A << /S /GoTo /D (Rfn.ls.platform) >>
 >> endobj
 1233 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [252.842 192.756 314.61 202.654]
+/Rect [252.842 184.876 314.61 194.774]
 /A << /S /GoTo /D (Rfn.mk.dataset) >>
 >> endobj
 544 0 obj <<
 /D [1235 0 R /XYZ 99.346 773.487 null]
 >> endobj
 1237 0 obj <<
-/D [1235 0 R /XYZ 100.346 724.456 null]
+/D [1235 0 R /XYZ 100.346 726.24 null]
 >> endobj
 157 0 obj <<
-/D [1235 0 R /XYZ 100.346 724.456 null]
+/D [1235 0 R /XYZ 100.346 726.24 null]
 >> endobj
 1238 0 obj <<
-/D [1235 0 R /XYZ 100.346 656.34 null]
+/D [1235 0 R /XYZ 100.346 660.585 null]
 >> endobj
 1239 0 obj <<
-/D [1235 0 R /XYZ 100.346 610.78 null]
+/D [1235 0 R /XYZ 100.346 615.748 null]
 >> endobj
 1240 0 obj <<
-/D [1235 0 R /XYZ 100.346 553.265 null]
+/D [1235 0 R /XYZ 100.346 558.957 null]
 >> endobj
 1241 0 obj <<
-/D [1235 0 R /XYZ 100.346 449.545 null]
+/D [1235 0 R /XYZ 100.346 458.709 null]
 >> endobj
 1242 0 obj <<
-/D [1235 0 R /XYZ 100.346 207.17 null]
+/D [1235 0 R /XYZ 100.346 199.242 null]
 >> endobj
 1243 0 obj <<
-/D [1235 0 R /XYZ 100.346 159.708 null]
+/D [1235 0 R /XYZ 100.346 152.503 null]
 >> endobj
 1234 0 obj <<
 /Font << /F43 528 0 R /F35 452 0 R /F46 611 0 R /F47 612 0 R /F34 451 0 R >>
@@ -5358,20 +5336,19 @@
 /ProcSet [ /PDF /Text ]
 >> endobj
 1384 0 obj <<
-/Length 1174      
+/Length 1412      
 /Filter /FlateDecode
 >>
 stream
-xÚ¥WKoÛ8¾ûWèÅ"šÔ[ì!iÒ"v±»Éî¥)Z¦m¡z8"•´ÿ~‡")K²­$(|e’3ßÌ7/´E}ž]ÝÏ–Ÿ¼ %8	ÝÝo%{~ˆ¢àÀsÑý}dñíþËò“ïõNzAˆBAN{¦øŽ™ìç"æxÍ$SWfÄ(º¹Ÿ=ÍÔY‚èA‡ëb7ôPZ̾~#h
-›_l%1ziȧG – ÝÍþî䍟­! ²g%8ô)ŠˆCÏ‚<·£Ám'qgÜÇzáEsÎ$_8n@æŸyYÉŸû¬Üê÷ËÖòvym%Ÿ49L\ìšw˜¬9òOpöãPC¼æ"­³½Ìªr`XÏÀ{b专³žÅEL°k½±æ„¸%Úâ­v†qM{¿]¼*ÍÀgkýþ’ɝÙÉkÎÖÆaVÚú”´“ÀPß	N"Ç#Ø÷
-ÿ
-¶å'ÿg<€¨§à—¬à'$ÚNØ¢§ )y-°@Ë»¬,k
-^J1	ð`}£ð°…½_†±«j©—M™=5ÆÅÙPeŠ^ë6•YÈ?G±B1N >rÇ@ph„½08À7ìC at mjeö(–ªÒüUW7˜¿è—½µåP“Ž$Üqk—,ËÏ„–¯±÷9¼ÖçÏäÖ°†ZÖ<Cÿ„!Õf:‰RV‹À>ÌŸ.ÃáސTé§bPyàY3gÒ*oŠRUe%\0U)~³Ñw+\E¦ÀhOFdŽ³õ‰^wbKbBƒ+¡Ê­eéöú(ò2qDàVÇh„xÄc[1Öõ±$]Ä•gð=+Dz¼éÜZì+a+–õ«€vsg•ÉŽ¥~· qOw±0Ü÷0
-ãq†ËºkI[î–«e¹ü1Œ³W`ñw>‰è¡ñ|˜
-îMÀö,ý®Ê¢uãSÃòLš¦ T½†Ñh¸®f/mˆ¾Vi|Óĝ@™V%ä{Ù½ÑÖLÈË8]U³Mjûœ8ÄS)2™Ù–iÃ\µA«¯Þ Jk40 ê´}¤4sØ GÀ|‘^–výadu¨æ­ÈÕÅaTfV&ÄE³ß癵6³E(gé¡pÂB±ÇC0º\Œ	ˆpìvóÕÉ*ìÆ>Ã2üß"qu&¾§›öyk3µIS.ĦÉ/F®lŠ•Mz¨¦±t\
-^˃clùíD°Ã,xˆÉV9Ç“³‚ÁØ5¨Ë\TgføáÕ[d—ÿ¼}¤Â•
-‰G‡´+‹æìÔúýÞ}L%¢Šƒ_U´á2Ýá­|5í#è$žŽº À”Ž¢îæ+ö9o.cú–	š ‘–õრÿ¬¤^ԍîêáÂGKí ›–Úá“Õ#¡vØÛA
-QÇ:zñù³ÀHÁöê»EÝx L×Jø—T½™Ùv¸ñ¸òB½©$	¦m£í‰U»åLª¹BK úñ‡V¦_T¦´†¼ºÕ««&Ë×z©Ut¸SjŽbxÒå¾ßßâKÈMÙú±Ï‹½rÄ1|Üý¼4Ǧ
[TRUNCATED]

To get the complete diff run:
    svnlook diff /svnroot/gtdb -r 25


More information about the Gtdb-commits mailing list