Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
2906f485
提交
2906f485
authored
4月 23, 2008
作者:
Thomas Mueller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
--no commit message
--no commit message
上级
f37b24e5
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
1214 行增加
和
959 行删除
+1214
-959
changelog.html
h2/src/docsrc/html/changelog.html
+3
-1
_docs_en.utf8.txt
h2/src/docsrc/text/_docs_en.utf8.txt
+285
-282
_docs_ja.utf8.txt
h2/src/docsrc/text/_docs_ja.utf8.txt
+370
-283
_docs_en.properties
h2/src/docsrc/textbase/_docs_en.properties
+284
-283
WebServer.java
h2/src/main/org/h2/server/web/WebServer.java
+1
-1
_text_zh_cn.properties
h2/src/main/org/h2/server/web/res/_text_zh_cn.properties
+1
-1
_text_zh_tw.properties
h2/src/main/org/h2/server/web/res/_text_zh_tw.properties
+39
-39
StringUtils.java
h2/src/main/org/h2/util/StringUtils.java
+7
-3
TestAll.java
h2/src/test/org/h2/test/TestAll.java
+1
-1
console.html
h2/src/tools/WEB-INF/console.html
+3
-2
Build.java
h2/src/tools/org/h2/build/Build.java
+34
-36
BuildBase.java
h2/src/tools/org/h2/build/BuildBase.java
+168
-22
CheckTextFiles.java
h2/src/tools/org/h2/build/code/CheckTextFiles.java
+7
-4
dictionary.txt
h2/src/tools/org/h2/build/doc/dictionary.txt
+11
-1
没有找到文件。
h2/src/docsrc/html/changelog.html
浏览文件 @
2906f485
...
...
@@ -17,7 +17,9 @@ Change Log
<h2>
Next Version (unreleased)
</h2>
<ul>
<li>
Sometimes an exception 'File ID mismatch' or 'try to add a record twice'
<li>
H2 is now dual-licensed under the Eclipse Public License (EPL) and the
old 'H2 License' (which is basically MPL).
</li><li>
Sometimes an exception 'File ID mismatch' or 'try to add a record twice'
occured after large records (8 KB or larger) are updated or deleted.
See also http://code.google.com/p/h2database/issues/detail?id=22
</li><li>
H2 Console: The tools can now be translated
...
...
h2/src/docsrc/text/_docs_en.utf8.txt
浏览文件 @
2906f485
差异被折叠。
点击展开。
h2/src/docsrc/text/_docs_ja.utf8.txt
浏览文件 @
2906f485
差异被折叠。
点击展开。
h2/src/docsrc/textbase/_docs_en.properties
浏览文件 @
2906f485
差异被折叠。
点击展开。
h2/src/main/org/h2/server/web/WebServer.java
浏览文件 @
2906f485
...
...
@@ -67,7 +67,7 @@ public class WebServer implements Service {
{
"ru"
,
"\u0440\u0443\u0441\u0441\u043a\u0438\u0439"
},
{
"tr"
,
"T\u00fcrk\u00e7e"
},
{
"uk"
,
"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430"
},
{
"zh_CN"
,
"\u4e2d\u6587 (\u7
c21\u9ad4
)"
},
{
"zh_CN"
,
"\u4e2d\u6587 (\u7
b80\u4f53
)"
},
{
"zh_TW"
,
"\u4e2d\u6587 (\u7e41\u9ad4)"
},
};
...
...
h2/src/main/org/h2/server/web/res/_text_zh_cn.properties
浏览文件 @
2906f485
.translator
=
junheng.song (sjh21 (at) hot mail (dot) com); Created by JInto - www.guh-software.de - Mon Apr 10 2006
a.help
=
\u
5E2E
\u
52A9
a.language
=
\u
4E2D
\u6587
a.language
=
\u
4E2D
\u6587
(
\u
7B80
\u
4F53)
a.lynxNotSupported
=
\u
62B1
\u
6B49,
\u
76EE
\u
524D
\u
8FD8
\u
4E0D
\u
652F
\u6301
Lynx
a.password
=
\u
5BC6
\u7801
a.remoteConnectionsDisabled=
\u
62B1
\u
6B49,
\u
670D
\u
52A1
\u5668\u
4E0A
\u7684\u
8FDC
\u
7A0B
\u
8BA1
\u
7B97
\u
673A
\u
8FDE
\u
63A5
\u
88AB
\u7981\u7528
.
...
...
h2/src/main/org/h2/server/web/res/_text_zh_tw.properties
浏览文件 @
2906f485
...
...
@@ -94,45 +94,45 @@ toolbar.refresh=\u66F4\u65B0
toolbar.rollback
=
\u9000\u
8FD4 (rollback)
toolbar.run
=
\u
57F7
\u
884C (Ctrl+Enter)
toolbar.sqlStatement
=
SQL
\u
8FF0
\u
53E5
tools.backup
=
\
#
Backup
tools.backup.help
=
\
#
Creates a backup of a database.
tools.changePassword
=
\
#
ChangePassword
tools.changePassword.help
=
\
#
Allows changing the database file password.
tools.cipher
=
\
#
Cipher (AES or
XTEA)
tools.commandLine
=
\
#
Command line
tools.convertTraceFile
=
\
#
ConvertTraceFile
tools.convertTraceFile.help
=
\
#
Converts a .trace.db file to a Java application and SQL script
.
tools.createCluster
=
\
#
CreateCluster
tools.createCluster.help
=
\
#
Creates a cluster from a standalone database.
tools.databaseName
=
\
#
Database name
tools.decryptionPassword
=
\
#
Decryption password
tools.deleteDbFiles
=
\
#
DeleteDbFiles
tools.deleteDbFiles.help
=
\
#
Deletes all files belonging to a database.
tools.directory
=
\
#
Directory
tools.encryptionPassword
=
\
#
Encryption password
tools.javaDirectoryClassName
=
\#
Java directory and class name
tools.recover
=
\
#
Recover
tools.recover.help
=
\
#
Helps recovering a corrupted database.
tools.restore
=
\
#
Restore
tools.restore.help
=
\
#
Restores a database backup.
tools.result
=
\
#
Result
tools.run
=
\
#
Run
tools.runScript
=
\
#
RunScript
tools.runScript.help
=
\
#
Runs a SQL script.
tools.script
=
\
#
Script
tools.script.help
=
\
#
Allows to convert a database to a SQL script for backup or migration.
tools.scriptFileName
=
\
#
Script file name
tools.serverList
=
\
#
Server list
tools.sourceDatabaseName
=
\
#
Source database name
tools.sourceDatabaseURL
=
\
#
Source database
URL
tools.sourceDirectory
=
\
#
Target directory
tools.sourceFileName
=
\
#
Source file name
tools.sourceScriptFileName
=
\
#
Source script file name
tools.targetDatabaseName
=
\
#
Target database name
tools.targetDatabaseURL
=
\
#
Target database
URL
tools.targetFileName
=
\
#
Target file name
tools.targetScriptFileName
=
\
#
Target script file name
tools.traceFileName
=
\#
Trace file name
tools.backup
=
\
u5099\u
4EFD
tools.backup.help
=
\
u
5EFA
\u
7ACB
\u
8CC7
\u6599\u
5EAB
\u7684\u5099\u
4EFD
tools.changePassword
=
\
u
8B8A
\u
66F4
\u
5BC6
\u
78BC
tools.changePassword.help
=
\
u5141\u
8A31
\u
8B8A
\u
66F4
\u
8CC7
\u6599\u
5EAB
\u
6A94
\u6848\u7684\u
5BC6
\u
78BC
tools.cipher
=
\
u
52A0
\u
5BC6 (AES
\u6216
XTEA)
tools.commandLine
=
\
u
547D
\u
4EE4
\u5217
tools.convertTraceFile
=
\
u
8F49
\u
63DBTrace
\u
6A94
\u6848
tools.convertTraceFile.help
=
\
u
5C07.trace.db
\u
6A94
\u6848\u
8F49
\u
63DB
\u6210
Java
\u
61C9
\u7528\u
7A0B
\u
5F0F
\u8207
SQL
\u8173\u
672C (script)
.
tools.createCluster
=
\
u
5EFA
\u
7ACB
\u
53E2
\u
96C6 (Cluster)
tools.createCluster.help
=
\
u
81EA
\u7368\u
7ACB
\u7684\u
8CC7
\u6599\u
5EAB
\u
5EFA
\u
7ACB
\u
53E2
\u
96C6 (Cluster)
tools.databaseName
=
\
u
8CC7
\u6599\u
5EAB
\u
540D
\u
7A31
tools.decryptionPassword
=
\
u
660E
\u6587\u
5BC6
\u
78BC
tools.deleteDbFiles
=
\
u
522A
\u9664\u
8CC7
\u6599\u
5EAB
\u
6A94
\u6848
tools.deleteDbFiles.help
=
\
u
522A
\u9664\u
67D0
\u
4E00
\u
8CC7
\u6599\u
5EAB
\u7684\u6240\u6709\u
76F8
\u
95DC
\u
6A94
\u6848
tools.directory
=
\
u
76EE
\u9304
tools.encryptionPassword
=
\
u
5BC6
\u6587\u
5BC6
\u
78BC
tools.javaDirectoryClassName
=
Java
\u
76EE
\u9304
(directory)
\u8207\u
985E
\u5225
(class)
\u
540D
\u
7A31
tools.recover
=
\
u
4FEE
\u
5FA9
tools.recover.help
=
\
u5354\u
52A9
\u
4FEE
\u
5FA9
\u
640D
\u
58DE
\u7684\u
8CC7
\u6599\u
5EAB
tools.restore
=
\
u
56DE
\u
5B58
tools.restore.help
=
\
u
56DE
\u
5B58
\u
8CC7
\u6599\u
5EAB
\u7684\u5099\u
4EFD
tools.result
=
\
u
7D50
\u
679C
tools.run
=
\
u
57F7
\u
884C
tools.runScript
=
\
u
57F7
\u
884C
\u8173\u
672C (Script)
tools.runScript.help
=
\
u
57F7
\u
884CSQL
\u8173\u
672C (script)
tools.script
=
\
u8173\u
672C (Script)
tools.script.help
=
\
u5141\u
8A31
\u
81EA
\u
8CC7
\u6599\u
5EAB
\u
8F49
\u
63DB
\u
51FA
\u
70BA
\u5099\u
4EFD
\u6216\u
642C
\u9077\u7528\u7684
SQL
\u8173\u
672C(script)
tools.scriptFileName
=
\
u8173\u
672C (Script)
\u
6A94
\u6848\u
540D
\u
7A31
tools.serverList
=
\
u
4F3A
\u
670D
\u5668\u
6E05
\u
55AE
tools.sourceDatabaseName
=
\
u
4F86
\u
6E90 (source)
\u
8CC7
\u6599\u
5EAB
\u
540D
\u
7A31
tools.sourceDatabaseURL
=
\
u
4F86
\u
6E90 (source)
\u
8CC7
\u6599\u
5EAB
URL
tools.sourceDirectory
=
\
u
76EE
\u7684\u
76EE
\u9304
(target directory)
tools.sourceFileName
=
\
u
4F86
\u
6E90 (source)
\u
6A94
\u6848\u
540D
\u
7A31
tools.sourceScriptFileName
=
\
u
4F86
\u
6E90
\u8173\u
672C (script)
\u
6A94
\u6848\u
540D
\u
7A31
tools.targetDatabaseName
=
\
u
76EE
\u7684
(target)
\u
8CC7
\u6599\u
5EAB
\u
540D
\u
7A31
tools.targetDatabaseURL
=
\
u
76EE
\u7684
(target)
\u
8CC7
\u6599\u
5EAB
URL
tools.targetFileName
=
\
u
76EE
\u7684
(target)
\u
6A94
\u6848\u
540D
\u
7A31
tools.targetScriptFileName
=
\
u
76EE
\u7684\u8173\u
672C (script)
\u
6A94
\u6848\u
540D
\u
7A31
tools.traceFileName
=
Trace
\u
6A94
\u6848\u
540D
\u
7A31
tree.admin
=
\u
7BA1
\u7406
tree.current
=
\u
76EE
\u
524D
\u7684\u6578\u
503C
tree.hashed
=
\u
4F7F
\u7528\u
96DC
\u
6E4A
\u
6CD5 (hashed)
...
...
h2/src/main/org/h2/util/StringUtils.java
浏览文件 @
2906f485
...
...
@@ -584,15 +584,19 @@ public class StringUtils {
}
public
static
String
replaceAll
(
String
s
,
String
before
,
String
after
)
{
StringBuffer
buff
=
new
StringBuffer
(
s
.
length
());
int
index
=
0
;
while
(
true
)
{
int
next
=
s
.
indexOf
(
before
,
index
);
if
(
next
<
0
)
{
return
s
;
buff
.
append
(
s
.
substring
(
index
));
break
;
}
s
=
s
.
substring
(
0
,
next
)
+
after
+
s
.
substring
(
next
+
before
.
length
());
index
=
next
+
after
.
length
();
buff
.
append
(
s
.
substring
(
index
,
next
));
buff
.
append
(
after
);
index
=
next
+
before
.
length
();
}
return
buff
.
toString
();
}
public
static
String
quoteIdentifier
(
String
s
)
{
...
...
h2/src/test/org/h2/test/TestAll.java
浏览文件 @
2906f485
...
...
@@ -160,7 +160,7 @@ java org.h2.test.TestAll timer
/*
Multiple-Multiple-Licensed under the H2 License,
upload jazoon
test case for out of memory (try to corrupt the database using out of memory)
...
...
h2/src/tools/WEB-INF/console.html
浏览文件 @
2906f485
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
Copyright 2004-2008 H2 Group. Multiple-Licensed under the H2 License, Version 1.0,,
Copyright 2004-2008 H2 Group.
Multiple-Licensed under the H2 License, Version 1.0,
and under the Eclipse Public License, Version 1.0
(http://h2database.com/html/license.html).
(http://h2database.com/html/license.html).
Initial Developer: H2 Group
-->
<html>
...
...
h2/src/tools/org/h2/build/Build.java
浏览文件 @
2906f485
...
...
@@ -8,12 +8,11 @@ package org.h2.build;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.List
;
import
org.h2.build.code.SwitchSource
;
/**
* The
implementation of the pure Java build
.
* The
build definition
.
*/
public
class
Build
extends
BuildBase
{
...
...
@@ -55,11 +54,11 @@ public class Build extends BuildBase {
}
public
void
resources
()
{
List
files
=
getFiles
(
"src/main"
);
files
=
filterFiles
(
files
,
false
,
"*.java"
);
files
=
filterFiles
(
files
,
false
,
"*/package.html"
);
files
=
filterFiles
(
files
,
false
,
"*/java.sql.Driver"
);
zip
(
"temp/org/h2/util/data.zip"
,
"src/main"
,
files
,
true
,
false
);
FileList
files
=
getFiles
(
"src/main"
).
exclude
(
"*.java"
).
exclude
(
"*/package.html"
).
exclude
(
"*/java.sql.Driver"
);
zip
(
"temp/org/h2/util/data.zip"
,
files
,
"src/main"
,
true
,
false
);
}
private
void
manifest
(
String
mainClassName
)
{
...
...
@@ -67,8 +66,8 @@ public class Build extends BuildBase {
String
version
=
getStaticField
(
"org.h2.engine.Constants"
,
"VERSION"
);
manifest
=
replaceAll
(
manifest
,
"${version}"
,
version
);
manifest
=
replaceAll
(
manifest
,
"${buildJdk}"
,
getJavaSpecVersion
());
String
createdBy
=
System
.
getProperty
(
"java.runtime.version"
)
+
" ("
+
System
.
getProperty
(
"java.vm.vendor"
)
+
")"
;
String
createdBy
=
System
.
getProperty
(
"java.runtime.version"
)
+
" ("
+
System
.
getProperty
(
"java.vm.vendor"
)
+
")"
;
manifest
=
replaceAll
(
manifest
,
"${createdBy}"
,
createdBy
);
String
mainClassTag
=
manifest
==
null
?
""
:
"Main-Class: "
+
mainClassName
;
manifest
=
replaceAll
(
manifest
,
"${mainClassTag}"
,
mainClassTag
);
...
...
@@ -78,33 +77,33 @@ public class Build extends BuildBase {
public
void
jar
()
{
compile
();
manifest
(
"org.h2.tools.Console"
);
List
files
=
getFiles
(
"temp"
);
files
=
filterFiles
(
files
,
false
,
"temp/org/h2/dev/*"
);
files
=
filterFiles
(
files
,
false
,
"temp/org/h2/build/*"
);
files
=
filterFiles
(
files
,
false
,
"temp/org/h2/samples/*"
);
files
=
filterFiles
(
files
,
false
,
"temp/org/h2/test/*"
);
files
=
filterFiles
(
files
,
false
,
"*.bat"
);
files
=
filterFiles
(
files
,
false
,
"*.sh"
);
files
=
filterFiles
(
files
,
false
,
"*.txt"
);
jar
(
"bin/h2.jar"
,
"temp"
,
files
);
FileList
files
=
getFiles
(
"temp"
).
exclude
(
"temp/org/h2/dev/*"
).
exclude
(
"temp/org/h2/build/*"
).
exclude
(
"temp/org/h2/samples/*"
).
exclude
(
"temp/org/h2/test/*"
).
exclude
(
"*.bat"
).
exclude
(
"*.sh"
).
exclude
(
"*.txt"
);
jar
(
"bin/h2.jar"
,
files
,
"temp"
);
}
public
void
jarSmall
()
{
compile
(
false
);
List
files
=
getFiles
(
"temp"
);
files
=
filterFiles
(
files
,
false
,
"temp/org/h2/dev/*"
);
files
=
filterFiles
(
files
,
false
,
"temp/org/h2/build/*"
);
files
=
filterFiles
(
files
,
false
,
"temp/org/h2/samples/*"
);
files
=
filterFiles
(
files
,
false
,
"temp/org/h2/test/*"
);
files
=
filterFiles
(
files
,
false
,
"*.bat"
);
files
=
filterFiles
(
files
,
false
,
"*.sh"
);
files
=
filterFiles
(
files
,
false
,
"*.txt"
);
files
=
filterFiles
(
files
,
false
,
"temp/META-INF/*"
);
zip
(
"temp/h2classes.zip"
,
"temp"
,
files
,
true
,
true
);
FileList
files
=
getFiles
(
"temp"
).
exclude
(
"temp/org/h2/dev/*"
).
exclude
(
"temp/org/h2/build/*"
).
exclude
(
"temp/org/h2/samples/*"
).
exclude
(
"temp/org/h2/test/*"
).
exclude
(
"*.bat"
).
exclude
(
"*.sh"
).
exclude
(
"*.txt"
).
exclude
(
"temp/META-INF/*"
);
zip
(
"temp/h2classes.zip"
,
files
,
"temp"
,
true
,
true
);
manifest
(
"org.h2.tools.Console\nClass-Path: h2classes.zip"
);
files
=
getFiles
(
"temp/h2classes.zip"
);
files
.
addAll
(
getFiles
(
"temp/META-INF"
));
jar
(
"bin/h2small.jar"
,
"temp"
,
files
);
jar
(
"bin/h2small.jar"
,
files
,
"temp"
);
}
public
void
download
()
{
...
...
@@ -135,7 +134,7 @@ public class Build extends BuildBase {
+
"ext/lucene-core-2.2.0.jar"
+
File
.
pathSeparator
+
System
.
getProperty
(
"java.home"
)
+
"/../lib/tools.jar"
;
List
files
=
getFiles
(
"src/main"
);
File
List
files
=
getFiles
(
"src/main"
);
if
(
debugInfo
)
{
javac
(
new
String
[]
{
"-d"
,
"temp"
,
"-sourcepath"
,
"src/main"
,
"-classpath"
,
classpath
},
files
);
}
else
{
...
...
@@ -150,14 +149,13 @@ public class Build extends BuildBase {
files
=
getFiles
(
"src/main/META-INF/services"
);
copy
(
"temp"
,
files
,
"src/main"
);
files
=
getFiles
(
"src/installer"
);
files
=
filterFiles
(
files
,
true
,
"*.bat"
);
files
=
filterFiles
(
files
,
true
,
"*.sh"
);
files
=
getFiles
(
"src/installer"
).
keep
(
"*.bat"
);
files
.
addAll
(
getFiles
(
"src/installer"
).
keep
(
"*.sh"
));
copy
(
"temp"
,
files
,
"src/installer"
);
files
=
getFiles
(
"src/test"
)
;
files
=
filterFiles
(
files
,
false
,
"*.java"
);
files
=
filterFiles
(
files
,
false
,
"*/package.html"
);
files
=
getFiles
(
"src/test"
)
.
exclude
(
"*.java"
).
exclude
(
"*/package.html"
);
copy
(
"temp"
,
files
,
"src/test"
);
}
...
...
h2/src/tools/org/h2/build/BuildBase.java
浏览文件 @
2906f485
差异被折叠。
点击展开。
h2/src/tools/org/h2/build/code/CheckTextFiles.java
浏览文件 @
2906f485
...
...
@@ -32,8 +32,8 @@ public class CheckTextFiles {
boolean
autoFix
=
true
;
boolean
useCRLF
=
true
;
// must contain "+" otherwise this here counts as well
String
copyrightLicense
=
"Copyright 2004-2008 H2 Group. "
+
"Multiple-Licensed under the H2 License,
"
;
static
final
String
COPYRIGHT
=
"Copyright 2004-2008 "
+
"H2 Group."
;
static
final
String
LICENSE
=
"Multiple-Licensed "
+
"under the H2 License
"
;
String
[]
suffixIgnoreLicense
=
new
String
[]
{
"bat"
,
"nsi"
,
"txt"
,
"properties"
,
"xml"
,
"java.sql.Driver"
,
"task"
,
"sh"
};
boolean
hasError
;
...
...
@@ -106,10 +106,13 @@ public class CheckTextFiles {
in
.
readFully
(
data
);
in
.
close
();
if
(
checkLicense
)
{
if
(
data
.
length
>
copyrightLicense
.
length
())
{
if
(
data
.
length
>
COPYRIGHT
.
length
()
+
LICENSE
.
length
())
{
// don't check tiny files
String
text
=
new
String
(
data
);
if
(
text
.
indexOf
(
copyrightLicense
)
<
0
)
{
if
(
text
.
indexOf
(
COPYRIGHT
)
<
0
)
{
fail
(
file
,
"copyright is missing"
,
0
);
}
if
(
text
.
indexOf
(
LICENSE
)
<
0
)
{
fail
(
file
,
"license is missing"
,
0
);
}
if
(
text
.
indexOf
(
"// "
+
"##"
)
>
0
)
{
...
...
h2/src/tools/org/h2/build/doc/dictionary.txt
浏览文件 @
2906f485
...
...
@@ -495,4 +495,14 @@ compressibility ext crc enumerate components mkdir jant downloading mismatch
timebomb thinks technotes chmod overloading javase flux solves fastest
quickstarter bridge bpm trust guides improvements customizing easiest
workflow seque npl netstat ano spellcheck eplfaq opensource zdnet burnette
regard epl huge chao derek nls
\ No newline at end of file
regard epl huge chao derek nls lawsuits counterclaim participate assurances
cooperate indemnified disclaims practicable cease solely receives partners
exchange agrees inconsistency customarily reproduction arose noncompliance
serve contributions publicly facilitate implication jury acceptance revisions
accompanying bring unavailability iii appropriateness originate laws stated
although sole accordance filed originates responsibilities alleged defend
material hereto equipment copyrighted enforceability excludes licensees
estoppel manner reserves defense complies suitable identify infringe
originator brought contribution effectively assumes waives conjunction
informs negotiations collectively omissions trial nor qualify steward neither
worldwide everyone additions expense lawsuit checksums jazoon
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论