zhubaomin
2025-04-07 eb50888b14af04d5f4677520b67754764f03a014
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
Êþº¾@ú  ,org/springframework/validation/BindingResult    hasErrors()Z      
 getFieldError-()Lorg/springframework/validation/FieldError;
 java/util/ObjectsrequireNonNull&(Ljava/lang/Object;)Ljava/lang/Object;)org/springframework/validation/FieldError
 getDefaultMessage()Ljava/lang/String;
 'com/dy/common/webUtil/BaseResponseUtils    buildFail8(Ljava/lang/String;)Lcom/dy/common/webUtil/BaseResponse;
  !.com/dy/pipIrrWechat/wechatpay/dto/Code2SessiongetPhoneNumber
# $
getJs_code&java/util/HashMap
%( )*<init>()V,appid    ./0 ,1%com/dy/pipIrrWechat/wechatpay/PayInfoLjava/lang/String; 345 67 java/util/Mapput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;9secret    .; 91=js_code?
grant_type    .A B1    grantType    DEF GH)com/dy/pipIrrWechat/wechatpay/PaymentCtrlrestTemplateUtil+Lcom/dy/pipIrrWechat/util/RestTemplateUtil;    .J K1loginUrl
MNO PQ)com/dy/pipIrrWechat/util/RestTemplateUtilgetT(Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;)Lcom/alibaba/fastjson2/JSONObject;Serrcode
UVW XY com/alibaba/fastjson2/JSONObjectgetLong$(Ljava/lang/String;)Ljava/lang/Long;
[\] ^_java/lang/Long    longValue()Jÿÿÿÿÿÿÿÿc登录凭证校验失败eopenid
Ug hi    getString&(Ljava/lang/String;)Ljava/lang/String;k session_key    Dm no    paymentSv)Lcom/dy/pipIrrWechat/wechatpay/PaymentSv;
qrs tY'com/dy/pipIrrWechat/wechatpay/PaymentSvgetClientIdByPhonevx#com/dy/pipIrrGlobal/pojoSe/SeOpenId
w(
w{ |} setClientId(Ljava/lang/Long;)V
w €    setOpenId(Ljava/lang/String;)V
wƒ „ setSessionKey†java/util/Date
…(
w‰ Š‹ setCreateTime(Ljava/util/Date;)V
q Ž    addOpenId7(Lcom/dy/pipIrrGlobal/pojoSe/SeOpenId;)Ljava/lang/Long;
‘’“ ”•java/lang/StringvalueOf&(Ljava/lang/Object;)Ljava/lang/String;
— ˜™ buildSuccess8(Ljava/lang/Object;)Lcom/dy/common/webUtil/BaseResponse;    ›œ žŸ+com/dy/pipIrrWechat/result/WechatResultCodePHONE_NUMBER_IS_ERROR-Lcom/dy/pipIrrWechat/result/WechatResultCode;
›¡ ¢
getMessage
¤ ¥
buildError§GET©/v3/certificates    D« ¬­    payHelper$Lcom/dy/pipIrrWechat/util/PayHelper;
¯°± ²"com/dy/pipIrrWechat/util/PayHelpergenerateRandomString
´µ¶ ·_java/lang/SystemcurrentTimeMillisè
[» ”¼(J)Ljava/lang/Long;    D¾ ¿ÀresourceLoader,Lorg/springframework/core/io/ResourceLoader;
ÂÃÄ ÅÆ#com/dy/pipIrrGlobal/cert/WxCertUtilgetKey_pemBytes0(Lorg/springframework/core/io/ResourceLoader;)[B    .È É1schema
¯Ë ÌÍgetTokenn(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;[B)Ljava/lang/String;Ï ÐÑmakeConcatWithConstants8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;Ó AuthorizationÕAccept×application/json    .Ù Ú1 certificates
MÜ ÝQ
getHeadersßheaders
Uá âã getJSONObject6(Ljava/lang/String;)Lcom/alibaba/fastjson2/JSONObject;åWechatpay-Nonce
Uç èé getJSONArray5(Ljava/lang/String;)Lcom/alibaba/fastjson2/JSONArray;
ëìí hîcom/alibaba/fastjson2/JSONArray(I)Ljava/lang/String;ðWechatpay-SerialòWechatpay-SignatureôWechatpay-Signature-TypeöWechatpay-Timestampøbodyú(com/alibaba/fastjson2/JSONWriter$Feature
Uü ýþ toJSONString?([Lcom/alibaba/fastjson2/JSONWriter$Feature;)Ljava/lang/String;
¯  responseSignJ(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
¯ responseSignVerifyM(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[B)Ljava/lang/Boolean;
 ˜    &()Lcom/dy/common/webUtil/BaseResponse;
   *com/dy/pipIrrWechat/wechatpay/dto/DtoOrder getSessionId()Ljava/lang/Long;
  getVcId
q     selectOne7(Ljava/lang/Long;)Lcom/dy/pipIrrGlobal/pojoSe/SeOpenId;    › ŸSESSION_ID_ERROR
  buildErrorMsg
w     getOpenId    D! "# virtualCardSv/Lcom/dy/pipIrrWechat/virtualCard/VirtualCardSv;
%&' ()-com/dy/pipIrrWechat/virtualCard/VirtualCardSvselectVirtuCardById<(Ljava/lang/Long;)Lcom/dy/pipIrrGlobal/pojoSe/SeVirtualCard;    ›+ ,ŸVIRTUAL_CARD_NOT_EXIST
./0 1(com/dy/pipIrrGlobal/pojoSe/SeVirtualCard getClientId
q3 45 getOneClient5(Ljava/lang/Long;)Lcom/dy/pipIrrGlobal/voSe/VoClient;    ›7 8ŸVIRTUAL_CARD_CLIENT_NOT_EXIST
:;< =!com/dy/pipIrrGlobal/voSe/VoClient getClientNum?java/text/SimpleDateFormatAyyyyMMddHHmmssSSS
>C )
>E FGformat$(Ljava/util/Date;)Ljava/lang/String;ÏJ2com/dy/pipIrrWechat/virtualCard/dto/DtoVirtualCard
I(
IM N} setVirtualId
I{
IQ RsetOrderNumber
 T UVgetRechargeAmount()Ljava/lang/Double;
IX YZsetRechargeAmount(Ljava/lang/Double;)V
%\ ]^insertVCRechargeF(Lcom/dy/pipIrrWechat/virtualCard/dto/DtoVirtualCard;)Ljava/lang/Long;
`ab ”cjava/lang/Integer(I)Ljava/lang/Integer;
[e fgequals(Ljava/lang/Object;)Z    ›i jŸ
NO_ACCOUNT    ›l mŸ RECHARGE_FAILo&com/dy/pipIrrGlobal/pojoSe/SeVcOperate
n(
nr s}setVcId
n{    vwx yz5com/dy/pipIrrWechat/virtualCard/enums/LastOperateENUMRECHARGE7Lcom/dy/pipIrrWechat/virtualCard/enums/LastOperateENUM;
v| }~getCode()Ljava/lang/Byte;
n€ ‚setOperateType(Ljava/lang/Byte;)V
n„ …} setRechargeId
n‡ ˆ} setOperator
nŠ ‹‹setOperateTime
% ŽinsertVcOperate:(Lcom/dy/pipIrrGlobal/pojoSe/SeVcOperate;)Ljava/lang/Long;    ›‘ ’ŸRECHARGE_ADD_FAIL
U(
U4–mchid    .˜ –1š description    .œ š1ž out_trade_no attach
¢£¤ P/com/dy/common/multiDataSource/DataSourceContext¦
notify_url    .¨ ©1    notifyUrl«total
­®¯ °±java/lang/Double doubleValue()D@Yµcurrency·CNY¹amount»payer½POST¿/v3/pay/transactions/jsapiÁ Content-Type    .à Ä1orderUrl
MÆ ÇÈpostW(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lcom/alibaba/fastjson2/JSONObject;
‘Ê ”Ë(J)Ljava/lang/String;Í Ði
¯Ï ÐÑbuildMessage_signAgain\(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;Óutf-8
‘Õ Ö×getBytes(Ljava/lang/String;)[B
¯Ù ÚÛsign([B[B)Ljava/lang/String;Ý    timeStampßnonceStrápackageãsignType    .å ã1çpaySign
éêë Pì$org/springframework/http/HttpHeaders$(Ljava/lang/Object;)Ljava/util/List; îïð Pñjava/util/List(I)Ljava/lang/Object; óôõ ö÷'jakarta/servlet/http/HttpServletRequest    getReader()Ljava/io/BufferedReader;ùjava/lang/StringBuilder
ø(
üýþ ÿjava/io/BufferedReaderreadLine
ø append-(Ljava/lang/String;)Ljava/lang/StringBuilder;
ø toString-com/dy/pipIrrWechat/wechatpay/dto/OrderNotify 
   com/alibaba/fastjson2/JSON parseObject7(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
[     parseLong(Ljava/lang/String;)J<  (jakarta/servlet/http/HttpServletResponse    setStatus(I)Vcode FAIL"message$失败
&'( )java/lang/Boolean booleanValue    ¯+ ,-CERTIFICATE_MAPLjava/util/Map; 3/ 01keySet()Ljava/util/Set; 345 67 java/util/Setiterator()Ljava/util/Iterator; 9:; <java/util/IteratorhasNext 9> ?@next()Ljava/lang/Object;
‘e
C D getEvent_typeFTRANSACTION.SUCCESS
H IJ getResource4()Lcom/dy/pipIrrWechat/wechatpay/dto/NotifyResource;
LMN O0com/dy/pipIrrWechat/wechatpay/dto/NotifyResourcegetAssociated_data
LQ RgetNonce
LT U getCiphertext    .W X1key
Z[\ ]^ com/dy/pipIrrWechat/util/AesUtildecryptToString,([B[B[BLjava/lang/String;)Ljava/lang/String;
U`  ã
¢b csetetransaction_idg trade_statei success_time
Uk lmgetDate$(Ljava/lang/String;)Ljava/util/Date;
%o pqgetVCRechargeByorderNumber=(Ljava/lang/String;)Lcom/dy/pipIrrGlobal/pojoSe/SeVcRecharge;
stu v~'com/dy/pipIrrGlobal/pojoSe/SeVcRecharge getOrderState
xyz {|java/lang/Byte    byteValue()B
%~ €updateVCRechargeH(Ljava/lang/String;Ljava/util/Date;)Lcom/dy/common/webUtil/BaseResponse;
‚ƒ„ }"com/dy/common/webUtil/BaseResponse†0001ˆREFUND.SUCCESSŠ out_refund_noŒ refund_statusŽSUCCESS)com/dy/pipIrrGlobal/pojoSe/SeVcRefundItem
(
“ ”‹ setRefundTime    –—˜ ™š9com/dy/pipIrrWechat/virtualCard/enums/RefundItemStateENUMREFUNDED;Lcom/dy/pipIrrWechat/virtualCard/enums/RefundItemStateENUM;
–|
 ž‚setRefundStatus
%  ¡¢updateRefundItem@(Lcom/dy/pipIrrGlobal/pojoSe/SeVcRefundItem;)Ljava/lang/Integer;
`¤ ¥¦intValue()I
%¨ ©ªgetNoRefundedCount'(Ljava/lang/String;)Ljava/lang/Integer;
%¬ ­YgetRefundIdByRefundNumber
%¯ °±selectRefundByRefundId9(Ljava/lang/Long;)Lcom/dy/pipIrrGlobal/pojoSe/SeVcRefund;    ³´µ ™¶4com/dy/pipIrrWechat/wechatpay/enums/RefundStatusENUM6Lcom/dy/pipIrrWechat/wechatpay/enums/RefundStatusENUM;
³|
¹º%com/dy/pipIrrGlobal/pojoSe/SeVcRefund
%¼ ½¾ updateRefund<(Lcom/dy/pipIrrGlobal/pojoSe/SeVcRefund;)Ljava/lang/Integer;
¹
¹Á ÂVgetAfterRefund
.Ä ÅZsetMoney    vÇ ÈzREFUND
.Ê Ë‚setLastOperate
.Í ΋setLastOperateTime
%Ð ÑÒupdateVirtualCard?(Lcom/dy/pipIrrGlobal/pojoSe/SeVirtualCard;)Ljava/lang/Integer;Ô成功
Öר Ù+com/dy/pipIrrWechat/wechatpay/dto/WechatpaygetAppId
qÛ ÜÝgetWechatpayByAppId<(Ljava/lang/String;)Lcom/dy/pipIrrGlobal/pojoSe/SeWechatpay;ß!该微信支付信息已经存在á&com/dy/pipIrrGlobal/pojoSe/SeWechatpay
à(
äåæ çicom/dy/common/util/AESencrypt
àé êsetAppId
Öì í getAppSecret
àï ð setAppSecret
Öò ógetMchId
àõ ösetMchId
Öø ù    getMchKey
àû ü    setMchKey
Öþ ÿ getSerialNo
à  setSerialNo
Ö  getNotifyUrl
à  setNotifyUrl
Ö
 
getRemarks
à 
setRemarks
q  addWechatpay:(Lcom/dy/pipIrrGlobal/pojoSe/SeWechatpay;)Ljava/lang/Long;
 java/util/Optional
ofNullable((Ljava/lang/Object;)Ljava/util/Optional;
 orElse添加微信支付信息失败
& ” (Z)Ljava/lang/Boolean;
"(#java/lang/Object    D+
&'( )*org/slf4j/LoggerFactory    getLogger%(Ljava/lang/Class;)Lorg/slf4j/Logger;    D, -.logLorg/slf4j/Logger;„(Lcom/dy/pipIrrWechat/wechatpay/dto/Code2Session;Lorg/springframework/validation/BindingResult;)Lcom/dy/common/webUtil/BaseResponse;CodeLineNumberTableLocalVariableTableseOpenId%Lcom/dy/pipIrrGlobal/pojoSe/SeOpenId;recLjava/lang/Long;this+Lcom/dy/pipIrrWechat/wechatpay/PaymentCtrl; code2Session0Lcom/dy/pipIrrWechat/wechatpay/dto/Code2Session; bindingResult.Lorg/springframework/validation/BindingResult; phoneNumberjsCode queryParams headerParamsjob"Lcom/alibaba/fastjson2/JSONObject;
sessionKeyclientId    SessionIdLocalVariableTypeTable5Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;5Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>; StackMapTable
ExceptionsLjava/lang/ExceptionMethodParameters    Signature™(Lcom/dy/pipIrrWechat/wechatpay/dto/Code2Session;Lorg/springframework/validation/BindingResult;)Lcom/dy/common/webUtil/BaseResponse<Ljava/lang/Boolean;>;RuntimeVisibleAnnotations)Lio/swagger/v3/oas/annotations/Operation;summary登录凭证校验6Lio/swagger/v3/oas/annotations/responses/ApiResponses;value5Lio/swagger/v3/oas/annotations/responses/ApiResponse; responseCodeG操作结果:true:成功,false:失败(BaseResponse.content)content-Lio/swagger/v3/oas/annotations/media/Content;    mediaType,Lio/swagger/v3/oas/annotations/media/Schema;implementationLjava/lang/Boolean;5Lorg/springframework/web/bind/annotation/PostMapping;path:Lorg/springframework/transaction/annotation/Transactional; rollbackForLjava/lang/Exception;RuntimeVisibleTypeAnnotationsLjakarta/validation/Valid;"RuntimeVisibleParameterAnnotations5Lorg/springframework/web/bind/annotation/RequestBody;methodhttpUrl    timestamp
certFileBs[Bheader
job_result job_headerswechatpayNoncewechatpaySerialwechatpaySignaturewechatpaySignatureTypewechatpayTimestampjob_body signatureStrvalid;()Lcom/dy/common/webUtil/BaseResponse<Ljava/lang/Boolean;>;下载平台证书4Lorg/springframework/web/bind/annotation/GetMapping;
placeOrder€(Lcom/dy/pipIrrWechat/wechatpay/dto/DtoOrder;Lorg/springframework/validation/BindingResult;)Lcom/dy/common/webUtil/BaseResponse;order,Lcom/dy/pipIrrWechat/wechatpay/dto/DtoOrder;    sessionId    virtualIdprepayIdpo seVirtualCard*Lcom/dy/pipIrrGlobal/pojoSe/SeVirtualCard;voClient#Lcom/dy/pipIrrGlobal/voSe/VoClient;    clientNum
dateFormatLjava/text/SimpleDateFormat; orderNumber virtualCard4Lcom/dy/pipIrrWechat/virtualCard/dto/DtoVirtualCard;
rechargeId seVcOperate(Lcom/dy/pipIrrGlobal/pojoSe/SeVcOperate; vcOperateId
job_amount    job_payerl•&java/security/NoSuchAlgorithmException—*java/security/spec/InvalidKeySpecException™java/io/IOException› java/security/SignatureException!java/security/InvalidKeyException•(Lcom/dy/pipIrrWechat/wechatpay/dto/DtoOrder;Lorg/springframework/validation/BindingResult;)Lcom/dy/common/webUtil/BaseResponse<Ljava/lang/Boolean;>;    signAgainpkg\(Ljava/lang/String;)Lcom/dy/common/webUtil/BaseResponse<Lcom/alibaba/fastjson2/JSONObject;>; 再次签名
/signAgain6Lorg/springframework/web/bind/annotation/RequestParam; orderNotify(Lorg/springframework/http/HttpHeaders;Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)Lcom/alibaba/fastjson2/JSONObject;result_$Lcom/dy/common/webUtil/BaseResponse;notifyResource2Lcom/dy/pipIrrWechat/wechatpay/dto/NotifyResource;associatedDatanonce
ciphertextresource job_resourceLjava/util/Date; seVcRecharge)Lcom/dy/pipIrrGlobal/pojoSe/SeVcRecharge;refundId
seVcRefund'Lcom/dy/pipIrrGlobal/pojoSe/SeVcRefund;vcId afterRefundLjava/lang/Double;seVcRefundItem+Lcom/dy/pipIrrGlobal/pojoSe/SeVcRefundItem;Ljava/lang/Integer;noRefundedCount&Lorg/springframework/http/HttpHeaders;request)Ljakarta/servlet/http/HttpServletRequest;response*Ljakarta/servlet/http/HttpServletResponse;resultreaderLjava/io/BufferedReader; stringBuilderLjava/lang/StringBuilder;linebodyStr/Lcom/dy/pipIrrWechat/wechatpay/dto/OrderNotify;timeDiff SerialIsValidZ    eventTypeÏ&java/security/GeneralSecurityException 支付通知consumes7Lorg/springframework/web/bind/annotation/RequestHeader;(Lcom/dy/pipIrrWechat/wechatpay/dto/Wechatpay;Lorg/springframework/validation/BindingResult;)Lcom/dy/common/webUtil/BaseResponse;-Lcom/dy/pipIrrWechat/wechatpay/dto/Wechatpay; seWechatpay(Lcom/dy/pipIrrGlobal/pojoSe/SeWechatpay;–(Lcom/dy/pipIrrWechat/wechatpay/dto/Wechatpay;Lorg/springframework/validation/BindingResult;)Lcom/dy/common/webUtil/BaseResponse<Ljava/lang/Boolean;>; add_wechatpayÖ(Lorg/springframework/core/io/ResourceLoader;Lcom/dy/pipIrrWechat/wechatpay/PaymentSv;Lcom/dy/pipIrrWechat/util/RestTemplateUtil;Lcom/dy/pipIrrWechat/util/PayHelper;Lcom/dy/pipIrrWechat/virtualCard/VirtualCardSv;)V<clinit>
SourceFilePaymentCtrl.java(Lio/swagger/v3/oas/annotations/tags/Tag;name微信支付管理微信支付各种操作8Lorg/springframework/web/bind/annotation/RestController;8Lorg/springframework/web/bind/annotation/RequestMapping;paymentBootstrapMethodsæ
çèé Ðê$java/lang/invoke/StringConcatFactory˜(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;ì îð prepay_id= InnerClassesó com/alibaba/fastjson2/JSONWriterFeatureö%java/lang/invoke/MethodHandles$Lookupøjava/lang/invoke/MethodHandlesLookup!D"-.¿ÀnoGH¬­"#,-/0§,Æ,¹™,¹¸ À¶¸°+¶N+¶":»%Y·':+²-¹2W8²:¹2W<¹2W>²@¹2W»%Y·':*´C²I¶L:R¶TÆR¶T¶Z`”›    b¸°d¶f:j¶f:    *´l-¶p:
u: 
ÆJ»wY·y:  
¶z ¶~     ¶‚ »…Y·‡¶ˆ*´l ¶Œ:  Æ
 ¸:  ¸–°²š¶ ¸£°1re f i%j+l4mAnNoZpgqpr€t›u¡xªy³{½|Á}Æπց݂äƒð„û…†ˆ ‹2ŽÏ>34 û56 789:;<%ò=1+ì>14ã?-p§@-€—ABªme1³dC1    ½ZD6
ÁVE1 F4ã?Gp§@HIV ÿ€D‘‘33UÿeD‘‘33U‘‘[‘w[ùJKM    9;NOP[QRsSšsSTU[@VWs†šsXY[@Z[s×É@\]c^_`[sab[ccd    ef geÚ    0ë¦L¨M*´ª¶®N¸³¸m¸º:*´½¸Á:²Ç*´ª+,u-¶ÊºÎ:»%Y·':Ò¹2WÔÖ¹2W*´C²Ø¶Û:Þ¶à:        ä¶æ¶ê:
    ï¶æ¶ê:     ñ¶æ¶ê:     ó¶æ¶ê:     õ¶æ¶ê:÷¶à:*´ª
½ù¶û¶ÿ:*´ª  ¶:¸°1R ¡¢£¥#¦=¨F©Rª^«m¬v­ƒ®¯°ª±·³À¶Ö¸çº2¶ë78èh1åi1Ýß1Ñj6#Èkl=®m1F¥ß-m~nBvuoB    ƒhp1
[q1 Nr1 ªAs1 ·4t1À+uBÖv1çw^F F¥ßHJKNxP[QRsyšsyTU[@VWs†šsXY[@Z[s×É@\]c^z`[sÚab[cc{|0ñ®,Æ,¹™,¹¸ À¶¸°+¶
N+¶:u:*´l-¶:Ç ²¶ ¸°¶:*´ ¶$:Ç ²*¶ ¸°¶-:    *´l    ¶2:
 
Ç ²6¶ ¸°
¶9: »>Y@·B:   »…Y·‡¶DºH: »IY·K:¶L    ¶O ¶P+¶S¶W*´ ¶[:¸_¶d™ ²h¶ ¸°¸_¶d™ ²k¶ ¸°»nY·p:¶q    ¶t²u¶{¶¶ƒ    ¶†»…Y·‡¶‰*´ ¶Œ:Ç ²¶ ¸°»UY·“:+²-¶”W•²—¶”W™²›¶”W ¶”WŸ¸¡¶”W¥²§¶”W»UY·“:ª+¶S¶¬²kޏ_¶”W´¶¶”W¸¶”W»UY·“:d¶”Wº¶”W*´ª¶®:¸³¸m¸º:¼:¾:½ù¶û:*´½¸Á:²Ç*´ª¶ÊºÎ:»%Y·':Ò¹2WÔÖ¹2WÀÖ¹2W*´C²Â¶Å:Ç ²¶ ¸°¸–°1DÆ Ç Ë%Ì+Ï/Ñ9Ò>ÓHÕO×ZØ_ÙiÛpÝ{ހߊá‘äå²è»éÂêÉëÐíÙðäñðòúôõùú û'ü2ý9þ@ÿLW\foz†’    
© µ¾Öâíö  %*5 >![#d$p%|&‰)™*ž+¨.2.®78®}~®;<%‰6+ƒ€6/19u‚4O_e1ZTƒ„p>D6    {3…†
‘‡1 ˆ‰ ²üŠ1 »ó‹Œäʍ6•ŽWW6o?uB¾ð‘Bö¸’Bšß1 Žj6%‰h1*„i15yø1>pkl[Sm1dJß-™nBF dJßHIÓ ÿ'D [[‘wý ‘.ý [:ÿoD [[‘w‘.[:‘>‘I[ýUn[ÿAD [[‘w‘.[:‘>‘I[n[UUU‘[‘‘‘“‘3UJ”–˜šœKM    };NžP_`[s{ab[ccd    ef geŸ0I
‘²-M¸³¸m¸ÉN*´ª¶®:+ºÌ:*´ª,-¶Î:*´½¸Á:*´ªÒ¶Ô¶Ø:»UY·“:        Ü-¶”W    Þ¶”W    à¶”W    â²ä¶”W    æ¶”W    ¸–°1:EFGH I/J8KKMTN^OiPtQ€R‹T2f
‘78‘1,1‚Ý1yß1 q 1/b"18YklKFç1T=nB    JKMN¡P[QRs¢šs¢TU[@VWs†šsXY[@Z[s×É@\]c^z`[s£ab[ccf ¤Us¥¦0õ'*»UY·“:+ä¶è¹í¸:+ï¶è¹í¸:+ñ¶è¹í¸:+õ¶è¹í¸:,¹ò:    »øY·ú:
    ¶ûY: Æ
 ¶W§ÿí
¶:  ¸    À: ¸³¸m¸em¸º:¶Z”ž'-ô¹¶”W!#¶”W°*´ª ¶ÿ:*´½¸Á:*´ª¶:¶%š'-ô¹¶”W!#¶”W°6*´ª´*¹.¹2:¹8™¹=À‘:¶A™6§ÿÝš'-ô¹¶”W!#¶”W° ¶B:ÆæE¶A™Û ¶G:¶K:¶P:¶S:²VÒ¶ÔÒ¶ÔÒ¶Ô¸Y:¸_:Ÿ¶f:¸a¶f:d¶f:f¶f:h¶j:*´ ¶n:ÆN¶r¶w B*´ ¶}:  ¶…¶Aš'-ô¹¶”W!#¶”W°§’ƍ‡¶A™‚ ¶G:¶K:¶P:¶S:²VÒ¶ÔÒ¶ÔÒ¶Ô¸Y:¸_:¶f:d¶f:‰¶f:‹¶f:h¶j:¶Aš'-ô¹¶”W!#¶”W°»Y·‘:¶’²•¶›¶œ*´ ¶Ÿ:  Ç/ ¶£'-ô¹¶”W!#¶”W°*´ ¶§:!!Æw!¶£šo*´ ¶«:"*´ "¶®:##²²¶·¶¸*´ #¶»W#¶¿:$#¶À:%*´ $¶$:&&%¶Ã&²ƶ{¶É&»…Y·‡¶Ì*´ &¶ÏW-ȹ¶”W!Ó¶”W°1’dl    uv+w<xM{U|^~it{„ˆ‡žˆª‰³Š¿‹ËŒÎÝ‘æ“÷”ÿ•–— ˜#œ&OžYŸ\¡_¢d£m¤y¥…¦ˆª¬Ÿ³¦´­µ´¶»¸Û¹â¼ì½ñ¾û¿ÀÁÄ$Å5ÆBÇPÈYÉeÊqËt·Վ֕לأÚÃÛÊÞÔßÞàèáòâüãäåæ(ç+ë4ì;íFîQï^ðgñsòó‚ýþ𥰻ÅÌÓÞ    å
ð ü '25O X1B2§¨ ¦Î©ª­Ç«1´À¬1»¹­1ۙ®1â’¯B술1ûyž1oe1eg1[i°$P±²¥a³6"°V´µ#Ì:¶6$Ó3·¸%Þ(ƒ„&Žx©ª•q«1œj¬1£c­1ÃC®1Ê<¯BÔ2ž1Þ(e1èŠ1òŒ1ü
i°4Ò¹ºQµ5» y¼»!*78*ß½*¾¿*ÀÁ    !ÂBp1+ÿq1<îr1MÝt1UÕÃÄ    ^ÌÅÆ
fÄÇ1 {¯È1 ˆ¢¥É žŒÊ6ÝMv1æDkl÷3w^&Ë̏›Í1I ÿ^ DéóU‘‘‘‘üøü‘þY‘[þT‘“&ý9"ú(üë‘ÿ³DéóU‘‘‘‘üø‘‘[‘“&‘L‘‘‘‘U‘‘‘‘…ýV`ÿƒDéóU‘‘‘‘üø‘‘[‘“&‘J˜ÎKM ß¾ÀPcQRsКsÐTU[@VWs†šsXY[@Z[s×É@\]c^_`[s¥Ñ[s×ab[ccf ÒÓ0X·,Æ,¹™,¹¸ À¶¸°*´l+¶Õ¶ÚÆ
Þ¸°»àY·âN-+¶Õ¸ã¶è-+¶ë¸ã¶î-+¶ñ¸ã¶ô-+¶÷¸ã¶ú-+¶ý¸ã¶-+¶¸ã¶-+¶    ¶ *´l-¶¸    ¸º¶À[:¶Z    ”š
¸°¸¸–°1B   #.$5'=(H)S*^+i,t-.‡0ž1¨2¯424·78·‚Ô·;<=zÕÖž56I  ýyà[JKM    ‚;N×P_`[sØÑ[s×d    ef ge)Ù0+*·!*»%Y·'µ$*+µ½*,µl*-µC*µª*µ ±1>P>2>+78+¿À+no+GH+¬­+"#M¿nG¬"Ú*0!    D¸%³+±1:ÛÜP ÝÞsßšsàáâ`[sãäåëåíåïñùòô@õ÷ù