dichromat/0000755000175100001440000000000014233753076012254 5ustar hornikusersdichromat/NAMESPACE0000644000175100001440000000015114233717614013466 0ustar hornikusersexport(dichromat,colorschemes) importFrom("grDevices", "col2rgb", "rgb") importFrom("stats", "predict") dichromat/data/0000755000175100001440000000000012077701100013146 5ustar hornikusersdichromat/data/dalton.rda0000644000175100001440000002062014233726606015135 0ustar hornikusers7zXZi"6!X!T])TW"nRʟ$T~u}}XM;0Nid0qԟR?Ӵz4@ mJ0V'U?MX](UXUhg_O"I(^;BشQYn6I8mDTo@fiv譆 1Q9zD"|1R@ GӍQuX k)uݕ01W0tJE*d#NEB߼׌K:]sk%4{(1ӗ_|ܧdy)6>[r9 +u+\8:t 2vTݎPo=@c_jiy$Bm}H(@S;3" PWL wgZ_r`o,dY1]2[)\x1b &jԻ e`u]w< Woe񒾵,GQL/&@m2pU qc..-`gLwpR/]HS\?;]S"%c:s8<aUG׮O!Z0=9@;#1S_r3TiJ4#0%d4Yu?CS6y6x6p|ERCc~€/˷V?BS~}BO' :! )A hsɀ6bt?gݍWEt+Og_xMSk9Z<{K;ڮc5iOڦ4Tظ#5I'ľXv5ʾ\ꓠ >vB1DN)\:]jB9 g[PCZZn=B{.A : đRA "cBJ`.nKraʹW5pxm0 h޳$[Ŭ"zP{Q-dR ?rf+[j6Ad: w{H<*)J_omG9 "8̐O GV. qRg=`memqhv4\53޴STSUPWNJnGٛSqM jüX¨8pZgQÔ3_GR_+&k!'V'ڟ /Jk]*>b-ٱr9{wYȭ+·MZ~u.|MeMDsו0IaY$__s岚f`\`1t$ $>wYz׋0Rlװ5cN)J%l{\񖅍OC (}Їӡ䮪>)G?"g hQAԏmctHܥɮgg3B.SkS<5Ğ>t#3(! V&(چϔX;ƘV=AWٯf^ JQ>&a fJT ;T}-73,D=*ܐ`&b)L"Sxcr-+mDasID2 UiFD%[{RGYU;8`Y$90 VtLAVwMmRڕU6$ԇI^&ebmc3}ID m$z"|AAveN&ꕸKdLZZfRVi`Rf`BU5Rhw .;7Yv,! b0KeyHꊗ'fz[a z:4c9⧒Fh (8w~(i. |wKj4XP*ejt=sqOzȞ۞Ho%Ʒ}%QqN%(qs^Z_twҲ ޶G *p )@6=]X4y[-<?j5y2S:3FEX )up?-6ݨ |R{P),\ٮJj58~8*2I1$fܗ2FԩTdk* $71!Z*B,oGfRHz!ߖz;S:ܣV0?ԫ4Lݾ V()7'P%fB\.9z8NC12esD"tE$tcJB%bY嶙۠)T 6ioqxi򫾲:ԢP#>j"L7T }?5ì~ũdu"j@b+7A.V#\^i r_*i*3>w<'D&W=s\JhkHDŽ>d=,?'ODG[pv9({&WаR)m.̧-DT2<4nuY.j-ױh<(\_6lphDn]]Ê hc z r&A~L_luU1*AGHTQJkb]D>Io#Ւ,KFG;:q5_Ē-3wAm[S-*vI"';t2n)L3%}06h\ z~Z̬Ԛ/ /ەl9X4nwh+OlʔW}4GSa2')r2Ii ȷf]/9ѧ=D8:ⓄNtû 8 >DZ+"[v:c &stD' "NXeB㧰R8?R ֜h_ 7; 3XZ{GUhPIdH'neaF R`UWcXvaۑyUN2rD2PoK Z98wzcf54 X >8vgy=B,jt70\XpN˞zMڊ{xTu=c. ./4{[IXM|J/7i/!gw%3]<>!l mr }gT+",L-rG(dGY&}gu$KGetc"+os%jS&^<66OPӲ-Gr=Hgel̳Ђ앫0xw >pT}X@j!K @!*y E0%7YQU7f>$n"݊Ş"*APP\r;ҷ%~w ƭ癸|hQwzUrQ 'Wâ'fVp6qJ_dBfm$󚴹l j3٣ٞWj 5r.<ݞ/٪ k_Ҹ}TǵN*6:#>Y2S+\Q_X\ R@3v+s#K"a53-:*I;/N&G .zI~2974O-9+jd! GRMt1(xNzE3ļe$Z-'MxPoJsbit -=1D9qt*wTC-,G$_܂E>;9\ĸdVm9FpvqměPn'Ww:IÁKyԘA[^Xr;aFq35mk+dqVٜX=Z"+0ԯ~(VuASVNS[3{#ѭ#Ræ(yhOtux/rT~0:ʶ_-НJ c^ڷi# KmI=kؔMY+얠YaOT}6۾?bcņ6N* Jl"O8C:y7e6$Hk2ey\ & iG]biyi=_"0(XwnN_?")M+wc7h\ܛ Fx`hp9K95Q fi q Q{]z0 ;:ƏMO0 3p}OWPdI/Wv;v21:f~|Z%S.eU:o i57L#OE8$gL;eAkt ϝĉd?q:5E6~RBQvWzgƠ-⦪'I9*,MW1.zly y>F(0<1r Ȼ9ʙ8$NשdE9Td{DToٔ0@[.l4 ;`!@s0iN/xD{p1cVzv M_=!x]Dm1/\2aKw!w/|cnP0m#mjjљ sdk &:w e_ K{oLoΓvӌV vUPoUIOL!(KF<:) 6mZ#im{`Ee Yߎ?Xg= %076vlSn dܖf.kwz&qd-ۂ~c|3a{P۝ib74AM v*%vih7]ҮןlN0 505JGʄw]s^$qƍR-~D=? OQk,{HLeK&o]bg4EJj.Ra@h3d.Ä_Xk) g/"s#:Rym##OAa(p/-[-+k1=yݗ ʸ>N>z E7luRMjuJd|bfioFֽM|MޚUF'ƾiQm]LnrQø/L "<|l,[xqQ^y:4ϠL+;YԃIO JqzÒLpC)ܗamᴻ7f<đE͸iS9O2.)x8NҘ*Me_+h8R$(C,r.\{J. ޖh5(ˋ˗1DXs?bM1uJE] @&htX(Ik0R3G8ݥD(Vɱ1J@!ՐABwKX*>: jӤ麷ċ̩lkc S¡90vܪU(nT Nj@u?[^4@%xR {o^\(4{TΕ7\P6Cgj&1b~DgYZQL XzzO6Kb ˹+Qlcٓb 2Bp[f]x~ʚyb@`hyE?BDTtԊs[%~$Cn}mAE>/g猫Ή`Tm rvr@l`k|ڿG# 284͝]?agkO# eB K4D-Vg- kX{AKaGɜI޸<4!Db=b)( -R!_jC[Zvw[DH2x ()?L޷֛}m0\=TzXxFBEGk5(><9f8i"u{9;ڙ<<ϝ#t68L3.jq`ը^0 YZdichromat/man/0000755000175100001440000000000012077701100013010 5ustar hornikusersdichromat/man/dalton.Rd0000644000175100001440000000511414233726201014566 0ustar hornikusers\name{dalton} \alias{dalton} \alias{dalton.colors} \encoding{latin1} \title{Effects of Daltonism (Red-Green Color Blindness)} \description{ A 256-color palette as it would appear with normal vision, and with two types of red-green color blindness: protanopia and deuteronopia. Furthermore, a color palette for a type of green-blue color blindness (tritanopia) is available. } \usage{data("dalton")} \format{ \code{dalton} A 256 x 3 x 4 array. The columns index the red, green and blue color values, the layers index the vision type. \code{dalton.colors}: A list of colors, with names \code{normal}, \code{protan}, \code{deutan}, \code{tritan}. } \details{ The \code{dalton} array lists a grid of 256 colors in RGB coordinates for \code{"normal"} vision as well as corresponding RGB coordinates in which certain red-green (\code{"deutan"} and \code{"protan"}) or green-blue contrasts (\code{"tritan"}) are collapsed. The formulas for mapping the RGB coordinates to the collapsed coordinates have been developed in a series of papers by Brettel, Mollon, and Vinot. The protan/deutan mapping is provided in Table 2 of Vinot et al. (1999) while the tritan case is discussed in Brettel at al. (1997). The \code{dalton.colors} list contains the sRGB colors (as R color strings) as computed with \code{\link[grDevices]{rgb}} from \code{dalton}. For an automatic mapping of a given color vector to its dichromatic counterpart, see \code{\link{dichromat}}. } \source{ The data were kindly provided by Franoise Vinot. The deutan/protan data (rounded to integers) is also available in Table 2 of Vinot et al. (1999). %% See also \url{http://tsi.enst.fr/~brettel/CRA24/table2.html}. } \references{ Brettel H, Vinot F, Mollon, JD (1997). Computerized Simulation of Color Appearance for Dichromats. \emph{Journal of the Optical Society of America A}, \bold{14}, 2647--2655. Vinot F, Brettel H, Ott L, M'Barek AB, Mollon JD (1995). What Do Colour-Blind People See? \emph{Nature}, \bold{376}, 127--128. Vinot F, Brettel H, Mollon JD (1999). Digital Video Colourmaps for Checking the Legibility of Displays by Dichromats. \emph{Color Research and Application}, \bold{24}(4), 243--252. } \seealso{\code{\link{dichromat}}, \code{\link[grDevices]{rgb}}} \examples{ data("dalton", package = "dichromat") par(mfrow = c(4, 1)) image(matrix(1:256, 128), col = dalton.colors$normal) image(matrix(1:256, 128), col = dalton.colors$deutan) image(matrix(1:256, 128), col = dalton.colors$protan) image(matrix(1:256, 128), col = dalton.colors$tritan) } \keyword{datasets} dichromat/man/dichromat.Rd0000644000175100001440000001053414233726443015271 0ustar hornikusers\name{dichromat} \alias{dichromat} \encoding{latin1} \title{Remove Red-Green or Green-Blue Contrasts from Colors} \description{ Collapses red-green or green-blue color distinctions to approximate the effect of the three forms of dichromacy: protanopia and deuteranopia (red-green color blindness), and tritanopia (green-blue color blindness). deuteranopia. } \usage{ dichromat(colours, type = c("deutan", "protan", "tritan")) } \arguments{ \item{colours}{A vector of R colors, either color names or color hex strings.} \item{type}{Type of color-blindness to simulate,} } \details{ Someone with the specified form of color blindness will find that the transformation has little effect on the appearance of colors. Colors that are indistinguishable after transformation were likely indistinguishable to them before transformation. About 10\% of men (and almost no women) have some degree of red-green color blindness. Tritanopia is much less common but occurs in both males and females. The mapping from the original color vector to the dichromatic counterpart is based on a sequence of papers by Brettel, Mollon, and Vinot. For more details, see the references and also the underlying data set \code{\link{dalton}}. } \value{ A vector of R colors. } \author{Thomas Lumley} \references{ Brettel H, Vinot F, Mollon, JD (1997). Computerized Simulation of Color Appearance for Dichromats. \emph{Journal of the Optical Society of America A}, \bold{14}, 2647--2655. Lumley T (2006). Color-Coding and Color Blindness in Statistical Graphics. \emph{ASA Statistical Computing & Graphics Newsletter}, \bold{17}(2), 4--7. \url{https://community.amstat.org/jointscsg-section/newsletter} Vinot F, Brettel H, Ott L, M'Barek AB, Mollon JD (1995). What Do Colour-Blind People See? \emph{Nature}, \bold{376}, 127--128. Vinot F, Brettel H, Mollon JD (1999). Digital Video Colourmaps for Checking the Legibility of Displays by Dichromats. \emph{Color Research and Application}, \bold{24}(4), 243--252. Wikipedia (2013). \emph{Color Blindness -- Wikipedia, The Free Encyclopedia}. \url{https://en.wikipedia.org/wiki/Color_blindness}, accessed 2013-01-16. Wikipedia (2013). \emph{Dichromacy -- Wikipedia, The Free Encyclopedia}. \url{https://en.wikipedia.org/wiki/Dichromacy}, accessed 2013-01-16. } \seealso{\code{\link{dalton}}, \code{\link[grDevices]{rgb}}} \examples{ ## from example(pie) par(mfrow = c(2, 2)) pie.sales <- c(0.12, 0.3, 0.26, 0.16, 0.04, 0.12) names(pie.sales) <- c("Blueberry", "Cherry", "Apple", "Boston Cream", "Other", "Vanilla Cream") pie(pie.sales, # default colors col = c("white", "lightblue", "mistyrose", "lightcyan", "lavender", "cornsilk")) pie(pie.sales, col = c("purple", "violetred1", "green3", "cornsilk", "cyan", "white")) pie(pie.sales, col = dichromat( c("white", "lightblue", "mistyrose", "lightcyan", "lavender", "cornsilk"))) pie(pie.sales, col = dichromat( c("purple", "violetred1", "green3", "cornsilk", "cyan", "white"))) ## standard color schemes pie(rep(1,10), col = heat.colors(10)) pie(rep(1,10), col = dichromat(heat.colors(10))) pie(rep(1,8), col = palette()) pie(rep(1,8), col = dichromat(palette())) pie(rep(1,15), col = topo.colors(15)) pie(rep(1,15), col = dichromat(topo.colors(15))) pie(rep(1,15), col = terrain.colors(15)) pie(rep(1,15), col = dichromat(terrain.colors(15))) pie(rep(1,15), col = cm.colors(15)) pie(rep(1,15), col = dichromat(cm.colors(15))) ## color ramp schemes bluescale <- colorRampPalette(c("#FFFFCC", "#C7E9B4", "#7FCDBB", "#40B6C4", "#2C7FB8" , "#253494")) redgreen <- colorRampPalette(c("red", "green3")) pie(rep(1,15), col = bluescale(15)) pie(rep(1,15), col = dichromat(bluescale(15))) par(mfrow = c(2, 4)) x <- matrix(rnorm(10 * 10), 10) image(1:10, 1:10, x, col = bluescale(10), main = "blue-yellow scale") image(1:10, 1:10, x, col = dichromat(bluescale(10), "deutan"), main = "deutan") image(1:10, 1:10, x, col = dichromat(bluescale(10), "protan"), main = "protan") image(1:10, 1:10, x, col = dichromat(bluescale(10), "tritan"), main = "tritan") image(1:10, 1:10, x, col = redgreen(10), main = "red-green scale") image(1:10, 1:10, x, col = dichromat(redgreen(10), "deutan"), main = "deutan") image(1:10, 1:10, x, col = dichromat(redgreen(10), "protan"), main = "protan") image(1:10, 1:10, x, col = dichromat(redgreen(10), "tritan"), main = "tritan") } \keyword{color} dichromat/man/colorschemes.Rd0000644000175100001440000000330514233726012015773 0ustar hornikusers\name{colorschemes} \alias{colorschemes} \title{Color Schemes} \description{ 17 color schemes suitable for people with deficient or anomalous red-green vision. } \usage{colorschemes} \format{ \itemize{ \item BrowntoBlue.10 \item BrowntoBlue.12 \item BluetoDarkOrange.12 \item BluetoDarkOrange.18 \item DarkRedtoBlue.12 \item DarkRedtoBlue.18 \item BluetoGreen.14 \item BluetoGray.8 \item BluetoOrangeRed.14 \item BluetoOrange.10 \item BluetoOrange.12 \item BluetoOrange.8 \item LightBluetoDarkBlue.10 \item LightBluetoDarkBlue.7 \item Categorical.12 \item GreentoMagenta.16 \item SteppedSequential.5 } } \author{Scott Waichler } \source{ \url{https://geography.uoregon.edu/datagraphics/color_scales.htm} } \references{ Light A, Bartlein PJ (2004). The End of the Rainbow? Color Schemes for Improved Data Graphics. \emph{EOS Transactions of the American Geophysical Union}, \bold{85}(40), 385. } \examples{ pal <- function(col, ...) image(seq_along(col), 1, matrix(seq_along(col), ncol = 1), col = col, axes = FALSE, ...) opar <- par(mar = c(1, 2, 1, 1)) layout(matrix(1:6, ncol = 1)) pal(colorschemes$BrowntoBlue.10, main = "Brown to Blue (10)") pal(colorRampPalette(colorschemes$BrowntoBlue.10, space = "Lab")(100), main = "Brown to Blue Ramp") pal(dichromat(colorschemes$BrowntoBlue.10), main = "Brown to Blue (10) -- deuteranopia") pal(colorschemes$Categorical.12, main = "Categorical (12)") pal(dichromat(colorschemes$Categorical.12), main = "Categorical (12) -- deuteranopia") pal(dichromat(colorschemes$Categorical.12, "protan"), main = "Categorical (12) -- protanopia") par(opar) } \keyword{datasets} dichromat/DESCRIPTION0000644000175100001440000000175614233753076013773 0ustar hornikusersPackage: dichromat Version: 2.0-0.1 Date: 2013-01-23 Title: Color Schemes for Dichromats Authors@R: c(person(given = "Thomas", family = "Lumley", role = c("aut", "cre"), email = "tlumley@u.washington.edu"), person(given = "Ken", family = "Knoblauch", role = "ctb", email = "ken.knoblauch@inserm.fr"), person(given = "Scott", family = "Waichler", role = "ctb", email = "scott.waichler@pnl.gov"), person(given = "Achim", family = "Zeileis", role = "ctb", email = "Achim.Zeileis@R-project.org")) Description: Collapse red-green or green-blue distinctions to simulate the effects of different types of color-blindness. Depends: R (>= 2.10), stats License: GPL-2 LazyLoad: Yes Packaged: 2022-05-02 10:08:06 UTC; hornik Author: Thomas Lumley [aut, cre], Ken Knoblauch [ctb], Scott Waichler [ctb], Achim Zeileis [ctb] Maintainer: Thomas Lumley Repository: CRAN Date/Publication: 2022-05-02 13:01:50 UTC NeedsCompilation: no dichromat/R/0000755000175100001440000000000012077701100012436 5ustar hornikusersdichromat/R/sysdata.rda0000644000175100001440000020667014233726606014627 0ustar hornikusers7zXZi"6!Xk]])TW"nRʟ$T~u}}XM;0 Z2r_lIxŠ"*+n=`]C*.bddo5~V>Zr04@mHÌ >p`0l #jxc=F-~d@ p'(h׾3/4rWvHI**>!Τ\15>+^r"u( -NfInqQ QP]DյA~@; Sv:(Y]1o(X 6khrC"rԏ}{bm xy?; chZE<R q;eڋ+(S'}@%UDAtb35lU/+h֒ (.[b Ek+_~KBy`R}Xs7g#޵8m~ʓ5h]h'Q.HA:dDOHp=8&K˶8pQ&m6džA|8:I~=s(# VhR9k2#O$0%ޕma଱\&Wr?* Cw9ȯ˼pRa9"xQwKAZYi|E2CqZy{()"G0 Y.DXyur!$ۺMB}=]Q9APm93Vxү:11yQYP˲N ZB}?07p>&obg{Դ$ӫ3l&6#u&M7XΛ m է6 e!MyQ8^ ÐKpe'w5>w6bH!TWUI&`YA <1`]n7]Ť]vm-Yw1^a .(24{-VrwRS8 ulJ 6 |/he1I2KapQT Si~Ї< siYXqZшqpՇ w 3@7Y'._4&]w7)X%m<t;5>xwhn$M1 4эMR!Zx.uegЋ'"AcL5=/S}|Ȇ9!I+||<3kS+yr|+=yCevb9fYH Λŗc -Q?>dlNTJtYes;EZY*ت0tQL,>X I|,g:4䝆[0doWW(!ɹRJ_%q3^(N0Dhj)ԟW lّ ?&+tАtE=FT72$Ͱc_l%;4Tdۺ =@88`i+#ArZ! -m<7Xi3gc*?39YS }|Xk&yë>ɇyV;VَDO'R1ǐl*ߌn*t!%_Ń?d հ38,׶QcQw'D96@"^-{*yGCaޥ145 +Vl*3H!ぉlT%MSMݧQŇYq@=dcyg}&=:F4B`9'=EPG.ikg1FG_Ją'5KրQUf[ٖ3݃]ivtܷ~ x3 U0R#> A牧&\yf]8\- 2iz̫Y0 2:6=Un*x<~nH:~/qKءBSJ!0]\:d{S)FCþЦ w|S $B©We( ?,*̊pU&LgdnP|ѱ\VzZ┞prFufgŮG|ZgU =] 0t՘GXe3\.:Y#hp٤j9ǻ^+5S_1V^Aq&%j?vR&6\L2u,!0 q1_:Cl\t#KD+ݍ]f44}tKo\ > DvelV6o.gݒKuGnyLiP7/! 4x&GdXvG: թ#n[7BQ`6vpSM H {isQxP'vmI&ߍѰ ]'L|`tAeHo2Aޝn54gDT{x-MM~Xh,uES?cf<"iz=?jhQ }"#!?"h7s 林h:K{,(Yю6Y3^c]il#yKֳڿ~dZ~w{\;!RJ{“EUiMÝ&IɶR5iܩN[b Ȉ'WqՄzX,n헪)&$TGgYbCm{ۡ z׫ԂpGgZ++0*cŁ[ؿ%{ /l.D4XPwH1O,T w` =P[Xd'\yii>ԏh. `4<5[:?+ PdtNPGg tq"rݻ~]ƽ`gғCL֠hI߶._jy*SYhH 4YUR6 !R,ngFCf(5XG {7@0RB?]T/i\掣!ZuZȠt^'`^ܰH=YXa{h'!DS5 &o2';i4&H=40ӞKwW" ۝o%W褜ajU ,O'AFW .Fމāfq ^}x:@2vסR2ݰɝQ4C]&gJ<25L0$ܣ^Myɇb><07d y4y~(ˇGc @s$W!rÊw;> 1gSK`ȍ:Ɯ36`oMu[r ò1ךlVdҩ y b7 u8C<i $0sNu‹<6: ^l:rWҧYG>PB;@h{Ձ)4Sլ͛ƫVhTG[ab\×/axcwLcؘ ]V3/9hQodaC`षr0] :SN~טИ5-{@-aoՅO+Ӊ;@iycc/QIe߹C.lmA ~R,J_7`JiNha74KȚ^=YGRas2X;|RK.l=ڄܑkk4^o6BK@ր ȽQ48G4| ^!D!&֖r1hsAf@KZec d)ܵTsԾ%z0L6KWcV%1Au@5k=b&x\\78 XS*^^/K?l3gNyl61HEҙBno lL],,3x8*Vן}%9}lYF!s~ ״]_bxAa X*5dww2Dp] g %9)HU#|}VQ)$9Z~ 93,i7UtkĤf{Eg,(Jgl,˛ 6Aoo}cP031_ɍ{u4ugZB #Χ=Vs~xfDA6K-($,2y6LR%]Ajn?x@6?2/0?f}Hc&F+g03,!$"yFԱV9REj>2 ]==^VZa,!-K{wմ6 hw :bSMXdJXB$jq*zf'l/|̅P~$eV&LΕe]ڤص/N9E$Lq"=0ʼnzZݧV*(Tͬi ] `mHuǹB؊zLp~5ὥwus5A1oEp`c+9cnabvcfs -<ǡt:DWTB,#[X4|6YT- UȕG%9UL8 }&u_|*UHMK9`m  g5W0vg)),SI+1YT II=k[[+$\~c}.64'/F+l>1_'f[]DZ`9&\gBt/$)y+ð?8hi".V*dD;Nr,3ل ;$2XQV :G1 yF8 \/.h6 ?.[nz XJp88t͇2ZLcpuahK&}~& fUI!y(c2ʨܜ@'X1D%ɮ s&I+c+Rz7C+$Ȅ7P;ZHVЩ9KQR۶+be mc*'bCDu&}i۴NߦL[VgE,o׃Gt^<%^{r(z [z'-%|@='![d=.jǚ L4 9YBkӜnf$q N'&@ݲ]}[#@}k7`v_ -~>85 JrMR| *LXXo^pΓJsJ;ژKuqF#:GF|̵Z~acrѷ-/o?N%62U :9L7G3&Z{x\(m~Aeㇻ0PSd0/&4e4pH3\I`u`9A;`;ZE" d&I+sPMpʅqfھfh} hЬ"1F#.fLgJfK#˝[Y}W.;3b {R"k+cG "Y\'Ih˱mL8Ze/|o%%j'?|mFX8nj&pTaZ\ %n}xE\ }g n+]/ zx3rx/vw4B9#1!bΙ9n +R_<™q_KO!&.jIn4zmaZf=ڀSק؟{2\˟Sn ?1P!~Uw:ǏI -!*Ds @ $W60.ʅ0,S/^e+ഭch` rrGT#z\J$/[$BKҵN+( TUg5)zVCx i\#+Wgdae$IJv+ϛ!F Wp}'F+'JHZfHB̂cפM Z\f0cCvݼ? 'c^kD-054GNYߘg;2dFU )XBOn!e4cuHr}Qku-kp4+$ h]' 2"y#Hl7 ũA⠪TJ[s_;;ϡΕ4lps4LM_K$rr9L[Jq:`b o~Ԁ6P L{hyAX^Ns7RUJ- .!L!OQ'RBFƠ~$<췕4*k!X $sSٗUy$b ?{QC"T% I-w s [XRc_i"™.8;]f1a$qʛwS2`[^T%bߘuib (I~'P,YVA!4;~ionv㱝<zVDȟ^:>#M͈Tb{uvA;S&LZ ltЊfpY# xaN XCbL+3n+1ȫ!NGL|\^ (Am iZM#D<FMvЦ"8 y[@ O,>cQN=Al'jpNqul^1A$W$;Wi,E:q!l8ad:ټȈZˋd[8z%oYE`|xH[48f#- iԧօ?,k.''~Y q9ٶ|m8H ;5ʧVq=3 :"RHTIXhhK|eȷ;E1pU+VeӫK: ETc(<3`fQ(_>rB D9--䕔_}䰬aƁ3@J<`(/O:મޭBIem I%}gɦ9lN屭}Un ~knqyy2 &Tbu*&k'M?*d& e4;Zݼ^n?j8rOK2\ {NwQvo%Ὓl]&#փp~MYiꉶ<0f]_!V]E oh1ctnP.n(Q%xr 358&aR5KZPx ,9an'D (4zg`0eBfcR[rn1KƯg% c*4hL5xn~x,rܒ}g )~pO c ij/$Wä8=ٞ^FVź5fcki]9RQusv垻* ]1<9'8:5դ'Xmwĕ>jϘ̋Hxrzm@گ j5:s'هT;#*̑槸㷘~wz=8=69hdlmsR{7Sޖ{G9ԭhzI 1_w# VL'\{TIutZLӁeJs( ^n@z8ܤpqTjBW )0ul[]Ţ1Wp[v67Dgh /}KZd!F]un.<@Nz$Qm$05^yIu $OPƚ"IhM;W]*f@ ؂{r4":X6,Düz\¥2_3 f%> RxnL=GHЕψ\+3j(l䪣ݝӹ+mvӚ-a@?b&{x4 ϴ/]/f.D,roҢ!F{> -K.~;=AQ9$CW^]#i\!JES%ڬ>"՟"vGP÷4^fHC_lm`Qcw/'v Y-p*:!M;|ugф&#a!}[6h%;ɏ:P<6DAe(_(jyd߀WӋo@w5s^X[?⍼?Mu ca=|{g.sެO`3ͽsio;^=ü)gHZm4#Ck~<A)cϐ"afWky8"bw#c!!c({ *D?NpUH҉[MMʤL(r&@An̒4- Ob\. zO=A}|~% &Gh$9opJk~ tq*19UgD-v@i}Lv47U2X >prޠ8_ts(vm4M`V\XYư R$5wYבCǿLĹk3yPx1_EQ5b_] 5BpV)lRVU+-S#Pz8sy}2\Pa PI\QYɼ?g?&U5a1KU*gu-ZѲ`-׹7Zr A+*8%W/v8xRffO.uϷ?k9XRripl`o)-.Xՠ_< nuP# nzI`< W#]2YQ4~}mnp4Cy4z( ,zP ©cy6VxH*^0ĜQï1J/aC\GU:K?5/(HԦԐ/LV@b}W16gkT;0 oIz*+9Cq|hfށׇ]!8g|tڜ/O*YG|d8l̡ L^rRuhZJGsb:Y73b$awh*VqdbD̄TXYYtCxM`싔[b;DHsDxveW+\ׅV┢:R& H9e{4P̑ެZޏ><)0ٲ>hdn4F!C r P6ǣH–WO ^M)ȱHxGb(c+؂Y͓*| Grc။C-$z:_#Ff܏KGɰO~zUX?ށQ]PpP~O8w%Շ9DG7 ~KUu[^-- .KdY#7{ąХ5LX/^t T*Iu Gn-ۙ%GBiflF^P\N#&f9@t1{4wu U $颲j+ymbz'B\{~{.+SW YU}J_P{0C eV+]'Jwr77,`hwX A1gI.M5k_`گ 1. .[0L:<9\Fir؞Fe/*b?nçF7`5ߪ Ngt o{.xiq;B]{^#*%gD2j6%mS$j1=+4KELOp 3Apat8Ae˗;4dx1ɳ_|tqŽdC閎zFc.5{%,ƛAIa"%6Vr:A2"q',^g#qK!wтYKk}& @h!6RQIj,sr~oaP7R~S"9}E| S> k@R$9%ΌC< 蟓 9/d*y f&4R9Gw1&hޚ^c*N(g3'w[{̴<tTlhrCoABo]46a6a`q!Ğ36|2&N)¶!FprR,Q@+dF Wi>*0`XvStށ5:pи_r~g7Pūd8\[qoᣖfVuyV E3G0缾D;eTw2gS=d!oB?kVl\ 򚅐MRm"߹86ؾ+c1M7/ĕ;1SޮOKΫ2txTr.N;DQAř>dNuS]S z|c9p3T zgp@.!mU1 ? { Z v7<BCу,P^Zn0 a#_e". ׄZ\|E|>]<*J]ӪUML: :Y frhPCV,*SrFċ!,3abL }[ʬK6`RT'm,?Ur @DW#un(Shqs#!/j06T%`ݙM!G:fޗh]C/n?u߱gK>ՖE`+r<#spٴ0xOUr [Qm+mY:$vPR]XAKQʿ֠ mHvKt&68VFG k)_=P0>πU{I)c`޸Y嗰oI?İ%&="ruW|!l}8䘻m@K63! %b7 '!T^=^D(`kY! 看#P0P =͊zRPEAJl#l>5͹Πl" rz<`>c`3'<4=Ի&DLf }}xv[$#Toc'+ ['g^'l$mP6V#IA*rr4a=&3 WP0LD(fr 0 C9Xpҡ yPz_R<`ܫы[nbp+?PNf^T_Vx0D߽gA.}J\]bDRcE)op11=$6e!LVU 8ᶳm`aٿǙ6YqISC6>T3I>a[򒋓>}HTΫ*Ҁ5Hdژq3m5#4>&{jc)En8LugM5Jqġ7;Xpp g5׍6&='_KC>ws OF/ b_ BNvt h"4_5o-g=48:BrEn80vkQJ*b$ SKXU9={*ÿNao&+v6D0=[o_t\-8.>?8`gJO'roQ!Sg3!F՞ |M`_5-*ԩĦ콒ech lهefġx<=]›T*{~QWzKЭÈ Lv27Ć% 8"Vj.ŵX-S('`?#:kF19ZRNB 'W/;uT0n^O55g =]cYDM E|o'DX~ЙPx 9LM+FEY/~꿐 wd-Q rw^.)RvDScy>[+$xX䞃Nuy)YukDL5#vhuFX&C!d7ji$d߶ID}R)r=T6:5@e-*cŽopAGY,2{V5U;ᨳdF4$sYj@u`0ފT*Ϝ. Zgfy%2GvNV5Aiba|ZS NQNG4"?YM- s@o<[)%0,"\asj=JI ,Pĸ^t#R0!cK[`$I~ʃN"3`^;"ӴFTyg/&3vDŽ'2s I +z7ًys0xP%dΞ DƝ ?}9exo>xHc9\j)U$-#MU:֘oN7lYy~<8TcT$kb]9uT, TM͑aw4`@0PIy4TvE0i8f +ON= Pg\$8c\p0r&/fΘ}t ,abmNG73*I?>t|`Up:Ⱥo~M^Sv둊ʹw5I>gCߞQfO%m|P WnFĽM4*â2Bôt=E[:;$#V~Uζuf?&B N\QR?nvmwWyJZk8<ߗXJ

G p'ωa|sD񨦒_:u~ | 3ݿ?W[!O ;y&6sIQ-SeAY C- G9FPGQ|y҃Oץ 2&8Mh|9RV yv}&"U{ۼL9#1QJS)29jIy/̾K=}EeҍZn "?Eԕ-YJ5C s7j: -i4.w:#/'JakyɈQ=dnRV Oz0)jjxs >x40;G7wrA ܡ;?#71oA0labGzЌC/A-!=5|_*+jk8BG&~X LNC Ei yNm*6=8#HDyoxҍ7vzO쳞\@TN+Ȱ^/yLa̖92>EУ .EuYEա9D kEOc8|BpO'}"|%uzUNWQ "s_C̸25+G Փ۰$I}yAB*UtHѐ;[W5X[)GQ+ѳ{Ϝp^siASsMe^4݌H 7HuǷK&QJcƹBi_K@/;SwK!K1xQGA++Ku3Dl++m*/,;ҡ.2ż>B0`@' :oR0^El{ށX"aE_Fդ4NM# =WuޯQhtB)&$۳qKu^.c||!ɛm\GN6j\2_ UL@R̳vfsrMhtʚ\ @^lq ِg %ޣl@y0֮fA_yhI ++B)C^Y}SK FѶT)*KT }C v#O lTkCzh mz9Pq~l[u6]NQ O=c:4de+fk&ot ObОݜEPr;2N~XgNJcۘw\ Cg?5{e 3 %7H&W _nd#hKOKXxnL|2u^p*b/an4w:~.n^Wh9C)plEYʍY!hBd{k~\EkncVj{1{oFn q&7 np}XLbxzc~ǏA@ݚVHʳ3x+^Ջ-q̎BH:©|*.ɷ6f,7ayT-4FKy"12.εoAhE@yg@kd iЊeM^U'kȧ'-絢844{ A'qj~4r1"rnl1o}\[ɄR61Ww>ݐۤlU`}@޲A'vrWyAUµ{D Sm m5FG=GDճa힋3AlI5+C;e[MNI_A2@&ԋ~#*ޢgTz a&(d "$&'^N2QG7{U 6[̳Sh&CG8b2^P3Oj+۳DR)aZi5Չ-4~4~ RBRdF maq[L"H&tA 3]qWk(򲏐iǓ')ԝFf}bTAVB"|*\sY8 I,q!lEp}dy+GʗyjG80WO@ Ĵn=c_NX^F|r~aZ Qy [ifdhcds54d8ޱwT(b &)|"NMJ4o^c@nEÓ%Cqr+w}w㯞pۊi 4U5njy}G*kh,[ExK(!  _Bx7E^MYw* wʱ!Pդ0ӴLUi' 38a ɤt85GIVkuUPYdNc Hp^/]rvz7_}tE Zp2w#g+ЗŧT8UPJdm8^ԚСx+>{^{*huf[ky=J\#l_f(:;X?-V&HG"߫J!YΏ>(Tu,XU}qL!,&WH-!gSrtpl_KUϿ.{gbRl]>37bՠ]x`D-W# Bu)(Kk}p(LvilD߼)C!y  lv"!NE_W,/쪤ֶY|Ls+Pc?vJ47/LؖG½r(=[ hԾ&@GD<=PUzJp8w0>Bi=vFIőmdȴ7Ķ4Ii&g]d#Ari="y "zib 0@>N-MH!3kO 82EzOJS>/ӖlTW-o0~ c=@بF@hm)s%Ę>D~R$R%/wEDuttQlCgH*n2\FdPs!雏Tu?XEPmB:[l{),kCx{'+̮0BR&w'̓`6yLb0m/7xJ:QtvNjE C}(uV f? tw]WyB;U=0XMТl \#|=@! Vv&34/)r>LfFTA%}}^]a |2J*G<%Ǧвf }p1mr{Ÿ\10QL"_}?k5sI> *XjgR@RRW2f%&kvF-7NT9S&0qKE~=߰$&D_|ܨbr5U4sR_(0Vx]iV28!(])Ԑ.9Om306eN&8 o &U |r#OZ"oqgOH07b`AS"I=@;k$s˕1Uj[JnԱH\lYK+XDTjN|t$dPӄ3 CxqV0?~Ŀ<#h$_p`ѥFa;H )̟&`bc'pZM&<2ZגratTL2 z*B `a!8QQ p3֌&Q^  śA>|N@}0$H%Z"12D^=]ej`j(2̓a^Cmp`.'zgނYk?9.tz$f65ֿvvdTm@$7}ʵdZP|1GS'xEc Qƒc9rCVdGjګ:e>qBJ! CD,[mZ]&a%F$)=uPȤE~+tYy,~(_.E]Ϭyqtd{?u%C(kg鍭Ъ:πP3JL-4O|^1b=Y {C]z˻ӼMN4'QC Dݔt>G_ݙzo|deϖZbb4| #FH|V遉"Dh\ 츦7  V7qKeMRG:t+NWNvZ^O^ǂK(M yq`A4ȃ-a=DG0x,;Ij8vJuZ-/ WUO(ކ'<;i!jq5 6'pAnpKҏ 9J #n&|0hX&J_Ȇ3fD:ΝgL֫#gTF,$Jw}?͓?mMɒL?6izU.: ]NVsx)oKy}ۏqnMީîqP: ZН*1f|d1FrG X^ SPC?bȸ@#2HyDFJ{ ^y=j\3ꄀ pOXt֓~_e"XW#k҇[^yo ?NgcZ]cX/DJ/g*5)G;S<8etP A0MAspd|vw3hegi NLj>=cR3HέA,ŌZ'=''۹Z(gQ}GU ]cӓc4{_k^ MKqFo&"C^ Yrf.m1VT%:A$w\!h`v=n/ݩ #я}~Nqu:*ƈFb Q+-ky*橅I/:flO{Lh'+S>]o`uQE}*sn|rAp)}7h|zGk;DlisBEk A-`(EdX+;v3'i$82;X}Vk;t^Fh2ߓS jaʶ( ˋ֫A)@ȶVnm8rvFMHN(.fP-=7.f-kU1g7n;IfӍ3pBtA! "hLCcN71LS0prGoxn?I@ړ]`]a1H3kLtm@#,#>e$r߄ճ 2r\۞rSsdK,2C}?Aݨ';B3pl믑h!knp^W-=\>ujbgG:UŻԛ(0O>Q\׮y,á XXᳮ>#댲a G۰4dokٵzcC&yt}_XkNnk+<-+j"Qʔ 1_`Vzb3֧Q@Gj R  Ҥu ̬/h9rdCT'-I-k؝ K W,lsp]ܥ؁"m!{w⛆y|[r*ajN'_s)9-A 7$yt͏S ql^\Q.)MJ/@oqwT,403OB)hfEUǃQ#ԕooֱuq2+-TZ\?I4wUBPzv^h=WwEWAvV+TYR+8\.>(V%;5v ۇY qBtrLhjŵ}oJ}R<ڌ *UXoݦ&>:]s\] ?HUAhHwʢ[q0/Ɠ'I( (ISbke* ؖ4%>hl,Bي<Ֆop1,aJ ֤xOLV'vhwq:_d>|[h[@WC7u.IcPn<Vsceb=͍aI_Ɏ*HUIw0L rHj@!=B,w1[ǡ33@%V, S>"TB^s1d+&r!䞅|<$-՜E#_,{Y ɝ}uQwvཐeKWvFjUhA*2HqHên?sӪ%ʔ]&=I37aގ?t,J#Dr O]Zw>c; tO)C뇐0 O;oUcwEC=Tr r{n3^5*1+W"B9ٝ}s{lXf4*aWROĴ0~.vw8KXralojԐARM%a-L61M @Fb5'3U.%o=0񑫷-M ;[bG+f }`;y'br>8uߊcxv w/]9 ɗPFjPGqO06~lz_R$siFpzD7zйO}ŖDL)qGH=j5ohDo=E W 襼M}4xm@6MI`k}+FFr ƮBe0}'mveDߖ(kǻ邪eI[52o"@q!!ͻGDQ{.#I(u]?{(,StҊC؁P y.> VZnݥdzH{  >_1 mB͍/`N'$Rs S1m/ zp [織ާʕ,wi+Y ^uVѹB9p\r(w# UY)M?P0f$XCܨy3]O #޿E[5KC4 [Ҁ:.%ClR,uJIΣ>dxbٔoY`lo9it}yJ@\fPjoLh(~ldט1H|R=;wD_Z"qOPeۂ2CvxS[9,HC}J\qXw&Q]WCp02} -(OU~Za%be((2s g mV7n 8pOM[mF ]b>湆TnK -;|8ބ{5.&+s 'BÿLR?mo/)+SbX7=aDѹ-e86ֱ|\2#cZEL5Mģ:[s@9)rķ5im\'זdx<$((\6OL!: .%nJ8Rne .2&7OS>$L\i6OxWAQ'5‰SD>šfAbq/?L5(\8&CO!lD,QlLe,=+ =VAc?tzT#)}֡hG/c3cX,81i Wj(ޡ*al4r~_wb=F0KU(@)X]jnz=J|ZUy٩^PPE`bҠ2h 'МmytnK''ċW#ӷjbxAd,˕UUpB.nk2~jߦ5J#$ u;0  ,%|6R={[pOHJqO/4=ŦԘ󹸂lK62""*8Z҂өa!^XG%w>glз|1b%k/z,Fۈjz\/~,>^C0w-%EՕrH;NP'HEIH 29b8(@ k+ng s7⟨ݖ [~&0xNB8l({@2k Qs, 5/S w!|#(| vTKsC6XPA7JǮj}k4J'<P`∜ | ."sgr|hajNt4X,xERfKVzI:8%c_z+3?!f3!$8!>3U4}2>ʹ&z՚ř M`ª`kt0[GepTAM6x%8e~k-: O{PNbqۿCIA ݌JEmJGVp`~^{n]f؁@ɝ*e/X+O>+ε#77}I|(kiՌ1;NSO<4X#Kt2|WTP Pw|ai= ?gŞ٣؝4??Bv<}@)D1Ś-R:@rcoU4se~@gx jY'*< 5m= KPjF%w(tn); ^t؀L2T{5%Mz.ˠs4G@ci۝tM>dp9 )uQ=1dpjW^1DӼْ!-'u}_[[[Z*S@rSw8~ ȷk^iƦ&+7԰8L a3~ζ1b=3е z$vSy7> }*83&@*JoďP%_F ;[p:y\q&?cN={hi.o 0>nx=i(bJgƒ>AvXk|ʽ-I2)an2N/Þ'-Jr9C.(/Pyg! fO7\P+.:lIZ`Iuƿt2@ y GO}`~]#XnM\)K,~Ob:(ջT&fz<-Rd\ز K_"@WtM$?mծev-bWBaX\rzU@~]d}2o ?B;r [&m^3kzT袦Y?n.?aqx3 )ެ7wcO@CEH$CbFr(/Z~!\lVbB> %8ͥ<{@Ya*q5j6!:1@eܐ"E/o)5KL4EV k>>){˜M Řυ,:]%0 ޛv@ֆu}1{WUFMTUyCTڭP!|\ө1SA3‴34b_yQkwhѼ{-8)Y//$5dJLiu $o'o-aMH[`'@SMeUY]tF栨j'&I~h2KkuqZc}0B>8>1"[䁖?.nL f\2wPH/P8M\K>A/S Õ_S[QvTʭ&?$GbUr*xj@=f&FIֹ?yl0]S(JB?5lw5M h6^#rH1ގӉIo4 IX8ey3 9zF p4_wtiسK ^8-^'a.+\2RxP@C{yԤKPEiF)U3/wVE; ;b 囃YO;N>isTʟOӪXRZ!kxw78u%uj|.>͢գx" =>ejUKBc̟VcC}.M{1YG݅ܗ';m|& r/al{ iK G#"w}&RN0%k4H[#]ލ)sMt2J'!2' ҭ =.{~MtWgnXt<?OSYL貔%?.B3`g1RS<~/sCvJm`>]>Ƥ( y@~?>=L4Ȇ=z*'ɾ%|5b,!!'AQ7T3u 6','Cf΋D V!"9c$  v xBW1ZȜmSOuyA1C廍}nh]0Q3_-1x23wՂyW*Q`8D![]} pVww?-pJ z(!U a3:+^a.UFx0B;s84RWJoE.<33J[Z*(K |CCL_wJ` p)A8;&ozTalh4o7Cׄ'r)W }iAԋ;۽yYLg5-^MOª yWv蘬(U>6HH-0 5>ջ6ߚ|Ht)w >:u[GC&6:L2+PqLJj^,_ }^e٨( #NF4QWFɧ`ڪ1TH+-ɽ'3fCR%HvzIcH)'rzrrpY(8^ǥd &ըŶcղ!ZFO we}i|2؎5 3 i2`.oNTWzrraY^}L#caffdԞ2eieAz bsZf|hrFɪYY16(YGj׿-[«:ҐÌ8?99h}nÅX|'LNrv𪿹\FܧX&ĎqQpi :xZD%q1y0_QJ:u;. I:( *l[0s 0 np~nLSE|<;↤٪H-Đq@{(Oss^֞ 2HA:ʦd|ЀiqkUU!.eƞM ENoh:WӺz; ;y~1B3FCNvkN?`LՂ!yYu'23ewG<9]vTq Qn\oTfJi3zaA9̽}?\cw 1HYU umF-D{D12L2+PӴ>rAYGp'J.˜j`ט@uN3GWR(mPHHl?o1 "0̑RP,ςq?(&u韛c-cfA3ܒ&q@w)ރ>/]YF|t mk)_]@g{,|=R};j8PO/OetLI2uYbW Ծ ƂqFjgyf;6z &y.lzC,![^\[:I.>Hbb%. VPo_(-p9~8_9f.%ёDO5dS3_gѯ3 }Igudf'{OlTM;^&D9KM"N"u{`SR$FRnˢ֏BF%oFgs-w bD vc~L!@ 0͂A c6D Ou8Sqa+զk r }5"Bqi#H `$ !O+ZxC* bz]f6;}}ǹbh_DVibeȡJ(9jbEz/.:SeFGm9Ҥ7P{[fOw R&[0jE)Vljy7|tR1Xc%(>4~'PtۜyΜYjsL}4wpتED5OeNg\xG>B17#Y`etԯtt?pgzSO|r]B)ƄajxjrKؕ,fS^5 HCww6mr Atbe.ӳbrD\BPJ TJ{X^0Ɲok .z{uA=QkVɳ;Zl$'G'ѕoqk\,&4pBbjAPQt 񗤒_ lۄkƙ:|+/9cp"|@d@5K-PZܢk.K6䚰9,?:I+1a w.E٦b5 9 qnQ#{DuJgO%`C?]jG8UL3Dk:j'Į5ThrP ,9yLUks <캄tN>[0\@Njfǿ$O}_mJ,)2}("%.ge{ a Vc[L~v@8-`PmODV5ZEII[{b&dc^;$n;ll_Ygޥ!1=ɹ+k8 蔲 L ԍc8]3dU@ş*q|ʳ6L4ől)V=&8[@ ΞK'ɭ0٦ sܾ3O+@DDPytPi|tJ06Fٌs Y WUXoTHtȒCta  W @ݍaE Į"а6JBx"Mk z7mRW#`ʠ=ގ7]kBd R$gJIA]ϲzv3P^>;ڏ84$j;z%H!RO^URBԒ"t7:@0'bSp) P܌nuZp"/:ҩ^RfӶݬ,>*V-+Kh>V흿bzD[ }J7#iFvepaӇ5/Ps%ASVC;WEv|K[1hqʜK]"V B`G,̡L\nΨܙfv[eþ%=t* =1PjpNEA~B?\>SP,K\ٔ TpmCrزIf=0 ķoZH4~/`6BD}_) RU8*qM#jun1QVl(!LSXj`VompBq#>E){3- qu V򉕞/HC X0mu=@@,WϺnŽ=߫T>ն`3'a?&t{>D@gdiQbh񍜷/KY۠L'L[LىҢ\,;goTvYiL)֨ON]VZbV}ElBЮpgKJC㽰^ӑ0^K _ENzFEחi& ';|5")sW}8{EAߪ5S-0ڒ jUO]M){芙fze/>[cC[z9= n#w4upsse4_dֻ-CG*Ԧ Ϋhh@0O`p7HvqerDѹy(NHqI 8ܽAfv6#6wW֙|ĸcHUۺڡ&i٬^ J@U-W6aX ۯ>E2dmMudK/1^:FG"O>Vdpv>V9&a#ʜ"Uuc+Hښ۽wٴ|".\Q,xlǟUVLWE5 ӱ)0o*l_'.ޡ k:|=dSIh@2⣐JDآkxLS=Y/>$\֩é+,+bRF}}Cʺxu3H<'0·߾};4KDDd{˒<& j)0ת.RYҾ{38K\S jN)yp?42Qerd'NIJ֫!!3bKmr Z-VLzo)Gh٘u2mn@ut3?뮗'sd=N| ͷW+rghC@2N}'IQ)X6Ur;Z PPDv/I'M1_vA^q1bX*[ֻ֧>7T6ETz1X]Z=T !kVqYAՕ~NPU~2Fc+jEފN z]PTNrب.tԅUoq͘՛PB<%H1-b6#kGǬnur-^,ruq(@2Ȍ7ǙK!dsf{]Rl^(oڔ(8xVPbAyjf:h0MYEi Ro8k,2 ǟ]爖OaZ"䳓)J;^ZHMQFb !/%C 9f3*Q"ˡ+XTeFN2o`H*A1[Uʲh|i&aj+)FPqg=Zw"poFJ ąl!Vj)CbUC) 5[]u(6KXEy;c",% q tOyC 7u)&:N ۴WPe{eA |2|+N Zaa/@Y E@͆ƒh[pS?X//esa_y+7 7BPESxk ^4'sLFPAO@zdL N0_o tJU}*v!f'JʹHƠFc !)? Z㬘 D(! I BΞk㢢\zqU2FCaG+ga^E 3; ݹJKtnz: Avne}B~t ˺^^;+Ò~t(  $GK(t k@Uҽ9-(S׮tx:#ke* c f!k%^+kUf8e,_) 3,ʉuP`bILe_C~-a3Ɇm^Y˅_!܂#sʸ\yWD`oxC뛢hnCp)SSP% F$>H`l KX@>F'A=ZUVy $uqrͻEwc} [1/ (垝[;AEw\wq\`WzԏZh41׸DD d˼ۀ㼁 +co>LAb^o[s7Y\_]>P^J}`z^luvhxUoEMu^281ӣyl1hJ""nJMRi of/wP:Y2t&RL-4> =t [5I:ScU0OhoMB *d\1&6 bSX]H"l¦Kj-uC$"?=#..E4U[ %Xq*-pUJ=RF]E^,$9dMllFꇈ0N.8m^8:c(mv 1^R2=fi`q78 s"52k=|imXGmVl:as1>,"(9 + 0kOлn{Mx]~/yPbw=4订{ׂ͉3 >Ep>ueaZFYC|*[8x7WTq؞}IaQbT\\qjs)龵a*aւe$ܘPUl!13^g#iƝmevEVdA+ !y/y# Y V22#$P ^׿<^mf~iI&ZIbc璉>3<"ruw&MX"8n+ԨKsOɳ0V'hmY+\}ut੢6(#j+cC'=`1ՈUS tn-%:>NFsbdVJE)zz"sdCFm,iT٫R43 gp,m@gm ju;ZbWOxWjJRb'y.l,T7gZ:>Tpw~ Sw9X3͒LL4Fo@o_T˔v~A|eq9|5)ixԚQ } Q ]м&I\EM(ݶ) +"o+b͟V-״\2 \]=[zb #Dze("#Lcv zJOvV}Qz4_g<ܕX̅MP; ia_yP/Oc6ed$ ml;h2՛,ԠQ%z`1:UFUˉC;Ay+;/H@5p΄券=B?s u5 ^?*H-)L*a`c$ {|K "S7iLnȧloW*4-*y0XE3!cs֔KP=F>!#<)Y/ݴʾNG$.wE*7` [eplIke%-—mP\,BuՕ, )/RSE]W]dV0hxpSՎwX6hĶg!Uq=j) {mNxdM]踱1k]I GB8+l7D xΗbHDžGb?C\c?b:Jș)6gOF ksWe{l;eų+Vx/+{f#[3@į2#[~ǡ^m{'rxlOrux SG"KGdBVٜ cJDy҄ EX|C]r<{w"{خCź |dC30xvqRI'XNR%ŦJ8Gbr aFpJ?o)F`v=\\(uiM2$@͙L̀ 9"{QJ $V_5%U(Xc/c׬8:͠.|-TE8bb% νQ<ڱA1TJd?*Nhπ٭^زa,HDʟVCp?"@fJzm( %,y,Lx5yʾpg lN6rjMh*  >rwkP"]ni|=0zö?ŜFl9ixjbh6VF#߾z:Gpt>m/l\D_뵠#!j @8/A=Ae!hGOh˂m2gi>ō螃0GQ<]7j9:2޵:?>߃P{)7ZU^ȞGzVS4w~}p Ѭf$ب.47n(@ޭ/џ ƮCn|*|SDAȹB247{"`4ovW79_g&_!^7,KDwQ^5&!&F4SeHţ°Ne<hp?N:jO3켄4c捠NܱsL8X1pgkBگ! Q{Ѻ+o&+DN;=7W@_h)K'#bUǰI㥌7۝njR[G)JC(a7Iv!$j_:M3+s>F "Tk'0-ء'% iTV|ӌȓ`6];RyE4IoXyX@[zӘ?"xUNuo kE6igD4ejs*̭"8b,uEsvgyrqn O(s|"%?X4K܃eVح.$$(- da*yRA>V(l߉Q>hsJY 5/?JG38c8VO0rkHxO.8e|%KޒGDV]ѰʟԳ~ V+M3;Mu#k4‡:JA_ s>dP`GK {=Ȍyo:$-@(*oS5:2k?xIԬeI_{uL78E4GV㜰nU'dNhN-  (r/ j'wٛ b%Y4Vxf0-i/ 5oiSp }P7s8QZ06ưZ 39pb$O*A\X1ACL&2ˡ&ɫ/2'` 5ݠW~;yu{ޓT?Jf"X N^& ]G7?\1Y:zG,"XdSR7cPT4?%-@LAE,+cEn69s_UdsuHvǾEO"ifmpR(Q(O@ ^kT7OJ"kL=d}E>'Ih ڝUD`˭I/fSsQlHA&VlDy> kw1>[P_zuU='qG]8/%`Ӵv c~{(Mi>'+?+!"5H!;a\~FgH^);C.$ w\[ŀ&l$/6 zzE 4\ )Nx<~]jڥ1S"&U;&ǁ ;ãZrl7$eprbCar[0VpMSwA6ˣ >c @7?2v0Nja;\ķ~w#yv-('3HhS?<i<-*BT*&m9I 68˙r";~V}0n9_k/Fc[>W<9#X31F*A]ugfBpwaD| &K{э'~<{قL<G"@Y9U/8"F4*?C?rnN#C.Uom# .qQQatd(J .Da -Rw'f}Ʊ_aĢ[k+{hCOT&O]w ͆\Dr-+Lm* 2Ex|OZY8B3urʱXxG8tRz[!%lJ- Jt2=ݖp YqmLDʯM AUhe69mo `aHcXj:_ .ݞv43wpN|VoAswm@Rxث5g$֟Y̪yB:޲ T\k%2pg7 K ޳ar*gya< Q $P>yc CVl\ ;t=wfP2|4.+^ŏ:mAJ+5.!ZŦef>0O&o9kTi"?Xhre`\m=՚+@#T\R#e{Ak6zl%PoYC\$̀RpT7Xgz.s%OsfJ*-FNA:_~ ّ ỢʟG N)tʌG"W_d %MT"L#K1[,<|oc=|G-T"wːygלʣd2' )]`f.'jK'tfIBW,MGeGMrO'\gp{v,\A&"pUnrA'g /#1D?ݒ6uz0 O*N0ͤ0yefR/B~"Ecғ,G o~o||ef-)#Slr8檑Yp6ͽ^`(xꂂXT$؜1TD&FOUH#6Ag@+޸j?iSY]b^ץ%§jǰtQSkwR@{;Kr~QA5MZıy}sҞd]C"|S傚eA>viW#XrOf_U,8U01_]>e 2_BX`ȔXψukٱ[3J{l4S,^I|C4؏ "ifئz+%  KN tY4lCo],"Ħ0^b 1*uL jYaAs=D.W6TQH1lg p6Kkt% lbxK+?d@nHr>9U6 AgWa5m# ?BJ[! uGCabFnH1齙Mk5K|Id|,8d($ʾa"P:bҜzEf]@z ⓸w6`vM#t^YTK7olagDجO2,w'%r|ӊT\Vc˓ G{@1Py _q[Gn&W1j; aY(g6If.dݧ!!p|TF"wAù-. yFci+\n],ԍ{a鰹g,qt(mHd7I1^/21=i P x^pg3B1C48p%u_vj@D`s ˳0ϩ?Kpw= t'P[:1o<ķok*(d +gswu*Gj'Y8+JDi;XAΫуӅ e#S+Lr$RG 1VB]J{" ,i%W{S>9\e :*.& zswIK(p e}F J?Cc [@Md^\IՆx//6={XxV?IP3XY2} ,]rMTPGu_唓[+{N\N漊i=kF-ŖIQEq -nr ;AK!>rLX^TL/j3Ek9NgG&z?ȶM\m#V 9W<>[çTa?=uhIT}#g3g36l=t{+>r t2;? #ٽgϨ,_VW nۍaNgg,v\TMPhV0(ЁAZQO)|㢊0nBM>CvShpiy!_widw]=(OiKNd>LnN~pٸl, 3&ViF!1~"zN7z-M[tqId$e{xmՍ;ZjSlhk6uØ] nS$1o9*"E\׋y4+C?G lհnbm:2 Eb*6\Xa>#_aGWoI!/-j{mpƷz :A8Ӭ /V|^)=ިmW潈_iS K crxv;T}_1gNNP3zITFoN7brd aQ~VX8Nc T #yxYf7İN3LkN0ր;B]g݊[ ڱIT7:faE,Ye.Bpͷcd`k$x'ܼGOjAaYϺ%Wv]~3PN-m٢9m7&P(NN \!Դ₩u3H{\bUE浲7$3]2#AAΠ_.#A 1 ԭi?-> C*rV,&iYU;˼jFLG)ɞ@Yad y (XrVuܓ qKֈڥ1I6\NH74;1~tqRb>SL,Ɩs;4Z\Oc\ Zbԉ;bÉ4S zוx\}\-%{aX4945 E3~͐J|56:R<+ۋO\PF~kQ1% ܔnXN:$/&i|@;rG*Ww?HK9 ;lϼ5\_8ɇd5Wm2gˡL%j7OVL+ X2A*ıfzXb l.×X޻`E^*=(#FR8?H&SA^flj8ϸ\NvW:d\;ё/]>i8x,C`~N@F\$f6i _R`=ۼn $2'+h`w16/"ytkŔzg# /oH%p%* %`lw6MVJx%'X`QWpDݦ v6a2iU8%.+͗asX7H0t6r$5dK# /H-),3fNDgr]*$T6w)zDB$ڃ\Zp|$#..]O R;˭ =-.،h +} g̻NW!\  ,͜TnLj,eթ_& &j* T 35u@Wh.;\q'.~{&1 Urk*!fҌd^ vLIj.U-I(n܀n5` #w=-S hoR)ks&4vnX8 VQ22XU2ar VFc9H׬d sIdqmiL0hr00=`G$yh ng#^ viW3/`&u۾+dH`7LhqBޮG"u +FP{5囯IZo)AʣGk}CMTX%x_.NTgBEgq Xv¤Z_-l%w7v$%Q'K|BI{\U>?ao%J{UF\#VFyM$a:OZ V Zh"_8~+\8gCWMP._JRB" Ce =2Zέk,Aw I¹J"C\)-we:"Az.376}5%D|Iv[K=-(~"#5>kӠU+Rawa 5-;R-_K'z}fMy"/L憰 M1~V)+eDM?pΞHAV2_ Ay]2ec'-,/zYC^w.T?Ҍ…'z+W'~얠QٱGEΛԼLZ:g89CHtJQ*"OL#HpIPȨ5ំ;RY@w%dVtUIOsCR`k(f2WDJfQ ΗU51=CTqmŶ22GN`O3jcNCS &=p',&1t9. Βq(U(88g~1WsrOU@l&bgkh^Cɟ6IPA{oNgPͱn/T M(#ʗn^ӟR+)ѡJn0;e[єX)*:nd[]S]@Php6M NI[;ΛS IQ@7K-V(lYz4`:--$?ah !c}w";#~;Zʂ7y smbF~=%h.8PMPm(/C3ALs#}SH  RlPNJH@{.bO.a6pZ?5\{X3dt;f92g`q.b?]>y -͍WVϧ:CSU'{RlxzD̹ Y:j $% ¾ b%t.Z *㲹0{RGԯ/z [h3Mq6BP)c30Ϊ]\g}1Ԃ"~cրHYPԢߦƵv{(V Ŏ r 9y٨]bA%EO n =65qT+v•{S]tF>Lsf{hmS^Э)k(ߖDlY1K7 ]ּbbKwNӃΤ+j(5 x*#ZRK4bt]NǩI)t'_r kv% xPѥ*FIՕLc$!$H=>.McE4""Bզo5ORXGIrnaE&2s.w G؉=^C]n5Mcjd&CY:b"7 t 'X*Ӎe҂nagFW#m#>Eο'UKtAL6gnR ;yie7Q:o xy&mCALXnv`+ ."?b.C0Iz؂im1׉R`lbDQG>F2iڞO _&eiJ`8DkYPg|l -#Jg6 ÓCqZl$ |=ZԄz%$,X7Wu=b4Oa?}Q &<M1> AbDBDqXڵ'+lE߬v}9Yj }yGcx;ޤ)qD v#2F8k~S;!#rXSW s9W:4uiٜoi;<)pӱN8%*r,Kn|[nIGıfiuO俘y4L=C!$^}11aR!ƙ9[FjwG6{aυTN#i#hc1W^Ǩyd0@ } QHEͻ:f|Ғ못$)-WRSG-{^)+|6_F9&za. 0"NS_*R 9 U0rYW]CbVx/wqFZïʋGכ1N.9W#|{4G-P_zYs1r(qiihboqcxڹ l$r\,o4\H)4lY0nx Ξ!GQ80x3X*"c;)7w) On6:Qon$P%>?FA097x⇥'L9ySJaNU4, u[ĸ_bIN 鬖&cr.q`gʞRҠ&~b|})Mszt 郾"-DUҧ.ٰƂW Kkh hxX&5'Թ[QV>=59*[{)r Z ^' ܔsd69fv޻6u1D;eO2Ոwh^Rhkp{i.o{_wU_G1= 1J<5m9c w - ͓Q%3t)mv :nYV_w4f9$X,r,\Gޡz9ČG/M"@ƄTG)ZBY'tA;f`ip0p}DqW-[R7odTѺPڪE<-Etx$B˵8=jӨLًKsA¦יMy6k-C;J/ѳO{)f9$+;8/QaAɃҁyUOlkL! #Rn"$䊅)#lkMTR*\Y`դgҥ!b~u?x^M@qX/,}͟ Mo1jc_%l3?ڱR(׍_?8D#"lS^Ûx9?)s jۇ>]6k~t|[캅1d* LUᡱ+wCAt.n^߱k+< [2| ^HD̷#54՝٫kJQzr6%oM=$K5j$:w99M X0ēj' 8:jU1%U>6&K#ڇ|3AѰQmHY_7y Ѫ4(M :C|s4ua8!k "R{4t &<3֫Ju1DĒ˷p|UF_.)҆ԇ[7FAl˩[EIZ="X==&\W>@T;)~aP7mǁHݡ o6OƠw%XtntD#Ytʵx, MwBn&JYoN !_7K "5''lCRNj};E[X)h'RAw13+9o_Q_Fǜ;ZWu@a83SF>ӛaҰS􆶖=3& Rk~[4ԂWo9ժ;)ݠb E@8[b'S?<)$h(K:̐_4LdWwY%!DnY<%ӸkW_2h$3$( m" V1 ~'zb>u C*s> [VhPl5])D%C48/O^YŹEo.j]5yiځ10>ɼ >TDE _4!_ ^<^Ts6^Dx9øvԌ37\'l\(r~z(2שlO v歜EUb8cHYh<BMS6/$ 2|O%nm +*-{ã/&?mDw2@VV`j(FaS9|<$>ԬD« ZiS @:)..#eNU3w,t8$Fȝ-?=}H'h7aG1~e tt2-$ؖ`j"&XrYbt'n.hJ#CUWI<ޓd>ϝgoC6߈Y17nL!Om'CBQNh}{ꃚzS9.:V@1^=-}'3M/jiM+]肒w:J͘ćb˫D`$d-W fèsBKW31ߩQ㳰<ez3X0&bBѝ{+@v7H^쥈T:.Ϻ= [cƌNeƔGWSn"SZhZ:>O[JT!Mx>~16 &0w>m:#Nn_N70ݽ4^13e%0GL{yWm+GtIx祥JVJP-<ɞteY Ý:'RŁPdwz'Ƹ/?9%ē{' Gjn |)cJ dlZ@>.v_@Qk9 AMZPs':!la}qԇrX>/C|V:コRPn GEe  Q60*=g%1*6C>r|yjN^jti)z^-NvR"w#m"Td]!7€IcES SuOQ0 bWOFnɬfJmf|=ģ?n 0W0YBu{X;>1DVh8CЩZ|VXE6=t]Pу4&r1,^*/?FzXRmЦc0){[/{r! tF-V]G)˺iS7i3I3Bԣ`wY|WxP+533\G/@'ya5^I3"Gҍe$3PZn;`w~zMJKS 6\O?2JkԤ zD -b6 c'Mgc4ʔbG[e$cM~]pd#҇XHG:ݟE .7t,s୸gr鲣;U4$~'75Z |& _h$Ds{j"w#*E#zbxt<ZyFqgե#DK{6ӧ0⋛ N0^I|˶*€Ik2*aҊE7]cׇh@;iFXșr΢$RI|aX t[v2lvkyf3J7 k1agDƳz" c8σ q#\L}62Y钔) "e{gSg # P+I%0TVW]npP2 LuwKw|xO@[s'](2%1ɫL&|/\~2I4_f4;٠ IdRY0OP:*79^ձB$,Зj 8ZSSw=2eJTHۛOO"tF`4Ъӻإ I Ew#i=CZY)2uTmȍ6]L3ꄜC.9f|K*{,\v#^|Ovu*P_kۤq`3e g걅 0|}Ж0ADMRM}N[DoXIa`V :)pQ[T&wZ"=H.8.|5 .~j[&α% G'^5m հS!`4'rIϑ^C`1Mc\'\nGR1Y!X~@*Eܖc-T0q#q.w vp Q cdE)]z -ZVw hTRe%hbYU?u$;GTPMҳz8sr:h;,'O{V&N fEXMoN3>_o.W3seT lJ}&CA/Rm,+zH`և)PmY$/T $ؐZ"5&+)(K18KXhz' .\h}ьgIo !%C'7~,έQWxȑǰ1SC:ix}́>_{gJ758mKVg*\_U[mF"`a/ xEZ;@Sߘy a s#/^X?;YwdS3umu5MG^7!qCh{+wXB*cKPQYF"]Ylrcrڝ-ksZB~ hL͔_08o#ze跊'^m%#P~J%Ē!J+Jͯ.V_/Qd WcqW8rf}|̠RII-έKuwrJC c [=2c (9G4U30u~\?lVm { w)Q V;Sg:8t@L=[Q+|Q"oTeP7{lѺqT.ꓱcLH@;\US'5."ɽr]Usae \KdW`hUKҰ'nP{rv␆_`4Qn*5~O-ĮuZ)@r|%> Duoa'HIK;, MbƧꞩ1MB̟ p"jm /I5+@k136E}sO-7" ,h_B2¤iUR /zal0C/Fq`M15੍v\Dig[Ǒ;h -fCd9c)5zH$WwqAgL`RMfkL}b" H(nc$ vG-N8t(Po᝶m]Ͼuǒ)THT66ZM4F}k )uSnj/d4 M02 2O4p_Ѕql_ grȨW7>տP<NJ *T0ڕ VdPѣ\p=c ͚>ԕ,tMQ2>mXumU`k(-|9r2&`R ol6YC:SGB%{?0C+ݱ.lރӈM24+#y֏_4R+0F0您TbmU@%}6BE3x$>8O9WFETs^h^.u2w9^,/VZ{_ԳNgNHC/ٙ %Pu?_Ԧ|f15p(+Z=qf´NĴj,Bna~]A!]D }'\b Խ84m#K2"OeF":Ch"7 λ$>YnPЙ)-+d]oIId::q׈;?~by5Jc? UZDX#hӲCSP&BmD?X1v\cH4 To [56NGp5NAoei/cib/iNNkͳ[d4E$ ]Ӝ;\elDI8 4i 2p/\܆t|ZbeWSWLVe.b]9%NvgxT+()~rvƀt=Z\NԶ,*&W_ߐYK mQÊzˣ>cLr)xZ ]SSRGJxc\F*(EAozͿ[`+Ma~Hq{뿾JY I6;T AGDoTm0t,o(dӘHYpehup%] 2&c׼Wv'j/j1Y;Mc:#O zb[|t }'L邮pJRZZT%0̲` "9fj'~x%m 쎒W ^3osP1Ip58_[Ɏւqj^_ѯO\Hk%yWZ;{:W[2U sERuh n.0qPԦRtf1*v9yx"ca5HۊdǭޖPIgF=4_Gr_Yb6%=mEL#*y Dɬv\k/ϊ>o}biL V~AhLiĭ>7vW7Tn$ #Pne RcW,_OҦO˰k|t~C%Kb8+vb$icdcv?e#M&*w5Ab4:- fZ?NqO=3EI.AE.y\BsdC wu B)Qmh=k }<ޒ0NUfK1I6so[&(vKΛW /=GeYrcUj{qE8z:Evx{;^ Ε؋WVǮX[b1hÇےcC: CֲsyeA< 2jQN0mJHq@ SoXJ@r%ߒb9+n0Wݹ&e=.F\g^ڪC.~lh]Te11+FmXZ^b*XK{u9\n(~rvH,1OťGf>F$xjMk DN]$M j-jQ")Bi`#XC(g~LGXVHg"fɘNPq:F+oܝr<1╂ 9MeAv$ NrĬvY qO_9tT 嫊~YHbٔI yl0h k& جȻj\H6Z9l F{23N5ݘ2Z_BV,[LRf/ѽ Av\=$zdcL ")L3204BEb;Sq0N0Yy"SVZC{0*+mR"Z w&--28'w[pC<1OP&>Uj5[(.;$wh݁H;-Xk?L)"J E"`2EBL]}ObWcsܥa~Pfh/vG%([m4/ңp87aR>ɼeL#}qHuW9[]l"j$ŠTM^<+Iɵ%%HmvsZ_Zj hUoOwlLգ_*P|/z✔Z:oG&W5ƥ '"ߝYhqu Tcg^Ts2%3 5Wilvԩ֏-BE:p/Ѝ T{qעlh/PA͍gD+FAf(e]ATT*UbSz97q75-;uY>"Ԃm֜ё;J(AKӝ~@%̷W'I6pOʉ0ԺCfChJ6%ᘭGCd:d1o?(XЧ~ҙ)yOpij%Չ]ס.Sa[{(ɡi6i>\a"D3"8 ԹИ`Cv1W)/XtZ$cl\'n}w gj)"l$ " Nd^U!3IFx! yS"/oɨ%u1% dsGP'ծH~7N5_҇9?Y!.ad-z$4q :w$=pǻ5c_[%`KoWGD^ 7v.BJVERB7m"%>Z)ܫ3ءDmq[spԾE圮8" bՄc@U֮o)*cJQ$,&_0sxK%D:Ë*Ƃ3C4^6|F#3@Um0wB-nPH/5C,fKLV? `IIၞ=Ǒ9)sZQR}iO^hSkEOړR`Eb>J!]z3hHj$K-Qx]kX5AIsqf/B@'|EboN.ړd@+6W:Nja7$u)Qb-oC%H#T8d8ɪt/@L'cyT Y䌾*Z-#q8igYjnmwَ7-ouGPp+u}԰6_ V4@ZI.]* s| X.xW,2T #G5X+xpvZ.4;ʾ%nTX~O7ڱ+~p߃pNERdb#5f{*>1^傜HC 'ED3f)]*|]ry $CXI@9 7dsmx>S\;:^nD.4q1zoTVƎYt83<˟>0 YZdichromat/R/dichromat.R0000644000175100001440000000175312077677464014572 0ustar hornikusersdichromat <- function(colours, type = c("deutan", "protan", "tritan")) { ## transform colors to RGB coordinates colours <- t(col2rgb(colours)) colnames(colours) <- c("r", "g", "b") ## compute predicted new dichromat RGB coordinates type <- match.arg(type) if(type == "deutan") { nred <- predict(redd, newdata = colours) ngreen <- predict(greend, newdata = colours) nblue <- predict(blued, newdata = colours) } else if(type=="protan") { nred <- predict(redp, newdata = colours) ngreen <- predict(greenp, newdata = colours) nblue <- predict(bluep, newdata = colours) } else if(type=="tritan") { nred <- predict(redt, newdata = colours) ngreen <- predict(greent, newdata = colours) nblue <- predict(bluet, newdata = colours) } ## map to unit interval nred <- pmax(0, pmin(1, nred /255)) ngreen <- pmax(0, pmin(1, ngreen/255)) nblue <- pmax(0, pmin(1, nblue /255)) ## return color codes rgb(nred, ngreen, nblue) } dichromat/R/colorschemes.R0000644000175100001440000000724612077677463015310 0ustar hornikuserscolorschemes<-list( BrowntoBlue.10 = c("#663000", "#996136", "#CC9B7A", "#D9AF98", "#F2DACE", "#CCFDFF", "#99F8FF", "#66F0FF", "#33E4FF", "#00AACC"), BrowntoBlue.12 = c("#331A00", "#663000", "#996136", "#CC9B7A", "#D9AF98", "#F2DACE", "#CCFDFF", "#99F8FF", "#66F0FF", "#33E4FF", "#00AACC", "#007A99"), BluetoDarkOrange.12 = c("#1F8F99", "#52C4CC", "#99FAFF", "#B2FCFF", "#CCFEFF", "#E6FFFF", "#FFE6CC", "#FFCA99", "#FFAD66", "#FF8F33", "#CC5800", "#994000"), BluetoDarkOrange.18 = c("#006666", "#009999", "#00CCCC", "#00FFFF", "#33FFFF", "#66FFFF", "#99FFFF", "#B2FFFF", "#CCFFFF", "#E6FFFF", "#FFE6CC", "#FFCA99", "#FFAD66", "#FF8F33", "#FF6E00", "#CC5500", "#993D00", "#662700"), DarkRedtoBlue.12 = c("#2A0BD9", "#264EFF", "#40A1FF", "#73DAFF", "#ABF8FF", "#E0FFFF", "#FFFFBF", "#FFE099", "#FFAD73", "#F76E5E", "#D92632", "#A60021"), DarkRedtoBlue.18 = c("#2400D9", "#191DF7", "#2957FF", "#3D87FF", "#57B0FF", "#75D3FF", "#99EBFF", "#BDF9FF", "#EBFFFF", "#FFFFEB", "#FFF2BD", "#FFD699", "#FFAC75", "#FF7857", "#FF3D3D", "#F72836", "#D91630", "#A60021"), BluetoGreen.14 = c("#0000FF", "#3333FF", "#6666FF", "#9999FF", "#B2B2FF", "#CCCCFF", "#E6E6FF", "#E6FFE6", "#CCFFCC", "#B2FFB2", "#99FF99", "#66FF66", "#33FF33", "#00FF00"), BluetoGray.8 = c("#0099CC", "#66E6FF", "#99FFFF", "#CCFFFF", "#E6E6E6", "#999999", "#666666", "#333333"), BluetoOrangeRed.14 = c("#085AFF", "#3377FF", "#5991FF", "#8CB2FF", "#BFD4FF", "#E6EEFF", "#F7FAFF", "#FFFFCC", "#FFFF99", "#FFFF00", "#FFCC00", "#FF9900", "#FF6600", "#FF0000"), BluetoOrange.10 = c("#0055FF", "#3399FF", "#66CCFF", "#99EEFF", "#CCFFFF", "#FFFFCC", "#FFEE99", "#FFCC66", "#FF9933", "#FF5500"), BluetoOrange.12 = c("#002BFF", "#1A66FF", "#3399FF", "#66CCFF", "#99EEFF", "#CCFFFF", "#FFFFCC", "#FFEE99", "#FFCC66", "#FF9933", "#FF661A", "#FF2B00"), BluetoOrange.8 = c("#0080FF", "#4CC4FF", "#99EEFF", "#CCFFFF", "#FFFFCC", "#FFEE99", "#FFC44C", "#FF8000"), LightBluetoDarkBlue.10 = c("#E6FFFF", "#CCFBFF", "#B2F2FF", "#99E6FF", "#80D4FF", "#66BFFF", "#4CA6FF", "#3388FF", "#1A66FF", "#0040FF"), LightBluetoDarkBlue.7 = c("#FFFFFF", "#CCFDFF", "#99F8FF", "#66F0FF", "#33E4FF", "#00AACC", "#007A99"), Categorical.12 = c("#FFBF80", "#FF8000", "#FFFF99", "#FFFF33", "#B2FF8C", "#33FF00", "#A6EDFF", "#1AB2FF", "#CCBFFF", "#664CFF", "#FF99BF", "#E61A33"), GreentoMagenta.16 = c("#005100", "#008600", "#00BC00", "#00F100", "#51FF51", "#86FF86", "#BCFFBC", "#FFFFFF", "#FFF1FF", "#FFBCFF", "#FF86FF", "#FF51FF", "#F100F1", "#BC00BC", "#860086", "#510051"), SteppedSequential.5 = c("#990F0F", "#B22D2D", "#CC5252", "#E67E7E", "#FFB2B2", "#99700F", "#B28B2D", "#CCA852", "#E6C77E", "#FFE8B2", "#1F990F", "#3CB22D", "#60CC52", "#8AE67E", "#BCFFB2", "#710F99", "#8B2DB2", "#A852CC", "#C77EE6", "#E9B2FF", "#990F20", "#B22D3C", "#CC5260", "#E67E8A", "#FFB2BC") ) dichromat/MD50000644000175100001440000000067014233753076012567 0ustar hornikusersbbd62a682e4279226744a81614d9b79c *DESCRIPTION 921c78fa44464befe3a0cdf4a9bde6d4 *NAMESPACE 8e1336dcde2270de6c4f2e963fab372c *R/colorschemes.R e2857daeba6287b727fd4245e75288f0 *R/dichromat.R 3348ab1d0d50b7e412f8589eca90000a *R/sysdata.rda 0daed820b493362f74b084c32cd75318 *data/dalton.rda 6b96169844c2cda0362df5c0fc7082e9 *man/colorschemes.Rd 519ba625ea74228c8a0aebc6ea9e1bd1 *man/dalton.Rd 6d1f3da1de69fea1a30f3b4765c23bf1 *man/dichromat.Rd