tdiary 4.1.3 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +24 -25
- data/js/amazon.js +5 -35
- data/js/amazon_bitly.js +43 -0
- data/lib/tdiary/admin.rb +0 -8
- data/lib/tdiary/configuration.rb +5 -5
- data/lib/tdiary/core_ext.rb +5 -3
- data/lib/tdiary/dispatcher/index_main.rb +10 -16
- data/lib/tdiary/dispatcher/update_main.rb +8 -18
- data/lib/tdiary/filter/spam.rb +2 -2
- data/lib/tdiary/plugin/00default.rb +13 -37
- data/lib/tdiary/plugin/en/00default.rb +30 -32
- data/lib/tdiary/plugin/en/05referer.rb +4 -4
- data/lib/tdiary/plugin/ja/00default.rb +28 -31
- data/lib/tdiary/plugin/ja/05referer.rb +4 -4
- data/lib/tdiary/version.rb +1 -1
- data/lib/tdiary/view.rb +0 -4
- data/misc/plugin/amazon.rb +4 -2
- data/misc/plugin/amazon/amazonimg.rb +1 -1
- data/misc/plugin/category.rb +12 -20
- data/misc/plugin/category_autocomplete.rb +1 -1
- data/misc/plugin/comment_emoji_autocomplete.rb +1 -2
- data/misc/plugin/edit_today.rb +5 -9
- data/misc/plugin/en/pb-show.rb +2 -2
- data/misc/plugin/en/tb-show.rb +4 -4
- data/misc/plugin/hide-mail-field.rb +2 -2
- data/misc/plugin/image.rb +1 -3
- data/misc/plugin/ja/pb-show.rb +2 -2
- data/misc/plugin/ja/tb-show.rb +4 -4
- data/misc/plugin/my-ex.rb +0 -4
- data/misc/plugin/my-sequel.rb +10 -10
- data/misc/plugin/pb-show.rb +0 -6
- data/misc/plugin/ping.rb +1 -1
- data/misc/plugin/random_google.rb +12 -12
- data/misc/plugin/recent_rss.rb +3 -2
- data/misc/plugin/speed_comment.rb +1 -1
- data/misc/plugin/tb-show.rb +0 -6
- data/misc/plugin/weather.rb +3 -7
- data/spec/acceptance/save_conf_dnsbl_spec.rb +2 -2
- data/spec/core/core_ext_spec.rb +7 -0
- data/spec/plugin/plugin_helper.rb +3 -9
- metadata +4 -14
- data/views/i.category.rhtml +0 -6
- data/views/i.conf.rhtml +0 -14
- data/views/i.day.rhtml +0 -28
- data/views/i.diary.rhtml +0 -17
- data/views/i.footer.rhtml +0 -2
- data/views/i.header.rhtml +0 -3
- data/views/i.latest.rhtml +0 -24
- data/views/i.month.rhtml +0 -39
- data/views/i.search.rhtml +0 -5
- data/views/i.update.rhtml +0 -40
- data/views/i.update.rhtml.en +0 -40
data/misc/plugin/weather.rb
CHANGED
@@ -310,11 +310,11 @@ class Weather
|
|
310
310
|
@error = nil
|
311
311
|
|
312
312
|
begin
|
313
|
-
timeout( WAITTIME ) do
|
313
|
+
Timeout::timeout( WAITTIME ) do
|
314
314
|
d = @conf.to_native( fetch( url, MAXREDIRECT, header ) )
|
315
315
|
parse_html( d, items )
|
316
316
|
end
|
317
|
-
rescue
|
317
|
+
rescue Timeout::Error
|
318
318
|
@error = 'Timeout'
|
319
319
|
rescue
|
320
320
|
@error = @conf.to_native( $!.message.gsub( /[\t\n]/, ' ' ) )
|
@@ -454,11 +454,7 @@ def weather( date = nil, wrap = true )
|
|
454
454
|
path = @options['weather.dir'] || Weather_default_path
|
455
455
|
w = Weather::restore( path, date || @date )
|
456
456
|
if w then
|
457
|
-
|
458
|
-
%Q|#{wrap ? '<div class="weather">' : ' '}#{w.to_html( @options['weather.show_error'] )}#{wrap ? "</div>\n" : ''}|
|
459
|
-
else
|
460
|
-
%Q|<P>#{w.to_i_html if @options['weather.show_mobile']}</P>\n|
|
461
|
-
end
|
457
|
+
%Q|#{wrap ? '<div class="weather">' : ' '}#{w.to_html( @options['weather.show_error'] )}#{wrap ? "</div>\n" : ''}|
|
462
458
|
else
|
463
459
|
''
|
464
460
|
end
|
@@ -42,7 +42,7 @@ BODY
|
|
42
42
|
end
|
43
43
|
|
44
44
|
scenario 'IPベースのブラックリストでセーフの場合' do
|
45
|
-
allow(IPSocket).to receive(:getaddress) { raise
|
45
|
+
allow(IPSocket).to receive(:getaddress) { raise Timeout::Error }
|
46
46
|
|
47
47
|
append_default_diary
|
48
48
|
|
@@ -92,7 +92,7 @@ BODY
|
|
92
92
|
end
|
93
93
|
|
94
94
|
scenario 'ドメインベースのブラックリストでセーフの場合' do
|
95
|
-
allow(Resolv).to receive(:getaddress) { raise
|
95
|
+
allow(Resolv).to receive(:getaddress) { raise Timeout::Error }
|
96
96
|
|
97
97
|
append_default_diary
|
98
98
|
|
data/spec/core/core_ext_spec.rb
CHANGED
@@ -47,6 +47,13 @@ describe "core extension library" do
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
+
context "thumbsupでもemojify" do
|
51
|
+
before { @result = "いいね!:thumbsup:".emojify }
|
52
|
+
it do
|
53
|
+
expect(@result).to eq "いいね!<img src='http://www.emoji-cheat-sheet.com/graphics/emojis/%2B1.png' width='20' height='20' title='%2B1' alt='%2B1' class='emoji' />"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
50
57
|
context "絵文字に変換しない" do
|
51
58
|
[
|
52
59
|
":<script type='text/javascript'></script>: は美味しい",
|
@@ -138,7 +138,7 @@ class PluginFake
|
|
138
138
|
end
|
139
139
|
|
140
140
|
def smartphone?
|
141
|
-
|
141
|
+
false
|
142
142
|
end
|
143
143
|
alias iphone? smartphone?
|
144
144
|
end
|
@@ -151,17 +151,11 @@ class CGIFake
|
|
151
151
|
end
|
152
152
|
|
153
153
|
def mobile_agent?
|
154
|
-
|
155
|
-
^DoCoMo|
|
156
|
-
^(?:KDDI|UP\.Browser)|
|
157
|
-
^(?:J-(?:PHONE|EMULATOR)|Vodafone|SoftBank|MOT-|[VS]emulator)|
|
158
|
-
WILLCOM|DDIPOCKET|
|
159
|
-
PDXGW|ASTEL|Palmscape|Xiino|sharp\ pda\ browser|Windows\ CE|L-mode
|
160
|
-
]x
|
154
|
+
false
|
161
155
|
end
|
162
156
|
|
163
157
|
def smartphone?
|
164
|
-
|
158
|
+
false
|
165
159
|
end
|
166
160
|
end
|
167
161
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tdiary
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TADA Tadashi
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2015-
|
13
|
+
date: 2015-09-29 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: thor
|
@@ -87,6 +87,7 @@ files:
|
|
87
87
|
- js/02edit.coffee
|
88
88
|
- js/02edit.js
|
89
89
|
- js/amazon.js
|
90
|
+
- js/amazon_bitly.js
|
90
91
|
- js/calendar3.js
|
91
92
|
- js/caretposition.js
|
92
93
|
- js/category.js
|
@@ -413,17 +414,6 @@ files:
|
|
413
414
|
- views/diary.rhtml
|
414
415
|
- views/footer.rhtml
|
415
416
|
- views/header.rhtml
|
416
|
-
- views/i.category.rhtml
|
417
|
-
- views/i.conf.rhtml
|
418
|
-
- views/i.day.rhtml
|
419
|
-
- views/i.diary.rhtml
|
420
|
-
- views/i.footer.rhtml
|
421
|
-
- views/i.header.rhtml
|
422
|
-
- views/i.latest.rhtml
|
423
|
-
- views/i.month.rhtml
|
424
|
-
- views/i.search.rhtml
|
425
|
-
- views/i.update.rhtml
|
426
|
-
- views/i.update.rhtml.en
|
427
417
|
- views/latest.rhtml
|
428
418
|
- views/mail.rtxt
|
429
419
|
- views/mail.rtxt.en
|
@@ -456,7 +446,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
456
446
|
version: '0'
|
457
447
|
requirements: []
|
458
448
|
rubyforge_project:
|
459
|
-
rubygems_version: 2.
|
449
|
+
rubygems_version: 2.5.0
|
460
450
|
signing_key:
|
461
451
|
specification_version: 4
|
462
452
|
summary: a TSUKKOMI-able Web-log
|
data/views/i.category.rhtml
DELETED
data/views/i.conf.rhtml
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
<h1><%=h @conf.html_title %> [<%%=h navi_preference %>]</h1>
|
2
|
-
<P>
|
3
|
-
<%%= mobile_navi %>
|
4
|
-
</P>
|
5
|
-
<P>|<%% each_conf_genre do |genre|%><%% each_conf_key( genre ) do |key|%><A HREF="<%%=h @conf.update%>?conf=<%%=key%>"><%%=h conf_label( key )%></A>|<%% end %>|<%% end %></P>
|
6
|
-
|
7
|
-
<FORM METHOD="POST" ACTION="<%=h @conf.update %>">
|
8
|
-
<INPUT TYPE="HIDDEN" NAME="conf" VALUE="<%=h @key%>">
|
9
|
-
<H2><%%=conf_label( <%=@key.dump%> )%></H2>
|
10
|
-
<%%=conf_proc( <%=@key.dump%> )%>
|
11
|
-
<INPUT TYPE="SUBMIT" NAME="saveconf" VALUE="OK">
|
12
|
-
</FORM>
|
13
|
-
|
14
|
-
<HR>
|
data/views/i.day.rhtml
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
<H1><%=h @conf.html_title %></H1>
|
2
|
-
<P>
|
3
|
-
<%%= mobile_navi %>
|
4
|
-
</P>
|
5
|
-
<%
|
6
|
-
if @diary then
|
7
|
-
param = {
|
8
|
-
'prefix' => 'i.',
|
9
|
-
'index' => @conf.index,
|
10
|
-
'date_format' => @conf.date_format,
|
11
|
-
'section_anchor' => @conf.section_anchor,
|
12
|
-
'comment_anchor' => @conf.comment_anchor,
|
13
|
-
'long_mode' => false,
|
14
|
-
'show_referer' => false,
|
15
|
-
'referer_limit' => 0,
|
16
|
-
'show_comment' => @conf.show_comment,
|
17
|
-
'comment_limit' => -1,
|
18
|
-
'multi_user' => @conf.multi_user,
|
19
|
-
'anchor' => true,
|
20
|
-
'hide_comment_form' => @conf.hide_comment_form,
|
21
|
-
'show_nyear' => false,
|
22
|
-
} %>
|
23
|
-
<%= @diary.eval_rhtml( param ) %>
|
24
|
-
<%%=comment_form_mobile%>
|
25
|
-
<% else %>
|
26
|
-
<p><%%=no_diary%></P><%
|
27
|
-
end %>
|
28
|
-
<%%= mobile_navi %>
|
data/views/i.diary.rhtml
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
<H2><%%= title_proc( Time::at( <%=@date.to_i%> ), <%= title.dump.gsub( /%/, '\\\\045' ) %> ) %></H2>
|
2
|
-
<%%= body_enter_proc( Time::at( <%=@date.to_i%> ) ) %>
|
3
|
-
<%= to_html( opt, :CHTML ) %>
|
4
|
-
<%%= body_leave_proc( Time::at( <%=@date.to_i%> ) ) %><%
|
5
|
-
if opt['show_comment'] and count_comments > 0 then
|
6
|
-
idx = 0 %>
|
7
|
-
<P><%%=comment_today%><%%=comment_total( <%=count_comments%> )%>:<BR><%
|
8
|
-
each_comment(opt['comment_limit'] ) do |comment|
|
9
|
-
if comment.visible? %>
|
10
|
-
<A NAME="c<%= '%02d' % idx += 1 %>">#</A>
|
11
|
-
<%=h comment.name %> [<%= comment.shorten( 200 ).make_link %>]<BR><%
|
12
|
-
else
|
13
|
-
idx += 1
|
14
|
-
end
|
15
|
-
end %></P>
|
16
|
-
<%
|
17
|
-
end %>
|
data/views/i.footer.rhtml
DELETED
data/views/i.header.rhtml
DELETED
data/views/i.latest.rhtml
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
<H1><%=h @conf.html_title %></H1>
|
2
|
-
<%
|
3
|
-
param = {
|
4
|
-
'prefix' => 'i.',
|
5
|
-
'index' => @conf.index,
|
6
|
-
'date_format' => @conf.date_format,
|
7
|
-
'section_anchor' => @conf.section_anchor,
|
8
|
-
'comment_anchor' => @conf.comment_anchor,
|
9
|
-
'long_mode' => false,
|
10
|
-
'show_referer' => false,
|
11
|
-
'referer_limit' => 0,
|
12
|
-
'show_comment' => @conf.show_comment,
|
13
|
-
'comment_limit' => -1,
|
14
|
-
'multi_user' => @conf.multi_user,
|
15
|
-
'show_nyear' => false,
|
16
|
-
}
|
17
|
-
latest( 1 ) do |diary| %>
|
18
|
-
<P>
|
19
|
-
<%%= mobile_navi %>
|
20
|
-
</P>
|
21
|
-
<%= diary.eval_rhtml( param ) %>
|
22
|
-
<%%=comment_form_mobile%>
|
23
|
-
<%%= mobile_navi %>
|
24
|
-
<% end %>
|
data/views/i.month.rhtml
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
<H1><%=h @conf.html_title %></H1>
|
2
|
-
<%
|
3
|
-
diary = @diaries[@diaries.keys.sort[0]]
|
4
|
-
if diary then
|
5
|
-
param = {
|
6
|
-
'prefix' => 'i.',
|
7
|
-
'index' => @conf.index,
|
8
|
-
'date_format' => @conf.date_format,
|
9
|
-
'section_anchor' => @conf.section_anchor,
|
10
|
-
'comment_anchor' => @conf.comment_anchor,
|
11
|
-
'long_mode' => false,
|
12
|
-
'show_referer' => false,
|
13
|
-
'referer_limit' => 0,
|
14
|
-
'show_comment' => @conf.show_comment,
|
15
|
-
'comment_limit' => -1,
|
16
|
-
'multi_user' => @conf.multi_user,
|
17
|
-
'show_nyear' => false,
|
18
|
-
}
|
19
|
-
%><P>
|
20
|
-
<%%= mobile_navi %>
|
21
|
-
</P>
|
22
|
-
<%= diary.eval_rhtml( param ) %>
|
23
|
-
<% unless @conf.hide_comment_form %>
|
24
|
-
<HR>
|
25
|
-
<FORM METHOD="POST" ACTION="<%=h @conf.index %>">
|
26
|
-
<INPUT TYPE="HIDDEN" NAME="date" VALUE="<%= diary.date.strftime( '%Y%m%d' ) %>">
|
27
|
-
<P><%%=comment_description_short%><BR>
|
28
|
-
<%%=comment_name_label_short%>: <INPUT NAME="name"><BR>
|
29
|
-
<%%=comment_mail_label_short%>: <INPUT NAME="mail"><BR>
|
30
|
-
<%%=comment_body_label_short%>:<BR>
|
31
|
-
<TEXTAREA NAME="body"></TEXTAREA><BR>
|
32
|
-
<INPUT TYPE="SUBMIT" NAME="comment" value="<%%=comment_submit_label_short%>"></P>
|
33
|
-
</FORM><%
|
34
|
-
end
|
35
|
-
else %>
|
36
|
-
<A HREF="<%=h @conf.index %>" ACCESSKEY="1">[1]<%= mobile_navi_latest %></A>
|
37
|
-
<P><%= no_diary %></P><%
|
38
|
-
end %>
|
39
|
-
<%%= mobile_navi %>
|
data/views/i.search.rhtml
DELETED
data/views/i.update.rhtml
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
<H1><%=h @conf.html_title %> [<%%= submit_label %>]</H1>
|
2
|
-
|
3
|
-
<P>
|
4
|
-
<%%= mobile_navi %>
|
5
|
-
</P>
|
6
|
-
|
7
|
-
<FORM METHOD="POST" ACTION="<%=h @conf.update %>">
|
8
|
-
<INPUT TYPE="HIDDEN" NAME="old" VALUE="<%= @date.strftime( '%Y%m%d' ) %>">
|
9
|
-
<P>
|
10
|
-
<%=@csrf_protection%>
|
11
|
-
<INPUT NAME="year" TABINDEX="1" ACCESSKEY="Y" SIZE="4" VALUE="<%= @date.year %>">年
|
12
|
-
<INPUT NAME="month" TABINDEX="2" ACCESSKEY="M" SIZE="2" VALUE="<%= @date.mon %>">月
|
13
|
-
<INPUT NAME="day" TABINDEX="3" ACCESSKEY="D" SIZE="2" VALUE="<%= @date.day %>">日
|
14
|
-
<INPUT TYPE="SUBMIT" TABINDEX="4" ACCESSKEY="e" NAME="edit" VALUE="この日付の日記を編集">
|
15
|
-
</P>
|
16
|
-
<P>タイトル: <INPUT NAME="title" TABINDEX="5" ACCESSKEY="T" SIZE="40" VALUE="<%=h @diary.title %>"></P>
|
17
|
-
<P>本文(<%=h @conf.style %>スタイル):<BR>
|
18
|
-
<TEXTAREA NAME="body" TABINDEX="6" ACCESSKEY="C" COLS="100%" ROWS="5"><%=h @diary.to_src %></TEXTAREA></P>
|
19
|
-
<P><INPUT TYPE="SUBMIT" TABINDEX="7" ACCESSKEY="A" NAME="<%%= submit_command %>" VALUE=" <%%= submit_label %> "></P>
|
20
|
-
<P><INPUT TYPE="CHECKBOX" NAME="hide" VALUE="true" <% unless @diary.visible? then %>checked <% end %>TABINDEX="8" ACCESSKEY="H">隠す</P>
|
21
|
-
</FORM>
|
22
|
-
|
23
|
-
<FORM METHOD="POST" ACTION="<%=h @conf.update %>">
|
24
|
-
<%=@csrf_protection%>
|
25
|
-
<INPUT TYPE="HIDDEN" NAME="year" VALUE="<%= @date.year %>">
|
26
|
-
<INPUT TYPE="HIDDEN" NAME="month" VALUE="<%= @date.month %>">
|
27
|
-
<INPUT TYPE="HIDDEN" NAME="day" VALUE="<%= @date.day %>">
|
28
|
-
<P><%%=comment_today%></P><%
|
29
|
-
idx = 0
|
30
|
-
@diary.each_comment do |comment| %>
|
31
|
-
<P>
|
32
|
-
<INPUT TYPE="CHECKBOX" NAME="<%= idx += 1 %>" VALUE="true"<% if comment.visible? then %> checked<% end %>>
|
33
|
-
<%=h comment.name %>
|
34
|
-
(<%= comment.date.strftime( '%m-%d %H:%M' ) %>)
|
35
|
-
</P>
|
36
|
-
<P><%= comment.shorten( 200 ).make_link %></P><%
|
37
|
-
end %>
|
38
|
-
<% if idx > 0 then %><P><INPUT TYPE="SUBMIT" NAME="comment" VALUE="ツッコミ表示状態変更"></P><% end %>
|
39
|
-
</FORM>
|
40
|
-
<HR>
|
data/views/i.update.rhtml.en
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
<H1><%=h @conf.html_title %> [<%%= submit_label %>]</H1>
|
2
|
-
|
3
|
-
<P>
|
4
|
-
<%%= mobile_navi %>
|
5
|
-
</P>
|
6
|
-
|
7
|
-
<FORM METHOD="POST" ACTION="<%=h @conf.update %>">
|
8
|
-
<INPUT TYPE="HIDDEN" NAME="old" VALUE="<%= @date.strftime( '%Y%m%d' ) %>">
|
9
|
-
<P>
|
10
|
-
<%=@csrf_protection%>
|
11
|
-
<INPUT NAME="year" TABINDEX="1" ACCESSKEY="Y" SIZE="4" VALUE="<%= @date.year %>">-
|
12
|
-
<INPUT NAME="month" TABINDEX="2" ACCESSKEY="M" SIZE="2" VALUE="<%= @date.mon %>">-
|
13
|
-
<INPUT NAME="day" TABINDEX="3" ACCESSKEY="D" SIZE="2" VALUE="<%= @date.day %>">
|
14
|
-
<INPUT TYPE="SUBMIT" TABINDEX="4" ACCESSKEY="e" NAME="edit" VALUE="Edit this day">
|
15
|
-
</P>
|
16
|
-
<P>Title: <INPUT NAME="title" TABINDEX="5" ACCESSKEY="T" SIZE="40" VALUE="<%=h @diary.title %>"></P>
|
17
|
-
<P>Article(<%=h @conf.style %> style):<BR>
|
18
|
-
<TEXTAREA NAME="body" TABINDEX="6" ACCESSKEY="C" COLS="100%" ROWS="5"><%=h @diary.to_src %></TEXTAREA></P>
|
19
|
-
<P><INPUT TYPE="SUBMIT" TABINDEX="7" ACCESSKEY="A" NAME="<%%= submit_command %>" VALUE=" <%%= submit_label %> "></P>
|
20
|
-
<P><INPUT TYPE="CHECKBOX" NAME="hide" VALUE="true" <% unless @diary.visible? then %>checked <% end %>TABINDEX="8" ACCESSKEY="H">Hidden</P>
|
21
|
-
</FORM>
|
22
|
-
|
23
|
-
<FORM METHOD="POST" ACTION="<%= @conf.update %>">
|
24
|
-
<%=@csrf_protection%>
|
25
|
-
<INPUT TYPE="HIDDEN" NAME="year" VALUE="<%= @date.year %>">
|
26
|
-
<INPUT TYPE="HIDDEN" NAME="month" VALUE="<%= @date.month %>">
|
27
|
-
<INPUT TYPE="HIDDEN" NAME="day" VALUE="<%= @date.day %>">
|
28
|
-
<P><%%=comment_today%></P><%
|
29
|
-
idx = 0
|
30
|
-
@diary.each_comment do |comment| %>
|
31
|
-
<P>
|
32
|
-
<INPUT TYPE="CHECKBOX" NAME="<%= idx += 1 %>" VALUE="true"<% if comment.visible? then %> checked<% end %>>
|
33
|
-
<%=h comment.name %>
|
34
|
-
(<%= comment.date.strftime( '%m-%d %H:%M' ) %>)
|
35
|
-
</P>
|
36
|
-
<P><%= comment.shorten( 200 ).make_link %></P><%
|
37
|
-
end %>
|
38
|
-
<% if idx > 0 then %><P><INPUT TYPE="SUBMIT" NAME="comment" VALUE="Change status of TSUKKOMI"></P><% end %>
|
39
|
-
</FORM>
|
40
|
-
<HR>
|