4` GR GS TUV W X YZ [\ Y]^ R _` a bc d efg hi j k l mn opqr stu vw x y z{| $} ~   , Z ,    `    ,  ,   Y e      L      Z  Z    d  d       ] qR , ,  [ o ,                                        s        ! m" ~# $%&\ '()*+  m, - ./ 01 s234 m56789 :;<= > ?@ABC DE DFG H IJ K mL DMNOP bQR mSTU .VW XY Z [ \ ] ^ _ `ab s cd ef  g hi ,j:;<=> ,k ,l m nopq r [s t u v w x y z{ | }~loggerLorg/slf4j/Logger;authenticationManagerCLorg/springframework/security/authentication/AuthenticationManager;RuntimeVisibleAnnotationsLjavax/annotation/Resource;jwtTokenHandler&Lcom/artfess/base/jwt/JwtTokenHandler;userDetailsServiceBLorg/springframework/security/core/userdetails/UserDetailsService; ssoConfig!Lcom/artfess/base/conf/SsoConfig;demoModeZ4Lorg/springframework/beans/factory/annotation/Value;value${system.mode.demo:false}uCFeignService'Lcom/artfess/base/feign/UCFeignService;applicationFeignService0Lcom/artfess/base/feign/ApplicationFeignService;loginLogService*Lcom/artfess/base/service/LoginLogService;loginUserService+Lcom/artfess/base/service/LoginUserService; saasConfig"Lcom/artfess/base/conf/SaaSConfig; jwtConfig!Lcom/artfess/base/conf/JwtConfig;KEYLjava/lang/String; ConstantValue()VCodeLineNumberTableLocalVariableTablethis:Lcom/artfess/base/controller/AuthenticationRestController;deleteUserDetailsCache(Ljava/lang/String;)V userAccountbeandelUserDetailsCache.Lcom/artfess/base/cache/annotation/CacheEvict;bpm:uc:userAccountkey #userAccountdelUsernamesCachebpm:uc:userNameputLoginErrorNumInCacheL(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;)Ljava/lang/Integer;tenantIdaccounterrorNumLjava/lang/Integer;,Lcom/artfess/base/cache/annotation/CachePut;bpm:uc:userLoginError#account+'_'+#tenantId firstCache.Lcom/artfess/base/cache/annotation/FirstCache; expireTime,timeUnitLjava/util/concurrent/TimeUnit;SECONDSgetUserLoginErrorNumCache9(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Integer;-Lcom/artfess/base/cache/annotation/Cacheable;delUserLoginErrorNumCache'(Ljava/lang/String;Ljava/lang/String;)VcreateAuthenticationTokenZ(Lcom/artfess/base/jwt/JwtAuthenticationRequest;)Lorg/springframework/http/ResponseEntity;userInfoLjava/util/Map;baseMd5webBytes[BwebTokeneLjava/lang/Exception;tokensyJ lockedTimeLjava/time/LocalDateTime;intervalMinutesLjava/lang/Long;user Lcom/artfess/uc/api/model/IUser;autoUnlockTimece1Lcom/artfess/base/exception/CertificateException; loginTimesloginMsg lockStatusI lockTimesenableipallowdedipListLjava/util/List; machineIdListmachineService7Lcom/artfess/base/service/SecurityMachinePersonService;authenticationRequest/Lcom/artfess/base/jwt/JwtAuthenticationRequest;isBase64 reqAccount reqPassworderrorMsg userDetails;Lorg/springframework/security/core/userdetails/UserDetails;service-Lcom/artfess/base/service/PwdStrategyService;json)Lcom/fasterxml/jackson/databind/JsonNode;request'Ljavax/servlet/http/HttpServletRequest;session Ljavax/servlet/http/HttpSession;IPisMobileuserNameuserId loginStatus userAttrsLocalVariableTypeTable5Ljava/util/Map;$Ljava/util/List; StackMapTableVgtu|1 Exceptions Signature](Lcom/artfess/base/jwt/JwtAuthenticationRequest;)Lorg/springframework/http/ResponseEntity<*>;8Lorg/springframework/web/bind/annotation/RequestMapping;/authmethod7Lorg/springframework/web/bind/annotation/RequestMethod;POSTproducesapplication/json; charset=utf-8%Lio/swagger/annotations/ApiOperation; 登录系统 httpMethodnotes"RuntimeVisibleParameterAnnotations5Lorg/springframework/web/bind/annotation/RequestBody;isAdmin(Ljava/lang/String;)Z_accounttmpsplit[Ljava/lang/String;getUserNameWithCas8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;jsonNodeticket casUserDetailusername errorCodegetUserNameWithOauth oauthCheckUrl checkResult checkJNodeheader tokenResultcode oauthTokenUrlstufixssoAuthy(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/lang/String;)Lorg/springframework/http/ResponseEntity;Ljava/util/Optional;ssoModemode(Ljava/util/Optional;(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/lang/String;)Lorg/springframework/http/ResponseEntity<*>; /sso/authGET登录系统-单点登录6Lorg/springframework/web/bind/annotation/RequestParam; ssoWeixin?(Ljava/util/Optional;)Lorg/springframework/http/ResponseEntity;wxWorkId simpleUser resultJsonresult0Lcom/fasterxml/jackson/databind/node/ObjectNode;errcodeV(Ljava/util/Optional;)Lorg/springframework/http/ResponseEntity<*>; /sso/weixin.企业微信应用进入手机端-单点登录 weixinPublicnodeopenidr%Lcom/artfess/base/model/CommonResult;PLcom/artfess/base/model/CommonResult;a/sso/weixinPublic微信公众号进入手机端dingTalk dingtalkId /sso/dingTalk钉钉进入手机端 dingTalkYkzdingtalkAccountdingtalkEmployeeCode/sso/ykz愉快政单点登录dingTalkYkzBand(Lcom/artfess/base/jwt/JwtAuthenticationRequest;Ljava/util/Optional;Ljava/util/Optional;)Lorg/springframework/http/ResponseEntity;bandUserAccount userUniteykzEmployeeCode ykzAccount(Lcom/artfess/base/jwt/JwtAuthenticationRequest;Ljava/util/Optional;Ljava/util/Optional;)Lorg/springframework/http/ResponseEntity<*>; /sso/ykzBand愉快政绑定并登录dingTalkYkzEmployeeCodeemployeeCodeEncrypt employeeCode/sso/ykzEmployeeCode愉快政EmployeeCode登录isUseCasz(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)Lorg/springframework/http/ResponseEntity;response(Ljavax/servlet/http/HttpServletResponse;map(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)Lorg/springframework/http/ResponseEntity;>; /sso/info单点登录配置 refreshAndGetAuthenticationTokenR(Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/http/ResponseEntity; authTokenrefreshedTokenU(Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/http/ResponseEntity<*>;/refresh 刷新tokensignoutN(Ljavax/servlet/http/HttpServletRequest;)Lcom/artfess/base/model/CommonResult;b(Ljavax/servlet/http/HttpServletRequest;)Lcom/artfess/base/model/CommonResult;/signout 退出登录F使token的状态失效,必须设置jwt.single和jwt.stricky均为true authenticatepassword checkUser5(Lcom/artfess/uc/api/model/IUser;Ljava/lang/String;)Z currenTimesize pwdCreateTimeinitPwdpwdRule pwdLengthduration initUpdatehandleSingleLogin:(ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V userAgent handleLogout((ZLjava/lang/String;Ljava/lang/String;)V SourceFile!AuthenticationRestController.java8Lorg/springframework/web/bind/annotation/RestController;Lio/swagger/annotations/Api;tags 认证接口&Lcom/artfess/base/annotation/ApiGroup;group group_bpm group_form group_systemgroup_uc GH  8com/artfess/base/controller/AuthenticationRestController RO WO   java/lang/StringBuilder  Artfess@024    java/lang/String  G  89  java/lang/RuntimeException0用户不存在或授权到期,请重新登录 GOtoken非法,请重新获取java/lang/Exception G NO /0 +com/artfess/base/service/PwdStrategyService    com/artfess/uc/api/model/IUser    +8      >?    lm-1"账号在锁定状态中,请于【 0分钟】后登录,或联系管理员解锁!   3m '(Login failed account[%s].java/lang/Object  账号或密码错误 /com/artfess/base/exception/CertificateException ;org/springframework/security/authentication/LockedException账号被禁用或离职       ijjava/lang/Integer G YZ ,还剩: 次!*,账号已锁定,请联系管理员!账号或密码错误次数: 次5com/artfess/base/service/SecurityMachinePersonService  8     用户【:】已绑定涉密机器,不能在当前机器上登录!  -. java/util/HashMap   loginUser%s[%s]  56 skin   ?@ O.com/artfess/base/jwt/JwtAuthenticationResponse BC  G *com/artfess/base/constants/SystemConstantsadmin, *%s/p3/serviceValidate?ticket=%s&service=%s 12    authenticationSuccess    authenticationFailure  H获取cas认证信息失败:  O获取cas认证信息失败:  &code=%s&redirect_uri=%s       获取oauth认证信息失败 G !当前服务未开启单点登录    com/artfess/base/conf/SsoConfigcas oauth jwt 0com/artfess/base/exception/ServerRejectException单点登录模式匹配异常!通过单点认证登录成功。 O G :; weChatWork! " #$!企业微信登录返回结果: O.com/fasterxml/jackson/databind/node/ObjectNode0UserId % & ' 查无与您企微账号[userid:]绑定的eip账号 G(*企业微信登录失败 ,eip用户账号:企业微信登录失败 : errmsg weChatOffAcc )* +,- . /'com/fasterxml/jackson/databind/JsonNode微信登录失败 : dingtalkuserid 0 查无与您钉钉账号[userid:钉钉登录失败!eip账号: 不存在钉钉登录失败 : 1 accountId查无与您愉快政账号【】绑定的系统账号! G2 G3登录失败!账号:愉快政验证失败 : message _loginTime_ 45愉快政账号【6】已绑定平台其他用户,请联系管理员! 678 9: ; <= >OEmployeeCode不能为空!AEKXtLARGEZENITHAES/ECB/PKCS7Padding ?$解码错误! @3查无与您愉快政账号绑定的系统账号!/登录验证失败 【employeeCode】为空! AssoUrl B ssoLogoutUrl C D D EF G H CD#com/artfess/base/model/CommonResult 退出成功I J )*Oorg/springframework/security/authentication/UsernamePasswordAuthenticationToken GKL 3M  N O PQR Smobilepc T & @AU V WX WY <= Zm [\] ^_-com/artfess/base/jwt/JwtAuthenticationRequest java/util/Map9org/springframework/security/core/userdetails/UserDetailsjava/time/LocalDateTimejava/lang/Long%javax/servlet/http/HttpServletRequestjavax/servlet/http/HttpSessionjava/util/Listjava/util/Iterator9org/springframework/security/core/AuthenticationExceptionjava/io/IOExceptionjava/util/Optional(com/artfess/base/service/LoginLogServicegetClass()Ljava/lang/Class;com/artfess/base/util/AppUtilgetBean%(Ljava/lang/Class;)Ljava/lang/Object;getToken()Ljava/lang/String; com/artfess/base/util/StringUtil isNotEmpty getUsernameappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;toString!com/artfess/base/util/EncryptUtilmd5Hex&(Ljava/lang/String;)Ljava/lang/String; toLowerCasecom/artfess/base/util/Base64 decodeBase64(Ljava/lang/String;)[B!java/nio/charset/StandardCharsetsUTF_8Ljava/nio/charset/Charset;([BLjava/nio/charset/Charset;)Vequals(Ljava/lang/Object;)Z%com/artfess/base/feign/UCFeignServicegetDetailByAccountOrId#(Ljava/lang/String;)Ljava/util/Map;get&(Ljava/lang/Object;)Ljava/lang/Object;(Ljava/lang/Throwable;)V@org/springframework/security/core/userdetails/UserDetailsServiceloadUserByUsernameO(Ljava/lang/String;)Lorg/springframework/security/core/userdetails/UserDetails;getJsonDefault+()Lcom/fasterxml/jackson/databind/JsonNode;com/artfess/base/util/BeanUtils=(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;asLong()JgetLockedStatus()Ljava/lang/Integer;intValue()I getLockedTime()Ljava/time/LocalDateTime;nowjava/time/ZoneOffsetof*(Ljava/lang/String;)Ljava/time/ZoneOffset; toInstant+(Ljava/time/ZoneOffset;)Ljava/time/Instant;java/time/Instant toEpochMillivalueOf(J)Ljava/lang/Long; longValue getAccount)com/artfess/base/service/LoginUserService lockedUser(Ljava/lang/String;I)V getTenantId(J)Ljava/lang/StringBuilder; getPassword getFromBase64format9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;org/slf4j/Loggererror*(Ljava/lang/String;Ljava/lang/Throwable;)VgetCause()Ljava/lang/Throwable; getMessagecom/artfess/base/util/HttpUtil getRequest)()Ljavax/servlet/http/HttpServletRequest; getSession"()Ljavax/servlet/http/HttpSession;com/artfess/base/util/IPUtils getIpAddr;(Ljavax/servlet/http/HttpServletRequest;)Ljava/lang/String;asInt(I)Ljava/lang/Integer;(I)V(I)Ljava/lang/StringBuilder;-(Ljava/lang/Object;)Ljava/lang/StringBuilder;queryPersonLimitByAccount$(Ljava/lang/String;)Ljava/util/List;queryMachineIps"(Ljava/util/List;)Ljava/util/List;iterator()Ljava/util/Iterator;hasNext()Znext()Ljava/lang/Object;*(Ljavax/servlet/http/HttpServletRequest;)Z$com/artfess/base/jwt/JwtTokenHandler generateTokenO(Lorg/springframework/security/core/userdetails/UserDetails;)Ljava/lang/String; getFullname getUserId setAttribute'(Ljava/lang/String;Ljava/lang/Object;)Vput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;getSkincom/artfess/base/util/MapUtil getString5(Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;updateLastLoginTimecom/artfess/base/conf/JwtConfiggetExpirationLongk(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;ZLjava/util/Map;)V'org/springframework/http/ResponseEntityok=(Ljava/lang/Object;)Lorg/springframework/http/ResponseEntity;'(Ljava/lang/String;)[Ljava/lang/String; getCasUrl com/artfess/base/util/FluentUtilcom/artfess/base/util/XmlUtiltoJsoncom/artfess/base/util/JsonUtil toJsonNodehasasTextprintStackTraceinfogetOauthTokenUrlgetOauthBasicHeader"org/apache/http/entity/ContentTypeAPPLICATION_FORM_URLENCODED$Lorg/apache/http/entity/ContentType;postn(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Lorg/apache/http/entity/ContentType;)Ljava/lang/String;isObjectgetOauthAccesstokenKeygetOauthCheckUrlgetOauthUsernameKeyisEnableorg/springframework/util/AssertisTrue(ZLjava/lang/String;)VgetMode isPresentgetUsernameFromTokendebugj(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/Map;)V.com/artfess/base/feign/ApplicationFeignServicegetUserInfoUrlsendHttpsRequestJ(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;getUserByWxWorkIdisEmptyisNullK(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)VgetUserByOpenId9(Ljava/lang/String;)Lcom/artfess/base/model/CommonResult;getState()Ljava/lang/Boolean;java/lang/Boolean booleanValuegetValuegetUserByDingtalkIdgetUserInfoForYkz((Ljava/lang/String;Ljava/lang/String;Z)Vl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;ZZLjava/util/Map;)V getAttribute&(Ljava/lang/String;)Ljava/lang/Object; getMapper/()Lcom/fasterxml/jackson/databind/ObjectMapper;+com/fasterxml/jackson/databind/ObjectMappercreateObjectNode2()Lcom/fasterxml/jackson/databind/node/ObjectNode;V(Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;updateUserUniteW(Lcom/fasterxml/jackson/databind/node/ObjectNode;)Lcom/artfess/base/model/CommonResult;removeAttributedecryptgetUserByYkzEmployeeCode(Z)Ljava/lang/Boolean; getSsoUrlgetSsoLogoutUrl getHeader substring(I)Ljava/lang/String;getTenantIdFromToken refreshTokenjava/util/ObjectsrequireNonNull'(Ljava/lang/Object;Ljava/lang/Object;)VAorg/springframework/security/authentication/AuthenticationManagerf(Lorg/springframework/security/core/Authentication;)Lorg/springframework/security/core/Authentication;getLastLoginTimegetPwdCreateTime toLocalDate()Ljava/time/LocalDate;java/time/LocalDate toEpochDayisSingle com/artfess/base/conf/SaaSConfig getExpirationputTokenInCache](Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;o(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;logremoveFromCache9(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Vorg/slf4j/LoggerFactory getLogger%(Ljava/lang/Class;)Lorg/slf4j/Logger;!G '()*+,-.+,/0+,12+,34+ 56s789+,:;+,<=+,>?+,@A+,BC+,DEF GHI/*JOK LMNOI`*M,+,+Ju vwxK LMPE QMROI5J|KLMPE+S6[sTUsVWOI5JKLMPE+S6[sXUsVYZIJ-JK*LM[E\E]^+&_6[s`Usab@cdIefeghijI@JK LM[E\E+k6[s`UsalmI?JK LM[E\E+S6[s`UsanoI  2=++  Y +  N-:+:Y:1*+ : Y Y=:Y+ N :*-! :*"+ #:$$:%:*: &'7 )*&)*+7 ,,:  -. /: 01234 1234e5m7:8 7*9 :; &  <-=9 >-=. 8e7Y Y ? @A f+BC:*-DS: EFGY-SH IJ: K& KL KL:  M: NO:P:  Q:  R: fJR*-SJ: , ,: &0T*U6V*U6W*U6X: &  <-Y:  >-Y: ZY[: &  <-.`X\W >-.`X\W Y ] .d^_ :.<*9-;.`: &  <-=  >-= Y a bc  :YY*-Sdd:   -e:fw6 g:?f5h:i"j:  6#Y Y k - l  m6 *no:p: : :6qYr:,m,:s:::t: uvGYSYSHw*x6y<zW{|zW* y}~ y}=*9Y*7-Jx-6?MWfx#,Q\mu"'07?QT\ckw   +5@JNVfn %)*+,-./012346!8&9F@MDXFaGeHiIlJuK}LMNOPRSTX[]_K-fpq6[rE?RstMDuE vw-sxE!yz,{| Qj}~ z  Nvw ^+mEw! TD Eq4f c2LM204EEEqg^RQM '  0 7E M4 XxEaEe\EiEl4uq*fpfux   e ~ * VC @W "C)  U%$ L+36[s[e[s6sssI6M,N-:662:+Jcd e#f,g.e4jK4# E6LM6\E3E ,I N: :GY*SY+SY,SH N-::**:(**:YD:E Y  - Y Y    {~JBop r+s1t8vBwVx`yqz{~|}~K\ 1JE8C?vwLMEEEE E+V$B@I N*:GY+SY,SH:*: Y   ::g_**: *: Y   :  :    **N:Y-JJ 'FMZktKkKxE tBE $E  'EFpEMivwLMEEE EEBI7*:*:- -:+*+:T,*,:1, *n+: Y*!P:m6*"#: *n o:  p:  :  : qYr: ,R ,:s: :: t: uvGY SY SHwy<zWE, *y}  ~Y    *7J  (9K\n &7ARcKHLMEsEjE4 xE E \E E q*C(""# +36[s[e[s6sssI*+ ME Y  , N,N:E-: -¶:*:Ě ř$Y Y ƶ  Ƕ ȶ*:*!P:m6 *"#: *n o:  p:  :  : ,A ,:s: t: <:uvGY SYSHwE*  ~Y   ɸ:Y Y ʶ  Y Y ˶ -̶ 7?BdeJ"57?BDQ\fq~ <FRegKD vw74  xE wE sE o[EgvwqE~\ELME7o\JE }B< (+36[s[e[s6sssITm*+ MN,N:E-ζϙ-ζ:*:Ѷҙ:ęYոȶ*:*!P:m6 *"#: *n o:  p:  :  : ,A ,:s: t: <:uvGY SYSHw*  ~Y   ɸYոY Y ֶ -̶ $'J!  $')6?JWbl|!"#$%&'()*+."052=3J7K) vw7l\E4  vxE mE iE e[EJEWmLMmSEQWms'R+36[s[e[s6sssI\*+ ظMN,N:E-ٶϙ!-ٶ:*:Ě ř$Y Y ۶  Ƕ ȶ*:*"#:&*!P:m6 *no: p:  :  : ,A,:s: t: <: uvGY SYSHw*   ~Y   ɸY Y ܶ  ݶ Y Y ޶ -̶ $'J~=>@$C'A)B6D?FJHWIgJLNOQTUVWXYZ[\]^_b)d<f]iK) vw74 vxE mE iE e[E JEW\ELMfEd '0  +36[s [e[s6s ss I *+MN,N:E6-ϙd-ȶ:-:*:Ě ř8E Y    6Yȶ*:*"#:  &*!P:  m6 *n o:  p:  : :qYr: ,A ,:s: t:<: uvGY SYSHw*  ~*9Y  *7Y Y   ݶ Y Y  - J%pqsvt u-w0x9zD{O}\~l#?KVyK vw7 4 xE E E[EqDV EOK E\>\E LME04>49  +36[s[e[s6sssI{ _+ : :*! :+BC:*DT:EFGYSHIJ:K&KLKL:M:NO:P:Q:R: J*S$$:   %:  &| T*U6  V*U6  W*U6R LZ: ZY[:.`XY:. *9;Y*Sdd:   e:   fx6   g:  ? f5 h:i"j:  6  $Y Y k  l m6 *"+ #: *n o:  p:  : :6qYr: , ,:s: ::t:*,:Dȶ*: p)Y Y  -  :W,W*WuvGY SYSHw*x6y<zW* y} ~*9Y  *7%(J>O %(*BF\fmuy~ ,6BLU_do~ !%(19@ I R [ mr~ ("1$<&K`#f*Ovw;^m a U  Er4 g o _ ~5E@m\_LM___YE UEKE~E e4  V KxE BE !>\E%:E(741.q4g o __1. (D +  W%% c+36[s[e[s6sssIi s+ Y+M N,N:Y6-/*-:Ě řE6Yȶ*:*"#:&*!P:m6 *no: p:  :  : qYr:,A,:s: t: <: uvGY SYSHw*   ~*9Y   *7Y Y   ݶ Y"%J%-.124"7%5'6396:==I>Y?c@fApD|FGILMNOPQSTUVWXY\_%aHcifK' vw74 xE E E [E qI |\EsLMs]EZE6=4sr %9 +36[s[e[s6sssIAqYrN-W*zW-*zW-*zW-Jqrs+t<uK*ALMAA !9"q 9"#+36[s$[e[s6s%ss%&'IX+*M,N*n-:*n-:*n-:+m6*~Y   ɸJ"{|}~)39EKRXLMXJ(ECxE9[E)/\E3%)E94*++6[s+[e6s,ss,-.ID+*M,N*n-:*n-:+m6*Y  J)/9KHDLMD6(E/xE%[E)\E/4/++6[s0[e6s1ss23mIh+ W, W*  Y+,WJ K LME4EL56IY+Q$$N--%:&2*:*U6*U6*U6)*+7 *U6 W*U6 +-.y+/: 01234 1234e5m7:8 *9+:;. 8e7Y Y ? @A  P ++:  &.)0: e6Jz  (5BO\hu $16JWK!yzn{| I}~6!7|J 8$39| 5":EB;O<\=hz u>  E 7YLMYY4EM*8@?@If :*/,*>M*n,-* !W&P:R:*n,-* "W*#- $J* *-EJQh  KRJQELM4[EExEqAEL B"BBCDI9*1 :,*>M*n,-%J *-8K4AE9LM949[E9\EB EHI! &EJPFG+'HIJ[sKLM[sNsOsPsQ