OpenGL$B$G$N(BCG$BIA2h$r$$$h$$$h9T$$$^$9!#(B
$B;29M%j%s%/(B
$B!&(BOpenGL(ver.2.1)$B$N3F4X?t(B($B>.J8;z$N(Bgl$B$N#2J8;z$G;O$^$k4X?t(B)$B$N@bL@(B
OpenGL$B$, GL_PROJECTION$B9TNs(B
GL_MODELVIEW$B9TNs(B
$B9TNs$N1i;;(B
$B9TNs$N3NG'(B
glGetFloatv()$B$r;H$C$F!"(BGL_PROJECTION$B9TNs$H(BGL_MODELVIEW$B9TNs$H$r$^$H$a$FI=<($9$k4X?t$N:n@.$7$^$9!#(B
$B$3$N4X?t$r;H$C$F$I$3$N>uBV$N9TNs$rCN$k$Y$-$G$7$g$&$+!#(B
eclipse$B$N%W%m%8%'%/%H@_Dj$K$D$$$F(B
eclipse
eclipse$B$N%U%)%s%H@_Dj(B
eclipse$B$N%H%i%V%k%7%e!<%F%#%s%0!JK\Ev$KIT6q9g$K$J$C$??M$@$1!K(B
$B1i=,(B
08-01-ex1: $BEj1F9TNs$NM=A[(B
08-01-ex2: GL_MODELVIEW$B9TNs(B
08-01-ex3: OpenGL$B$G$N(B4x4$B9TNs$NG[CV(B
08-01-ex4: glGetFloatv()$B4X?t$N@bL@(B
08-01-ex5: $B?7$7$$(BOpenGL$B%i%$%V%i%j4X?t(B
08-01-ex6: ic2_OpenGLLogo()$B$NFbMF$r!"(B06-06-ex2$B$G:n@.$7$?$b$N$KF~$lBX$($J$5$$!#(B
$B;29M!'(BViewing and Modelin Transformations
$B$^$@;d$?$A$, $B0\F0$N35G0(B
$B8+$+$1>e!"J*BN$N0\F0$OJ*BN$,%+%a%i:BI87O$NCf$G0\F0$9$k$3$H$K$J$j$^$9!#(B
$B0\F0$rI=$99TNs(B
$B0\F0$N $B $BI=<($5$l$k(BGL_MODELVIEW$B9TNs$KCmL\$7$^$7$g$&!E$F!"$"$l$l!)$I$&$7$F!)(B
$B1i=,(B
08-02-ex1: $BC10L(B
08-02-ex2: glTranslatef()$B4X?t$N@bL@(B
08-02-ex3: $B0\F0JQNL$N%F%9%H(B
$B;29M!'(BViewing and Modelin Transformations
$BA0@a$G$O?^$i$:$b%"%K%a!<%7%g%s$r $B9TNs$NC_@Q(B
$B9TNs$NC_@Q$N2r>C(B
$B%W%m%0%i%_%s%0(B
$B!Z%W%m%0%i%`(B08-03$B![!J3%?'J,$OJQ99L5$7!K(B
$B1i=,(B
08-03-ex1: X$BJQNL$NJQ99(B
OpenGL$B$G$O!"0\F0$NA`:n$rB?CJ3,$N9TNsA`:n$GI=8=$9$k$3$H$GJ#;($JA`:n$r2DG=$K$7$^$9!#(B
$B$3$3$G$O!"(BViewing and Modelin Transformations$B$N(BFigure-3.4$B$NA`:n$r OpenGL$B$N $B $B$J$*!"2sE>9TNs$rI=$9(B glRotatef() $B4X?t$O!"Bh#10z?t$,2sE>3QEY(B(degree$B$G;XDj(B)$B!"Bh#2!A#40z?t$G2sE><4$NJ}8~%Y%/%H%k$r<($7$^$9!#(B
$B!Z%W%m%0%i%`(B08-04$B![!J3%?'J,$OJQ99L5$7!K(B
$B$o$+$j$K$/$$$H$-$O!"(B's'/'S'$B%-!<$bMxMQ$7$F$_$^$7$g$&!#(B
$B1i=,(B
08-04-ex1: $B9TNs1i;;(B
08-04-ex3: glRotatef()$B!&(BY$B<42s$j(B
08-04-ex4: 08-04-ex3$B$N0cOB46(B
08-04-ex5: glRotatef()$B4X?t$G$N(BX$B<4$N2sE>J}8~(B
08-04-ex6: glRotatef()$B4X?t$G$N(BY$B<4$N2sE>J}8~(B
08-04-ex7: glRotatef()$B4X?t$G$N(BZ$B<4$N2sE>J}8~(B
08-04-ex8: $B%m%4$N2sE>(B
08-04-ex9: $BJ}8~$r0];}$7$?%m%4$N2sE>(B
$B$?$@!"8w$HH?
$B!&(BOpenGL$B$N(BProgramming Guide Book (ver1.1, $BDL>N@VK\(B)
$B!&(BGLUT - The OpenGL Utility Toolkit
$B!&(BThe OpenGL Utility Toolkit (GLUT) Programming Interface API Version 3
08.01. OpenGL$B%i%$%V%i%j$,;H$&9TNs(B
$B$"$k6u4VCf$N#1E@$N0LCV%Y%/%H%k$O!"#4a$B$GI=$7$^$9!#(B
$BEvLL!"(Ba = (X, Y, Z, 1)T$B$H$7!"Bh#4MWAG$O#1$K8BDj$7$F$*$/$3$H$K$7$^$9!#(B
$B;29M!'(BProjection Transformation
$B%+%a%i:BI87O$N0LCV%Y%/%H%k(Bb$B$r2hA|J?LL>e$K
$B$3$3$G$O!"(B06.05$B@a$N@5Ej1F(B$B$KBP1~$9$kEj1F9TNs(B $B#P(Bortho $B$r9M$($^$9!#(B
$B$3$N>l9g$O!"
a = $B#P(Bortho b
$B;29M!'(BViewing and Modeling Transformations
$BJ*BN$N0\F0$d2sE>$J$I$G8+$?$a$rJQ2=$5$;$k$N$,(BGL_MODELVIEW$B9TNs$NLr3d$G$9!#(B
$B8=:_$O$^$@2?$b0\F0$d2sE>$J$I!"%b%G%k$rF0$+$7$F$=$N8+$+$1(B(Model view)$B$rJQ2=$5$;$F$J$$$G$9$M!#(B
$B!J:#$O$^$@!V%b%G%k$r%+%a%i$NA0$GF0$+$9!W$H$$$&I=8=$r;H$C$F$^$9!K(B
$B$3$3$G$O(BGL_MODELVIEW$B9TNs$r(B$B#M(B$B$GI=5-$7$^$9!#(B
$B0\F0A0$N0LCV%Y%/%H%k$r(Bc$B!"0\F08e$N0LCV%Y%/%H%k$r(Bb$B$H$7$^$9!#(B
b = $B#M(B c
$B>e$N#2$D$N1i;;$r$^$H$a$k$H!"a = $B#P(Bortho b = $B#P(Bortho ($B#M(B c) = $B#P(Bortho $B#M(B c
GL_PROJECTION$B9TNs$H(BGL_MODELVIEW$B9TNs$H$,
$B!J$=$l$J$j$NM}M3$,$"$C$F$N$3$H$J$N$G$9$,$3$3$G$O=q$-$^$;$s!K(B
$BBe$o$j$K!"(BglGetFloatv()$B$r;H$C$F<+J,$NMQ0U$7$?JQ?t$KBeF~$5$;$^$9!#(B
$B!J(Bsscanf()$B4X?t$H;w$?9M$(J}$G$9$M!K(B
$B$3$l$O:#$^$G$N$I$N4X?t%0%k!<%W$H$b6a$/$J$$$N$G!"%=!<%9%U%!%$%k$r$3$l$N$?$a$KJ,$1$FMQ0U$7$^$9!#(B
$B$=$l$OJ*BN$r(BCG$B$H$7$FIA2h$7;O$a$kD>A0$G$9!#$3$N$3$H$K$D$$$F$O$B!Z%W%m%0%i%`(B08-01$B![!J3%?'J,$OJQ99L5$7!K(B
07$B@a0J9_!"FC$K$3$N(B08$B@a0J9_$O!"=q$-49$($kI,MW$N$J$$%U%!%$%k$,A}$($F$-$^$9!#(B
$B!J=q$-49$($kI,MW$N$J$$%U%!%$%k$,40A4$K3NDj$7$F$7$^$($k$N$J$i%i%$%V%i%j$r:n$C$F$7$^$&$H$3$m$G$9$,!"K\
$B!J$A$g$3$A$g$3$H$"$A$3$A$N%U%!%$%k$r$$$8$k$N$G!E!K(B
$B$=$3$G:#8e$O0J2<$N$h$&$K$7$F3F@aMQ$N?75,%W%m%8%'%/%H$rMQ0U$7$F$/$@$5$$!#(B
1. $B$^$:%W%m%8%'%/%H!J(B08-01$B!K$r?75,:n@.$7$^$9!#(B
2. $BI,MW$J?7$7$$%=!<%9%U%!%$%k$r$=$N%W%m%8%'%/%H%G%#%l%/%H%j!J(B~/workspace-ic2/08-01/$B!K$KCV$-$^$9!#(B
3. $B=q$-49$($:$KA0$N%W%m%8%'%/%H$+$i0z$-7Q$0%=!<%9%U%!%$%k!J$3$3$G$$$l$P(B07.05.$B@a$N%=!<%9%U%!%$%k72$N$&$A!"?7$7$/=q$-D>$5$J$+$C$?%=!<%9%U%!%$%k!K!J(B~/workspace-ic2/07-05/*.[ch]$B!K$r%W%m%8%'%/%H%G%#%l%/%H%j!J(B~/workspace-ic2/08-01/$B!K$K%3%T!<$9$k!#$3$NA`:n$O(Beclipse$B30$G9T$C$F$/$@$5$$!#(B
$B!J(Beclipse$BFb$G$G$-$J$$$3$H$b$J$$$G$9$,!E!K(B
4. $B%W%m%8%'%/%H$r!V99?7!W$7$^$9!#(B
5. $B%j%s%/$9$k%i%$%V%i%j$N@_Dj$rK:$l$J$$$h$&$K!#(B
6. $B!J0z$-7Q$$$G$-$?!K%=!<%9%U%!%$%kL>$,8E$$$^$^$@$H5$$K$J$k>l9g$O!"%W%m%8%'%/%H%D%j!<$NJQ99$7$?$$%U%!%$%kL>$N>e$G1&%/%j%C%/$7$F!"!VL>A0JQ99!W$rA*$S!"E,@Z$JL>A0$K$7$F$/$@$5$$!#(B
$B!J(Beclipse$B$O%U%!%$%kL>$,JQ$o$C$F$b<+F0E*$K%3%s%Q%$%kJ}K!$J$I$rBP1~$5$;$F$/$l$^$9!K(B
$B%*%s%i%$%s%G%P%C%03+;OA0$K!"%V%l!<%/%]%$%s%H$rD4$Y$?$$4X?t$N$H$3$m$G@_CV$9$k$h$&$K!#(B
$B$3$A$i$O(B2012$BG/EY0JA0$N>pJs$J$N$GL5;k$7$F$/$@$5$$!#(B
$B#53,7W;;5!<<$N4D6-$G$O!"EyI}%U%)%s%H$GA4$F$N%=!<%9$rI=<($7$F$/$l$^$;$s!#(B
$B5$$K$J$k?M$O!"$H$j$"$($:2<5-$NBP:v$r$7$F!"H>3Q1Q?t$@$1$G$9$,EyI}$K$7$F$_$F$/$@$5$$!#(B
$B%U%)%s%H@_DjJQ99$O!"%=!<%9%3!<%I$NItJ,$H%?!<%_%J%k$NItJ,$N#22U=j$G$9!#(B
1. $B%&%#%s%I%&"*@_Dj(B
2.$B!V@_Dj!W:8B&!'0lHL"*!JE83+!K"*304Q"*!JE83+!K"*?'$H%U%)%s%H(B
3.$B!V@_Dj!W1&B&!'?'$H%U%)%s%H!'(BC/C++$B"*!JE83+!K"*(BEditor$B"*!JE83+!K"*(BC/C++ Editor Text Font$B"*JQ99(B
4.$B!!%U%!%_%j!'J8@t!vEy42HyJF9u(B , $B%9%?%$%k!'(BRegular , $B%5%$%:(B 10 $B"*(BOK
$B!J$H$K$+$/2<$N%W%l%S%e!<$GEyI}$+$I$&$+$r3NG'$7$^$7$g$&!K(B
5.$B!V@_Dj!W1&B&!'?'$H%U%)%s%H!'(BC/C++$B"*!JE83+!K"*(BC-Build Console Text Font$B"*JQ99(B
6$B!!%U%!%_%j!'J8@t!vEy42HyJF9u(B , $B%9%?%$%k!'(BRegular , $B%5%$%:(B 10 $B"*(BOK
$B$J$K$+$NGo;R$K!"@_Dj$,ITNI$K$J$C$F(Beclipse$B$,A4$/5/F0$G$-$J$/$J$k$H$-$,$"$j$^$9!#(B
~/workspace-ic2/.metadata/ $B$N2<$N%U%!%$%k$,$*$+$7$$!"$H8@$o$l$?>l9g$,$3$l$K3:Ev$7$^$9!#(B
0. eclipse$B$r=*N;$5$;$F$/$@$5$$!#(B
1. bash$B>e$G!"(Brm -rf ~/workspace-ic2/.metadata/ $B$H$7$F!"A4$F>C$7$F$/$@$5$$!#(B
2. eclipse$B$r5/F0$7$^$9!#(B
3. $B%a%K%e!4. $B0lHL"*!JE83+!K"*4{B8%W%m%8%'%/%H$r%o!<%/%9%Z!<%9$X"*5. $B%k!<%H%G%#%l%/%H%j$NA*Br"*;2>H!J(Bubuntu/workspace-ic2$B$,A*Br$5$l$F$k$O$:!K(B
6. $B$:$i$C$H2a5n$N%W%m%8%'%/%H$,JB$s$G$$$k$O$:$J$N$G!"!V$9$Y$FA*Br!W$7$F!V=*N;!W$7$^$9!#(B
7. [email protected]$9$l$P!"A4$F$N%W%m%8%'%/%H$,I|3h$7$^$9!#(B
06.05$B@a$N@5Ej1F$N@_Dj(B$B$N$H$-$N(B$B#P(Bortho$B$N9TNs$r%W%m%0%i%`:[email protected]$KM=A[$7$J$5$$!#(B
GL_MODELVIEW$B9TNs$O=i4|>uBV$G$I$N$h$&$J9TNs$G$"$k$Y$-$+!"M}M3$H6&$K@bL@$7$J$5$$!#(B
OpenGL$B$G(Bfloat m[16];$B$N(B16$BMWAG$O(B4x4$B9TNs$K$I$&BP1~$9$k$+<($7$J$5$$!#FC$KE:;z$K$OCm0U$7$F@bL@$9$k$3$H!#(B
glGetFloatv()$B4X?t$N@bL@$N$"$k%Z!<%8$r!"!V(BOpenGL$B$N3F4X?t$N@bL@(B$B!W$NCf$+$iC5$7$F(BURL$B$r<($7$J$5$$!#!J(Bhttp://www.opengl.org/sdk/docs/man/$B$G$OITL@NF$J$N$GIT@52r$G$9!#!K(B
$B:#2s?7$7$/F3F~$5$l$?(BOpenGL$B%i%$%V%i%j4X?t$rA4$F%j%9%H%"%C%W$7!"$H$=$N;H$$J}$r4JC1$K@bL@$7$J$5$$!#(B
08.02. $B=i$a$F$N0\F0(B
$B$9$J$o$A!"!V%+%a%i:BI87O$N(BX$B<4$K1h$C$F(B+0.01$B$@$10\F0!W$5$;$^$9!#(B
$B!J(B0.01$B$J$s$F>.$5$$0\F0NL$,J,$+$k$+$C$F!)$4?4G[$J$/!#$A$c$s$HM}M3$,$"$j$^$9!#!K(B
$B:#2s$N0\F0$O!"(BGL_MODELVIEW$B9TNs(B$B#M(Bmove$B$rA`:n$9$k$3$H$G
$B0\F0$rI=$94X?t$K$O(B glTranslatef() $B$rMQ$$$^$9!#(B(08-02-ex2)
glTranslatef(X,Y,Z) $B$N#30z?t$,0\F0NL$r<($7$^$9!#(B
$B$H$3$m$,!":#2s$N>l9g$G$b!"(BOpenGL$B$N%W%m%0%i%_%s%0>e$G$O!"(Bic2_OpenGLLogo()$B4X?t$NCf$N:BI8CM$r$$$8$j$^$;$s!#(B
$B87L)$K$O!"35G0$H$7$F!"(Bic2_OpenGLLogo()$B4X?t$NCf$G$O!"(BCG$B$O!V%b%G%k:BI87O!W$K=>$C$F:BI8CM$r@_Dj$7IA2h$7$^$9!#(B
$B!J%m%4%^!<%/$r@_7W$9$k$H$-$K;H$C$?J}4c;f$N2#<4$H=D<4$,$3$N!V%b%G%k:BI87O!W$KAjEv$7$^$9!K(B
OpenGL$B$G$O!"%W%m%0%i%`>e$G%b%G%k:BI87O$KD:E@$J$I!J(Bc$B!K$,IA2h$,$5$l$k=V4V!"FbIt$N1i;;$K$h$C$F%b%G%k:BI87O$G$N:BI8CM$r%+%a%i:BI87O$KJQ49!J(Bb$B!K$7!"$=$l$r2hA|J?LL$K
glTranslatef(X,Y,Z) $B$r
$B$3$l$,$5$-$[$I$N(B$B#M(Bmove$B$KAjEv$7$^$9!#(B
$B@h$[$I$N@bL@$K=>$($P!"(BglTranslatef(X,Y,Z)$B$O!"(Bic2_OpenGLLogo()$B$G
OpenGL$B$G$O!"(BglTranslatef()$B$N$h$&$K9TNs$rA`:n$9$k4X?t$NMxMQ;~$K$O!"I,$:(BOpenGL$B$N#4
$B>e5-@bL@Cf$N!"!V(B0.01$B!W$NC10L$O2?$G$9$+!#@bL@$7$J$5$$!#(B
$B%Z!<%8$r!"!V(BOpenGL$B$N3F4X?t$N@bL@(B$B!W$NCf$+$iC5$7$F(BURL$B$r<($7$J$5$$!#(B
$B0\F0JQNL$N(B(0.01, 0, 0)$B$r$$$m$$$mJQ99$7$F
08.03. OpenGL$B$G$N9TNsA`:n$N
$B!JIaDL$N%W%m%0%i%^$J$i!"Nc$($?$^$?$^$$$$7k2L$K=P$/$o$7$F$b!"$=$l$,A[Dj30$G$"$k$N$J$iMQ?4$7$F$A$c$s$H$=$l$,H/@8$7$J$$$h$&$K!V%P%0!W$H$7$FDY$7$^$9!K(B
$B!J??$N%W%m%0%i%^(B(?)$B$J$i!"$?$^$?$^$G$/$o$7$?$$$$7k2L$r$b$?$i$7$?860x!J%P%0!K$r5fL@$7!":#8e$KLrN)$F$^$9!K(B
$B$I$&$7$F$3$s$J$3$H$,5/$3$C$?$N$G$7$g$&$+!)(B
$B$B$=$l$O!"9TNsA`:n$r!V$=$l$^$G$N1i;;7k2L$N>e$G9T$&!W$3$H$G$9!#(B
OpenGL$B$,5/F0$7$?$H$-!"(B08.01.$B$G8+$?DL$j!"(BGL_MODELVIEW$B9TNs(B$B#M(Bst$B$OC10L9TNs$G$9!#(B
$B#M(Bst $B"+(B $B#I(B
glTranslatef()$B$r:G=i$K
$B#M(Bst $B"+(B $B#M(Bst $B#T(B
$B$H$J$j$^$9!#
$B$B#M(B
$B#M(Bst $B"+(B $B#M(Bst $B#T(B
$B$K$h$C$F:8JU$O(B $B#T(B $B#T(B$B!"$D$^$j0\F0NL#2G\$N>uBV$K$J$j$^$9!#(B
$B$"$H$OF1$8MWNN$G!"#32sL\$K$O#3G\!"#42sL\$K$O#4G\$K$J$j$^$9!#(B
$B!JCm0U$9$Y$-$O!"(B
$B#M(Bst $B"+(B $B#T(B $B#M(Bst $B$G$O$J$$$3$H$G$9!#0l=o$8$c$J$$$+$C$F!)4*0c$$$7$F3P$($k$H
$B$G$O$I$&$9$l$P$3$NITK\0U$J%"%K%a!<%7%g%s$r;_$a$i$l$k$G$7$g$&$+!)(B
$B1i;;$NA0$K!"(B$B#M(Bst$B$rL@<(E*$K=i4|2=!JC10L9TNs2=!K$9$l$P$h$$$N$G$9!#(B
$B#M(Bst $B"+(B $B#I(B
$B#M(Bst $B"+(B $B#M(Bst $B#T(B
$B$3$N#19TL\$NA`:n$r
$B%W%m%0%i%_%s%0$G!"F0:n$r3NG'$7$F$_$^$7$g$&!#(B
$B3NG'$N0Y$K!"(Bic2_showMATRIX()$B$r#32U=j$KKd$a9~$s$G$_$^$9!#(B
$B!J$=$3$N7/!"%W%m%0%i%`$N
X$BJQNL!V(B0.01$B!W$r(B0.7$B$N$h$&$K$b$&>/$7Bg$-$$CM$K$7$F
08.04. $BB?CJ3,$N9TNsA`:n(B
$B
$B2sE>9TNs$r(B$B#M(Brot$B!"0\F09TNs$r(B$B#M(Bmove$B$H$9$k$H!"(B
$B#M(Bst $B"+(B $B#I(B $B#M(Bmove $B#M(Brot
$B$G$h$$$3$H$K$J$j$^$9!#(B
$B9TNs$NJB$S$,@bL@$NJB$S$HH?E>$7$F$$$k$3$H$KCm0U$7$F$/$@$5$$!#(B
$B!J5U$G$O$$$1$^$;$s!*!K(B
$B$3$l$OA`:nBP>]$G$"$k0LCV%Y%/%H%k$,$3$N1&B&$KG[CV$5$l$F!"1&B&$N9TNs$+$iE,MQ$5$l$F$$$/$?$a$G$9!#(B
glTranslatef(0.7, 0, 0);
$B!Z(BTR$B![$N
glRotatef(45, 0, 0, 1);
$B!J(Blogoscale$BJQ?t$K$h$kJQ2=$O(B ic2_OpenGLLogo() $B$NCf$NIA2h:BI8CM$rD>@\$$$8$C$F$$$k$N$G!"9TNsA`:n$KL54X78$G$9$M!K(B
$B!J(B's'$B$N%9%1!<%k$r(B0.5$B$h$j$b$C$H>.$5$$(B 0.1 $B$H$+$K$9$k$H$o$+$j$d$9$$$+$b$7$l$^$;$s!K(B
RT, TR$B$N$I$A$i$b
glRotatef()$B$@$1$r;H$C$F!"%m%4$,Cf?4$G;~7W2s$j$K$f$C$/$j2sE>$9$k%W%m%0%i%`$r:n@.$7$J$5$$!#(B
glRotatef()$B$@$1$r;H$C$F!"%m%4$,(BY$B<42s$j$K!J1&B&$,:G=i$K
ex3$B$,D>46E*$J4|BT$H8+$?L\$,0[$J$kE@$H!"$=$NM}M3$K$D$$$F@bL@$7$J$5$$!%(B
glRotatef()$B4X?t$K$*$$$F!"(BX$B<4%Y%/%H%k(B(1,0,0)$B$KBP$7$F@52sE>CM$rM?$($?;~$N2sE>J}8~$r?^<($7$J$5$$!#%+%a%i$N;k@~J}8~$b5-F~$9$k$3$H!#(B
glRotatef()$B4X?t$K$*$$$F!"(BY$B<4%Y%/%H%k(B(0,1,0)$B$KBP$7$F@52sE>CM$rM?$($?;~$N2sE>J}8~$r?^<($7$J$5$$!#%+%a%i$N;k@~J}8~$b5-F~$9$k$3$H!#(B
glRotatef()$B4X?t$K$*$$$F!"(BZ$B<4%Y%/%H%k(B(0,0,1)$B$KBP$7$F@52sE>CM$rM?$($?;~$N2sE>J}8~$r?^<($7$J$5$$!#%+%a%i$N;k@~J}8~$b5-F~$9$k$3$H!#(B
$B>.$5$$%m%4$,$"$k1_<~$K1h$C$F;~7W2s$j$K1?F0$9$k%W%m%0%i%`$r:n@.$7$J$5$$!JIC?K$N@h$K%m%4$,D%$jIU$$$F$$$k%$%a!<%8$G$9!K!#(B
$B>.$5$$%m%4$,$"$k1_<~$K1h$C$F;~7W2s$j$K1?F0$9$k%W%m%0%i%`$r:n@.$7$J$5$$!#$?$@$7%m%4$O2sE>$5$;$J$$$3$H!J4QMw