%AiU
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
delta 2004
zcmZWqYj6`)6#i~Do84?Sv`y(F(AGYn&$NLyAe6Se>3f7#vlB3{BK9bU;cI+@$9CcNG7}Y=DhBAzH`paq2ddL
zEkFHz>n?ysOeioxkYH9J!orX~IU!43oKVO&4QjrFgjANQFs>K}?JVS*8nS4s{E4oFNifrU?k7;?S1m{yHb;qND
zkYB-EHh*Bw;lG$cf?U+8@L&;x6o@sCMB)h}#XcSE
z^D35LY4XV2RvF6}vL7D1F@5}WD(LjZs}HYVsxRET-$n#BNm#C81y)i<;i%so3-0s`
zxjVvszZPW>wP-Xs9E8)hb>j@8QAqndlGXE`G^B$iTi3h?V85tq7}#AV7FWBLkG#s>J$eV8k0utkn`SqCBL`EmIK3
zsD#}r#;}JW=l^WCczyA3G{LW#JQfMBP;$xi{N%ngt8>F>C>|KmdXrZ(xr1%V%bmA(
zO!EzT<257H+TKW{Ce^k38J6&foW;wTlmE$7(Y!i5pz%LU72GAX@*kx}o+h`7W}hzY
zk@xZ2R)02wnV5?)uyzKy!51{9g`ZRg1R0<32e!eCGz%^$_!OT>xTp`sr4zO??y{ZD
zVo=*dRLj*tZ!D(8Bz(azpD(n{rv$!YD4=b@ICXPJI6OQWK@qi$2@DBXFh_4tnlh6<
zh$P!fdmF9$=-D5`tE8ZTd{!||3M%Z3!b0l-BMP-5$kkO2p$X}*aD0qjbp
zE?%{X!nEkSHCH-y{fn-f=+@PAIvqm&*F^)i%~;LQQP&bypn_H@KCURYg!#Dzg0xZJYc!$!ggA3K970J(z
zcX8AJF)~96QGjCxQO5~@PFO0&dlVyyagej{h)_^d$P#jmZ;^yD+5q-PM4Bn30h1`J
z6BI;b6j7&}u9y_v_<&Y{WF8`>x9TSPOz3poN9k?!Z@B?)r>klbJ9HfpwbKNhKf`QX
zx4S})g27S&B?}5_LklI{Mjg_QJglLMb}jMMX%JGFI_ODy9wT{1J{90NNkEbmLk9Z`
zwGz=egSeW645x5<2JsYy5%l~QRNaF@@P_U~6eebXg-mG7I|s>p8D?R^sPV2;jfDvc
zW2b2;CN}{~3>hlUx%riR8rAU-6S31?^K
du7u$u5`0V#F^2Q>oWtkzOQGFme2K5&{0FH!c9#GE
diff --git a/Debate_backend/target/classes/com/learning/newdemo/util/JwtUtil.class b/Debate_backend/target/classes/com/learning/newdemo/util/JwtUtil.class
index fa443572c7f26102aa3cddcf8256647049e124b5..b6c742c240f38986a721c496c5bc55824db1b8c0 100644
GIT binary patch
literal 4084
zcma)9`Fj)B6+Lgfj4cls#8MWMfHfo3oAtDglV8F3#f{bY(Nf}FHdu(Y&9gQ$<
znxsfq>k5(r$zDGYPfxVZ?j&B#NNxNiE<*fn7aedRbU8f|_Kk9lj$x>08PJ3p-
zT5!GjqRWOG@7G&IvRE
zX4F+swg>iAE3RogX*;%mN}#T*ds3i&$jwoqyP{a7<-A#%
zO`F9S_9EVd1B}HjT8^D-!AEgO$3bpXHKw6~cHGZEi)H5Ok?5X5CR33u!;vV8a3}_W
z2Ml}!9Sk>gqTq0cRMftrfW~azvk
zZE4G&b#oU@sV3j@xNCgI^2Zf1!=77El*<^77)at{!Ss*i-NfpYV>#}<|ij5%y
zXK+>t-B%96nv8da0#On;!wN|0I47{Rs#7@_!!Y9VW5mD{7^SeMtZCOH`W;chsrB7g
zV;I9l9ph`Yp?Xt@#=w)fB%rH?F+R-;$SVGVQYv1*l)^1Ei>X*|Q8MNwqz8RrRWQD9%l&&_1kTP*r+
zGNU>x=Sb@(VCuLoaPY(Y8<;|t&`N=4_EzQmc*q^wW!ba+#iVq54`}7imVs%^P-Igw
zP=N#gFHB;!F|T8e&Hn?j8pxx-%q#waLK<0MwRYE(*=9E-?&9K;I*L?9jcEfO=uRiS
zgKm!8?p)JeEoJ;wfgc+-}fmnf!wV&F~uRG_IueO#d@fy-e4>x%1M
z{M9VLXq-Pc@C*Esx#Z2F$UD(SC5Ngaqr8N%dFCX2)J^r46AZL%Lc=z;wox;Fi{I<`
zoxuK$wDJ2HE6ZDv$Da2G{E^*wa3FK`;eLV5E~~~VDdt-S8qnB++jvLEpKFM#YH#2#
z@{DZEsl9Y83uxB{V_3x<9q+Q^Y{V61n#kV6U#W%Jf|+*wb!{-Hz#1Ku
z`J1;E2N!*deIk}|%U;$Rw&e}a2rs-xsCi2*@pfUkKCdjvA!f#PEXPmb5TmZ+
zty<$BL+3Z0-&*)=;(v1qF;1|+H&1M#CDVphes1HMB%gxMhQuQrqcX2%Z78=Jyy7!g}BF@cDgphVKB=Anvh=&NNpTQlYzvBwpDUQ-x1=>EO6tpZnyU?Hmvx-@H#D7IL*OY+2t1Afno0)Wps@tru7Ia|
zS1~9s)^`WPSErM`5Xi?>!nfNcatE1LQzRoQ3d7^%OQ2cGd=obh?!%dZqf00WmigO|V
zY5Am(7ZdN``6awyF5`=1EBF!v{i+5g>vau%tN1oykciuOV--KH!=v?k>sRqJ_9eOs
z-=PxId@TQ0-iwBV-^6MmjI+D6`l~~U)!Y(Gii59;iFB(1c;4PK9
z(;R&nzh>-fr9$wuPtZP8T&IeUmp~3l#ii*$<8#+-{DxuuX%%nFLRlK^S;2}#tf_*P
m4Fo7~iK9?SZOeubG=XiT>3uBIrG~$$HFs49l5OMf!2bXfxB7Je
literal 4084
zcma)9`&%4W8Gg@j8CWKSk`NO@YC=c?3uLt=NiAtoAXmad+9kv$ZSAmofPvkeb#^uc
zYrWrXwe{M1ty--bt!az|np&&B_&okiKI(hU47&qMY@U5)X6IbK@BQBIa=!W3f8Kcy
zz+?DF3M9GhIk8M;pSUu8HJru(>
zY&X$nVFx}WurKZA5?N_`d55_3axo)wZbIW5UGy&zClSoby!32ePPz*+FR(wY-y7@&p?JHf0VB265
z_TWJiAGWX;`vi7uzKq;Zlfc2K=)e{0AcjLG_OEkV0K&upfo&CTPhU^Vg73I_h2fBe
zZuDqI{L|M94oTq*E$j{{(3G4aRf8sa1)3|qQ-d+YQKN2$EhO*}dVE^WxSpiKD5ZLT
z&y^S+!owy8EF8hnwaC%oHSD@{8TFdi>}*L+%#f1qD^V|mE9izt@G%pQS{TG}f$bZK
zqmPR;r(k2r>L9L9)=Qx;C+jKJOxQbK6OKr&-W3qKYTRg~$H=lDwrCH6khD$VCCoX4m@
z-Lx`PV9)r0v82#-4iR_toaLKb##%0_CzD_p25wf)bb=!CMGRh!W846
zS_{RQq<7fOklXERffgw<^h6gvZs93agtiu#etycg(+iWHoz@|D)xy(wCJ-~}z0&gC>RCZvTKB_;@J4M0r`G-mmjQjw@)drp-@N1(QQ
zv}a1i--3lKa#XKrSMl}W=ER5bM^0Q6OnlOU2U_1=&52(Q)kelgK)gVIG>L+`bnmTN
zOUc4DEDAJH%K2ikBr`*-ABUrIf@It*9iniTEPP4{QsG)D42}3SUNG?)3!la31UfgO
zQ7L2lB~K1zXI)0~99gP6mwM<3)4i)oW%X)p!xt=k5nmE$C{o&G3K6)pS(4n3yiF4+
zYUfuhd=+1#FL`VfY<0w~kH|3A8}SW%)5MDwUc$Eoc5gJC@26ziWwD`u>xYL@r;iQ@
zbW}mCtQ%C}`m%*r@Ez`8_Oqg}?nXj2RNaK{;rk|jVBv@AsHh5_ib%@IXb>h|6ELn0
z$M9qP#Kcc6{0u*5dDw_LT62hd%UsS*r{-){pffI`x}*E*a8QFcseCLTPnPmNvv0~N
zI@4J>l+U}qK0YXFV9fPq6GfG~vooHZlZ&pmkeFtTFD7P4v+FG-?DB?$&b2|tiZ1^|
z()IlOqJKDG+B_oV*+_<))=KX%mLx&`sOfDcf_@dpKC@&pE`k
zf9wO>1HxE$-j=IfRj$ah+I0SZOsU{s09^J_hdrNSDLBkPwQul9IkBs|$qP+&_^
z`g3lEXBO%7b)cy}WJ0%Ckv?Q+RnUb!hkzhEZ4v3^RzOj&`x8>HOD$~(iEDO>y1~&!
zK=P0|wCPb$A!qHRCgO;ty6UhlG0fRFWYjAQZ^fa(Ky||KJYP#!*5z`=5I7&LX@q;9
zJVtwpvKt!~($jMkf+tI_hB
z^}0i7U_;o79xZoous4)TDKtQt(!fUk2L3=Df8>6pJs5e5BY)yZ9UaYwz|As{H#k+x
zvG#cHGIoylx5ie{Vc>mqCf`K;xJdThcrO
zj5}PaSbUYD6!=aJKH0a5g979IcM&J2q_KYmAHA8ZRd;Q~ZgiB5*g;o&n!6+;GAaaMrtzo7m;A;|t7vfnV?zl_V8e}n1{l%dBFql^obHBN;SXvRfs
z#}nAa7O#`--2tR<5R+_?rnEV6>O9D6jr+bb^u7?f!L`a;29y!>(|;+1U!2=WzDctM
zZK_>w6hG?7i1NZe2|{ssHsn32o@D<@{5GCl#
Date: Wed, 9 Apr 2025 16:58:32 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E7=AB=8B=E8=AE=BA=E5=90=8E=E7=AB=AF?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=AE=9E=E7=8E=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../newdemo/controller/WxAIController.java | 4 +
.../service/impl/WxArgumentServiceImpl.java | 175 ++++++------------
.../src/main/resources/application.yml | 9 +-
Debate_backend/target/classes/application.yml | 7 +-
.../newdemo/controller/WxAIController.class | Bin 3184 -> 3287 bytes
.../service/impl/WxArgumentServiceImpl.class | Bin 5206 -> 5480 bytes
.../service/impl/WxUserServiceImpl.class | Bin 4356 -> 4277 bytes
7 files changed, 67 insertions(+), 128 deletions(-)
diff --git a/Debate_backend/src/main/java/com/learning/newdemo/controller/WxAIController.java b/Debate_backend/src/main/java/com/learning/newdemo/controller/WxAIController.java
index 671b534..80db15b 100644
--- a/Debate_backend/src/main/java/com/learning/newdemo/controller/WxAIController.java
+++ b/Debate_backend/src/main/java/com/learning/newdemo/controller/WxAIController.java
@@ -29,6 +29,7 @@ public class WxAIController {
topic = params.get("topic");
stance = params.get("stance");
+
if(topic == null || stance == null){
return Result.error("立论主题或者内容为空");
}
@@ -41,6 +42,9 @@ public class WxAIController {
Map data = new HashMap<>();
data.put("argument", argument);
+ // 查看data
+ log.info("立论获取成功:{}", argument);
+
return Result.success(data);
}catch (Exception e){
log.error("立论获取失败", e);
diff --git a/Debate_backend/src/main/java/com/learning/newdemo/service/impl/WxArgumentServiceImpl.java b/Debate_backend/src/main/java/com/learning/newdemo/service/impl/WxArgumentServiceImpl.java
index 2050b1c..cb6499b 100644
--- a/Debate_backend/src/main/java/com/learning/newdemo/service/impl/WxArgumentServiceImpl.java
+++ b/Debate_backend/src/main/java/com/learning/newdemo/service/impl/WxArgumentServiceImpl.java
@@ -3,7 +3,11 @@ package com.learning.newdemo.service.impl;
import com.learning.newdemo.service.WxArgumentService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.*;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
@@ -11,66 +15,23 @@ import org.springframework.web.client.RestTemplate;
@Slf4j
public class WxArgumentServiceImpl implements WxArgumentService {
- // 依赖注入
private final RestTemplate restTemplate;
- // 使用@Value注解注入配置属性
- @Value("${ai.argument.header.Authorization}")
- private String authorizationHeader;
-
- @Value("${ai.argument.body.message.role-sys}")
- private String roleSys;
-
- @Value("${ai.argument.body.message.content-sys}")
- private String contentSys;
-
- @Value("${ai.argument.body.message.role-user}")
- private String roleUser;
-
- @Value("${ai.argument.body.model}")
- private String model;
-
- @Value("${ai.argument.body.frequency_penalty}")
- private int frequencyPenalty;
-
- @Value("${ai.argument.body.max_tokens}")
- private int maxTokens;
-
- @Value("${ai.argument.body.presence_penalty}")
- private int presencePenalty;
-
- @Value("${ai.argument.body.response_format}")
- private String responseFormatType;
-
- @Value("${ai.argument.body.stop}")
- private String stop;
-
- @Value("${ai.argument.body.stream}")
- private boolean stream;
-
- @Value("${ai.argument.body.stream_options}")
- private String streamOptions;
-
- @Value("${ai.argument.body.temperature}")
- private double temperature;
-
- @Value("${ai.argument.body.top_p}")
- private double topP;
-
- @Value("${ai.argument.body.tools}")
- private String tools;
-
- @Value("${ai.argument.body.tool_choice}")
- private String toolChoice;
-
- @Value("${ai.argument.body.logprobs}")
- private boolean logprobs;
-
- @Value("${ai.argument.body.top_logprobs}")
- private String topLogprobs;
-
- @Value("${ai.argument.url}")
- private String url;
+ @Value("${ai.argument.header.Authorization}") private String authorizationHeader;
+ @Value("${ai.argument.body.message.role-sys}") private String roleSys;
+ @Value("${ai.argument.body.message.content-sys}") private String contentSys;
+ @Value("${ai.argument.body.message.role-user}") private String roleUser;
+ @Value("${ai.argument.body.model}") private String model;
+ @Value("${ai.argument.body.frequency_penalty}") private int frequencyPenalty;
+ @Value("${ai.argument.body.max_tokens}") private int maxTokens;
+ @Value("${ai.argument.body.presence_penalty}") private int presencePenalty;
+ @Value("${ai.argument.body.response_format}") private String responseFormatType;
+ @Value("${ai.argument.body.stream}") private boolean stream;
+ @Value("${ai.argument.body.temperature}") private double temperature;
+ @Value("${ai.argument.body.top_p}") private double topP;
+ @Value("${ai.argument.body.tool_choice}") private String toolChoice;
+ @Value("${ai.argument.body.logprobs}") private boolean logprobs;
+ @Value("${ai.argument.url}") private String url;
public WxArgumentServiceImpl(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
@@ -78,73 +39,57 @@ public class WxArgumentServiceImpl implements WxArgumentService {
@Override
public String getArgument(String topic, String stance) {
-
try {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("Authorization", authorizationHeader);
- // 构建请求体
- String requestBody = String.format(
- "{"
- + "\"messages\": ["
- + "{"
- + "\"role\": \"%s\","
- + "\"content\": \"%s\""
- + "},"
- + "{"
- + "\"role\": \"%s\","
- + "\"content\": \"%s\\n我的立场是%s\""
- + "}"
- + "],"
- + "\"model\": \"%s\","
- + "\"frequency_penalty\": %d,"
- + "\"max_tokens\": %d,"
- + "\"presence_penalty\": %d,"
- + "\"response_format\": {"
- + "\"type\": \"%s\""
- + "},"
- + "\"stop\": %s,"
- + "\"stream\": %b,"
- + "\"stream_options\": %s,"
- + "\"temperature\": %f,"
- + "\"top_p\": %f,"
- + "\"tools\": %s,"
- + "\"tool_choice\": \"%s\","
- + "\"logprobs\": %b,"
- + "\"top_logprobs\": %s"
- + "}",
- roleSys,
- contentSys,
- roleUser,
- topic,
- stance,
- model,
- frequencyPenalty,
- maxTokens,
- presencePenalty,
- responseFormatType,
- stop,
- stream,
- streamOptions,
- temperature,
- topP,
- tools,
- toolChoice,
- logprobs,
- topLogprobs
- );
+ // 构建请求体,使用字符串拼接
+ String requestBody = "{"
+ + "\"messages\": ["
+ + "{"
+ + "\"role\": \"" + roleSys + "\","
+ + "\"content\": \"" + escapeJson(contentSys) + "\""
+ + "},"
+ + "{"
+ + "\"role\": \"" + roleUser + "\","
+ + "\"content\": \"" + escapeJson(topic + ",我的立场是" + stance) + "\""
+ + "}"
+ + "],"
+ + "\"model\": \"" + model + "\","
+ + "\"frequency_penalty\": " + frequencyPenalty + ","
+ + "\"max_tokens\": " + maxTokens + ","
+ + "\"presence_penalty\": " + presencePenalty + ","
+ + "\"response_format\": {\"type\": \"" + responseFormatType + "\"},"
+ + "\"stop\": null,"
+ + "\"stream\": " + stream + ","
+ + "\"stream_options\": null,"
+ + "\"temperature\": " + temperature + ","
+ + "\"top_p\": " + topP + ","
+ + "\"tools\": null,"
+ + "\"tool_choice\": \"" + toolChoice + "\","
+ + "\"logprobs\": " + logprobs + ","
+ + "\"top_logprobs\": null"
+ + "}";
log.info("请求体:{}", requestBody);
HttpEntity requestEntity = new HttpEntity<>(requestBody, headers);
-
ResponseEntity response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);
-
return response.getBody();
- }catch(Exception e){
- log.error("向AI获取立论失败",e);
+ } catch (Exception e) {
+ log.error("向AI获取立论失败", e);
return null;
}
}
-}
+
+ // 工具方法:转义 JSON 字符串中的特殊字符
+ private String escapeJson(String input) {
+ if (input == null) return "";
+ return input.replace("\\", "\\\\")
+ .replace("\"", "\\\"")
+ .replace("\n", "\\n")
+ .replace("\r", "\\r")
+ .replace("\t", "\\t");
+ }
+}
\ No newline at end of file
diff --git a/Debate_backend/src/main/resources/application.yml b/Debate_backend/src/main/resources/application.yml
index 6a5234f..44b3272 100644
--- a/Debate_backend/src/main/resources/application.yml
+++ b/Debate_backend/src/main/resources/application.yml
@@ -19,7 +19,6 @@ wechat:
appid: wxf1f6d7657e01d48a
secret: fc356336a118366f27c384079688bc15
-# AI接口配置
# AI接口配置
ai:
argument:
@@ -103,15 +102,11 @@ ai:
max_tokens: 2048
presence_penalty: 0
response_format: text
- stop: []
stream: false
- stream_options: []
temperature: 1
top_p: 1
- tools: []
- tool_choice: []
+ tool_choice: "none"
logprobs: false
- top_logprobs: []
# JWT配置
@@ -121,5 +116,5 @@ jwt:
# 服务端口配置
server:
- port: 8000
+ port: 8080
address: 0.0.0.0
\ No newline at end of file
diff --git a/Debate_backend/target/classes/application.yml b/Debate_backend/target/classes/application.yml
index 6a5234f..f81e75a 100644
--- a/Debate_backend/target/classes/application.yml
+++ b/Debate_backend/target/classes/application.yml
@@ -19,7 +19,6 @@ wechat:
appid: wxf1f6d7657e01d48a
secret: fc356336a118366f27c384079688bc15
-# AI接口配置
# AI接口配置
ai:
argument:
@@ -103,15 +102,11 @@ ai:
max_tokens: 2048
presence_penalty: 0
response_format: text
- stop: []
stream: false
- stream_options: []
temperature: 1
top_p: 1
- tools: []
- tool_choice: []
+ tool_choice: "none"
logprobs: false
- top_logprobs: []
# JWT配置
diff --git a/Debate_backend/target/classes/com/learning/newdemo/controller/WxAIController.class b/Debate_backend/target/classes/com/learning/newdemo/controller/WxAIController.class
index 3e223b511c0b6bfb27ea9781d9e5f0d956656436..afbe62a725f7d131f1d7ea9306236fcd69ff985b 100644
GIT binary patch
delta 769
zcmX|;TTj$*5XFE0ZK2)L09oR4U&V-^uA+cJK@=5SR1mLt0Rcf+xyZ`JE8uz;G*Oc#
zKKSAXATc0`;zs=dz8d2vKz&mmd^75_5ZknK=A84N&P;z~ea^N%{7JkAs+pX%G|lo8
zV2jOGDxJ8N8!_3Y$ox9}@Y{>Tw@0rR9zXpu`DEe2^Y3q;jZLJmogD@>Happ+NRJIi
zOGXBI%KJ(hV$o>#utM)0?1?FgoOfC%qp7p6yKA&+O|wNlwKjF^aWb`ts(0G8pyd|Z
zXS0I+PC_d&BQ)9^pvn2E6(=9EIm{7fxn7rYjAn!5HYYea7t^bBHRep4d8rc?*NGe4
zaGf`uPv%Gcj-t>}{=#H~dy0_2kn_tQ+$^KXygpV@h~kvsWQi>vXR^$TnO@X{Px91O
zr^X7FonG=n25o|E(Gf>G9TF95IU`xCz!o%g;ijA^t0VrBia=HP4b>X!=h;2e=n`Qe
z_G*M*(U9OE%#$}GU6s7l4qMj
SjLUP4TarqD+~zL#$^HkSG<`1s
delta 752
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
literal 5206
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
delta 2021
zcmZWq+gDUo82{}#bIzGLa}XRv9ncX_K(14QrCby=Qw${Vf>(5a<1jeP(99@a8}FKx
zMq5m?EHllL6cqvQJ!z}eYV{}d5ZFU6zVy_}zI_I1r7X_=_WADn_x<*nTNwv4lYaW=
z&I14y7*JthDCSS?DcwzOmkKLGQoDDX*AwsteV)4JcB3V#Lg8N3QzHdJJ_ct^DD3k@
z0-Hq%~{}M*ST|b#R+M;%^QZRl#5=>W%tC!H5V6ggTl-TRe-6pb_>)
zjn=a6-BbB-wJTGJ7%gEV$}oAxt}dgc%^NN1@CW_g&d#E^We<{-968
zLM&4826tPE=nQXSF|V;~wO8XU6-ya%c!p&HzhX%yTMcUYUzX{tj;Bg#NUV!e(HXkt+PkwqPy(H$nFYi-!X
zldNf}bJ47$1r-dk5e|pK8X;ro*bELR*ZW4V^@XICf9Y+#SB(GkkCV@X(NeE-We$Tk?35#m)V)E~(hcljMmi4Y-8{
z%zv@<@OJyo6fvKJI+8KLfx|ee;t0b`v+!?n@)RBKfp|JDVg!i13wG3*2&j0U5hI@3
zGZQr&L#|kk>o|drc$t!IJB*KYaGd0RrC2A}y0)*37-3=#@0KU>X-Wc5*5+s;=u;hM
z@fp9QWKz&M9bZt;ugavH^Tgqiv;8Bd`ktJ;JaTkUuw&n~`0?lf;ZPTyja756)@sx6
zEv~5ej#oKyXkI1g*M5cWL?Hwe?(UTZK5*disFB_a>AV5bAB1?*yg{J$G
zj_3;(GgCizl&OJKq><|s3d@MfALqe+RRG+8dbee68R%=13sz
zyaH#XbRW_H7Az|qz>*(OS!xw7%Uo8|XH+?aw@YQ0>|8Z~)uoC{c?5?`8Nj+T7%#jx
zy6WZI@X`eO@`S#%k#e_*U3;HdF+>&L5oYQR2q1Y?UvtlV`V;6Q4ILir@M$#$R
zOGDa2RV`E(W{!B|UW(jD8V{sr*aTGtQ&CC(F%{M3uAWvP;hA7e+$vn6*iTV1qlN_d
z^c|qoV&bPsN+e4Nh6DMxama$&g2%|di(_jB@j-1t{(w1{0|ZOA1p=)xw?2xKOi0||
zS&42FgY