JobSmithManipulation Kevin Hu writinwaters commited on
Commit
0afec36
·
1 Parent(s): f372e89

update agent\templates\medical_consultation.json (#2260)

Browse files

### What problem does this PR solve?


### Type of change

- [x] New Feature (non-breaking change which adds functionality)

---------

Co-authored-by: Kevin Hu <[email protected]>
Co-authored-by: writinwaters <[email protected]>

agent/templates/medical_consultation.json ADDED
@@ -0,0 +1,492 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": 7,
3
+ "title": "Medical consultation",
4
+ "description": "Medical Consultation Assistant, can provide you with some professional consultation suggestions for your reference. Please note that the content provided by the medical assistant is for reference only and may not be authentic or available. Knowledge Base Content Reference: <a href = 'https://huggingface.co/datasets/InfiniFlow/medical_QA/tree/main'> Medical Knowledge Base Reference</a>",
5
+ "canvas_type": "chatbot",
6
+ "dsl": {
7
+ "answer": [],
8
+ "components": {
9
+ "Answer:FlatRavensPush": {
10
+ "downstream": [
11
+ "Generate:BraveSnailsCheer",
12
+ "Generate:UpsetCarrotsPoke"
13
+ ],
14
+ "obj": {
15
+ "component_name": "Answer",
16
+ "params": {}
17
+ },
18
+ "upstream": [
19
+ "begin",
20
+ "Generate:WholePansReply"
21
+ ]
22
+ },
23
+ "Generate:BraveSnailsCheer": {
24
+ "downstream": [
25
+ "PubMed:TwentyFansShake"
26
+ ],
27
+ "obj": {
28
+ "component_name": "Generate",
29
+ "params": {
30
+ "cite": true,
31
+ "frequency_penalty": 0.7,
32
+ "llm_id": "deepseek-chat",
33
+ "max_tokens": 256,
34
+ "message_history_window_size": 12,
35
+ "parameters": [],
36
+ "presence_penalty": 0.4,
37
+ "prompt": "Role: You are a professional Chinese-English medical question translation assistant\n\nTask: Accurately translate users' Chinese medical question content into English, ensuring accuracy of terminology and clarity of expression\n\nRequirements:\n- In-depth understanding of the terminology and disease descriptions in Chinese medical inquiries to ensure correct medical vocabulary is used in the English translation.\n- Maintain the semantic integrity and accuracy of the original text to avoid omitting important information or introducing errors.\n- Pay attention to the differences in expression habits between Chinese and English, and make appropriate adjustments to make the English translation more natural and fluent.\n- Respect the patient's privacy and the principle of medical confidentiality, and do not disclose any sensitive information during the translation process.\n\nExample\uff1a\nOriginal sentence: \u6211\u6700\u8fd1\u603b\u662f\u611f\u89c9\u80f8\u95f7\uff0c\u6709\u65f6\u8fd8\u4f1a\u6709\u5fc3\u60b8\u7684\u611f\u89c9\u3002\nTranslated: I've been feeling chest tightness recently, and sometimes I experience palpitations.\n\nNote:\nOnly the translated content should be given, do not output other irrelevant content!",
38
+ "temperature": 0.1,
39
+ "top_p": 0.3
40
+ }
41
+ },
42
+ "upstream": [
43
+ "Answer:FlatRavensPush"
44
+ ]
45
+ },
46
+ "Generate:UpsetCarrotsPoke": {
47
+ "downstream": [
48
+ "Retrieval:FastPlumsWish"
49
+ ],
50
+ "obj": {
51
+ "component_name": "Generate",
52
+ "params": {
53
+ "cite": true,
54
+ "frequency_penalty": 0.7,
55
+ "llm_id": "deepseek-chat",
56
+ "max_tokens": 256,
57
+ "message_history_window_size": 12,
58
+ "parameters": [],
59
+ "presence_penalty": 0.4,
60
+ "prompt": "Role: You are a professional medical consulting translation assistant\n\nTask: Translate user questions into Chinese, ensuring accuracy of medical terminology and appropriateness of context.\n\nRequirements:\n- Accurately translate medical terminology to convey the integrity and emotional color of the original message.\n- For unclear or uncertain medical terminology, the original text may be retained to ensure accuracy.\n- Respect the privacy and sensitivity of medical consultations and ensure that sensitive information is not disclosed during the translation process.\n- If the user's question is in Chinese, there is no need to translate, just output the user's question directly\n\nExample:\nOriginal (English): Doctor, I have been suffering from chest pain and shortness of breath for the past few days.\nTranslation (Chinese): \u533b\u751f\uff0c\u6211\u8fd9\u51e0\u5929\u4e00\u76f4\u80f8\u75db\u548c\u6c14\u77ed\u3002\n\nNote:\nOnly the translated content needs to be output, no other irrelevant content!",
61
+ "temperature": 0.1,
62
+ "top_p": 0.3
63
+ }
64
+ },
65
+ "upstream": [
66
+ "Answer:FlatRavensPush"
67
+ ]
68
+ },
69
+ "Generate:WholePansReply": {
70
+ "downstream": [
71
+ "Answer:FlatRavensPush"
72
+ ],
73
+ "obj": {
74
+ "component_name": "Generate",
75
+ "params": {
76
+ "cite": true,
77
+ "frequency_penalty": 0.7,
78
+ "llm_id": "deepseek-chat",
79
+ "max_tokens": 1024,
80
+ "message_history_window_size": 12,
81
+ "parameters": [
82
+ {
83
+ "component_id": "PubMed:TwentyFansShake",
84
+ "id": "2c063fef-5379-44ae-91f6-06e914e5ad2e",
85
+ "key": "pm_input"
86
+ },
87
+ {
88
+ "component_id": "Retrieval:FastPlumsWish",
89
+ "id": "51fb537e-f68d-475f-93b3-d77c85e758a1",
90
+ "key": "kb_input"
91
+ }
92
+ ],
93
+ "presence_penalty": 0.4,
94
+ "prompt": "Role: You are a professional medical consulting assistant\n\nTasks: Answer questions posed by users. Answer based on content provided by the knowledge base, PubMed\n\nRequirement:\n- Answers may refer to the content provided (Knowledge Base, PubMed).\n- If the provided PubMed content is referenced, a link to the corresponding URL should be given.\n-Answers should be professional and accurate; no information should be fabricated that is not relevant to the user's question.\n\nProvided knowledge base content\n{kb_input}\n\nPubMed content provided\n{pm_input}",
95
+ "temperature": 0.1,
96
+ "top_p": 0.3
97
+ }
98
+ },
99
+ "upstream": [
100
+ "PubMed:TwentyFansShake",
101
+ "Retrieval:FastPlumsWish"
102
+ ]
103
+ },
104
+ "PubMed:TwentyFansShake": {
105
+ "downstream": [
106
+ "Generate:WholePansReply"
107
+ ],
108
+ "obj": {
109
+ "component_name": "PubMed",
110
+ "params": {
111
+ "email": "[email protected]",
112
+ "top_n": 10
113
+ }
114
+ },
115
+ "upstream": [
116
+ "Generate:BraveSnailsCheer"
117
+ ]
118
+ },
119
+ "Retrieval:FastPlumsWish": {
120
+ "downstream": [
121
+ "Generate:WholePansReply"
122
+ ],
123
+ "obj": {
124
+ "component_name": "Retrieval",
125
+ "params": {
126
+ "kb_ids": [],
127
+ "keywords_similarity_weight": 0.3,
128
+ "similarity_threshold": 0.2,
129
+ "top_n": 8
130
+ }
131
+ },
132
+ "upstream": [
133
+ "Generate:UpsetCarrotsPoke"
134
+ ]
135
+ },
136
+ "begin": {
137
+ "downstream": [
138
+ "Answer:FlatRavensPush"
139
+ ],
140
+ "obj": {
141
+ "component_name": "Begin",
142
+ "params": {}
143
+ },
144
+ "upstream": []
145
+ }
146
+ },
147
+ "graph": {
148
+ "edges": [
149
+ {
150
+ "id": "reactflow__edge-begin-Answer:FlatRavensPushc",
151
+ "markerEnd": "logo",
152
+ "source": "begin",
153
+ "sourceHandle": null,
154
+ "style": {
155
+ "stroke": "rgb(202 197 245)",
156
+ "strokeWidth": 2
157
+ },
158
+ "target": "Answer:FlatRavensPush",
159
+ "targetHandle": "c",
160
+ "type": "buttonEdge"
161
+ },
162
+ {
163
+ "id": "reactflow__edge-PubMed:TwentyFansShakeb-Generate:WholePansReplyc",
164
+ "markerEnd": "logo",
165
+ "source": "PubMed:TwentyFansShake",
166
+ "sourceHandle": "b",
167
+ "style": {
168
+ "stroke": "rgb(202 197 245)",
169
+ "strokeWidth": 2
170
+ },
171
+ "target": "Generate:WholePansReply",
172
+ "targetHandle": "c",
173
+ "type": "buttonEdge"
174
+ },
175
+ {
176
+ "id": "reactflow__edge-Retrieval:FastPlumsWishb-Generate:WholePansReplyc",
177
+ "markerEnd": "logo",
178
+ "source": "Retrieval:FastPlumsWish",
179
+ "sourceHandle": "b",
180
+ "style": {
181
+ "stroke": "rgb(202 197 245)",
182
+ "strokeWidth": 2
183
+ },
184
+ "target": "Generate:WholePansReply",
185
+ "targetHandle": "c",
186
+ "type": "buttonEdge"
187
+ },
188
+ {
189
+ "id": "reactflow__edge-Generate:WholePansReplya-Answer:FlatRavensPusha",
190
+ "markerEnd": "logo",
191
+ "source": "Generate:WholePansReply",
192
+ "sourceHandle": "a",
193
+ "style": {
194
+ "stroke": "rgb(202 197 245)",
195
+ "strokeWidth": 2
196
+ },
197
+ "target": "Answer:FlatRavensPush",
198
+ "targetHandle": "a",
199
+ "type": "buttonEdge"
200
+ },
201
+ {
202
+ "id": "reactflow__edge-Answer:FlatRavensPushb-Generate:BraveSnailsCheerc",
203
+ "markerEnd": "logo",
204
+ "source": "Answer:FlatRavensPush",
205
+ "sourceHandle": "b",
206
+ "style": {
207
+ "stroke": "rgb(202 197 245)",
208
+ "strokeWidth": 2
209
+ },
210
+ "target": "Generate:BraveSnailsCheer",
211
+ "targetHandle": "c",
212
+ "type": "buttonEdge"
213
+ },
214
+ {
215
+ "id": "reactflow__edge-Generate:BraveSnailsCheerb-PubMed:TwentyFansShakec",
216
+ "markerEnd": "logo",
217
+ "source": "Generate:BraveSnailsCheer",
218
+ "sourceHandle": "b",
219
+ "style": {
220
+ "stroke": "rgb(202 197 245)",
221
+ "strokeWidth": 2
222
+ },
223
+ "target": "PubMed:TwentyFansShake",
224
+ "targetHandle": "c",
225
+ "type": "buttonEdge"
226
+ },
227
+ {
228
+ "id": "reactflow__edge-Answer:FlatRavensPushd-Generate:UpsetCarrotsPokec",
229
+ "markerEnd": "logo",
230
+ "source": "Answer:FlatRavensPush",
231
+ "sourceHandle": "d",
232
+ "style": {
233
+ "stroke": "rgb(202 197 245)",
234
+ "strokeWidth": 2
235
+ },
236
+ "target": "Generate:UpsetCarrotsPoke",
237
+ "targetHandle": "c",
238
+ "type": "buttonEdge"
239
+ },
240
+ {
241
+ "id": "reactflow__edge-Generate:UpsetCarrotsPokeb-Retrieval:FastPlumsWishc",
242
+ "markerEnd": "logo",
243
+ "source": "Generate:UpsetCarrotsPoke",
244
+ "sourceHandle": "b",
245
+ "style": {
246
+ "stroke": "rgb(202 197 245)",
247
+ "strokeWidth": 2
248
+ },
249
+ "target": "Retrieval:FastPlumsWish",
250
+ "targetHandle": "c",
251
+ "type": "buttonEdge"
252
+ }
253
+ ],
254
+ "nodes": [
255
+ {
256
+ "data": {
257
+ "label": "Begin",
258
+ "name": "opening"
259
+ },
260
+ "dragging": false,
261
+ "height": 50,
262
+ "id": "begin",
263
+ "position": {
264
+ "x": -150.51830264174046,
265
+ "y": 192.36132289534214
266
+ },
267
+ "positionAbsolute": {
268
+ "x": -150.51830264174046,
269
+ "y": 192.36132289534214
270
+ },
271
+ "selected": false,
272
+ "sourcePosition": "left",
273
+ "targetPosition": "right",
274
+ "type": "beginNode",
275
+ "width": 50
276
+ },
277
+ {
278
+ "data": {
279
+ "form": {
280
+ "email": "[email protected]",
281
+ "top_n": 10
282
+ },
283
+ "label": "PubMed",
284
+ "name": "Search PubMed"
285
+ },
286
+ "dragging": false,
287
+ "height": 50,
288
+ "id": "PubMed:TwentyFansShake",
289
+ "position": {
290
+ "x": 411.1209571180216,
291
+ "y": 293.67922026697573
292
+ },
293
+ "positionAbsolute": {
294
+ "x": 411.1209571180216,
295
+ "y": 293.67922026697573
296
+ },
297
+ "selected": false,
298
+ "sourcePosition": "right",
299
+ "targetPosition": "left",
300
+ "type": "ragNode",
301
+ "width": 50
302
+ },
303
+ {
304
+ "data": {
305
+ "form": {},
306
+ "label": "Answer",
307
+ "name": "Interface"
308
+ },
309
+ "dragging": false,
310
+ "height": 100,
311
+ "id": "Answer:FlatRavensPush",
312
+ "position": {
313
+ "x": -27.594553801136584,
314
+ "y": 166.66278050463274
315
+ },
316
+ "positionAbsolute": {
317
+ "x": -27.594553801136584,
318
+ "y": 166.66278050463274
319
+ },
320
+ "selected": false,
321
+ "sourcePosition": "right",
322
+ "targetPosition": "left",
323
+ "type": "logicNode",
324
+ "width": 100
325
+ },
326
+ {
327
+ "data": {
328
+ "form": {
329
+ "kb_ids": [],
330
+ "keywords_similarity_weight": 0.3,
331
+ "similarity_threshold": 0.2,
332
+ "top_n": 8
333
+ },
334
+ "label": "Retrieval",
335
+ "name": "Search KB"
336
+ },
337
+ "dragging": false,
338
+ "height": 100,
339
+ "id": "Retrieval:FastPlumsWish",
340
+ "position": {
341
+ "x": 389.1925431609217,
342
+ "y": -53.66130634833843
343
+ },
344
+ "positionAbsolute": {
345
+ "x": 389.1925431609217,
346
+ "y": -53.66130634833843
347
+ },
348
+ "selected": false,
349
+ "sourcePosition": "right",
350
+ "targetPosition": "left",
351
+ "type": "logicNode",
352
+ "width": 100
353
+ },
354
+ {
355
+ "data": {
356
+ "form": {
357
+ "cite": true,
358
+ "frequencyPenaltyEnabled": true,
359
+ "frequency_penalty": 0.7,
360
+ "llm_id": "deepseek-chat",
361
+ "maxTokensEnabled": true,
362
+ "max_tokens": 1024,
363
+ "message_history_window_size": 12,
364
+ "parameter": "Precise",
365
+ "parameters": [
366
+ {
367
+ "component_id": "PubMed:TwentyFansShake",
368
+ "id": "2c063fef-5379-44ae-91f6-06e914e5ad2e",
369
+ "key": "pm_input"
370
+ },
371
+ {
372
+ "component_id": "Retrieval:FastPlumsWish",
373
+ "id": "51fb537e-f68d-475f-93b3-d77c85e758a1",
374
+ "key": "kb_input"
375
+ }
376
+ ],
377
+ "presencePenaltyEnabled": true,
378
+ "presence_penalty": 0.4,
379
+ "prompt": "Role: You are a professional medical consulting assistant\n\nTasks: Answer questions posed by users. Answer based on content provided by the knowledge base, PubMed\n\nRequirement:\n- Answers may refer to the content provided (Knowledge Base, PubMed).\n- If the provided PubMed content is referenced, a link to the corresponding URL should be given.\n-Answers should be professional and accurate; no information should be fabricated that is not relevant to the user's question.\n\nProvided knowledge base content\n{kb_input}\n\nPubMed content provided\n{pm_input}",
380
+ "temperature": 0.1,
381
+ "temperatureEnabled": true,
382
+ "topPEnabled": true,
383
+ "top_p": 0.3
384
+ },
385
+ "label": "Generate",
386
+ "name": "LLM"
387
+ },
388
+ "dragging": false,
389
+ "height": 150,
390
+ "id": "Generate:WholePansReply",
391
+ "position": {
392
+ "x": 632.6457249054133,
393
+ "y": 243.99641016676225
394
+ },
395
+ "positionAbsolute": {
396
+ "x": 632.6457249054133,
397
+ "y": 243.99641016676225
398
+ },
399
+ "selected": false,
400
+ "sourcePosition": "right",
401
+ "targetPosition": "left",
402
+ "type": "logicNode",
403
+ "width": 150
404
+ },
405
+ {
406
+ "data": {
407
+ "form": {
408
+ "cite": true,
409
+ "frequencyPenaltyEnabled": true,
410
+ "frequency_penalty": 0.7,
411
+ "llm_id": "deepseek-chat",
412
+ "maxTokensEnabled": true,
413
+ "max_tokens": 256,
414
+ "message_history_window_size": 12,
415
+ "parameters": [],
416
+ "presencePenaltyEnabled": true,
417
+ "presence_penalty": 0.4,
418
+ "prompt": "Role: You are a professional Chinese-English medical question translation assistant\n\nTask: Accurately translate users' Chinese medical question content into English, ensuring accuracy of terminology and clarity of expression\n\nRequirements:\n- In-depth understanding of the terminology and disease descriptions in Chinese medical inquiries to ensure correct medical vocabulary is used in the English translation.\n- Maintain the semantic integrity and accuracy of the original text to avoid omitting important information or introducing errors.\n- Pay attention to the differences in expression habits between Chinese and English, and make appropriate adjustments to make the English translation more natural and fluent.\n- Respect the patient's privacy and the principle of medical confidentiality, and do not disclose any sensitive information during the translation process.\n\nExample\uff1a\nOriginal sentence: \u6211\u6700\u8fd1\u603b\u662f\u611f\u89c9\u80f8\u95f7\uff0c\u6709\u65f6\u8fd8\u4f1a\u6709\u5fc3\u60b8\u7684\u611f\u89c9\u3002\nTranslated: I've been feeling chest tightness recently, and sometimes I experience palpitations.\n\nNote:\nOnly the translated content should be given, do not output other irrelevant content!",
419
+ "temperature": 0.1,
420
+ "temperatureEnabled": true,
421
+ "topPEnabled": true,
422
+ "top_p": 0.3
423
+ },
424
+ "label": "Generate",
425
+ "name": "Translate to English"
426
+ },
427
+ "dragging": false,
428
+ "height": 150,
429
+ "id": "Generate:BraveSnailsCheer",
430
+ "position": {
431
+ "x": 235.27003638545648,
432
+ "y": 141.22382352447266
433
+ },
434
+ "positionAbsolute": {
435
+ "x": 235.27003638545648,
436
+ "y": 141.22382352447266
437
+ },
438
+ "selected": true,
439
+ "sourcePosition": "right",
440
+ "targetPosition": "left",
441
+ "type": "logicNode",
442
+ "width": 150
443
+ },
444
+ {
445
+ "data": {
446
+ "form": {
447
+ "cite": true,
448
+ "frequencyPenaltyEnabled": true,
449
+ "frequency_penalty": 0.7,
450
+ "llm_id": "deepseek-chat",
451
+ "maxTokensEnabled": true,
452
+ "max_tokens": 256,
453
+ "message_history_window_size": 12,
454
+ "parameter": "Precise",
455
+ "parameters": [],
456
+ "presencePenaltyEnabled": true,
457
+ "presence_penalty": 0.4,
458
+ "prompt": "Role: You are a professional medical consulting translation assistant\n\nTask: Translate user questions into Chinese, ensuring accuracy of medical terminology and appropriateness of context.\n\nRequirements:\n- Accurately translate medical terminology to convey the integrity and emotional color of the original message.\n- For unclear or uncertain medical terminology, the original text may be retained to ensure accuracy.\n- Respect the privacy and sensitivity of medical consultations and ensure that sensitive information is not disclosed during the translation process.\n- If the user's question is in Chinese, there is no need to translate, just output the user's question directly\n\nExample:\nOriginal (English): Doctor, I have been suffering from chest pain and shortness of breath for the past few days.\nTranslation (Chinese): \u533b\u751f\uff0c\u6211\u8fd9\u51e0\u5929\u4e00\u76f4\u80f8\u75db\u548c\u6c14\u77ed\u3002\n\nNote:\nOnly the translated content needs to be output, no other irrelevant content!",
459
+ "temperature": 0.1,
460
+ "temperatureEnabled": true,
461
+ "topPEnabled": true,
462
+ "top_p": 0.3
463
+ },
464
+ "label": "Generate",
465
+ "name": "Translate to Chinese"
466
+ },
467
+ "dragging": false,
468
+ "height": 150,
469
+ "id": "Generate:UpsetCarrotsPoke",
470
+ "position": {
471
+ "x": 174.90602346154253,
472
+ "y": -74.84373200722371
473
+ },
474
+ "positionAbsolute": {
475
+ "x": 174.90602346154253,
476
+ "y": -74.84373200722371
477
+ },
478
+ "selected": false,
479
+ "sourcePosition": "right",
480
+ "targetPosition": "left",
481
+ "type": "logicNode",
482
+ "width": 150
483
+ }
484
+ ]
485
+ },
486
+ "history": [],
487
+ "messages": [],
488
+ "path": [],
489
+ "reference": []
490
+ },
491
+ "avatar": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAuCAYAAABqK0pRAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAABv0SURBVGhDRZp1dFXntsXJkSS4BAsaCBBiBOICRIkRD3F3d5cT94QECy5FakBb2ntL5VWgpd5C7dXdFSlQufeN8Xtr79B7/1hjn5zknL3mmnPZ/jJJ61iIzqlYNa1jETrXGnTudWiVq3M1ejHN0i1onSvQudTItVr+phadW5NqWrsiNDbZ8tkKtDZ56NbJ9zlWqqZxkNd2uWitM9AsdMdoeTDaFSEYmc5VrxrLcKYv9cRqjQN2Ns7YWbtis9aVBfNWMGXafMzNV6Gd64B2oRtG853k6oJuniO6BY7olauZLVozG7RzrFGB6J1KxMlqcVIckNd69wb0Hs3iqAByq0XrJL+zyUS70SAgm5jhVYflxixWeWQwzzUPE6tk+Xw92g3i/PpSNQBaVwHsVCFgCtDZ56FZEYZmgSfatckYTVuEdpE7WstINIs2snyNB+tsPQSIG7Zis2YtZuacRcw2W4zW3B2duSeTLTYxe20AM1ZtZvrqzRPXFW7MWeMloOyYpHMWNhRzkYi71aBxqRLHxTyaBEyrCkjv2YJ2VRx6/0FmBRjYFpNHREgKwQHbCPaNYot3OEs8izF1a1SZ0LrWqcHQuTYIU+UCsFBYScPIzAmNVRImy/zQzVyGZnmQgPPCxGIL9nZe2AuYtWucMDWdw/z5S5k8bZ4A8URj7sWstVtUVjTzNwi7LmgXOKOZYytmzbTlLkzSuIt8PGvFlJvXq2AmTOQjYHTebWg3t6OzzULv28eaqF4y0+pITqogIa6I2MgMYoITiAmKJTwkldke8jlXCYKA13u1SpDqBJwws74EoyW+aJeJpIQV7YyVaCaLowtcRWZhzLbZip2tGzNnLBRZzWOxuYUK1miRF3PWBmOyZJOAcCG0soOBiy/Q8shTIqv1Iqu1TF4kQPQedRh71suNRUre7Wg3iXy8xAkPMfdmAdGG3rtfQMnv3Ruxjt9OfmEPuYWdpGU2kJFcQUZ8AakRqaSGJpIYloKFtwRicxda7260XoYJaUpwtPY5GM2TXFkSgGaJvwBZjE4/A82U+WinmzNt3ipmm1tjudKBeYqs5kt+LPdhhpUwJ6w4hOeRt/MIYy+9QddTL2IXmsFca2F3zgYmKSBMPO/khERf59uN3qdXXneLM8KEd5e8N4ix/xAOvjlEheeQkVRCSlQWG62dSU0qJ1cBJD8nRRSSkVBJTkIFFpGD6IN2og8YRuveIgw3qnmjXZMgYFxFJu5olomDSgGYsRzjqfOZvNIHO/tNkvhuzJ69EL1FAAuc4oVFH8mpjQw/c4m9l99i7NXLDL4gYJ59CbfUCvk+J2HEswljD9GyANFuNqjyUW6umjivgNAFjOCa0ENWWgWZicVkp1aRnV7LJnsnPOWmmVktZMUXkZ7YQE5iLUmZHUSXjOJedASngqNYxI9PBMZTpOZYKowIAJGY1iZDql42UxY5cubC8zz/xXc898VXXPjkE86//x5n33kf30z5zPJAAezDyIUX2X/lbXa8/iZDL12m5+IruKVVq7kzSavmgJgiKXmtsKH3G8I4eAe60HGMQ3YxPXwHGSUjFOS1kpPVQHZGPWnJ5WyLSMPdaj2hm6IoLuqRIlCMV3QlbknNBNUdI2X/K3Sce5+u+14lqfscc8NG1NKtsQhHI8zolCKwIY+w9Are+flXrvx0lVd++oWXvvuOC19/xZPffM2p1/6XpV7p6FYEstgrgbTBA+x64116L7zCIvdYpq7yluR3FkZ8OyXyIiW56vyEDWFAqzChMLJVgEQcwT11hNLKYYpL+yku7iE/r4X4mGyCvbaw2d6FcK8gfH0TWOcdT1jLKZqevkmLWMOTN2h66jrDl67T+dC7lGx/mJm+rdI/YqV45KgVba5PNS9+9BlvC5DSnWcoHL2HnlOPEF/Xz6nL73D+i2+Iad7JDLtYjAXMxuxGig+dJn3HcfRSALTmbkxf4yuMBPRjHLhdNcV57R1ZmQSNoVcYidhHRmEv5aXdlBZ2UFk1RnlZP6lx+fg6bsTLdj3enluxcY8gff+rtF64TdvF32l99paAECB3ADU+eZ3c3U9ilzCIZrVULZGYTnKmdPQBPvr1Guff/ZSFIY0sCW1g2cZUlvrmEyT3evzrHzj7yZfYRVew2CMVq6B8LP0yWbopiYXOMWgXe2IZkCbJroAI3YE+fI84vkeVlHHQbvTBe9GH7Wd+zB7KynqoLO+hMLGQmobd1DaOU5jTSKRfJJsdXPGJqyay4zSGC7dof+4P1QwCqPWZm3Q9d51esZ6L1+h++ge25HVjEVDLHL92VscN8/7P1/no6g0eevNDFgY3MtevRiIcgvG6DDYkdfD4Vz9y7vNvKd13GpuIUgFUzuqtBawKymWVf5aAiyPtwGkBEjyGbutedJEH0EceQh9xUAWg3bqP6ZHj5OR1UF3RR1VJNyUZlZTkG2hoP0ZN7U4yY/OJkeaY3rqfyoe/o+P5P+m89Nd/GGl+9jfaL96g7onrVP/PdWrO/4JTdA2TZQRaEDHANN9mDj/4GB9c/423hJW1Cf2YC5jpNlEYO2RROHaa81//xMNSBPyKh5i5PonJ9rEySURgvDIUnUUgk9cE4ilKmWQcIkktjuuiD2K87YTYKfSxor/II/ilDVJePkBN5QBV2TXEe/kR6xVIQ8MeWlsPUF7QRk7FIBENhzCI430v/kH/S3/I9U/qxfnOC1dpeuY3Wp++wZOf3OKZz4SlHSdYFt6Lqch3kX8p7j4hfHDtBu/f+I2Rh19gZZSBWS6ZOKb38dgX36tADGeeVv92llM6MxxTWOKfi4V/HsaW0lyXBTBnQ4yMKGHj4rSAEOdN4u9Gl3Qa45QHmJ58LyWlQ9TV76KxcTfVhS1ErVvP8mmz8JAO3FA7Rm1ZHzHpLfhX7qPz4i2GX/mLna/9i/HL/5LrHyKr23RcvC01/yZX//iLW//+i/NSMpPK92CyZYh5diGY2/jQc/YSH968ybvXfuPEC28zcPZpHv3sK57+/ice+fIHXHL6mbuxEKf0DkqPniNn72my9txL4shRmfWSBVCoVC1hQx91RGVCm3gv+uQHME4/h1n2Wcqke1dJxOuqhqgu7SRJomc/z5y1c+aRHJ1LS+Ug2yJz8Uptp/3ZG2x/9S/2vv5vDl75P4689bvKzj8+uc2t//uL3//9L27960+u/X6Ln36/zabyQyyydGRlYBlrs8Z5Q6rW/4rELguY10RmL/7yKxd+/JmGe5/CIqqd+f4VeBUNs7V5D95lw1jH1mEbV8di72x0IrM7QO5SgeiSzjA7/X4icwZJSywnNSyVdHG4IKOa/JRS0sOS2Oq6CS8rWzytNtBcKnNXZCYbt6RSfuZjxl77i31v/JsDV8Qu/8nQy8LAp79zW5hQ7MYft1X7+fc/iSruxM4rDKuMcRZu20H6zn8w9sTr7Hn6Mgeef5u9F68w9PirhHXehWV8L3OlQHgWj+KQYsB0XSomdolYRlaz2F+m69URAiTikOSHkht3q2wEFx+kqlySW6pUdUkX1XLDhpL2CStooa7IQGNRO92VXdRnlpLg7scWjwDCy3fQ+exVxl//lwrm0Ju3GX75D+56+zbPfnZdmLjNzb/+4NMff+H0C++TUlSLX14nTuUnWJ46zvNSZt+6cYs3f7vFlRs3eeX6dZ7/RXLs9AWWxXUzW6qZW/EYdsnt6O1lIrBNYkVUNeYBsvOskRzRx5zARNgw2XaP5MaDMlrsllLbR2X1EI31Y7RIMzI078LQJFYzTLvIrL9xlMGGEXaMnMRQ3U2spy9hflEk1o1hePJ7+i79Rt8LIq1LN6g+8z7pNYP8dP2aCuTSB99QPHSKpPxywjruxrr4FNnjT4isbvG2mALksgB5+cYNLl29yuPfXcWzai9mAU24l+xiXYo0cHvZjWzTWRFdz5LAYqlkiVK1BIhpnACJUxL9AWIKRsgXKeWmV1ErjnUM3Ev30Gl6tp+jc/B+eruPMyTAxroOMdp/F2Oj99MuwHJjcokOTsVrYwhuwen4RBcRmVBCZm4zzY072TV+P3sPPkho1+P4bCvCJ6UK66K7WZV3kiu/XOO96zfvALkpJnkiVexFAf/0L9cZfOoNLBP7WZPUS+nJx8g/+k+yDz1M5uFzzPDIY6Z7rgCJPakyoo+/D7PEkzKG9JKXUEhcQCQhbj4UyEjQ3XeK3pGz9Ayfobv9MD31I/TVCys9Jxjefpbtex6hIE5mJhlV/P1iWeoQQFxQAiHSLFtr+jly+CGOHDrD6P6zBDWcYGNwDFZxfcyKP0L/uctqxXpHSnDzmZclLy6z/9K79Dz6Cndd/pALv97g8e+vEtl9Lwu3djDdu4opbsVMcSlgqthMr2Lcy0al/CZIpYo/jS7xLGkVe6kr7aE8s5b8pFJyUspIlgRPDUumSH5uqhmhs3WfABlVgfT3HGdwRBzc+yiDo6fxd9qM5ar1zFtiR2FyNWWZdVQKu71dB+nvO0JByxFWBJSwwsGXeXF7sSy4jyvipNJDGk+/TPTwYzSffZHiY89SfvI5gjvPcOaTbwXIrzQ9eImInnsI67qbQMMx/JsO4dNwAKe8YXJOPSlAEs+IpM4yOfl+qhrGaZRyWyuNrqZQTOarOunqNZLcJanFpAVGk+gbTlVGDT3VA/Qa9jI4eB+je86z6/AzVFX3M33qHGaYLZNgNNFcpzTO/bQ37JA824lX7gFmL3Vk9vo4ZsQexiztFF0PXeaDm7d4V8CMPvUOXf94jfITF8k+8CQHXv6QJ364xqPf/EzWwce493OZhj//jqMff83eDz9n13uf0/fmx/i0HJRkV/qGJPmM1DPUtR6iqWEXTbXbaawaoFESvrmyX6yPpgq5CiMG6fLlKeXkRWfRKr/radvPyNhDjI4/xs7xfxIXmc7KVS7UlvTS2nRAcuysgJFKWL2DaSE7MZm5RLbRRozDjzAl/gR2VQ/yyg+/8oFULCVHlD7yilSr5366xjMC4vEfrtJ8TtlDPubM199zjzTI459+y34ZJLfLfDby3pdknHj8v0Cmpz1AdcshWjqPY+g4jKFtH22GA7Q1jdNWN0prvZTXasmNpt0MdR6jXmavSHd/Ya+Z3o4DjAzdx8jgPZI3R4nYmingR2lrPUZ7p1Q2yaukMpmkBYDJrCXqomYccUz61zFmJ99F+t5neff6bd4WMG/dvM1laYwvSaI//+t1zn/7KzXS+R/+/meS9/6T3otvc0JY2fPhF1hlDzP4zucMvvuZJLvIagLMAyRUH8EgDai1dQ+1hU20SD4YGveKKSyN0dW0hwEBNtxxjP6BuynNbSVUEro2p57+ZgHYKlLrOyEJPkKrMGAwHKarQwLTdhDXTOlXluEYz7GSaXufgJB5TsCYRB1gSc7dPPHpD1y5dlNA3OQNAfLC1WtclG5fe+YSj377swD5ibs//Zo9lz/h8AdfMnTlQ8Y/+pKxD79h6N3PhZH4+zGOk/kq4SyWWadoaZMBsOsu6sq6yInJkKnXQK00xUbpLc0lnTQXGGgXUP299zAw+hDZsYVES3VrlmbZJ71moGWcThnzW+t3Y2jZT6vhIHWGo8zZdgTdPHv0ywNkupbZTsq+TpkoZOKeFncYr5YHidp+nuR9/0Ph0QsUHrso4/mT5B1/Vk12BcgZaZonv/gB14p9WGWNCZCvVSDD730hyR4j/SPhTsKLxKraj9PWcZSGim6KU8vY5hlMqIsPMbJ75EuJrc2qoVGKQVfjHoYG7hNm7pcxJZ3c8FRaynrpaDxIX+spASJgmg/SIiDy6w5hHCb7zYxl6NfnypB6HK2A0EUKkIjDTI+VIpB0mIWph1mRc5f0l5PYlR7HquAQ7nUnuU+a6LnvfuSsALlX9pPmx16lXsaXrhfeIWb3w2qeTNLH3S/SehB9ykPo0/5BcvM9dPffK118iKqcWjK2JrNxpTU2ZguxnmtOkJTYksRiGvNb6aoaZqDrKGUirTDnTdTkttBUNEKP4YRaseqb9lErBcSv4Aj6wDFMpptPPOsSAIrpZY02lcl7UboMrWH7mBa2m+nhO+Uqy13gCKZbBpkROoBvyz3c/8W3wsiPjL36kcx1z3Pgs2+EkW8YeOszyRPJEV3qwxinCggxY3kd3nCaDunazSVtVGXVUiwdPiehlGjvSDZZ2mJtNp+15itkWyymOrkUQ2kXxRm1eFnYUCSdvCG/k7bGQ9TX7ZLJYCcFNbuYKyuBzqePyTMWo/MfEkYUJo6KxISJuIOYhu/HNHgP60uOY5lxgAVxsq0GKE9w+jD27WJx3HY6H39dldb+d7+QGe59DgmwfZ9+xc6Pv1NZmWSc/pgwcQ5jYcU4/Tx+tQ/R3HWEGgFSmddIZW4TNcVdVOQZpOOXErLeC/v55viucyYvIpOKzHqKsjtwX7cJi4UrSAzPoDi/nerqUSoqR3DPlula8lC3qYMpM5agFWaUJNcJAyYR+zBPOIRJ0E5Zr0dxLD2mmlmMMBIwiIl/D3rfDkz8OrEv3MdhSepjwsLhD76SPvIlO9//jN7XP2J1+qBIS5FUxqNq5dKlPYJLxTkaO49QLslelCndObdB3Q7rSjpok12gXvpJkn+4FIJs+V0jif4xRAQmsGDBYkxMpxPoHUGeyK6wqJfQjD5MZVlTgOi9DMKI9JDAXdJDpILJ+jBn20FmyJptEqRIaTsOxdL500ViQUNMDugXIF3CZLtqi2KGZDU2MNOvjVkB7cwObBZrYZZcF0a0CyOp59BnPYKJLFOKxCwLzlIrlausrJuCLBkeUysoLzRQX9xBh1SrARkiezoO0t15kJ6BUwTau7BMFq0pplOZPHU2YQExZKTXsEUWH5PAUalOp6Qq3oPOox6TqeboRPu64HF0W6UEh46zKEGuW7aL5IZZn38Q98rjTA8elFW4G2NhQnnWNsW3jek+bZhubGTypibVpm6uY5p3HVM2V2MW1KwwIomecY55QrFfRA2pUblU1myXNbeHLJm1MhOLyE+TSbiwnS4ZNQZ6T8jcJH2k9y65niQpeBvLZs9lyuSpTJ0xj/CofNZ45aNza0YvDusjlcYnVcq1Go3pbHR+AyoQY2FG5z/ClJARZoWPqUBssveyLm8/86OHVUkpz6KNPVoxD+9Rn08rD9fVZ8iuNeq5jXIEonMqQudcxCT76C6io4rIFKnkbculVAbG5oadlMg+npFaSUpcIYUFXTJMSh+R8aRL+kKPNMpuaZqdhn1kbstjqdkCTIURE5mzzB3T1QMfrZfsDQqQkL0S/f0TT/dNZmHsMyAgdqjPz3R+gyKbQRZEjqDf3MVU/06mB/UwNbBbBaLfZGCWXzsmXgJCOXhyrUXvNHGGM3E4JSDENBsKmKQ4X5xUTFlqqSSugBA2DNIjqqq2kykjfLJUoqKCdsqyG6iR/tEqc1h74w5aGkZpkFksfmsqC+cuZrLpNIynzEK7MgadbcEEEIm43m8YjURb6yFOGM8S50QuSuVSnilv7lWPLEwk8ovCBmQL7GLWlh5mBvUyI0i2wsAO5ga3qyyoQFwUFiYAKAdURg4SMId8tPayjygje5U4XJ3fQm1ZDw2yBTZJ2ayt3UFRYRfpKZVkpFSQES2MxRdRlS/5IitwbUkPpSI3L0c/VpivYdFCiwkgy3zRbagSh6XiSLS13uKscrygnMHoZ6KTpFdAqEcV3p1olOfOkgeThY1pfh1MFQamS1JP921hqnejetynV0/Syv8LQhhQWNCty8FYtkWdXQaTKiTaFUWdMraLSZmtllGkRpK6UhgpFCBp8cVsC0ki2D1ILFAWpngVUE5iOdui8rCxXI+jjQd29t4CxAyd2VqJXhMaD+XBuPIE3iCJrhzZiUN6YUQ5vtjcL0AEnIDQSYM0Vs5jPCWnPBrQuysHTiJDlYVqkVKF6vzfElIZWJeLzj5LXXkVEMraO6k0r5VSYaQ8u56S7DrKCjsoKx+kqLiXTOkRUSEp+Dr64G7tjpu1Cz5OvkT4xhC5JQFv7ygWrQlgmn0GutXx6KfMQz9toTghzijJLqZ1a0CrnoRVoRMgqkRUJgScZ4skc6PqvM5NOWS9Ix/lPPMOA8oBrSIhjb3ISCSkt8sSEBlobNLQ2IrZpKK1TmFSUWo5hVKdCqXMFmQ2UCzA8kVmGbLdbYvJx9fFH/sVtqyTru642p7NjpsJ8YnE1zeeqRIZ7YZy+TK5kVUqxnOtMZ48B90yH5UVrchCPVOUCqN3UYCItBR5eLaK8wJAKQBqEovzjhJ5xztJLM4rOaCaOK9TnLediLzOToqJYgJCa5uK3loCaLWNSTnxhTKCFJKbVEJeZiP52U1kp9dJkpcS6h/Lpg3erFtpj/NaF1xs3dnoEYTN+mB0FuHobHLROJQKkBx0a1LQrdiKbrLIR0zrqOhZnF8vUd1QKlEuRSvJrrPLnJCXAkIpoY5lTPGoYFV0myodVT7rxZSTYCVQqnQUp9MxdcgmY/cZ8o89gplnNosCijCxi8fct5BJ6TG5ZMYXkJ5YSmZqjSR2NSmJZUSEpuAtbLjYuLNulQMONq64OPljuXYzmvkeaJeGCqXZciO5oXUm2lXxaFcnoTezxmTKXDTz7AREmehZqSrSV5zltSKttfEqC+o5voBQGDBxLWGOV4XIRpFOtgpWe4cBRTrq4alcTe1SCazdTXDDHmY6pmERXMHa2HosQsuYlBSZSWJcLonCTFJ8CfGyX0SEpRDgFYK740ZcZLZyEnN3DcDBwQcTM+VI2AnNsjABkiU3yFZlpVkZrR7gaFfHoRUgusmz0S4RidnloFGksUG0rgBZGY7esVySeAKEWoGUyNtmqbpXnJ8AIK8V/a9NELZj0VnFTVzFFCnp18RgbC2v10bJe2FMio9IZ1tkBrFhqUSHpbM1JBGfzVtx37AJZzFXZz883beIBbFwuQtGs6wxMnNBaxEpkZKoKWBWJ6JZEYl2uby3JgmtSEw53NRNFmZWCnM2GehVILPRLPf/j/4164UpYeFv/f/HFBDWyeJg3ITTYppV0XKfGIxWRWBkGSFBC5X3tqK1FDkrz36jQ5MIC00kbEscQb7RbBYmnB28cLB1xcHeXeTki6dbIOs2BKKf7yxAbDGa5yEORskXJwsYqRyrEqR/bEWzNFjel5vZiDMLXVUg2qkLpElGykKVj8ZkHkbm8lmlkSlJLCVUBaE6rlQg5Sq5ZjWRwEr0FedVAKrzEqiVIfJ9IehVC0W/Qn5eHsSksIBYAv2i8dsczka3AJztPLBd44i1lSO2Ni5scNiEo6M/c20iMVogTsxxYJLyrxjCgE6A6CQvVFktExBLgzCS3NGsTZG8EcfmOkxUqmky9UqFMZq6BCMJhlpGBcTfElJMt0ZxPlHsvxJSQYiEFBBG4rTCrs5CANxxXrlqlgVKEAVIoDDg6xmCl7MvzlKVbKXBrZIqtdpynYBxZp3tRqzWBWK8LhOjRT4YzVmP1txXpBUuCS4gVsVhJKDUM3OFEfkbraUSTZHY6gQ0Zg5olGo1bTFG05YLuPXiuGj/7zywVvpAsmh+QkIKACNLhW0FQJR8v9iKv0EEqwAU51UAd15rl/nx/9m9rPJRUHu8AAAAAElFTkSuQmCC"
492
+ }