ai-assistant-pro 0.0.12 → 0.0.14
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.
- package/components/demo/api/index.js +2 -2
- package/components/demo/src/chat.vue +20 -14
- package/components/demo/src/main.vue +8 -4
- package/dist/ai-assistant-pro.common.js +40 -25
- package/dist/ai-assistant-pro.common.js.map +1 -1
- package/dist/ai-assistant-pro.css +1 -1
- package/dist/ai-assistant-pro.umd.js +40 -25
- package/dist/ai-assistant-pro.umd.js.map +1 -1
- package/dist/ai-assistant-pro.umd.min.js +4 -4
- package/dist/ai-assistant-pro.umd.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,8 +8,8 @@ let prefix = sessionStorage.getItem('AI-INTELLIGENT-TOOLS_PRE_FIX') || constants
|
|
|
8
8
|
// 0.0.8 版本接口升级
|
|
9
9
|
prefix += '/plugin/v2';
|
|
10
10
|
|
|
11
|
-
export const pdfUrlBase = 'https://testagent.icve.com.cn';
|
|
12
|
-
|
|
11
|
+
// export const pdfUrlBase = 'https://testagent.icve.com.cn';
|
|
12
|
+
export const pdfUrlBase = 'https://agent.icve.com.cn';
|
|
13
13
|
export const pdfUrl = pdfUrlBase + '/ossurl';
|
|
14
14
|
export const ssoAuth = (token) => {
|
|
15
15
|
return request({
|
|
@@ -10,34 +10,36 @@
|
|
|
10
10
|
<div v-else class="robot user">user</div>
|
|
11
11
|
<div :class="{'user-info': list.type === 'user'}" class="robot-message">
|
|
12
12
|
<div v-html="list.message"></div>
|
|
13
|
-
<div v-if="list.type === 'robot' && list.links.length > 0" class="link">
|
|
13
|
+
<div v-if="list.type === 'robot' && list.links.length > 0 && showFile" class="link">
|
|
14
14
|
<div v-if="!list.allIdWithStart">
|
|
15
15
|
<div class="link-title">参考文件</div>
|
|
16
16
|
<div class="link-content">
|
|
17
17
|
<template v-for="item in list.links" >
|
|
18
|
-
<
|
|
18
|
+
<template v-if="!item.title.startsWith(chatMajorId)">
|
|
19
|
+
<div class="links">
|
|
19
20
|
<span>{{ `《${item.title}》` }} 共
|
|
20
21
|
<span style="font-weight: bold">
|
|
21
22
|
{{ item.fileDTOS.length }}
|
|
22
23
|
</span>
|
|
23
24
|
处引用
|
|
24
25
|
</span>
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
</div>
|
|
27
|
+
<div
|
|
28
|
+
v-for="(pdf, index) in item.fileDTOS"
|
|
29
|
+
class="link-part-container"
|
|
30
|
+
:key="index"
|
|
31
|
+
>
|
|
31
32
|
<span class="link-list-part">
|
|
32
33
|
{{ pdf.matchContent }}
|
|
33
34
|
</span>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
<span
|
|
36
|
+
class="link-list-button"
|
|
37
|
+
@click="seeDetail(pdf, item.documentUrl)"
|
|
38
|
+
>
|
|
38
39
|
点击查看
|
|
39
40
|
</span>
|
|
40
|
-
|
|
41
|
+
</div>
|
|
42
|
+
</template>
|
|
41
43
|
</template>
|
|
42
44
|
</div>
|
|
43
45
|
</div>
|
|
@@ -117,6 +119,10 @@ export default {
|
|
|
117
119
|
type: Boolean,
|
|
118
120
|
default: false,
|
|
119
121
|
},
|
|
122
|
+
showFile: {
|
|
123
|
+
type: Boolean,
|
|
124
|
+
default: false,
|
|
125
|
+
},
|
|
120
126
|
messageData: {
|
|
121
127
|
type: Array,
|
|
122
128
|
default: cacheMessageList
|
|
@@ -403,7 +409,7 @@ export default {
|
|
|
403
409
|
background: #fafafd;
|
|
404
410
|
border-radius: 8px;
|
|
405
411
|
padding: 8px;
|
|
406
|
-
max-height: 170px;
|
|
412
|
+
//max-height: 170px;
|
|
407
413
|
overflow: auto;
|
|
408
414
|
|
|
409
415
|
.links {
|
|
@@ -12,10 +12,11 @@
|
|
|
12
12
|
</div>
|
|
13
13
|
<template v-if="courseFlag">
|
|
14
14
|
<div class="ai-main-content">
|
|
15
|
-
<hot-search v-
|
|
15
|
+
<hot-search v-show="!chatShow"
|
|
16
16
|
:resId="resId"
|
|
17
17
|
@select-module="selectModule"
|
|
18
|
-
@init-info="initInfo"
|
|
18
|
+
@init-info="initInfo"
|
|
19
|
+
></hot-search>
|
|
19
20
|
<chat v-if="chatShow"
|
|
20
21
|
ref="chatRef"
|
|
21
22
|
:resId="resId"
|
|
@@ -25,6 +26,7 @@
|
|
|
25
26
|
:message-data="messageList"
|
|
26
27
|
:chat-major-id="chatMajorId"
|
|
27
28
|
:show-more-q-a="showMoreQA"
|
|
29
|
+
:show-file="showFile"
|
|
28
30
|
@on-reanser="reanserMethod"
|
|
29
31
|
@on-message-finish="messageFinish"
|
|
30
32
|
/>
|
|
@@ -105,6 +107,7 @@ export default {
|
|
|
105
107
|
stop: false,
|
|
106
108
|
chatMajorId: '',
|
|
107
109
|
showMoreQA: false,
|
|
110
|
+
showFile: false,
|
|
108
111
|
}
|
|
109
112
|
},
|
|
110
113
|
mounted() {
|
|
@@ -148,7 +151,7 @@ export default {
|
|
|
148
151
|
}
|
|
149
152
|
const obj = {
|
|
150
153
|
type: list.role === 'assistant' ? 'robot' : 'user',
|
|
151
|
-
message: list.role === 'assistant' ? marked.parse(list.content) : list.content.replace(/\n/g, '<br>'),
|
|
154
|
+
message: list.role === 'assistant' ? marked.parse(list.content || '') : list.content.replace(/\n/g, '<br>'),
|
|
152
155
|
zan: list.type === 1,
|
|
153
156
|
cai: list.type === 2,
|
|
154
157
|
stop: list.status === 1,
|
|
@@ -234,8 +237,9 @@ export default {
|
|
|
234
237
|
this.chatId = chatId;
|
|
235
238
|
},
|
|
236
239
|
initInfo(info) {
|
|
237
|
-
const { ifProbe } = info;
|
|
240
|
+
const { ifProbe, isShowFile } = info;
|
|
238
241
|
this.showMoreQA = !!ifProbe;
|
|
242
|
+
this.showFile = !!isShowFile;
|
|
239
243
|
}
|
|
240
244
|
}
|
|
241
245
|
}
|
|
@@ -6531,7 +6531,7 @@ if (typeof window !== 'undefined') {
|
|
|
6531
6531
|
// Indicate to webpack that this file can be concatenated
|
|
6532
6532
|
/* harmony default export */ var setPublicPath = (null);
|
|
6533
6533
|
|
|
6534
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/main.vue?vue&type=template&id=
|
|
6534
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/main.vue?vue&type=template&id=77cbb80a&scoped=true
|
|
6535
6535
|
var render = function render() {
|
|
6536
6536
|
var _vm = this,
|
|
6537
6537
|
_c = _vm._self._c;
|
|
@@ -6566,7 +6566,13 @@ var render = function render() {
|
|
|
6566
6566
|
staticClass: "el-icon-close"
|
|
6567
6567
|
})])]), _vm.courseFlag ? [_c('div', {
|
|
6568
6568
|
staticClass: "ai-main-content"
|
|
6569
|
-
}, [
|
|
6569
|
+
}, [_c('hot-search', {
|
|
6570
|
+
directives: [{
|
|
6571
|
+
name: "show",
|
|
6572
|
+
rawName: "v-show",
|
|
6573
|
+
value: !_vm.chatShow,
|
|
6574
|
+
expression: "!chatShow"
|
|
6575
|
+
}],
|
|
6570
6576
|
attrs: {
|
|
6571
6577
|
"resId": _vm.resId
|
|
6572
6578
|
},
|
|
@@ -6574,7 +6580,7 @@ var render = function render() {
|
|
|
6574
6580
|
"select-module": _vm.selectModule,
|
|
6575
6581
|
"init-info": _vm.initInfo
|
|
6576
6582
|
}
|
|
6577
|
-
})
|
|
6583
|
+
}), _vm.chatShow ? _c('chat', {
|
|
6578
6584
|
ref: "chatRef",
|
|
6579
6585
|
attrs: {
|
|
6580
6586
|
"resId": _vm.resId,
|
|
@@ -6583,7 +6589,8 @@ var render = function render() {
|
|
|
6583
6589
|
"key-word": _vm.aiMessageKeyWord,
|
|
6584
6590
|
"message-data": _vm.messageList,
|
|
6585
6591
|
"chat-major-id": _vm.chatMajorId,
|
|
6586
|
-
"show-more-q-a": _vm.showMoreQA
|
|
6592
|
+
"show-more-q-a": _vm.showMoreQA,
|
|
6593
|
+
"show-file": _vm.showFile
|
|
6587
6594
|
},
|
|
6588
6595
|
on: {
|
|
6589
6596
|
"on-reanser": _vm.reanserMethod,
|
|
@@ -6644,7 +6651,7 @@ var render = function render() {
|
|
|
6644
6651
|
};
|
|
6645
6652
|
var staticRenderFns = [];
|
|
6646
6653
|
|
|
6647
|
-
;// ./components/demo/src/main.vue?vue&type=template&id=
|
|
6654
|
+
;// ./components/demo/src/main.vue?vue&type=template&id=77cbb80a&scoped=true
|
|
6648
6655
|
|
|
6649
6656
|
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/hot-search.vue?vue&type=template&id=b701a940&scoped=true
|
|
6650
6657
|
var hot_searchvue_type_template_id_b701a940_scoped_true_render = function render() {
|
|
@@ -10859,8 +10866,9 @@ const baseURL = sessionStorage.getItem('AI-INTELLIGENT-TOOLS_BASE_URL') || const
|
|
|
10859
10866
|
let prefix = sessionStorage.getItem('AI-INTELLIGENT-TOOLS_PRE_FIX') || constants.publicPrefix;
|
|
10860
10867
|
// 0.0.8 版本接口升级
|
|
10861
10868
|
prefix += '/plugin/v2';
|
|
10862
|
-
|
|
10863
|
-
// export const pdfUrlBase = '
|
|
10869
|
+
|
|
10870
|
+
// export const pdfUrlBase = 'https://testagent.icve.com.cn';
|
|
10871
|
+
const pdfUrlBase = 'https://agent.icve.com.cn';
|
|
10864
10872
|
const pdfUrl = pdfUrlBase + '/ossurl';
|
|
10865
10873
|
const ssoAuth = token => {
|
|
10866
10874
|
return utils_request({
|
|
@@ -11151,8 +11159,8 @@ var component = normalizeComponent(
|
|
|
11151
11159
|
)
|
|
11152
11160
|
|
|
11153
11161
|
/* harmony default export */ var hot_search = (component.exports);
|
|
11154
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/chat.vue?vue&type=template&id=
|
|
11155
|
-
var
|
|
11162
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/chat.vue?vue&type=template&id=56b82e9f&scoped=true
|
|
11163
|
+
var chatvue_type_template_id_56b82e9f_scoped_true_render = function render() {
|
|
11156
11164
|
var _vm = this,
|
|
11157
11165
|
_c = _vm._self._c;
|
|
11158
11166
|
return _c('div', {
|
|
@@ -11180,20 +11188,20 @@ var chatvue_type_template_id_ff8a5fbc_scoped_true_render = function render() {
|
|
|
11180
11188
|
domProps: {
|
|
11181
11189
|
"innerHTML": _vm._s(list.message)
|
|
11182
11190
|
}
|
|
11183
|
-
}), list.type === 'robot' && list.links.length > 0 ? _c('div', {
|
|
11191
|
+
}), list.type === 'robot' && list.links.length > 0 && _vm.showFile ? _c('div', {
|
|
11184
11192
|
staticClass: "link"
|
|
11185
11193
|
}, [!list.allIdWithStart ? _c('div', [_c('div', {
|
|
11186
11194
|
staticClass: "link-title"
|
|
11187
11195
|
}, [_vm._v("参考文件")]), _c('div', {
|
|
11188
11196
|
staticClass: "link-content"
|
|
11189
11197
|
}, [_vm._l(list.links, function (item) {
|
|
11190
|
-
return [!item.title.startsWith(_vm.chatMajorId) ? _c('div', {
|
|
11198
|
+
return [!item.title.startsWith(_vm.chatMajorId) ? [_c('div', {
|
|
11191
11199
|
staticClass: "links"
|
|
11192
11200
|
}, [_c('span', [_vm._v(_vm._s(`《${item.title}》`) + " 共 "), _c('span', {
|
|
11193
11201
|
staticStyle: {
|
|
11194
11202
|
"font-weight": "bold"
|
|
11195
11203
|
}
|
|
11196
|
-
}, [_vm._v(" " + _vm._s(item.fileDTOS.length) + " ")]), _vm._v(" 处引用 ")])])
|
|
11204
|
+
}, [_vm._v(" " + _vm._s(item.fileDTOS.length) + " ")]), _vm._v(" 处引用 ")])]), _vm._l(item.fileDTOS, function (pdf, index) {
|
|
11197
11205
|
return _c('div', {
|
|
11198
11206
|
key: index,
|
|
11199
11207
|
staticClass: "link-part-container"
|
|
@@ -11207,7 +11215,7 @@ var chatvue_type_template_id_ff8a5fbc_scoped_true_render = function render() {
|
|
|
11207
11215
|
}
|
|
11208
11216
|
}
|
|
11209
11217
|
}, [_vm._v(" 点击查看 ")])]);
|
|
11210
|
-
})];
|
|
11218
|
+
})] : _vm._e()];
|
|
11211
11219
|
})], 2)]) : _vm._e()]) : _vm._e(), list.type === 'robot' && list.connectUrl.length > 0 ? _c('div', {
|
|
11212
11220
|
staticClass: "link"
|
|
11213
11221
|
}, [_c('div', {
|
|
@@ -11255,7 +11263,7 @@ var chatvue_type_template_id_ff8a5fbc_scoped_true_render = function render() {
|
|
|
11255
11263
|
}) : _vm._e()], 1)]);
|
|
11256
11264
|
}), 0);
|
|
11257
11265
|
};
|
|
11258
|
-
var
|
|
11266
|
+
var chatvue_type_template_id_56b82e9f_scoped_true_staticRenderFns = [];
|
|
11259
11267
|
|
|
11260
11268
|
;// ./components/demo/utils/config.js
|
|
11261
11269
|
|
|
@@ -13965,6 +13973,10 @@ const signal = controller.signal;
|
|
|
13965
13973
|
type: Boolean,
|
|
13966
13974
|
default: false
|
|
13967
13975
|
},
|
|
13976
|
+
showFile: {
|
|
13977
|
+
type: Boolean,
|
|
13978
|
+
default: false
|
|
13979
|
+
},
|
|
13968
13980
|
messageData: {
|
|
13969
13981
|
type: Array,
|
|
13970
13982
|
default: cacheMessageList
|
|
@@ -14163,10 +14175,10 @@ const signal = controller.signal;
|
|
|
14163
14175
|
});
|
|
14164
14176
|
;// ./components/demo/src/chat.vue?vue&type=script&lang=js
|
|
14165
14177
|
/* harmony default export */ var src_chatvue_type_script_lang_js = (chatvue_type_script_lang_js);
|
|
14166
|
-
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/chat.vue?vue&type=style&index=0&id=
|
|
14178
|
+
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/chat.vue?vue&type=style&index=0&id=56b82e9f&prod&lang=scss&scoped=true
|
|
14167
14179
|
// extracted by mini-css-extract-plugin
|
|
14168
14180
|
|
|
14169
|
-
;// ./components/demo/src/chat.vue?vue&type=style&index=0&id=
|
|
14181
|
+
;// ./components/demo/src/chat.vue?vue&type=style&index=0&id=56b82e9f&prod&lang=scss&scoped=true
|
|
14170
14182
|
|
|
14171
14183
|
;// ./components/demo/src/chat.vue
|
|
14172
14184
|
|
|
@@ -14179,11 +14191,11 @@ const signal = controller.signal;
|
|
|
14179
14191
|
|
|
14180
14192
|
var chat_component = normalizeComponent(
|
|
14181
14193
|
src_chatvue_type_script_lang_js,
|
|
14182
|
-
|
|
14183
|
-
|
|
14194
|
+
chatvue_type_template_id_56b82e9f_scoped_true_render,
|
|
14195
|
+
chatvue_type_template_id_56b82e9f_scoped_true_staticRenderFns,
|
|
14184
14196
|
false,
|
|
14185
14197
|
null,
|
|
14186
|
-
"
|
|
14198
|
+
"56b82e9f",
|
|
14187
14199
|
null
|
|
14188
14200
|
|
|
14189
14201
|
)
|
|
@@ -14378,7 +14390,8 @@ var api = init(defaultConverter, { path: '/' });
|
|
|
14378
14390
|
// 对话id
|
|
14379
14391
|
stop: false,
|
|
14380
14392
|
chatMajorId: '',
|
|
14381
|
-
showMoreQA: false
|
|
14393
|
+
showMoreQA: false,
|
|
14394
|
+
showFile: false
|
|
14382
14395
|
};
|
|
14383
14396
|
},
|
|
14384
14397
|
mounted() {
|
|
@@ -14424,7 +14437,7 @@ var api = init(defaultConverter, { path: '/' });
|
|
|
14424
14437
|
}
|
|
14425
14438
|
const obj = {
|
|
14426
14439
|
type: list.role === 'assistant' ? 'robot' : 'user',
|
|
14427
|
-
message: list.role === 'assistant' ? marked.parse(list.content) : list.content.replace(/\n/g, '<br>'),
|
|
14440
|
+
message: list.role === 'assistant' ? marked.parse(list.content || '') : list.content.replace(/\n/g, '<br>'),
|
|
14428
14441
|
zan: list.type === 1,
|
|
14429
14442
|
cai: list.type === 2,
|
|
14430
14443
|
stop: list.status === 1,
|
|
@@ -14511,18 +14524,20 @@ var api = init(defaultConverter, { path: '/' });
|
|
|
14511
14524
|
},
|
|
14512
14525
|
initInfo(info) {
|
|
14513
14526
|
const {
|
|
14514
|
-
ifProbe
|
|
14527
|
+
ifProbe,
|
|
14528
|
+
isShowFile
|
|
14515
14529
|
} = info;
|
|
14516
14530
|
this.showMoreQA = !!ifProbe;
|
|
14531
|
+
this.showFile = !!isShowFile;
|
|
14517
14532
|
}
|
|
14518
14533
|
}
|
|
14519
14534
|
});
|
|
14520
14535
|
;// ./components/demo/src/main.vue?vue&type=script&lang=js
|
|
14521
14536
|
/* harmony default export */ var src_mainvue_type_script_lang_js = (mainvue_type_script_lang_js);
|
|
14522
|
-
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/main.vue?vue&type=style&index=0&id=
|
|
14537
|
+
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/main.vue?vue&type=style&index=0&id=77cbb80a&prod&lang=scss&scoped=true
|
|
14523
14538
|
// extracted by mini-css-extract-plugin
|
|
14524
14539
|
|
|
14525
|
-
;// ./components/demo/src/main.vue?vue&type=style&index=0&id=
|
|
14540
|
+
;// ./components/demo/src/main.vue?vue&type=style&index=0&id=77cbb80a&prod&lang=scss&scoped=true
|
|
14526
14541
|
|
|
14527
14542
|
;// ./components/demo/src/main.vue
|
|
14528
14543
|
|
|
@@ -14539,7 +14554,7 @@ var main_component = normalizeComponent(
|
|
|
14539
14554
|
staticRenderFns,
|
|
14540
14555
|
false,
|
|
14541
14556
|
null,
|
|
14542
|
-
"
|
|
14557
|
+
"77cbb80a",
|
|
14543
14558
|
null
|
|
14544
14559
|
|
|
14545
14560
|
)
|