Secrand.rb

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Tanaka A. wrote:

e$B%`$OJQ$o$C$F$J$$$H;W$&$s$G$9$h$M$’!#e(B
e$B$$!#>e5-$O%F%9%H$KF~$l$^$7$g$&!#e(B

e$B$G!“LdBj$N%3%a%s%H$O!“J8A4BN$r:o$m$&$H;W$$$^$9!#e(BMTe$B$G$”$k$3$H$OD>A0$KJLESe(B
e$B=q$$$F$”$k$7!#e(B

[ruby-dev:31184]e$B$N$&$5$5$s$K$h$k=$@5$bF~$l$F!"$3$l$GL$K8+$($F$kHO0O$Ne(B
e$BLdBj$O$J$/$J$j$^$7$?$M!#e(B

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)

iQEVAwUBRpXO5B9L2jg5EEGlAQLVVQgAraKHAtbsQgfz1yKIPLxMzg9PKJfGQ8qh
MVk9cDaFV0T9EYDwOI+Poem6/kGlyI2xPrGX66wbvcRKvSliJGATqQlL7cXCKA+n
nmmBQHrXK1BpaWqXFUKbpsieH57FfzYD8BKuQYQid1246PNAwsBx7S4pXZJ8gIWB
ftuWFTpzX0saDbOeBc+oJS/emUJIMCxPfnqXwejLrvp8HBJyzokr+vTcUPDHwk4g
oNZgADcC5lloGzwuj0HfE0kfWCGdMSzkVHbeg4jfbcrfuAIuaimCF5l0UAXnrwl3
K5iwkl1yEyPFy/fRBd4YUUSDfg3B2AGrqFNOVkBNWHbE1DPJYqutzg==
=+t6a
-----END PGP SIGNATURE-----

e$B$J$+$@$G$9!#e(B

At Thu, 12 Jul 2007 15:49:36 +0900,
NAKAMURA, Hiroshi wrote in [ruby-dev:31192]:

[ruby-dev:31184]e$B$N$&$5$5$s$K$h$k=$@5$bF~$l$F!"$3$l$GL$K8+$($F$kHO0O$Ne(B
e$BLdBj$O$J$/$J$j$^$7$?$M!#e(B

e$B=PCY$l$?46$,$"$j$^$9$,!"7Y9p$NM^@)$H$+:Y$+$$%_%9$N=$@5$H$+!#e(B

— random.c~ 2007-07-12 05:16:12.000000000 +0900
+++ random.c 2007-07-12 06:05:21.000000000 +0900
@@ -342,6 +342,5 @@ random_bytes(VALUE obj, VALUE len)
int r;
struct MT *mt;

  • unsigned char *ptr;
  • unsigned char *pend;
  • char *ptr, *pend;

    switch (TYPE(len)) {
    @@ -617,12 +616,12 @@ limited_fix_rand(struct MT *mt, unsigned

static VALUE
-limited_big_rand(struct MT *mt, struct RBignum *limit)
+limited_big_rand(struct MT *mt, VALUE vmax)
{
unsigned long mask, lim, rnd;

  • struct RBignum *val;
  • struct RBignum *val, *limit = RB_GC_GUARD(vmax);
    int i, len, boundary;

    len = (limit->len * SIZEOF_BDIGITS + 3) / 4;

  • val = (struct RBignum *)rb_big_clone((VALUE)limit);
  • val = RBIGNUM(rb_big_clone(vmax));
    val->sign = 1;
    #if SIZEOF_BDIGITS == 2
    @@ -662,31 +661,26 @@ limited_big_rand(struct MT *mt, struct R

static VALUE
-limited_rand(struct MT *mt, VALUE *max)
+limited_rand(struct MT *mt, VALUE vmax)
{

  • VALUE vmax = *max;
    long lmax;

    if (FIXNUM_P(vmax)) {
    lmax = FIX2LONG(vmax) - 1;

  •  fixnum:
    
  •    if (lmax <= -1) {
    
  •        rb_raise(rb_eArgError, "invalid domain");
    
  •    }
    
  • return LONG2NUM(limited_fix_rand(mt, lmax));
    }
    else {

  • struct RBignum *limit;
    Check_Type(vmax, T_BIGNUM);

  • limit = (struct RBignum *)vmax;

  • if (!limit->sign) {

  • if (!RBIGNUM(vmax)->sign) {
    rb_raise(rb_eArgError, “invalid domain”);
    }
  • limit = (struct RBignum *)rb_big_minus((VALUE)limit, INT2FIX(1));
  • if (FIXNUM_P((VALUE)limit)) {
  •  lmax = (VALUE)limit;
    
  •  goto fixnum;
    
  • vmax = rb_big_minus(vmax, INT2FIX(1));
  • if (!FIXNUM_P(vmax)) {
  •  return limited_big_rand(mt, vmax);
    
    }
  • return limited_big_rand(mt, limit);
  • lmax = FIX2LONG(vmax);
  • }
  • if (lmax < 0) {
  • rb_raise(rb_eArgError, “invalid domain”);
    }
  • return ULONG2NUM(limited_fix_rand(mt, lmax));
    }

@@ -717,5 +711,5 @@ random_rand(int argc, VALUE *argv, VALUE
rb_scan_args(argc, argv, “01”, &vmax);
if (NIL_P(vmax) || vmax == INT2FIX(0)) {

  •  return rb_float_new(genrand_real_0(get_mt(obj)));
    
  • return rb_float_new(genrand_real_0(get_mt(obj)));
    }
    mt = get_mt(obj);
    @@ -768,5 +762,5 @@ random_rand(int argc, VALUE *argv, VALUE
    break;
    }
  • return limited_rand(mt, &vmax);
  • return limited_rand(mt, vmax);
    }

@@ -808,5 +802,5 @@ random_integer(VALUE obj, VALUE vmax)
rb_raise(rb_eArgError, “argument must be an integer”);
}

  • return limited_rand(mt, &vmax);
  • return limited_rand(mt, vmax);
    }

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Nobuyoshi N. wrote:

e$B=PCY$l$?46$,$"$j$^$9$,!"7Y9p$NM^@)$H$+:Y$+$$%_%9$N=$@5$H$+!#e(B

e$B$“$j$,$H$&$4$6$$$^$9!#$H$$$&$o$1$G=$@5HG!#$b$&=*$o$j$@$m$&!”$?$V$s!#e(B

http://dev.ctor.org/download/random_20070713.tar.gz
304e2d1be97f1cbb6d5536993c0334c63d15a48d random_20070713.tar.gz

  1. 64bite$B4D6-BP1~DI2C!#e(B[ruby-dev:31183]
  2. "Ruby currently used a modified…"e$B:o=|!#e(B[ruby-dev:31192]
  3. e$B7Y9p$NM^@)$H$+:Y$+$$%_%9$N=$@5!#e(B[ruby-dev:31193]
  4. mt19937are$BIUB0$N%F%9%HDI2C!#e(B[ruby-dev:31192]

e$B$H$3$m$G!“<j85$G$O$3$s$J7Y9p=P$F$^$9$,!”$3$l$Oe(BOK?

0% gcc -Wall -g -O2 -fPIC -I. -I.ext/include/i686-linux -I…/include -I… -DRUBY_EXPORT -c …/random.c
…/random.c: In function ‘limited_big_rand’:
…/random.c:620: warning: initialization makes pointer from integer without a cast
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (Cygwin)

iQEVAwUBRpbWuR9L2jg5EEGlAQJFEwf+LddAPC5xS81e2nL7G/8yFCgp6ojNIOxX
X1njbac7mz7Ar69HZuuQZRLTP5f1R9Fs7f6hBLWG5oiKbOSKkV2GpdyBAIBpwLdu
Ci7pQrtrN4S3LKukN2YiM2ImPFMqW0VCYzmo8hSo/G1asGn1BSzOkk0lPTxS2nAY
h+9SrUndADht0/x4rHnZOLuSgqNnoS9cyzwgWhVLH6YQwT+UxP7hPpuPiQqV1uVe
zpgNvEOX+Lln2s7nNUaL2lrKNIA8ZOOejx5nHwvOepYYhAjib4WOgszl+pqhjSJf
+Yl3bZ2SpDWdV1e44xjtcDoIn8Epk2B0erFKbQz6rj+NzK+AZzV6kg==
=HtWB
-----END PGP SIGNATURE-----

e$B$J$+$@$G$9!#e(B

At Fri, 13 Jul 2007 10:35:15 +0900,
NAKAMURA, Hiroshi wrote in [ruby-dev:31201]:

e$B$H$3$m$G!"<j85$G$O$3$s$J7Y9p=P$F$^$9$,!"$3$l$Oe(BOK?

0% gcc -Wall -g -O2 -fPIC -I. -I.ext/include/i686-linux -I…/include -I… -DRUBY_EXPORT -c …/random.c
…/random.c: In function ‘limited_big_rand’:
…/random.c:620: warning: initialization makes pointer from integer without a cast

e$B$"$le(B? e$B%Q%C%A$,2u$l$F$?$h$&$G$9!#e(B

RBIGNUM(RB_GC_GUARD(vmax)) e$B$He(BRBIGNUM()e$B$r$D$1$F$/$@$5$$!#e(B

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Nobuyoshi N. wrote:

e$B$"$le(B? e$B%Q%C%A$,2u$l$F$?$h$&$G$9!#e(B

RBIGNUM(RB_GC_GUARD(vmax)) e$B$He(BRBIGNUM()e$B$r$D$1$F$/$@$5$$!#e(B

e$B$G$O99?7!#e(B[ruby-dev:31201]e$BHG$H$N0c$$$Oe(B1e$B9T$@$1$G$9!#e(B

http://dev.ctor.org/download/random_20070713_2.tar.gz
5defa8ee1f9f3b7d9ea1a501dafbaa73beb83bf2 random_20070713_2.tar.gz

e$B:#EY$3$=$*$7$^$$!#e(B

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)

iQEVAwUBRpbeUR9L2jg5EEGlAQJsjQf/T5iUtdFGhY/JicG6XjfLJBUAHlNAL4nc
3CvYyEps33Px02AZngf13wwpEKi1Us3WJCBvsA/Quhm7nQ3sYHL90tQ6UX8SC6UR
mt3irozpvt8KWbRqJ54DK9B0v78h0Iw8loDOEQ4KeHwzAbN3XlCSioyYHSQkWPdx
tgdCQyF0VpjwFAij0s167wUC+eU1oNAPKf8j0Fv0TtazTUwargaF2crbwqAI47NV
5o+PFXdIJmyj202qLInkE3Cwr1hngxVi8axEQM+Xcao0H6EM/1uni5ZSyBbHIu7e
nMFEqLHMF/YGrDidakCc3qz7O/j5YUpP069ju/2ZZ97xT4peL45QBg==
=YoV1
-----END PGP SIGNATURE-----

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:31515] Re: Random”
on Mon, 20 Aug 2007 14:36:03 +0900, Tanaka A. [email protected]
writes:

|e$B:G6a!"e(BIO e$B$Ke(B bytes e$B%a%=%C%I$,$G$-$F$$$k$3$H$K5$$,$D$$$?$N$G$9$,!"e(B
|e$B$3$l$,e(B IO e$B$He(B Random e$B$G0c$$$^$9!#e(B
|
|Random#bytes e$B$O<u$1<h$C$?0z?t$ND9$5$N%P%$%HNs$rJV$9$b$N$G$9!#e(B
|e$B$=$l$KBP$7!"e(BIO#bytes e$B$Oe(B Enumerator e$B$rJV$7$^$9!#e(B

|duck typing e$B$NET9g>e!“F1L>$G5sF0$,0[$J$k%a%=%C%I$O$G$-$l$PHre(B
|e$B$1$?$[$&$,$$$$$H;W$&$s$G$9$,!”$I$&$G$7$g$&$+!#e(B

e$B=P<+$,0c$&$N$G0c$C$F$b$h$$$h$&$J5$$b$7$^$9!#e(BIOe$B$i$7$$5sF0$,M_e(B
e$B$7$1$l$P$I$&9M$($F$be(Bbytese$B$@$1$G$OB-$j$J$$$N$G!“$b$C$He(BIOe$B$i$7$$e(B
e$B%i%C%Q!<$r=q$/$G$7$g$&$7!#$”$($FB7$($k$H$$$&$N$G$"$l$P!"e(B
Random#bytese$B$,0z?t$r$H$i$J$+$C$?$ie(BEnumeratore$B$rJV$9$H$$$&e(BAPI
e$B$G$I$&$G$7$g$&$M!#e(B

e$B0lJ}!“5U$Ke(BIO#bytese$B$,0z?t$r$H$C$?$i$=$N%P%$%H?t$@$1FI$_9~$s$Ge(B
e$BJV$9$H$$$&e(BAPIe$B$K$9$k$+$I$&$+$G$9$,!”$=$l$O$J$s$+JQ$J5$$,$9$k$Ne(B
e$B$O$J$<$G$7$g$&$+!#e(BIO#bytese$B$H0z?t$rB7$($k$Y$-e(BIO#linese$B$,$9$G$Ke(B
e$BJL$N0z?t$r;}$D$+$i$+$J!#e(B

e$B$H$3$m$G!“J|CV$7$F$^$7$?$,!”$3$N%Q%C%A$O$=$m$=$m<h$j9~$s$@J}e(B
e$B$,$h$$$N$G$7$g$&$+!#e(B

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Yukihiro M. wrote:

e$B$H$3$m$G!“J|CV$7$F$^$7$?$,!”$3$N%Q%C%A$O$=$m$=$m<h$j9~$s$@J}e(B
e$B$,$h$$$N$G$7$g$&$+!#e(B

e$B$^$D$b$H$5$s$+$i$N@Q6KE*$JH?BP$,$J$1$l$PF~$l$^$7$g$&!#$G!"@Q6KE*$JH?BP$,e(B
e$B=P$k2DG=@-$,$"$k$N$,!"e(B[ruby-dev:31174]e$B$K=q$$$FJ|CV$5$l$?!"0J2<$NBhe(B2e$BJ8$G$9!#e(B

e$B$H$3$m$G$^$D$b$H$5$s!"$3$l!"e(B1.9e$B$KF~$l$k$D$b$j$G$d$C$F$k$s$G$9$,!“e(B
e$B$^$@$=$NA0Ds$G$$$$$G$9$+e(B? e$BNc$($P!Ve(Bsrande$BGQ;_$9$k$h$&$J$N$OF~$l$J$$!W$H$+e(B
e$B$”$l$PJ}8~=$@5$9$k$N$G!"Aa$a$K65$($F$/$@$5$$!#e(B

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)

iQEVAwUBRsmsUR9L2jg5EEGlAQJk3AgAw1C8ZfjrNx8PwIee8BT2Fxs92s47izpG
W3aBGrhKDJbJhDrJmyBocOCmJ9PcIHleTN4qF/8msj2NxrMk2FcfJXuvqVmyk3zd
3KsOclLvaT+grjSPpuTng5xKCHtv9bTwM3oYyLyvzRR8AgScOSJcjgXxLJ5YmaiD
9wyDNpGwUKAJK+3bgtIs08P/OjsRv4SMpYpQACjlB5JLjpDjwUTm2h49uTJKQ+DQ
dBxcM/u9jBB+dr2ScqqeWHBMa5eQgOLw3SoJ04V0efd+D7p57klbbHbpBfDBljJI
+e6hMBvhvYzImCOAQhE9ys1SEhZF8Cae7xePX+Q1v1/agIGOxP0dAw==
=Iqw/
-----END PGP SIGNATURE-----

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:31543] Re: Random”
on Tue, 21 Aug 2007 00:00:14 +0900, “NAKAMURA, Hiroshi”
[email protected] writes:

|e$B$^$D$b$H$5$s$+$i$N@Q6KE*$JH?BP$,$J$1$l$PF~$l$^$7$g$&!#$G!“@Q6KE*$JH?BP$,e(B
|e$B=P$k2DG=@-$,$”$k$N$,!"e(B[ruby-dev:31174]e$B$K=q$$$FJ|CV$5$l$?!“0J2<$NBhe(B2e$BJ8$G$9!#e(B
|
|> e$B$H$3$m$G$^$D$b$H$5$s!”$3$l!"e(B1.9e$B$KF~$l$k$D$b$j$G$d$C$F$k$s$G$9$,!“e(B
|> e$B$^$@$=$NA0Ds$G$$$$$G$9$+e(B? e$BNc$($P!Ve(Bsrande$BGQ;_$9$k$h$&$J$N$OF~$l$J$$!W$H$+e(B
|> e$B$”$l$PJ}8~=$@5$9$k$N$G!"Aa$a$K65$($F$/$@$5$$!#e(B

e$B$"$l!“e(Bsrande$B$C$F$J$/$9$s$G$7$?$C$1!#0z?t$J$7$N$b$N$O;D$9$H$$e(B
e$B$&G’<1$G$7$?!#40A4$K$J$/$9$H$J$k$H$I$&$J$s$@$m$&$J$”!#e(B

In article [email protected],
“NAKAMURA, Hiroshi” [email protected] writes:

e$B$G$O99?7!#e(B[ruby-dev:31201]e$BHG$H$N0c$$$Oe(B1e$B9T$@$1$G$9!#e(B

http://dev.ctor.org/download/random_20070713_2.tar.gz
5defa8ee1f9f3b7d9ea1a501dafbaa73beb83bf2 random_20070713_2.tar.gz

e$B:G6a!"e(BIO e$B$Ke(B bytes
e$B%a%=%C%I$,$G$-$F$$$k$3$H$K5$$,$D$$$?$N$G$9$,!"e(B
e$B$3$l$,e(B IO e$B$He(B Random e$B$G0c$$$^$9!#e(B

Random#bytes e$B$O<u$1<h$C$?0z?t$ND9$5$N%P%$%HNs$rJV$9$b$N$G$9!#e(B

% ./ruby -e ‘p Random.new.bytes(10)’
“\315\303\255\325\347\232\237\207\361\000”

e$B$=$l$KBP$7!"e(BIO#bytes e$B$Oe(B Enumerator e$B$rJV$7$^$9!#e(B

% ./ruby -e ‘p STDIN.bytes’
#Enumerable::Enumerator:0xb7d52ca0

duck typing e$B$NET9g>e!“F1L>$G5sF0$,0[$J$k%a%=%C%I$O$G$-$l$PHre(B
e$B$1$?$[$&$,$$$$$H;W$&$s$G$9$,!”$I$&$G$7$g$&$+!#e(B

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

NAKAMURA, Hiroshi wrote:

e$B$G$OBLL$G!“e(B
ruby -e ‘p rand; srand; p rand; srand; p rand’
e$B$G$J$$$H:$$k!”$H$$$&%7%A%e%(!<%7%g%s$O$"$k$+$Je(B?
e$B!J8e<T$C$Fe(BMTe$B$K4|BT$5$l$F$$$k@-<A$rK~$?$9$s$G$7$g$&$+e(B > e$B?t3X$N?M!Ke(B

e$B$4$H$1$s$5$s!"$I$&e(B? e$B!JL>;X$7!Ke(B

e$B3N<B$K4r$7$$%3%H$,$"$k$H$9$l$P!"e(B1.8e$B$GL50z?te(Bsrande$B$r;H$C$F$??M$K$H$C$F$N!"e(B
e$B8_49@-8~>e$G$9$M!#$G$b!"e(B1e$B9T:o$k$@$1$@$7$J$!!#!#!#e(B

e$B$H$$$&$o$1$G;d$O!VL50z?te(Bsrande$B$OMW$i$s!#$b$78_49@-=E;k$H$9$k$J$i!"0z?t$"e(B
e$B$je(Bsrande$B$b;D$7$Fe(Bwarninge$B!#$G$be(Bwarninge$B7y$$!W$G$9!#H?BP0U8+Jg=8!#e(B

e$BH?BP0U8+$O$J$$$+$o$j!";[email protected]+$b$J$$$N$G!"$I$&$7$^$7$g$&$+$M!#e(B
e$B@5$7$5$OJL$K$7$F!"$"$^$jCmL$5$l$F$J$$$H$3$m$G;EMMJQ99$9$k$N$OIT9,$+$b$7e(B
e$B$l$^$;$s!#$3$N@hC/$+$,A{$$$G$+$i!"e(B1.9.1e$B$H$+e(B1.9.2e$B$GJQ99$9$k$N$G$b$$$$$@$me(B
e$B$&$7!#e(B

e$B$H$$$&$o$1$G!":#EY$O;[email protected]+$rJg=8!#$J$1$l$P:#2s$O%9%k!<$H$$$&$3$H$G!#e(B
bignume$BJ}LL$NJQ99$,$"$k$N$G!"I,MW$K$J$C$?$ie(Bpatche$B$r:n$jD>$7$^$9!#e(B

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)

iQEVAwUBRvXPxB9L2jg5EEGlAQIOXwf/SDVnRgbSIvH9NxzltvDdjTKX8gb8Z/l6
acO4bm/24jvLKNx6wXq52FbkTVaj8jWiGIOgR0ezPflDWE4Y9C3rxStoF+ZxWDLD
XfB9Z6erxlVe3rrTCL25jkGAKFRJisMKaoy+/KAM1bltDds0B54IkU26fS9Cmq9l
DslML6Y+Hh9xMl6WEbbn/I5cx4rc5xGWVKaT/YoW8PmRT4fLN6ZhoKzDnZP4USGu
dd+55zdjQMTPEMPpEqKEwwuKFOBw8oodOC51MFM+RR6BeN/7PBoz3Qs8dZQoO9gc
ncE06Vf4gAJtCBT6e8B5Rq24qJgbDp9JbK6d5Ti+poCgm4XHyAxfXw==
=DtG+
-----END PGP SIGNATURE-----

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Yukihiro M. wrote:

|e$B$^$D$b$H$5$s$+$i$N@Q6KE*$JH?BP$,$J$1$l$PF~$l$^$7$g$&!#$G!"@Q6KE*$JH?BP$,e(B
|e$B=P$k2DG=@-$,$"$k$N$,!"e(B[ruby-dev:31174]e$B$K=q$$$FJ|CV$5$l$?!“0J2<$NBhe(B2e$BJ8$G$9!#e(B
|
|> e$B$H$3$m$G$^$D$b$H$5$s!”$3$l!"e(B1.9e$B$KF~$l$k$D$b$j$G$d$C$F$k$s$G$9$,!“e(B
|> e$B$^$@$=$NA0Ds$G$$$$$G$9$+e(B? e$BNc$($P!Ve(Bsrande$BGQ;_$9$k$h$&$J$N$OF~$l$J$$!W$H$+e(B
|> e$B$”$l$PJ}8~=$@5$9$k$N$G!"Aa$a$K65$($F$/$@$5$$!#e(B

e$B$"$l!“e(Bsrande$B$C$F$J$/$9$s$G$7$?$C$1!#0z?t$J$7$N$b$N$O;D$9$H$$e(B
e$B$&G’<1$G$7$?!#40A4$K$J$/$9$H$J$k$H$I$&$J$s$@$m$&$J$”!#e(B

e$B$"$Ne(Bpatche$B$G$O40A4$K$J$/$7$^$9!#%0%m!<%P%k$Je(B(*)e$B>uBV$rJQ99$9$k$b$N$O:o=|!"e(B
e$B$H$$$&0U?^$G$9!#e(B

e$BL50z?te(Bsrande$B$,;D$C$F$$$k$H!"$I$N$/$i$$4r$7$$$G$7$g$&$+!#e(B

e$BNc$($Pe(B1.8e$B$G!“e(B
ruby -e ‘p rand; p rand; p rand’
e$B$G$OBLL$G!“e(B
ruby -e ‘p rand; srand; p rand; srand; p rand’
e$B$G$J$$$H:$$k!”$H$$$&%7%A%e%(!<%7%g%s$O$”$k$+$Je(B?
e$B!J8e<T$C$Fe(BMTe$B$K4|BT$5$l$F$$$k@-<A$rK~$?$9$s$G$7$g$&$+e(B >
e$B?t3X$N?M!Ke(B

e$B3N<B$K4r$7$$%3%H$,$"$k$H$9$l$P!"e(B1.8e$B$GL50z?te(Bsrande$B$r;H$C$F$??M$K$H$C$F$N!"e(B
e$B8_49@-8~>e$G$9$M!#$G$b!"e(B1e$B9T:o$k$@$1$@$7$J$!!#!#!#e(B

e$B$H$$$&$o$1$G;d$O!VL50z?te(Bsrande$B$OMW$i$s!#$b$78_49@-=E;k$H$9$k$J$i!"0z?t$"e(B
e$B$je(Bsrande$B$b;D$7$Fe(Bwarninge$B!#$G$be(Bwarninge$B7y$$!W$G$9!#H?BP0U8+Jg=8!#e(B

(*)
e$B%$%s%?%W%j%?$,J#?t:n$l$k$h$&$K$J$C$?6G$K$O!"!V%0%m!<%P%k!W$H!V%$%se(B
e$B%?!<%W%j%?%9%3!<%W!W$H8@$$$o$1$kI,MW$,$"$k$N$+$J!#e(B

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)

iQEVAwUBRso9Cx9L2jg5EEGlAQKLEQf/aj2Bz6aUpjwSs+x8pj37mh+BAOmOlvHu
03PhEBn9hu23n7jo3n2Z/779cDrWBNyLV9r7LhkpR21PjKywV8g6mxwKkQ9U4s3B
lgJg00ByKw0XK89E1mYePI8M963tMwerssXV4DlhQCNEfh7GTeOo0DuebU8te9k2
zhYzPNZy/pZZbbSadiBGMDWZjskpaVbrUbuD1HmTpf0o946rVSezs12m5u4bxaqn
G0/ruxkEmF6rGzIcYCo1QfRtQ2DUYrBFQj7FpQRoRRVOXIpEXNhpYLAJmaUempMA
s/JV9c9ocB5IHTE2o2BjdGzZpfndrRI3ms4Cd/xV3/trM1DUKTQkmg==
=GO3R
-----END PGP SIGNATURE-----