�ɲɾ�����ӯ�����һ��ˣ��������С���˴��ͣ�������P���ҹ��ñ˽��ά�Բ��������˸߸ԣ�������ơ��ҹ��ñ�����ά�Բ���ˡ���˳^�ӣ������ӡ� ���ͯj�ӣ��ƺ���ӣ� ? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!PKgx0]~ssh-pkcs11-helpernuȯELF>@0@8 @@@@hh $$(p $$`` DDStd Ptdqqq<<QtdRtd$$/lib64/ld-linux-x86-64.so.2GNUGNUGNU N6[9 D%@ %'|CEqX; }   7   %  aZ | $()T ,| m  D ? y  w cE  lru! *J   n$  X @v d@ W   +/ ! 2S ` q 0 = 5_7 s NV_ " Z -  # V pN \ z o M   ySC w  '  m , I     b ?\ M o* v? AG { X @8 FP  O     k     1%0" cVX2GB   n aE  ef Y ? Gl  e  1 !"  Qi o      $8$8$libcrypto.so.1.1__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTableBN_num_bitsECDSA_SIG_freeEVP_PKEY_newCRYPTO_get_ex_new_indexEVP_DigestInit_exEC_KEY_OpenSSLBN_divRAND_statusRSA_bitsERR_peek_last_errorBN_CTX_getEVP_DigestVerifyFinalRSA_meth_set_priv_encEC_POINT_freeRSA_meth_set1_namePEM_write_bio_RSAPrivateKeyEVP_MD_CTX_copy_exBN_print_fpASN1_OCTET_STRING_freeDSA_get0_keyBN_subEC_KEY_get0_private_keyEC_GROUP_set_asn1_flagRSA_sizeBN_dupERR_get_errorEC_POINT_oct2pointRSA_set0_keyPEM_read_bio_PrivateKeyRSA_generate_key_exEVP_PKEY_get1_RSADSA_newEVP_sha256EVP_PKEY_base_idX509_get_pubkeyEVP_aes_192_cbcEVP_CIPHER_CTX_ctrlRSAPublicKey_dupd2i_DSA_SIGBIO_writeEC_KEY_set_methodBN_set_wordOPENSSL_init_cryptoENGINE_load_builtin_enginesRAND_seedEC_KEY_METHOD_get_signERR_peek_errorBN_clear_freeEC_GROUP_get_ordero2i_ECPublicKeyDSA_generate_keyEVP_aes_128_cbcEC_KEY_generate_keyEVP_CipherInitBN_bin2bnEVP_MD_CTX_newBIO_s_memEC_GROUP_cmpEC_GROUP_freeEVP_aes_192_ctrEVP_md5EC_KEY_get0_public_keyEVP_aes_128_gcmRSA_meth_dupECDSA_signRSA_freeEC_KEY_newX509_freeEVP_des_ede3_cbcEC_METHOD_get_field_typeEVP_PKEY_set1_EC_KEYPEM_write_bio_ECPrivateKeyRSA_newEVP_DigestSignFinalBIO_freeEVP_CIPHER_CTX_key_lengthEVP_PKEY_get0_EC_KEYEVP_MD_CTX_mdEC_KEY_get0_groupECDSA_SIG_get0EC_GROUP_get_curve_nameENGINE_register_all_completeEVP_aes_128_ctrEVP_sha1EVP_PKEY_get1_DSAEC_POINT_mulEVP_DigestFinal_exEVP_sha384EVP_DigestX509_newEVP_PKEY_sizeECDSA_sizeEVP_CipherDSA_get0_pqgECDSA_SIG_newRSA_get0_crt_paramsEC_GROUP_new_by_curve_nameDSA_set0_keyRSA_get_ex_dataRSA_set0_factorsEC_KEY_set_private_keyBN_set_flagsOpenSSL_version_numRSA_get0_factorsRSA_set_ex_dataEC_KEY_set_asn1_flagEC_POINT_newRSA_set0_crt_paramsi2d_DSA_SIGBN_CTX_freeEVP_PKEY_set1_RSAEVP_CIPHER_CTX_iv_noconstECDSA_SIG_set0EC_KEY_METHOD_newBN_newEVP_MD_block_sizeBIO_newd2i_ECPKParametersEC_KEY_set_groupEVP_CIPHER_CTX_ivEC_GROUP_method_ofBN_CTX_startRSA_set_methodBN_bn2binRSA_get0_keyRAND_bytesRSA_meth_set_priv_decEC_KEY_set_public_keyEC_KEY_METHOD_set_signEVP_CIPHER_CTX_set_key_lengthPEM_write_bio_DSAPrivateKeyEC_POINT_get_affine_coordinates_GFpd2i_X509EC_POINT_cmpBIO_ctrlEVP_PKEY_freeEC_KEY_get_ex_dataEVP_DigestUpdateEVP_aes_256_cbcEVP_CIPHER_CTX_newRSA_private_encryptBN_cmpEVP_CIPHER_CTX_iv_lengthEC_KEY_set_ex_dataRSA_blinding_ond2i_ECDSA_SIGPEM_write_bio_PrivateKeyEVP_aes_256_gcmd2i_ASN1_OCTET_STRINGEC_KEY_dupEVP_PKEY_get0_RSAEVP_MD_CTX_freeEVP_CIPHER_CTX_freeEVP_DigestSignInitEVP_PKEY_set1_DSABN_CTX_newEVP_PKEY_get1_EC_KEYEVP_aes_256_ctrEC_POINT_is_at_infinityEC_KEY_freeDSA_generate_parameters_exRSA_get_default_methodEVP_sha512DSA_freeERR_error_stringBN_freeEC_KEY_new_by_curve_nameDSA_set0_pqgi2d_ECDSA_SIGEC_POINT_point2octBN_value_oneFIPS_modeEVP_DigestVerifyInitlibdl.so.2dlclosedlsymdlopendlerrorlibutil.so.1libz.so.1libcrypt.so.1libresolv.so.2libselinux.so.1libc.so.6socketfflushgai_strerrorstrncmpstrrchrpipeperror__prognameconnectgetpwuidnanosleepfork__stack_chk_failunlinklistenreallocstrtoll_exitmemchrstrpbrkgetpidkillstrspnstrdupstrftimelocaltime_rstrtolisattyfeofexeclpgetpwnamgetppidcallocstrlensigemptysetopenloggetaddrinfomemsetdirnamestrcspn__errno_locationtcsetattrbindreadmemcmpgetpagesize__syslog_chkstrndupgetsockoptdup2strptimepoll__fprintf_chkstdoutfputcgetsidstrtok_rmemcpy__vsnprintf_chkstrtoulsetsockoptmallocstrcasecmpraise__ctype_b_locgetenvgetservbynamestderrioctl__snprintf_chkstrncasecmp__fxstat__realpath_chkfwritegettimeofdaysigaction__explicit_bzero_chk__memcpy_chkclock_gettimewaitpidlocaltimestrchrmktimetcgetattr__ctype_toupper_loc__ctype_tolower_loc__cxa_finalizefreeaddrinfo__vasprintf_chkfcntl__xstatmemmovestrsepgetrandomstrcmp__asprintf_chk__libc_start_maincloselogsnprintfreallocarrayprogram_invocation_short_name_edata__bss_start_endGLIBC_2.2.5GLIBC_2.14GLIBC_2.4GLIBC_2.25GLIBC_2.8GLIBC_2.3GLIBC_2.26GLIBC_2.3.4GLIBC_2.17OPENSSL_1_1_0          o  ui   ii  ii ii  ti  ,ui m7$$@ $ $@$kH$wh$p$$$$$$$$$֖0$8$ԖX$ږ`$Ԗ$$Ԗ$$$$$$@$$ $(($GH$hP$Ep$x$E$Ȝ$E$$ $0$@$7P$=`$Bp$J$P$W$^$؝$ߝ$e$j$s$z $0$@$P$`$p$$$$w$|$$$$ $0$@$P$`$p$$$$$$§$Ƨ$ʧ$Χ$ѧ$ڧ $@$P$a`$Zp$$$g$$0$9$D8$O`$Z$v$$!$($P$x$$c$g($lH$sh$z0$=$$0$X$$$$$ $H$$O$8$X$#x$$$$;$X$m$}$$$$ $($0$8$@$H$P$X$ `$ h$ p$ x$ $$$$$$$$$$$$$$$$$$$ $! $"($#0$%8$&@$'H$(P$)X$*`$+h$,p$-x$.$/$0$1$2$4$5$6$7$8$9$:$<$=$>$?$@$A$B$C$D $E($F0$G8$H@$IH$JP$KX$L`$Mh$Np$Px$Q$R$S$T$U$V$W$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f $g($h0$i8$j@$kH$lP$nX$o`$ph$qp$rx$s$t$u$v$w$x$y$z${$|$}$~$$$$$$$$$ $($0$8$@$H$P$X$`$h$p$x$$$$$$$$$$$$$$$$$$$$$ $($0$8$@$H$P$X$`$h$p$x$$$$$$$$$$$$$$$$$$$$$ $($0$8$@$H$P$X$`$h$p$x$$$$$$$$$$$$$$$$$$$$$ $($0$8$@$H$P$X$`$h$p$x$$$$$$$$$$$$$$ $ $ $ $ $$$ $($0$8$@$H$P$X$`$h$p$x$$$ $!$"$#$$HHɖ$HtH5$%$hhhhhhhhqhah Qh Ah 1h !h hhhhhhhhhhqhahQhAh1h!hhhh h!h"h#h$h%h&h'qh(ah)Qh*Ah+1h,!h-h.h/h0h1h2h3h4h5h6h7qh8ah9Qh:Ah;1h<!h=h>h?h@hAhBhChDhEhFhGqhHahIQhJAhK1hL!hMhNhOhPhQhRhShThUhVhWqhXahYQhZAh[1h\!h]h^h_h`hahbhchdhehfhgqhhahiQhjAhk1hl!hmhnhohphqhrhshthuhvhwqhxahyQhzAh{1h|!h}h~hhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhah Qh Ah 1h !h hhhhh%|$D%|$D%|$D%|$D%|$D%|$D%|$D%|$D%|$D%|$D%}|$D%u|$D%m|$D%e|$D%]|$D%U|$D%M|$D%E|$D%=|$D%5|$D%-|$D%%|$D%|$D%|$D% |$D%|$D%{$D%{$D%{$D%{$D%{$D%{$D%{$D%{$D%{$D%{$D%{$D%{$D%{$D%{$D%{$D%{$D%}{$D%u{$D%m{$D%e{$D%]{$D%U{$D%M{$D%E{$D%={$D%5{$D%-{$D%%{$D%{$D%{$D% {$D%{$D%z$D%z$D%z$D%z$D%z$D%z$D%z$D%z$D%z$D%z$D%z$D%z$D%z$D%z$D%z$D%z$D%}z$D%uz$D%mz$D%ez$D%]z$D%Uz$D%Mz$D%Ez$D%=z$D%5z$D%-z$D%%z$D%z$D%z$D% z$D%z$D%y$D%y$D%y$D%y$D%y$D%y$D%y$D%y$D%y$D%y$D%y$D%y$D%y$D%y$D%y$D%y$D%}y$D%uy$D%my$D%ey$D%]y$D%Uy$D%My$D%Ey$D%=y$D%5y$D%-y$D%%y$D%y$D%y$D% y$D%y$D%x$D%x$D%x$D%x$D%x$D%x$D%x$D%x$D%x$D%x$D%x$D%x$D%x$D%x$D%x$D%x$D%}x$D%ux$D%mx$D%ex$D%]x$D%Ux$D%Mx$D%Ex$D%=x$D%5x$D%-x$D%%x$D%x$D%x$D% x$D%x$D%w$D%w$D%w$D%w$D%w$D%w$D%w$D%w$D%w$D%w$D%w$D%w$D%w$D%w$D%w$D%w$D%}w$D%uw$D%mw$D%ew$D%]w$D%Uw$D%Mw$D%Ew$D%=w$D%5w$D%-w$D%%w$D%w$D%w$D% w$D%w$D%v$D%v$D%v$D%v$D%v$D%v$D%v$D%v$D%v$D%v$D%v$D%v$D%v$D%v$D%v$D%v$D%}v$D%uv$D%mv$D%ev$D%]v$D%Uv$D%Mv$D%Ev$D%=v$D%5v$D%-v$D%%v$D%v$D%v$D% v$D%v$D%u$D%u$D%u$D%u$D%u$D%u$D%u$D%u$D%u$D%u$D%u$D%u$D%u$D%u$D%u$D%u$D%}u$D%uu$D%mu$D%eu$D%]u$D%Uu$D%Mu$D%Eu$D%=u$D%5u$D%-u$D%%u$D%u$D%u$D% u$D%u$D%t$D%t$D%t$D%t$D%t$D%t$D%t$D%t$D%t$D%t$D%t$D%t$D%t$D%t$D%t$D%t$D%}t$D%ut$D%mt$D%et$D%]t$D%Ut$D%Mt$D%Et$D%=t$DAWAVAUATUSL$HH $L9uHE1dH%(H$x@1HA H}SL5t$IDiI>1ɺHS{$HC{$HD{$'D1AHBHDtvu˻I>D1/BHz$H+BHz$HHD$3L|$`H$HD$8HD$fH=~z$@A)D$hxK@H=pz$HHtfD$lL D$f D$ntGH=,z$HH= z$HIHڿHHH=y$HLu"H=y$(J!<H5dH=H1+H5LH=18[H=H1Hq$IH]H81*H=9y$(JfD$dH\$p1@HGHJH=x$HHH=x$MGHÃH=x$eHH-=(@9H=nx$TKH4$H=Qx$CD$ D$3<[<< PH=1oH=x$FT$ H9H=w$FT$ )9M+l$ H=w$tJ1:H5lH=H1;H=@1>HD$H{HD$PH=nw$1HdHD$XH=Pw$1HFlHGw$Ll$PL0+HCI^IFHI~UI>]_LEMMI^I~LIuIFHuHv$H=1RHt$HT$HH=v$HD$PH=v$Ht$@HH=|v$1uHD$XHt$HH|$8H趥G9H5H=H1z=HHE1HYH|$@f.@1I^HHPTLVH H=h$H=ai$HZi$H9tHh$Ht H=1i$H5*i$H)HHH?HHtHh$HtfD=h$u+UH=zh$Ht H=S$9dh$]wHHH=o$uHÉ}2H5H=H1DPXHqfDSHH5u1H=He$fD1HHH=H1ZHu[ff.HFf.H9t< uHHHu@AUIHATMUHSHH_dH%(HD$1HH$H)LHHLLHLHLH4$Hu E1HtHH1AH=ALHuHT$dH3%(Du:H[]A\A]HH=>1/HH1AH=ff.AUH1H5bATUSHHH=cH~H[]A\A]DHH51H=2H{pHStXE11L-$f.HSHIH;kps+HJ HtRpHtHL1"1RHuvǃH{HC+tHH5WH=1H{xHH;HH[]A\A]f.HH=i1tf.SOHHDG1H5H=Cu[@H{GHCC[fDSOHH1H5MH=ACC~[fH;H{HtH[SHHA1HH=H5Ht-H;HtxH{H{ vH[mD[fDAWAVIAUIATIULSHHH=+d$LD$(aHIǃCLhI<$x~HcIcWIGI6HH}HuHl$XLl$0fIcuH9~$HELH4?tLX7H\$XVHcH;HL$0H=DHHcLH=1E1E1 %H=PE1E1H=1HD$@HH=1%H=1E1HttHHHvH=Ht,H HC0HH߉&>H[]DHH>tH=R1軻H=!1譻ff.fUHSHHX7dH%(HD$H1t:1H=#H\$HdH3%(!HX[]H5A$qHHPHH$HcPHT$HHHHrHH)HHHT$HP HT$HHRHHT$0HHRHHT$ HHJHPHH)HHH HD$(:HHtCHHJH1ּH1 H 5@$衿uH=@AWAVAUATUHSHHhHt$HT$(dH%(HD$X1Y9H5rH=HD$ H1HtHHD$PH}0H:Iƾ(sHH8HL-G$MtLL%l MmMt:IEIULLH1?M}LI7uA-LHCIăIHH5HHpHSH|$PLjHHD$P1ID$PHWHD$PI|$PHM|$ LH} HtL^ML$H LAD$iLLED$AL$M|$pH=PAD$hP1AXAY1HD$PLP(HI|$pHLID$xHHD$PP(IHCI|$pI|$pADŽ$I$01H\$ILMIV LI} I}@I}PIIL;cpLHCxMLJHL$XdH3 %(Hh[]A\A]A^A_fH=GtI@HL1H=LLмI|$xƼL込H;趼H讼LYLH56H=o1L耼AL{CH^C$HCHHC HHCCH=C$5H|$HD$u HE8HD$HCE1D$LHxpHL$LHL$HL$PHL$8=HuHtLHu(MF HtLLD$0LD$0pIFPAWH=LPHt$(1MN@LHC^_LIL|$(MLl$ILLHL*LILLHLl$T$LuaH}tZLH5H=1LmILLt$HELHLILLLHaLmDHCIL;`psZN,LM)IMM~`AHT$L1H5OH=IHCL;`prDH|$Vl$LHCHS HHP HS HCHHH HT$ H5H=1HLxAE` 9$HL$H9H@x11LD$8JDLH5F1H=XfDHL1H=菹f.HH=1oH|$PAWpHuHH= 1L_H=19Lϼ蚸H=H1YfAU1IATIUHSHR2HtzHHHvH=Ht2H HC0LLHH߉2H[]A\A]ÐHH2tH=J1賯H=1襯D::H%HcH>HHHHXHHHHHHHHHHaHHaHHqHHHHHiH8H\@HHaHHHHAHHH9HQHiHHHYHiHyHHHHwHHgHeHgHHHTHSHUHZH_H^HaHaHJHEHGHt(W0u!8wuH=vHWHHH9s fDHWSHH?H)H4聶HCH)CHC[ff.@SH|HHtAH@(H@ @0@8H@@?HHCHt H[fDH1~ff.HtgHw^UHHSHHHt-HX HXHX(@0@8H@@HhHH[]f.1ff.fHtW0t8G8=v;H1 ӂ 蹴HHGH9uDHtHG H=wHW(H9rHGH9rH;GrHtF0u HFH9uF8=tH~iHF H=YHV(H9LHFH9?H;F5Hw@1F8ff.fHtGSW0Ht,C8=v7 1Ӂ [鸳HGH9uDH{tHS HwHK(H9rHSH9rH;SrC8u5H{@lC0HC@t%HHHIH[0[fDH;Hs(H%H; ff.USHHtG0Ht7K8Qv@1 1ۀ HH[]HOH9u΋K8QwH{HtHK HwHS(H9rHkH9rHSH9rH)Hw$HC(H9rHSH9rHCHH9sfD1 4 1HHHCHH 0H1!fH;;t[1  űC0u 1HH9CuC81=pH{@H_HK )fDH)ff.G0uW8v HGHG@SHH?HCH9uus1 ? %Hs(H;HCHCHt&VHHtnHHCHC(H[ݯDHtHC H=xHs(H9kHCH9^H;CqOf.H;ff.HG HG(HG@G8AUATUSHHtDg0HHEt>C8PvG1 A} HD[]A\A]fDHGH9uNjC8PwH{tHS HwHs(H9rHKH9rH;KrH9EH1H9H@Hs(H9vMHCH9srAH=v LE0I9H;LGLsHtaHHCLk(L9r.Hk HD[]A\A]@HE1[D]A\A]HA[D]A\A]@AAfHtG0t0G8=v3H1 | i1HfHGH9uDHtHG H=wHW(H9rHGH9rHWH9rH)ff.HtO0t0w8F=v3H1 { ٭1HfHGH9uDHtHW HwHG(H9rLGL9rHI9r1uHL)ƒHDDHtG0t0G8=v3H1 S{ 91HfHGH9uDHGHtHW HwHO(H9rHwH9rHWH9rHff.HtG0t0W8Jv2H1 z 訬1HÐHwH97uDHtHO HwHw(H9rLGL9rHOI9ru1uHH1ff.fHtG0t8DG8APv8H1 z H@HOH9uDHtHW HwLO(L9rHOI9rHH9ru%AuH9w H)H)H9ʺBø@AUATIUSHH'ŅtH[]A\A]@HC1HLH;C @HCHs(LH9vLH;E0L;k LGLUHt(Lk(LHHHCNH[]A\A]ýmff.ATUHSHHt-HIuHSH HHHkI $[]A\uHk[]A\ff.USHHtW0HHt4C8=v=1 +x H[]DHGH9uЋC8=wHKHtHC H=wHs(H9rHCH9rHsH9rHt8uYH; tT1 w 薩1@H9w8HkHkH;kt 1H[]@HC1HC@H)ø=fUSHHtW0HHt4C8=v=1 w H[]DHGH9uЋC8=wHsHtHC H=wH{(H9rHKH9rH{H9r1Htu7H;3t21 v 脨1fH9wH)kH1[]fDHH)ZfD t@ t+t rttdEf.ewH% H'+fHtNAUIHATIUSHcḤHŅx%Ht H9rHLL荭H[]A\A]øH11dH%(HD$1HH<$ǡ=NHL$dH3 %(uHۨff.AWAVAUATUSHdH%(HD$1HHHILlmILbIHLHHHLH5L膡HteAI^L OIL=fHl$ MHHHPL51QXHZLL!L9uHL$dH3 %(LuH[]A\A]A^A_f.E1趧fDAWAVAUATUSHHHHt$H<$HSHLhIHHHMtMfL0HHH $LHHLH5VHPHuHH[]A\A]A^A_fLH|$JT-HL)xutH5!HԨDDLHD1@ATUSH0dH%(HD$(1H HHAԾH $D9p@H(uuEt$AwH]HcH>fDH1 $f.H(PtD9uPt9uL v9H\$(dH3%(eH0[]A\L%wHHcH>fD@ 9HE`HH8HMuE3HE`HH0y|dH} LHFEH5=t#H5=t=H5HEHڀHu H覎H}0ALH諀Hu0 HH}H Ht$1HT$ OLHdHt$ HwHt$HeH}HHL$HT$Ht$H}Ht$ 1褝LH!Ht$H蔋 Ht$HHt$HjHt$ HUDvl1ew]bfAVAAUIATIUHSHtHHtHE~HHt~LDHhAŅtHY[D]A\A]A^DHIMtI$HtLWHEHtHH}LHDAAAUAATIUH-SH$HLH褢ƅuHCHt5H[]A\A]f.H(DkAH+fS HtAE{wHkHcH>fDDH$f.H(Jt$9uBt9uHH[]A\A]HH[]A\A]fD뙐ffn1ff.@7t:H I$9tB@HHQ(uHIDHA0HKt*H $f9tB@HHQ(u1f.AHff.wH$fH(Pt9uP9tuHÐHwAwHHcH>fD1fDH4$fH(Pt9uP9tuHÐH(ffffATH5޾IUSH$H3Ht L谟t(C uH{L)tH(kuɽ []A\ff.fUHSH;$H$DuH3Ht H8tC@H(uH[]ÐCH[]fDAWL=$AVL5AUATE1U1SH(|$t$T$L$x@Aw t\D$uTLHtD$HBD%LҘHL$IIt$莡HtyH<IULHD$脢LL$LI(AGtYM7 tMtDL$Eu EG$EuӋ|$cL$gAW [fH1H(H[]A\A]A^A_@AWAVAUATUSHdH%(HD$1Ht?u,1HL$dH3 %(H[]A\A]A^A_AIH$HtIH5L袟HH8L=a @H5hLqHHta8t\HL uEt:LH$fDH({tH;1Hit{uLL葜HdH%(HD$1? HHcH>@HL$dH3 %(Hf.Wt͸ t1H1HtH11蹜H<$蠔fDH1HvH11荠H<$t\1N蜛ff.HdH%(HD$1?HHcH>@H 诟HHt$dH34%(uRHÐH1H貔1H<$fDH11HП1H<$@1H0ߚ1ff.Ht*7t#H # f9tB@HHQ(u1f.AHff.WwTH =HcH>1Dff.f.f.ff.fAWAVAUATUSH8t$ LD$LL$dH%(HD$(1HIHIHPHcH|$ $HH裖AIHt&|$ AI11HLt7LgH菓HL$(dH3 %(DulH8[]A\A]A^A_DHT$Ht$LVuHT$ HLAuHD$ I$E11AEAA˘ff.AWMAVAAUIATIUHSHDL$ 襕Ht~DH11IHHtHqH[]A\A]A^A_LLH肑uHcT$ LH߽tE멽ff.H H=HtF H=Hָt& H=vH%ft t1t  tEff.Hʷt%HϷtHHEtt1D@fHSHwKHyHcH>H0 袀H{(@HC0茀HC( t%HQ#9t$P@H(uH߾h[Jf.@ tH{`Ht{H߾h[DHHC HHC fH 7HC Fff.@UHSHH?H}@H}HH}蔏E t1HE(ڃHHC0Ht?HU0Ht6HHpH3 H3rH u#HHHpHBH3rH1H ƸtfD1H\$HdH3%(HX[]A\A]EHwpH=Hc H>֐1@H H5kHc H>ff9P1GH 6HcH>@1f롐H{HH}1HT$(Ht$0GH}Ht$@1HT$82Ht$8H|$(Ht$@H|$0܊H{ HsH} h+HZH} HHKIH7H} FH{ I:LLH|H} ˇH{ I过H{ HLLHHaLEH1H5Hc H>H{HH}HL$HT$Ht$H}HL$8HT$0Ht$(̐H{1Ht$ |H}Ht$@1lHt$(H|$mHt$0H|$VHt$8H|$?Ht$@H|$ (ָd@1WAfyf&fDL衄1dDHtWHtR;uLAVH#AUATUHSHu 9t,P@H(uHH[]A\A]A^eD1D@ tLm`Lc`LL tMtMtI<$I}II9t [1]A\A]A^I<$I}I I<$ILLHcf1UDATIUHS=Ht7H1HH(ŅtH[]A\HLi߽f.1f1DfAWAAVIAUIATUSHH(dH%(HD$1HD$HD$HtHMtID@HHHT$Ht$ÅtZHl$E1L HtHt$HHH|$HL$dH3 %(H([]A\A]A^A_f@QHl$IHt^HT$HHDA@;ÅuMtMeE1Mt DlIHl$MHl$E14*AWAVAUATAUHSHdH%(H$1HL$(HT$ Q9Lt$(Ll$ A5H DHcH>1tlsLLHLt$(Ll$ HLHL薈H|$ |HH$dH3%(H[]A\A]A^A_É LLH+HLt$(Ll$ @HbcdfghkluyDŽ$aeioH$HmnprstvzH$LHf$xƄ$xD$I|$fHH"xEL1E1ɿAHD$D]D9\$DADEDDARW) DB#DDgAщAR) AIB;DH9l$AQDATD]AAAF DDOGB -IAF D BAD)AAA98AD)D9\$H|$𺫪DgR)4 GxGDHAT$xl@  HD$腉HHH|$01H|$HMKt5LH\$AE1HA7EAAEDǃɃAEHѺAHDAAOƃL$NLcK LcLLD A w AD AuHH9xH\$KH$HD$|HBƄ }*H5#@9Q@HHN(uL L$HPLL1腉ZYv\uH &#@9B@HHQ(uL %L1L5"HkMAI!%tL$LL$LLDIWLD@ƾI1谈M)L)HMAI!%tADINLD@IM)M)I+HE1HIE-I9rLHLLL$LLD$/~LL$LD$MIHDHA-J9H)Hv+ Ht$HyLԤfAHn fG|HGIDAHHIGI APH9uH|Hx@ H9uHƁ+MJHfH@-H9uJ DAAtAUtATfTfDLMIHDH@-J0H)Hv+{1-fHLL1蜁H|$ ~DH$HyHHDITHTHH)I)DX1҉փML5L 79r<@LN0uAUATTLL$1E1L$LL9+AE1|fAE1`fLI0eH@rfDAsxAtAM J 2yH}HLLLD$LU{LD$3HUAAH$HHHDItHtHH)I)Dj1MD=L99rNL L ^AM ALL"7ALfL AUATIUHSHHtHKHHtcH1H14AŅt%H%H |HD[]A\A]HcHHtMtI$1AAATIUSHHdH%(HD$1HH$.ŅuQH $A4$HI#A|$DH(PtL9uP9tuHH5sH1YH<$.{H\$dH3%(uH[]A\H€fAUATIUHSHHt|HHHŅtHH[]A\A]fHHI-LLHJHtLWt 똽ff.@HG`PHttHjHHEAWIAVAUATUSH(dH%(HD$1HH$HHD$ yHI|Ņ~(HL$dH3 %(H([]A\A]A^A_}IHI佟,DLHL~tNHI2wA,$t)uHHuLtpLxt[LhtH[HLw/H߽v~fDAWAVAUATUSHH2H IIH~fE uHIE0H@uIE(HHHXA]1M,$fu|=<IE^yIHj]{IHteH(utt1LLvtaMu1L~qfLH[]A\A]A^A_fLx1Af.}LFL@ Xd@h_HHtwHIE11jHE1E1pZHYtutIm1|hHx|fD1|~1E1D|H5џH=1yfDfD@IE xHHt'HvtZH=pM1$p4@f.@fH~Im 1oKff.@AWAVAUATUSHHhdH%(HD$X1H?UH ~HHcH>KIH8{xdwIIF HNH{ qI~ HrHD$HD$E1HD$E1E1!IHH{HL$HHT$@Ht$8zH{Ht$P1sH|$8tIHD$HH|$@tIHD$HH|$HwtIHH|$PatHD$HI~LLLau1I~Ht$1Is@IHH{HT$0Ht$(1"~H|$(sIHH|$0sIHeI~1HLq}HD$E1HD$HD$D[IHHH{0t8 >pIIF0HXHC0oAoHAO H#u9P@H(uLuE1E1E1HD$1E1HD$HD$LL'sLsH|$sH|$ sLsH|$rHt$XdH34%(JHh[]A\A]A^A_@@ aHLZÅLHD$E1E1E1HD$HD$PE1E1E1HD$E1HD$HD$HD$E1E1HD$HD$E1E1E1HD$HD$E1E1HD$E1E1E1E1E1HD$HD$E1HD$HD$bvE1E1E1HD$E1HD$HD$,AWAVAUATUSHHHo`HI0HHHuH8HMAąt!HHD[]A\A]A^A_Hu@H{@MAąuHuHH{HLAąuHEHCECH}HXuHCHHE0HC0HE8HC8H}PHtjHsPYumH}XHtuHCXH} uG{ I}`HtI]`$DHCfDHCPfDAuHHC(HtK} tE1fD} AD9vHE(EHT$JH[]A\fDH,$HHrHlu1빸|rff.D\$HtHHtHIwF?wGLIcL>fDE0EEø@H|$u ofD\$HtRIwI?wJLIcL>ExE8Eø@w5UHݔSHH,=HC`Ht+1H[]føH# fD9tB@H(ufR tSHH`Ht7PHC`wH HcH>@11[1[D1[D1[D1[@AWAVAUATUSHdH%(H$1HD$HD$ HD$8HIHw`HHH>MI͋t,HMƺH# 9tDP@H(uH$dH3<%(HĨ[]A\A]A^A_f.x tAmHZHvXHWHtHPo1HT$(Ht$LHC`L L轻s H#f.H(PP9uPt9uH0LJH$urHD$p HHD$38HD$ LHIuB9Hs0 LfIKfDLD$D$H|$ D$JhH|$@hH|$86hH<$=D$Q@CH}HDHDuRH{Ht$@1HT$HqrHt$HL4UdHt$@LUJfH52CH5=tH5 =t=H5ʍHE4$LIH$H{ yfH{ HD$dHT$LHUHC`LHp#FH$HC`LpFHC`LHpHlߴH$HHC`1ҋp uHC`HT$H HH9H@(H<$HT$H41HtH{HL$`HT$XHt$PlH{Ht$h1eHt$PLSHt$XL|SHt$`LgSHt$hLRS}H4$LGiHC`LHp0DQHC`LHp8D9HC`LHp@G!HC`LHpHiG 11LUFHT$(Ht$L;FL蛺LHD$辻HT$0ILHt$ HAVjLD$AZYHt$0H|$ HT$8QHtHt$8Hju9HC`HxXt@HT$0Ht$ LEVAdj2(H0HT$8HD$8HPX@E1H 2ff.fAVI1AUAATMUHSnMtI$IV`JEtvHH9B0H;B8J t91Ht8HZ(ALl@HI9H3HiufuY1[]A\A]A^ÐtHI$HzI$HȍI$HI$H̍I$뗐HI$ff.AVAUATIUHSHHdH%(H$1HG0D$0D$HHG8Ll$H_H=LHGLl$0HD$lH LHOlH{0H{8H\$PH1AU@@HLLL$ YjXZLHHaH$dH3 %(HĠ[]A\A]A^fH=Ll$HGLLt$HD$ZkHU LHkHC8HH{0Ll$0u9H\$PML.@H1@iELt$H\$PMLH5ˆH`gff.@UHSHHHwdH%(HD$81H#DH(PtD9uP9tuH0HBt9fDH\$8dH3%(HH[]DH5HYBu}wEH\HcH>HE`HH8ɵHHE`HH0ABqHu0 H(AXHu(@HABH}HL$HT$Ht$jH}HT$0Ht$(_H}11HL$ }gHt$H0M+H}HT$Ht$HL$ >fH}HT$0Ht$(^Ht$HLHt$HLHt$ HLHt$(HLoHt$0HL]EH5=t#H5=t=H5eHEH@Hu HuNH} hHH)LHE`HH8HH}1HT$0]HE`HH0w@3HE`HH8ųHHE`HH0=@mcHE`Ht`H8菳HtSH}HL$11hH}HT$0Ht$(]H}11HL$ eHE`HH0?QcAWAVIAUEATUSHH|$@Ht$HHL$PdH%(H$1EɸHD$hHD$xDNHt :L%Ld$LNHHFHD$H3IH"HD$(HdHMH߉D$XMH߉ʼnD$4Hl$8MH߉D$0MD$\D$0HHHD$ TcHHHt$H=AXHt$H=hH$HD$H|$xHHHjHD$HDL$@L$DLDO_AXAƅH|$1(L H|$(H|$xRH|$^Ht$ HH^H[H|$hHtBHt$pH^H|$h[Ht"H[HHH^H[H$dH3 %(DHĨ[]A\A]A^A_@H5L7Aƅ LL<AƅHt$L<AƅHt$L<AƅL:AƅLl$@HT$pHt$h1LAƅHT$pHt$hL;Aƅn)Ld$(ƉLL:AƅML7:Aƅ8LL AƅHt$PL;AƅDl$X1HH|$(:/H|$(]1IHuH\$(IHCL9AƅH&t$\HT$`LIHAƅIHLH1E1ARHAUHT$pH$.NY^Aƅ=LYAHHLt$HIL̫L$H5 5Aƅt]I1LHHHHL9.B4#H|$H9u&FL1HHEuH|$H i9tAH|$ȨLH|$(趨H|$xOH|$[Ht$ HH[HoXH|$hH@H}MMHD$H}LDfDH$HHD$'L.XHILAULL$0HHT$ 3AYAZHt$H|$8AƅH|$D7AƅMAH|$1螧L薧H|$(茧H|$xrNH$kZH|$hHHD$E1AHD$(HD$(E1AzHD$(AfH$AHD$A\AFL1HHEtH|$H N7AƅH|$H"H5 3AAVf.1%DAWAVAUIATUHSH(cZHHI`HSH`=t0E1LXQL]H([]A\A]A^A_LHQÅuL_]IHt_LO]HD$HtML=]IHD$Ht8L(]HD$Ht&LLH@Zt#E1^fDE1KHL$MLLHBVuLSH|$ASD9H|$SH|$ASD9HRIHqLD$1MLHHYtfLHPt |WHl$Ht$HHStHLSyHt$H|$SI1AWAVAUAATIUHSHdH%(H$1HD$8HD$@HD$PHD$XHD$`HD$hHD$pHD$xHDŽ$HtHH諤IHHt$81HP.AƅH|$8苹Eu0H8#ufD9P@H(uI H (|HcH>11HT,|EHHyH|$8o1Ht$@HC-H|$@9C]H{ M{!UIHC HHQHPIH1H{ QLHHN>H{ QLHH{ L^P t"H# 9P@H(uHdHMtI$1LHH|$8QH|$@QH|$PQH|$XxRH|$`nRH|$hdRH|$pZRH|$xPRH$CRL{XDH$dH3 %(#H[]A\A]A^A_11H|*mHHHt$hHD<LHt$pH/<7Ht$xH<"H$H< H{HL$xHT$pHt$h2RH{1H$HD$xHD$pHD$hOHDŽ$11H)HHHt$`H\;dHt$XHG;OH{HT$`1Ht$X:N@HD$`H{HD$XgE111H(HT$HHt$PH)u^H|$H HH HD$PE1HD$PHC0(DD@ EE11AKAE11;x HC`LHDŽ$HDŽ$HDŽ$HDŽ$HDŽ$HDŽ$HDŽ$H8+tAfDHC`HHp&tgH$D$莞H$聞H$tH$gH$JND$2@AE1=HC`HHp%uHC`H$HHp(eH$H)0MHC`HHp0Q%5HC`HHp89%H$H/H$H/11H&H$H/HC`H8詢HHD$蜢H$H$HHD$'HC`PpH$HD$ HDŽ$HC`x B pr H$HH$赡H_HC`H$Hx@')H$HtHHC`HxH)t7}H$11;%H$11"%H$-HuE1AE1AAfE11AE11AAuE1AgE1AYANPH$,KHC`HL$HH(pHt?H$11:$H$11!$H$HuHC`H$1HpPu¸Hs`HVP HH>HS`E1HHzPRjH$H$LD$L+D$ 7Y^HC`H$H$HPXHC`Hx@螜uHC`HxH茜cE11AfUHSH^Ht&HHHǺvH߉輙H[]ýff.BfAWAVAUATUSH(Ht$dH%(HD$1H@I $ /HHH5nHPHI/IL9tNL5mL=dz#DM7MtLII9uLLHMOt9I(Aou̸Ht$dH34%(H([]A\A]A^A_@ tAL< t < ufH< t< tt$ t97HIH0H5mHOHHIRHHLH$0H$HGLHt$L$ΗI܋$A$ t ufIA$ t tLD$A9( ;H° AmSH#D9hJ@H(uUwPH 1pHcH>H׉$GL $>D$,AGA]tyt$LõfI} $@H|$$HW IU WAUHG G$vHD$L $I}$*LH|$$HWIUHG…mI}$NH|$$HWIUHGfI}0 $5H|$$HW0IU0HG0dfJ A0t%H#9t$J@H(uL蠴fDR tI}`Ht$訵LD$$IP`IU`I@`Am@u E9xL0_fDOE;L)LJfSHH dH%(HD$1Ht$&u$H|$HDH|$D$ 膔D$ HL$dH3 %(uH [JAVAUATIUS\HHHHNHKHHt8HKIHt(L0CHHHHt- fDH#?[]A\A]A^LMH0BHA%BD9}7FHLHBtL1MLHBx{yff.AVAUIATIUSHdH%(H$1H$HD$HD$HD$HD$ HD$(HD$0HD$8HD$@HD$HHD$PHD$XHD$`HD$hHD$pHD$xHDŽ$HDŽ$HDŽ$HtHH1LH,$ÅH2BH|$(BH|$8BH|$pBH|$xBH$BH$BH$BH|$@BH|$HBH|$PBH|$`{BH|$hqBH|$XgBH|$議Ht$H|$(~1Ht$ H|$0o1Ht$1c1Ht$ 1W1H$dH3 %( HĠ[]A\A]A^fDH@HLjHcH>@Ht$LCH,$DHt$LuH$L+uHD$H$1Hx+@HDŽ$HD$DHt$L{Ht$PL+fHt$XL+QHt$`Ll+|HD$PHD$HT$hHt$`Hx9SHD$hHD$HD$`HxGHt$XH|$耫ưHD$HHT$Ht$(LVfHT$ Ht$0L<LH|$ H|$ @HT$(HD$HP0HT$0HP(HD$0HD$(aXMtHD$HD$I$H,$H,$IHD$H?H)AFP1Ht$LMHl$H|$DE2A9D@HE HD$Hp HL*CHt$8L^).HD$Ht$8Hx BHD$Hx :HHD$Hx =HHHD$Hx zHD$HD$H"Ht$pL(Ht$xL(vH$L(^H$Lv(FH$L^(.HD$H$HT$xHt$pHx>zHD$H$HDŽ$H$HD$xHD$pHxB<6HDŽ$HD$HDŽ$1ɭHD$HHt$@L'nHt$HL'YHt$PLt'DHt$XL_'/Ht$`LJ'Ht$hL5'HD$HL$PHT$HHt$@Hx :tXHD$PHD$HHD$@@Ht$L&fDHx1BH,$I~ =DE1MM4$E1w A萡IHSHAV9A1IFH7'I~蟌ADžtMtA>tE1A;5H胋t4E1HnAfD AIHH-AIFAHSAVAUATIUHSp3H XHUHHH9H6IHH6IHL,H8H OXHZ=LLIHL/H "XH ZH-#H=THMQ7H}L0HMH=}T+7H}L0Hu .H[]A\A]A^)H WH%TH#[]A\H8A]1A^)@Hy# H=SH6USHH*HH-HHX H-'#H=SHMg6H7Ht*H7H}H/HuH []"-fHMH=vS6@AWAVAUATUSH8dH%(HD$(1x(IHL΃~EuDL$pIHL=H|$(dH3<%(H8[]A\A]A^A_fDEtxADD$HHT$,HT$DD$IDD$HT$(2HT$DD$HD$AEDD$HT$K=/HE-HT$DD$HIAEatDE1L\3L4HD$1oE1Hu ALDD$HT$ ,HT$DD$tAu)HHE1EjHT$(LLe6ZYgHL$ 1ҾL3FHt$ HcL/E1DD$HT$'HT$DD$HItϋEtH!HuLDD$HT$+DD$HT$@E1At%HuLDD$HT$$HT$DD$HHuHE1jHT$(EL0AZA[P@HHuHLjHT$(E1EE1=0^_HHE1EjHT$(L.AXAY롻/ATIHUSHtHMtItexO[H]LA\@ u;LLHHzt+t&HL[H ]A\ f.[]A\fD[L]LA\1IHtHMtIHH 11D1ffDHfAUATIUHSHHdHHIvxMt%Ht HLL21H[]A\A]DH1[]A\A]ff.ATUHSH~HI x1Ht I$HHU[]A\fATUHSH~HÍx1Ht A$ʉU[]A\@ATUHSH}~HI荁x1HtA$AT$ fU[]A\ATUHSH-~HI=x1HtA$U[]A\DAVIAUATIUHS}IMtI$HtHEL|Hv[A]ˁw=Ls|HH9r:MtIM,$1HtH][]A\A]A^fffATIUHSHH dH%(HD$1HtHHtHHT$Ht$Lx1Ht HD$HEHt$HtH3HLHL$dH3 %(u H []A\+ff.ATUHSHH dH%(HD$1HtHHtHHT$Ht$x9Ht%Ld$I|$"HHEHtHMu.B!1HtHT$HHL$dH3 %(u&H []A\ÐHt$LH`/H뽸+ff.@AVAUIATIUHSH dH%(HD$1HtHHtHEHT$Ht$L|ÅuxH\$Ht%Lt$1HLJ HtITH911LÅuyMt$Ll$I}!HI$HtaMu9B)Ht HD$HEHL$dH3 %(u>H []A\A]A^Ht$LH8.H벻뾻뷻)fU1H1SHH(dH%(HD$1wtHL$dH3 %(uDH([]@Ht$ H{uԋt$ HT$H|uT$ Ht$HJ)f.ATIUHSHHdH%(HD$1H|Åx1HuHL$dH3 %(uH[]A\H<$HL-(fATUHHSHZxHIy[LHH]A\]ff.fAVIIHAU1I1ATUHSH0dH%(HD$(1Ld$MoD$HBHD$ E!u)HL$(dH3 %(H0[]A\A]A^fDoMHEHcLHHT$A $ID$i{x=sH|$MMHcH 9uL|rhYOs'HHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$H$HD$HD$ D$0HD$HHL$dH3 %(uH&ff.SHHdH%(HD$1HzxjH$HH8HH$H0PHH$H(PHH$H PHH$HPHH$HPHH$HPH$X1HL$dH3 %(uH[%ff.SHdH%(HD$1HXyx'H$H$PH$xH$X1HL$dH3 %(uH[%fSHdH%(HD$1HxxH$8H$X1HL$dH3 %(uH[*%f.SHdH%(HD$1HxxH$1HL$dH3 %(uH[$ATUSHdH%(HD$1HHIHHs%xŅx1H$1H$PH$PH$XHuHL$dH3 %(u+H[]A\H$HLHxm($ff.U1HSHHHt HQHHHH[] ff.fHt7ATUHHSHUsHIzt[LHH]A\1fATUSH0dH%(HD$(1HHHHHT$ Ht$Ht"HL$(dH3 %(H0[]A\DHt$ H|$kIHtSHD$ HHpvuHL)lu LeLD$ mD$ fDtj"AVAUATUSHdH%(HD$1HHHHuffDHHtVEtHDDItuAŅyIHt$dH34%(DH[]A\A]A^@HE1E1muAŅxAH$ H$JH$bH$BEtH$@E1HtH$HHJ| %gA\o!ff.@ATIUHSHH dH%(HD$1HT$Ht$x9Ht$HuN1Ht HD$HEMtI$HHtHL$dH3 %(utH []A\fDHD$xOHw?u1u9 fD8uHHD$HuqHt`놸|f fDHBAWAVIAUIATIUS1Hf.HHFL1HkH9I)DC >L1HFII9t'M9wLIH=F"I9uL fDL.HH9tBI9vE<D|$AǀuT$HDP@tLDHBH9uDL H(I9H[]A\A]A^A_L ATUHSHnHپHIHE1HynHIo[HL]HA\\ff.USHH(dH%(HD$1.nHHSofokED$)$Ht}HHH9wcH|-HtT1f.  P  LPHH9uhHt$dH34%(u5H([]@1@HD$dH3%(uH(H==[]~fAUATUHSHJmHHonHIHH9wnHHSHHHL$LHHt?LHHLtHH[]A\A]ÐHHLnHVH1[H]A\A]fDHH==[]A\A]f.AUIHATIUSH$H1HuH[]A\A]H HHt}HHLxuHcHL8x,HHHHH1[]A\A]DHHHD$ HjD$ H[]A\A]øWHHHOH73ff.fATUSHlHHekHtpHHtH1HHkHtfLcJT%H9uHHHHt8HMupH[]A\DHHtHf1[]HA\fDH{HHtHHHaHHfLf.HFH=wT?u?Ht*IHHHHE1HLu1H1D쐸f.f.ATUSH dH%(HD$1HtgHHHT$Ht$Ņu&IHtNt$H|$HHt8L#HL$dH3 %(u2H []A\HT$Ht$LATIUHSHH dH%(HD$1HT$Ht$|xHt$H|$LHtHL$dH3 %(u'H []A\fD11HSATIHUHSH0dH%(HD$(1HNHHT$ Ht$LHxTHdHt$ H|$HHu3HH0H߃uI11L7H߉D$ D$ HL$(dH3 %(uH0[]A\۸gAVIAUATUHHSH dH%(H$1XILd$LAD$It$9E~D$H)LHcHxAL1H$dH3 %(uQH []A\A]A^f.LD$ D$ @fD@AWIAVIAUIATUSHdH%(H$1jHIE11ɺLLHVHH=ILIILL+HH9uS> HLLHLH$dH3 %(u?HĘ[]A\A]A^A_ @H 볽5DATUHHSHHI/ [LHH]A\f.AWE1AVL5<AUATE1USHY#Ht$@|$ f.CuaT$tCtRLMt D$HC'LLLdH$It$H$HIt;H<(HLMH(L3MuHL[]A\A]A^A_f.LE1UGG IH? H5;€tA@ @GGuGtfDG@GDfUHH=a;SH#HH(H;HtHluHH[]fD1HH[]ff.AVAUATUSHdH%(HD$1Ht?u&1HT$dH3%(H[]A\A]A^kIH$HtIH52LHHt_8L-:tSfH #L@H(H;HtDHuCu2H52LHHt8uLn @@LX -ff.1fAWIAVEAUMATUSHHHHT$HIAG1ҋt$PAt$A$A9o MtHAWu7GM$Ht$I|$&ŅI|$fD9M$uąAW IgHID$HE1|$PLLA1I|$tEAGtL I|$t"~h9tdI|$uTI|$I|$L纠L H[]A\A]A^A_fDI|$HT$11A7tL#1@E;wrM$D냽fAWIAVEAUATIUHSDHHdH%(HD$1Dl$PGPEuC&D1wH}II4DEub1fDD;oHL$dH3 %(LH[]A\A]A^A_fDEH}APAU>^_f.H}111qEtDH}DHI ]efDH}HL$tԋMtUt!H}1LxLLH@AHL1f.DH}DHLuSU;@H@uAvȉ1HÐHtgHHt[S@Hu8uTH{HCHH H[fDHH 뵐HH ff.H@uu HAf.1ff.fAUATUSHHEtH1H[]A\A]fDt$Ho1H[]A\A]fuHHIItxHcL9uDMH{uLufDL¾fUff.AUATUSHHE t1H[]A\A]HHII~)HcL9u@EH{t'Luf.Luf.PXHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ $D$0HD$Of.Dv#DHtaATIH=#3U1SHt#fDHH{Ht(LuHcHs#[HD(]A\D[]A\øt+Hs#H2f.H9ztHBHuH2DHtaATIH=2U1SHr#fDHH{Ht(L`uHcHr#[HD(]A\D[]A\øt+Hir#H2f.H9ztHBHuH1DPXH<ff.HH=I#Ht5̓#Eu( #u> H 2HcH>fH#H# #tHb#fHH4@*#### ʂ#PPl@#T@#<@#$@j# @R#@:#@H#H8fH0H#H81!H0ff.AH=,#tw=#1@1Df#t 1=#DS1AH tT#[8nHپH/IH#H81KH=u#H5f#ff.fUHAWAVAUATSH(dH%(HE19=Ӏ#IIpIŋH /HcH>fDžL .H=׀#MMHLHHo=4#HLɃ!L=u#MHa#HR#LAL=K#AEHEdH3%(=He[A\A]A^A_]Dž8fDžL - f.L w-fDD]#DžEL E-fD5#DžEL df.DžL ;{f.=~#H=C#~#H,BL1H,f@H1AWLLW5LMMHHHpAXAYH1HATAL#,HmHڋ H!%t=}#DHJHDY@H^HH)HfDHa}#H8ff.HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ HD$$D$0HD$dH3%(uHff.PXHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ $D$0HD$ ff.@HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ HD$$D$0KHD$dH3%(uHNff.HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ HD$$D$0{HD$dH3%(uH~ff.HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ HD$$D$0HD$dH3%(uHff.HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ HD$$D$0HD$dH3%(uHff.HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ HD$$D$0 HD$dH3%(uHff.HHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$H$HD$HD$ HD$D$0HHD$dH3%(uHKf.ATUSHtF<*tRt-8tøtDMHu2t-LLrt H[]A\A]f.1H[]A\A]AUIATI@UHSHHHILL H tfHtIH @HH!HHHÃtYHqH[]A\A]@HHH[]A\A]1HtHP11HÉ[]A\A]fHQLLff.fAWAVAUATUSHHHT$dH%(H$x1HH\$(IHD$ H5HHD$HD$(H8AL|$0H-u u8t&II)=HHKDEjHuH|$ H5HH|$OHH8L|$0AD$IlMEufDII9tI6HuHH|$HtHT$ D)HHL$LH|$H$xdH3 %(HHĈ[]A\A]A^A_DH|$H5sHHt 8CH\$Ht L\L10H|$&@A(DL(IE1fDf1DAWAVAUIATUSH(dH%(H$1D$ H=H#H=HH=jHH=UHHn#H8HH|$H@1I,AąI |$|$ IąLH1H1 A<$gHH=H1L8f.LnfD1H$dH3 %(HH([]A\A]A^A_ÐH=1:AąHt$~DLd$ٺLLHnLLHW@@v1_uH=f.H=6H@Hl#H:H88H=H1=[8H5H=6H1uvILtdLD$ LL|tOT$ fA;udftnf u8I@IQI@ 8uqHHL9u1AI9L$4t wffDHL$8dH3 %(uRHHfDf uL$$AQ19tʸ9wwff.AT1AUSxZʼnDt6H= 1ھD1ŃtI1[]A\@1H= b[]A\8DH=b H1f8DH=H1tfSu _8u [A[f.USHdH%(HD$1HLD$D$H<$tSH=7 1$AHߺt5HD$dH3%(ulH[]fDH= 1`fD8H=H1;f[8H=H1Cff.UASHdH%(HD$1HL$D$t1HT$dH3%(u*H[]É84H=H1f.1fH1H=oJHf1DU0HSH$H}HHH}HCH}HCECECH} HC H}(HC(HH[]ff.S1HHdH%(HD$1HeH<$tH5 H/Ht*@fHT$dH3%(uH[f@AUATIUSHdH%(HD$1H$HtrH:HIDH1Hx1LL;tWHT$dH3%(ucH[]A\A]fH5 t1HLIH<$u fD뢐L1LDAWAVAUIATUSH(dH%(HD$1&MA}HHD$E1AHHD$ID9"aHt$ LHT$HL9}"=HHBHD$HtDH|$HHt89=E9s]H5H=1qHwHAfDH$0 H$8dH3<%(Hx[]A\A]A^A_EtD$EtHt$ D$/w.ƒD$II8~H5H=1ۿLD$ I@HD$ H5H=1賿H5H=1螿EtD$H5H=R1{ff.7AT1H=USAĉh1u8 Hu؉Dοuɋ}QHDHHD#H811A []A\D[D]A\d8HHff.AWAVAUATUSHdH%(HD$1HLt6HILIMtHIHl$L=fD MH1HLHL~L9uHL$dH3 %(Lu'H[]A\A]A^A_H=tI f.HHDff@HH7DΉ77fff7@MbHHciH)iHcHwf.SHH dH%(HD$1vD#uzHuHD$dH3%(u|H [H޿Ӿt1Hžt\8H=H1D#f.H1fH$HHiD$HCtxUHSHH(dH%(HD$1HHt$HS㥛 HH?HH$H+EHHH)H+My HH@BHS㥛 iHH?HHH)ʍ)HD$dH3%(uH([]f.AWAVAUATIUSH8dH%(HD$(1Ll$ILIHD$HL$HS㥛 \$H$HH?HfD$HH)HT$H8LD}LLD}JuA uCtA$yEnHL$(dH3 %(u"H8[]A\A]A^A_1ոAUAATIUSHdH%(HD$1$D$HHͅDL#tC8sIuwHthHLD$߾ŃtO$u=1sHL$dH3 %(uIH[]A\A]fDDLA$A<$H=H1JSHH dH%(HD$1HLH$HL$HS㥛 HHH?HHH)HSHD$dH3%(uH [FfDH(dH%(HD$1HH$HT$dH3%(uH(fH(dH%(HD$1HffHD$dH3%(H* $H*D$^eXuH(DHHwHWHGHG(HG HG8HG0AUATUSHHHHwdH%(HD$81H HwuH{(H|$ H;ss"HD$8dH3%(UHH[]A\A]Hl$ HHL$(Ht$ HS㥛 H+s HH?Hs0HHH)H+S(HS8yHH@BHs0HS8Hu H{8wHCHHCgfH*HCY"HafH*^ f/H,H4ׂCHHHHi@BHS H)H9HK(uH;K8H)H+K8HS0HK8yHH@BHS0HK8HHCH3HHH9HBHCHiH$Ll$IHL$+8ufoT$)$LLtHCH,HD$ HL$(HS㥛 HC HH?HHH)HS( f.\H,H?DHfH*XHƒfHH H*XfH'HCH;HH4H9HGHCff.UHH=SHHHt.IL1HHH~HH9r1HHHmHvH[]H5H=1軴ff.ATUSHdH%(HD$1HIHa*#1H5fDHHsHt8LxuHH*#D(HL$dH3 %(u9H[]A\@1HLA<$tH$:uH=vWteH)#HfDH9ztGHBHuHALH=J;#EH>;#HfHUSHt$HWHHU]uH[]@AVAUATAUպlSHHHĀdH%(HD$x1IHD$MEI}IEfLH)lHLf$Hk1ҾAƅtYnLDDD&H\$xdH3%(DMH[]A\A]A^f.HXt8t胻HH="H1Ϻqf.HH51AH=袺ͽ$d载D HDHH5H=H1dDAVDexA(HÉֺH5OH=^H1+BD HD褺HH5H=H1DA۲H3DeeDSH5H=HdH%(HD$1D$XHL$Aߺ)輵tHD$dH3%(u&H[Ð{8H=H13̼ff.ATUSHHHAHE1A8HHHtHH購E1E9CH{HuHH8usHt zueH{HuHHE18uJHt QuHH$Huĉ٩fATUHSHHpdH%(HD$h1HH tIH Hu H֚LD$LHL$HT$ML觡HD$HcT$Ht$ 1HD$ 蔔IH3IH"HD$HtCHT$0Ht$(LѕHt$(LDÅuHt$0L1ÅH|$趙H|$LL|HL$8dH3 %(HH[]A\A]A^A_HD$E1E1E1HD$DHD$mD념HxHl$HHzÅ>LHzÅ)HHl$H5M,{AătvHLAHH1Ht$8HVrtrE1AE1L~H|$0H|LDH|$ H|$(H|$8FHL$HdH3 %(DHX[]A\A]A^A_Ht$0HSyyLl$8H^HLtE1AE1XfDH0HH|$0Ht$ H|$0Ht$(с4IH HT$(Ht$ HHD$(1LHD$ 袠Hc肓IHttHt$@LHD$@HD$sLT$D$H|$0hLT$H蕒LT$Ht%Hs HLT$HD$%L\$LT$tsA5E1AE1!AOADE1AE1AAADL$MDLLLLT$L\$0L\$ALpLT$fDIH=0L€tD H=LƸ€t$ H=LIu`H=L€tH"H=L€t%"H=!L€ҺDff.AWAVAUATUSH8Ht$dH%(HD$(1H HH?AąH{HL$ 11NH{HT$Ht$KƗIHHHIHH$HH|$ 輓IHH|$覓HD$HH諍L融9Ht$HH)t1MHLLŒAH蜓L蔓H<$苓L胓H|$yLHT$(dH3%(DH8[]A\A]A^A_HD$AA{Ht$HHkYH4$1MHL=H{H$LHL$HHL$DDHEHELEHL$H$A$DA耗AWIAVAUIATIUSH8H $LD$dH%(HD$(1HD$ HtHMtI$Mt A9kMIvA?zaIIޏ=讍IHIwH6LL$L$LHL$HT$ LE1AHcH$EHcT$9AmAIHtZH5tH5tH5HELrADžu H$Ht$ L/qADž@H|$ H4$L*HL$(dH3 %(DH8[]A\A]A^A_@LHMtIt Af)Ht$ HcH<H|$ HH詒@LD$Mt-Hc跌I$Ht6Hc\$LI<$HHRMHcD$IE ADADAȔAWAVAUATUSHdH%(HD$x1HD$HD$ HD$(HwHHi?HIIMMKHBM9H{0=eHLHH1Ht$HhuyH|$!AǃMtHH=Lt.L^A9tLd$ HT$(,HT$ Ht$(HgtrLd$ HT$(HL}H|$融HH|$0@@蒐HL$xdH3 %(HĈ[]A\A]A^A_f.HHt3Ld$ HT$(|Ld$ HT$(a@H{Ld$ HcI9r<菉IHtHsHLd$ HT$( fDHT$(HHL$HH$菕H$HL$HHD$(HHH $L)H<IHT$ ڐH|$(HLfH $HL$ TfDLd$ HT$(i@HT$(VftfDLL$ LH\$(L $jH‹HHPHw^L $MtUI9wPILLDLLLd$ HT$(HT$(Ld$ %f.@SH@dH%(HD$81R^mH]tGחuXH0HmZ00HHD$8dH3%(u!H@[H=LH1uH=p1AVIAUL-]"ATE1ULSH&f.HH]AHt/HwHHLuI[]CD%A\A]A^[]A\A]A^fAWAVAUATUSHH8Ht$dH%(HD$(1Hx(HILd$%HD$E1H$Ml$C7HIt^C%u}D$%CtqH4$LHkD$&D$'HD$ʌL9l$uCSC7HfDHD$C7L8DHL$(dH3 %(u&H8[]A\A]A^A_ÐLѸŎDAWAVIAUIATUSHHdH%(HD$1IHMIHl$BH1ELk蜐HLdu8HI9t_3LAHt8tHLdtLE1EHL$dH3 %(Lu,H[]A\A]A^A_H5DL|dt豍AUATUSHdH%(HD$1Ht}HHHIIIHHtiHHMMPHx1HAXZH{Et&H$HT$dH3%(u&H[]A\A]1@L%LATUHS1HHwdH%(HD$1H$H LeMt?L HZLHHHH5HHHLeMt?LHLHHHvH5fHHHZLe(MLuLHHCHWH5HH:IHHm0HqH)HHHHH51HIHHLLc@Hm0HH˅HHaHHH51HL`IHHtRHL%2LELHHT1踅HA=H5Et H$f.LHD1HL$dH3 %(upH[]A\DH?HHH51HHHL ~M:fL fLM-If@ ff.fHtoUSHHH?FH{0=H{4H{+H{ "H{(Hk8HtH(HHsHH[]AWAVAUATUHSHHhdH%(HD$X1ӃHH=HAAAljD$,HH߈HL$HH5IHHHL$8HD$0^HL$PHxHL$HHE L%pHD$HE(HD$ fDHT$H5IH{HSAŃGAH "LHHHMDAKcL>L|$HE Hu?LLwIH1H=H5l1]DHEL}HtHHH=b1ˆD$,H|$09HL$XdH3 %(D$,Hh[]A\A]A^A_fL}HE\H}LHLD$LD$HH=LHEH5!1誈1L|$ HE(fH=LH511iHT$81H5XL%;"vHHf.HT$H5GOHHHAƃHI<0H|Au5H}0Hu0HU0H=ƿ1H5=ȇ1@Au:H}8Hu8H=H51葇1Jf.H=HH5߼11!H5ʼH=˽1|D$, H5H=ɽ1躄D$,H5H=71蘄D$,H5dH=1vD$,LH5?H=1QD$,HH5H=1́D$,fH5H=ɼ1誁D$,D8@u7UHSHH1Hu H{@H1[]fDf.AWfIAV1EAUATIUSDHH $Ll$0Hl$PdH%(HD$x1t$4LHD$8)D$P)D$`D$8D$0m HHL$EHH$OLEtxM\$@1LLD$ LHD$LT$L\$L\$DLH4$L;HT$8LLLT$LHD$LHLD$ Ff.HT$8LLLD$HD$L$L$HD$LLHLD$AHLLLD$LT$@L׺螀L茀 HzD$H\$xdH3%(HĈ[]A\A]A^A_H<$LT$@ALHLD$HHLLT$HD$LT$Ht$L~LT$LD$D$uHKL$HD$LD$EuCHT$8LLL$zHT$LHt$L$D$KID$@1LLT$(HHD$ /HD$ DLH4$HXHT$8LLHT$LHt$4LT$(f.ATUSH dH%(HD$1AvfH_@IHHt$T$H1D$HT$ LH߹D$ ȉE1HL$dH3 %(uH []A\fDLf.fAWAVIAUIATIULSHH(dH%(HD$1HtHMtI$Hu;feLC(MLD$SHFL}@LL|$-xHH4LD$HLHt$HA 1ɅuH9l$wNHHHL}HzHT$dH3%(DH([]A\A]A^A_fDsAHHtH5KHHD$[HL$AuHT$HHH)[HL$A^HlMHL$Ht2H7wHL$HI$tGHqI<$HH҃HL$MImAAARfAWAVAUATUSHXdH%(HD$H1HD$(HD$@HH?HIIM}H}0IHMHLHHHt$(1HSAƅt;HH|$(xHL$HdH3 %(DHX[]A\A]A^A_HT$8Ht$0HQAƅuH|$( H5qAuHAHsLD$8AI@`O, LD$ALLl$@auHD$H8LKuHD$HLt$LD$Ht$0LLLD$LLK<ρLE0LLH|$Ht$@AƅL9d$@DEL|$LHLzL~wL|$HLLwzL_wf.A|DL|$HLL9zL!wAAHH51AH=}R|f.t'~t(u+vfDuVzfDr1ff.fATH5vIU1SH"H +tHsLru[]A\ff.w'HcHH"HH1;:uHztHBÐ1ff.fw'HcHHZ"HH1;:uHztHBÐ1ff.fHHpHguHHATUSw{HcHHH"H;8ucL`MtZ|HHtA"xHEHtAAH}1H(otH}{H eD1H[]A\fDH1tff.9u&HHHwHxvHDf.HHsEHf.ATIHUSHHHI|$HHOs[]A\Ef.SHdH%(HD$1wpHcHIHo"L;uXHxtQT$H9wCHXH9w:HHT$su7D$H9H\$dH3%(uH[ffDy@HtSHH:zH߾[Lc@ATUSHdH%(HD$1wcIHcHIH "L;9uHLIMt^HպI9wQL9Aw,HDD$AE1HL$LIHH_vHt$dH34%(uH[]A\fD\xff.AVIAUIATUHSHHI[MLLH]A\A]A^f.1fDD D HH uDDLD HH@uI@vfDD D HI9uLHAUATUHSH HHdH%(H$1L$IA LH.$LLL$$@$~LL(LH#1fDTT HH u1H$dH3 %(uH[]A\A]vDAWAVIֺ AUIATM}@ULSHHHt$L$LLdH%(H$1K$LL$$M9@$Mt1A4@t@HI9u1I|$ fD4@t HH uL$IU LHs Ll$LLL$H$LHHD$]'HD$LH!1A  HH uHU MHHH$PL$HqHLH$~HLHLLuLLLH$LH1fTT HH u1H$dH3<%(uHĨ[]A\A]A^A_tAWAVAUATUSHdH%(H$x1HH?AHILIL$HMLULHILH$0Lt$HHD$WHD$LHgL$Iu LLD$LD$LLH$H XL$HHD$ HD$LHLLHKuTHt 11z@A|=@|5rHH9rI $H$xdH3%(uAHĈ[]A\A]A^A_fD11HtDVHH9r본Zsf.W22V W2V W2V W2V W2V W2V W2V W2V W 2V W 2V W 2V W 2V W 2V W2V W2V W2V W2V W2V W2V W2V W2V W2V W2V W2V W2V W2V W2V W2V W2V W2V W2V HHA@u1HÉH5LH=H1{ef.1@AWAVAUATUSHDQD dH%(H$1DYDA DDADaAA DA\$H Ld$DaAA DAALd$ AA DaICA?Gu HH;W VW$VW(V W,PH  H ʉPH H H ʉWP H  H H  ʉWP H H @  ЉG ff.fHtG0BG4G8FG<1G0G4G8FG<AWAVAUATUSHH$Ht$0HT$($dH4%(H$177W4GH߃K4@ ‰D$ D$ K4LK4HLHl$K4HHIHHH?H$dH3%(uHĨ[]A\A]A^A_9VfAWAVAUATIUHM$SHHHdH%(H$1L$L$EHLH$D$ LLH{=LHpHLL"HHHH$HHqH$HHH $ZH $HLH\$HHLLHHHHHHHLHHHHHHHHLH$LHHHHLH LHHHHgLH L 1Ҁ|$9t LLI$LL1H$dH3 %(u?HĨ[]A\A]A^A_fDH:LLYfS@AUATUHSHHHdH%(H$1L$ILHLLnHLH$HTHHL 0EH$dH3%(uHĘ[]A\A]ESDUSHH^ HH t1H[]AWAVAUATUSHH $HH $HLD$(HIIHT$L$0H\$0LMdH%(H$"1 I I I L@H$0HLHLIHHHD$LIH HT$LHIHHHL$XLL$$HMI LL@H$0 HLHzI HHHD$ H$I H` Ht$LH@I HH$I H. Ht$LHIHH$IH LHMZLHoH$IH LLHIH?H$IH HD$ HHIH H$IHj Ht$LHJIHH$IH8 LLHMHLL,$IHL LLHIHLnLIH Ht$LHIH=LIH Ht$LH{IH LHL,$IL$0"^ LD$(LMe}Ht$L$"H}HH H0H0HEHHHH)H)H{IHHLHHaHH6A<$uOHHM9u?HHL H$"dH3%(uPH"[]A\A]A^A_HHH$HLV A$HHH L/{eNDAWAVIAUMATUSHXdH%(H$H1H$L$HHD$hLd$pH$$1LH$pZIHHD$ILLHHD$@H$pHL$HH$pHL$XH$HL$PH$pHL$0H$HL$H$HL$8H$HL$(H$pHL$ IHL$HL$hHLHD$`HT$H|$HLLLLLLHYHt$H|$XLwHt$H|$PL5HT$XLLHT$PHHH|$0LH5H|$LHHT$HHt$@HSH3HHAHD$H|$8HHHt$8H|$(HHt$8H|$ HHT$(Ht$0LHT$ Ht$LHT$(Ht$ H|$HT$Ht$0H|$@HD$`HHUH$HdH3%(uHX[]A\A]A^A_Kf.DHO|G|ƒG|AADPH PHH9uuDG|HWxHDƃH4!HAH9u-!މA)DG|DDHD)HBH9u)71f.HH ug|f.HoIoNIoV o^0of@onPLdH%(H$1ov`o~p)$)L$)T$ )\$0)d$@)l$P)t$`)|$pLLIfHHWH9uH$dH3%(uHĘIff.HooOIoW o_0og@ooPdH%(H$1ow`opL)$)L$)T$ )\$0)d$@)l$P)t$`)|$p $IIID9HW!H9uH$dH34%(uHĘ Iff.fHooOoW o_0IdH%(H$1og@ooP)$ow`op)L$LooN)T$ )\$0oV o^0)d$@of@)l$PonP)t$`ov`)$)$)$)$)$)$)|$p)$o~p)$L$LLIfDHHH9t#9t1H$dH34%(uHøG@D1A 1D!1ʉHH=uHooOoW o_0og@ooPdH%(H$1ow`opH)$)L$)T$ )\$0)d$@)l$P)t$`)|$p$H$dH3%(uHĘFDHGHfDHH9uHDHH9u1f.   HH=ufDHHdH%(H$1FIMH|$FxD$|I@@HHHL9u1fDA +  HH=uH$dH3%(u HĘ3Eff.HdH%(H$1HHLDHHHL9uHH@HH9uHH$dH3%(uHĘ9EfHdH%(H$1IILDHH9uIML@E14A4HH=uHII9uIq|HfDAIHAAPAL9uڋD$|HO|ƒG|AADPHf PHH9ut G|H$dH3%(uH Df.H@AWHAVIAUATUSH(H|$Ld$H$LH$L$L$dH%(H$1`LLHRHHHDLHL6L$LLLL$LLH LLHLLHHHHHHHHHHHHHLHLLLHHHHAHHHxHHHjAuL$LHA LHLLH:HHH,@HHHHHH AuLHHAHHHHHHHHHHHHAuL$LHALLLHHHH|@HHHjHHH\AuL$LHA1L:LLH,HHHfDHHH HHHAuLHHAHHHHHHfDHHHHHHAuLHHHHHHHHtHHHfHHHXHHHJH|$LH:H$dH3%(uH([]A\A]A^A_@@AWHAVIAUIATUSHdH%(H$1HH$L$HL$HHHHHHLHLHLLLLHL$iLHL[LLHMHHH?uL$LH޽ LLLHHHHuL$LH޽LLLH@HHHuLHH߽ HHH@HHHuL$LH޽1LjLLH\@HHHJuL$LH޽cL*LLH@HHH uLHH߽1HHH@HHHuLHHHHHHHHLHLH$dH3%(uHĘ[]A\A]A^A_=f.AWAVAUATUSHdH%(H$1"D$,"D$0"D$4"D$8޼"D$<ؼ"D$@Ҽ"D$D̼"D$HƼ"D$L"D$P"D$T"D$X" ""D$ D$lL$$ "D$(HQ"HD$HD$p\$\L$hHD$`f.D$XD$ Dt$hD|$HDD$8Dd$TD$t$DD$\DT$4|$PT$$\$@D\$0DL$LL$(l$"G 9"G4"G/"G*"G%"Hexpand 3H"H2-byte kH߸"fDU(SH8dH%(HD$(1HHz:"oH-"HHHu(fD 0HHH9uH=_"H=s"fH_")8")A"Hߺ((51HHH"Hܳ"jHD$(dH3%(u0H8[]DHH-ֳ""H{ ^'8B-H=k H1+ʷ"AVAUATIUSL5b"f((NLc-Mt1fDAA2AHI9uL)MH=6"fH"")")"HѲ"[]A\A]A^@]ff.H0H"Hv "uLֶ"Hr"HvTHHH)Hq"H R"H‹Hf.;"uH)"HH"Hw H=$"H=8"fH")"()"oAWAVAUIATUHSH/H"H9s ""AHuUfDcH=|"7H=" fH|")U")^"H+"Ht\H"HtH9IMLLFH"I)ILLML)91LLW*L)Hհ"_HuH[]A\A]A^A_; "H)H"D1ATAUSH"/fHpH)HH5R"9-H."Hv "t;x"tfp"[H "HwH="H=&"fH ")"()"aDHH"1[]AA\@1҉f.HH"H83HtHH=c37I*f1f1fATUSH1H@dH%(H$81H$0tuH9$tII1LHI|$51L1H$$_0t*H$HH$8dH3 %(uH@[]A\H2fH9t*HH1H~#H H @81!1@H1 5/31LH5fAUATUSHHt-IIH'xH'Iw HL9tfD1H[]A\A]ÐMtMtH/LLH;6fAUATUSHHt-IIH'xH'Iw HL9tfD1H[]A\A]ÐMtMtHI5LLH5fUSHDGLOHD_LDÉA@A0AD߃<@A?ǸHw\:f.EIHHAyEYDAA0@<ADA?@H9A?GADDE:L߃?\A<:DD@|HrHuH9[]DA9HEAEAAAK|>HD$ Ht$@Kt>Ht$`Kt>Lt$pH|$PLMHt$XH|$HD$D$ |$ Ht$@AHT$8Ht$`Ht$X&Ht$P@>Ht$0LUH<$LLH|$fo$fo$)D$p)$tbH\$(LML|$ LLH<$LLYHL 0HHH9uIM9uIH\$(HD$H9HGHD$ LD$ PL91H|$HHt$h DHI9vjLH H9uH)\$D$ H|$ H$H|$0!1H$8dH3<%(u*HH[]A\A]A^A_H)D$륃D$ c'S33AAAFDD3A3D DD1AAAAEFFDD3F 3 D1AAAAEFFDD3F 3D1AAAAEFFDD3F 3D1AAAAEFFDD3F 3D1AAAAEFFDD3F 3D1AAAAEFFDD3F 3 D1AAAAEFFDD3F 3$D1AAAAEFFDD3F D13(AAAAEFFDD3F 3,D1AAAAEFFDD3F 30D1AAAAEFFDD3F 34D1AAAAEFFDD3F 38D1AAAAEFFDD3F 3<D1AAAAEFFDD3F 3@D1A[AAFDD33DD DD1ɉ ff.@S3D3AAAFDD3A3<D DD1AAAAEFFDD3F 38D1AAAAEFFDD3F 34D1AAAAEFFDD3F 30D1AAAAEFFDD3F 3,D1AAAAEFFDD3F 3(D1AAAAEFFDD3F 3$D1AAAAEFFDD3F 3 D1AAAAEFFDD3F D13AAAAEFFDD3F 3D1AAAAEFFDD3F 3D1AAAAEFFDD3F 3D1AAAAEFFDD3F 3 D1AAAAEFFDD3F 3D1AAAAEFFDD3F 3D1A[AAFDD33D DD1ɉ ff.HHHH5HGHH8HH)H)΁HHff. A1f9v$DɃIE D Auf fDIff.AULLHATMUSH1HdH%(HD$1@1f9DǃIED uA1IM9u$Ld$HD$@LHH$IABD$ABM9uLLMDLHHj$IABD$ABM9uIM9uHD$dH3%(uH[]A\A]I-&fDAWIAAVI1AULHATUSHIH(dH%(HD$11fA9H? uA1IM9u1E1Ld$E1Hl$1fE9AAL6 uD1D$1fE9YAAL6 u1HLL߉D$HDD$T$DCSI9vIIHD$Lf1fE9AAL? @uD1D$1fE9~AAL? @u1HLL߉D$ImDD$T$EEAUI9sIH9\$QHD$dH3%(uZH([]A\A]A^A_fLAfLA>fHϾ;LALAffH HIHH5HOH H8HHH)H)΁HHLH;ff.ft7SIIH\DIRLLAII9u[fDff.@ft7SIIH\DIRLLII9u[fDff.@AUATUSHdH%(HD$1HIAE1Ld$HfDALHHAȉ$ABȉD$l$IABAJAR‹D$ARAJARABARE9wHD$dH3%(u H[]A\A]fAUATUSHdH%(HD$1HIAE1Ld$HfDALHHAȉ$ABȉD$$IABAJAR‹D$ARAJARABARE9wHD$dH3%(u H[]A\A]BfAUATUSHdH%(HD$1IHAE1Ld$H1@A0HHuALHHAȉ$ABȉD$$L։ABA AJ̋D$AJABAJAJIBAJE9v Il@HD$dH3%(u H[]A\A]HAVIAUATIUSHdH%(HD$1LlLTAAHl$HHM4DAHHLȉ$ABȉD$$ABA AJ̋D$AJABAJAJ1AJfAA2TAHHuIIM9oAHHLȉ$AFȉD$7$AD$AF1 @AA2AHHuHD$dH3%(uH[]A\A]A^MHl$HfHtSHHH[fDAUAATU)SӉ)AԉAԙADuD)AE~`HcAAHD~8LE1ADA)9DAOALcNM ML MD9uAHE9u[]A\A]AAWAVAUATUSH|$HI5"HӅ=""<-D$ <+H"R"L""D5C"D9t$IcM|I/}-H-."L$ H*4H"AHD[]A\A]A^A_fD."Ѝ"H=-  "H"<-D$ Hݔ"HH"D EHHhEH-j"A:uI"G"t ;:D=+"A?(AV"IAHV" DeE"-HHD=ь"A="HH-Ì"A-E_@-HsHx:A-6 x"Qx:d"9T$HcƒIDH"o*"HH2-!"H."u)t-"""DLDQ))݋"D=ŋ"At ="DHEMH"@-1;HEH-"A:4A-ZDH߈L$ @L$ Hx:tdLA"@DH= 1f.DD5"@?E1@5"VgH- "H0NJ"H̊"HH-"H0H""t;:tDH= 1rD=k"E1;:AG|:_I"AVHc0D"HI""LDD))"AZf.HcH"f.AWIAVAUATUS˃ HxH$Ht$pH$L$dH%(H$h12\$ HD$`MH$0L5q"HD$xH$8H$H$HD$1fDHcЃAAuL$ \$H$D$hH$H$fH$HDŽ$HD$XH$)$H@0@8))@)@ )$)$DŽ$DŽ$DŽ$L|$xHT$HnH$0DŽ$L H$LHHD$8q H$pLHHD$(T H$L HHD$@7 H$LHHD$H H$PLHHD$P H$LHHD$ H$LHHD$ H$0LHHD$0 T$ H$Hl$pL$LlD$D$l!D$A t$A tI9LsHtIHD$`ED $H4$H|$X< Ht$1ҿ Ht$81ҿ Ht$(1ҿ Ht$H1ҿ Ht$@1ҿ Ht$P1ҿ Ht$1ҿ Ht$ 1ҿ} Ht$01ҿl 11fDAt0HcAtEw׃DEtHD$`D IHED$pH$hdH3 %(FHx[]A\A]A^A_þH=a51ÃTu?H$D$hH$X|$hH58#^H$HH$L H$ fo$fo$fo$H$$()$)$)$$D$u$H$HHD$XH$ L|$xHT$HzH$0DŽ$LH$LHHD$8}H$pLHHD$(`H$L HHD$@CH$LHHD$H&H$PLHHD$P H$LHHD$H$LHHD$ H$0LHHD$0\$hL$L|$hLH/ D$lt AD$AHH$DPtED$t H$H$AD$tEHB$AHD}-"L,$LuHD$`8u "t؉-"\$hHD$`1HD$`1jf.HsAUIATUHSHHH9@H9@t HLH9@Mt HHI9IHM)HL9wRLZIHLHL HHHHHL[]A\A]HL9vLJ|-1IbHIDE1 @HHDE1@LIHt(HHLR LI<1H)<@HE1[L]A\A]HHDSH?H H8tSHH9uHH)H)tMDHEt'Ht DHHHDEuH)HH[@HHH)H)uHHH[1H1f.DHtGLDHDPHHWtHAL9uHHxuH)HDHDHxuH)HfDAWAVIAUIATIUHSHhdH%(HD$X1H-HD$HD$ HGHD$0HHD$@D8HM9~OHHHDHE1 H|$XdH3<%(Hh[]A\A]A^A_ Ht$LHT$L9t:uHH9tPI9WHH9t\"I9dHtUHED;i@ 1\ "t I9t˹" D "u D;2fHt'1E1f2HA H9u1EÐ1f.AVAAUATIUS\autA@u p@u a@u R@ t2AA( Hff.؃ tv@upt S݃8L@u A$\IÀt A$MIIHHID$H q@?A$^DAT$6@A$\0AD$؃0A\$0AD$ID$[]A\A]A^fA\HcHf@\sID$fA4$&@ATIUSH6@t2H 3H@uD)[]A\@1[]A\ff.AWIAVAUATU1SAHAAH8H|$HT$dH%(HD$(1HDH$DD$|AM|$t ,@u @u @ t9AL$ t$A͋t$Hf cryptokiVersion %d.%d libraryDescription <%s> libraryVersion %d.%d%s: provider %s returned no slotsC_GetSlotList for provider %s failed: %luC_GetTokenInfo for provider %s slot %lu failed: %luC_Finalize for provider %s failed: %lu%s: ignoring uninitialised token in provider %s slot %lu%s: ignoring token not matching label (%s) specified by PKCS#11 URI in slot %lu%s: ignoring token not matching requrested manufacturerID (%s) specified by PKCS#11 URI in slot %luprovider %s slot %lu: label <%s> manufacturerID <%s> model <%s> serial <%s> flags 0x%lxC_OpenSession failed for slot %lu: %lu%s: No keys found. Retrying without label (%s) %s: provider %s returned no keysecdsa_do_signossl_errorpkcs11_k11_freepkcs11_loginpkcs11_check_obj_bool_attribpkcs11_get_keypkcs11_rsa_start_wrapperpkcs11_fetch_rsa_pubkeypkcs11_initialize_providerpkcs11_register_provider_by_uripkcs11_add_provider_by_uripkcs11_del_provider_by_uripkcs11_del_providerpkcs11_provider_unrefpkcs11_module_finalizepkcs11_module_unrefpkcs11_provider_finalizesuccessunexpected internal errormemory allocation failedincomplete messagebignum is negativestring is too largebignum is too largeinsufficient buffer spaceinvalid argumentkey bits do not matchinvalid elliptic curvekey type does not matchelliptic curve does not matchkey lacks certificate datainvalid elliptic curve valueincorrect signatureerror in libcryptoinvalid certificateagent refused operationDH GEX group out of rangedisconnectedno matching cipher foundno matching MAC foundprotocol version mismatchcould not load host keyfile changed while readingbad permissionskey not foundagent not presentagent contains no identitiesKey is revokedConnection closedConnection timed outConnection corruptedProtocol errorInvalid key lengthnumber is too largeunknown errorelliptic curve point is too largeunknown or unsupported key typeplain key provided where certificate requiredunknown/unsupported certificate typeinvalid certificate signing keyunexpected bytes remain after decodingcommunication with agent failedmessage authentication code incorrectno matching compression method foundno matching key exchange method foundno matching host key type foundcould not read protocol versionrekeying not supported by peerpassphrase is too short (minimum five characters)key encrypted using unsupported cipherincorrect passphrase supplied to decrypt private keycertificate does not match keyinternal error: buffer is read-onlyKRL file has invalid magic numbersignature algorithm not supportedt)d)T)D)4)$)))((((((((t(d(T(D(4($(((''''''''t'l'T'D'4'$'''&&&&&&&&t&d&T&D&4&$&&&%)%%s%02xssh-unknownssh-ed25519ED25519,[%s %u][%s] .o+=*BOX@%&#/^SE%s %suserhostrsa-sha2-512Certificate invalid: expiredforever%Y-%m-%dT%H:%M:%Sbefore %safter %sfrom %s to %snonebcryptaes256-ctropenssh-key-v1 point=(NULL) %s: BN_CTX_new failed %s: BN_CTX_get failed x= y=exponent=(NULL)ED25519-CERTssh-rsaRSArsa-sha2-256ssh-dssecdsa-sha2-nistp256ECDSAecdsa-sha2-nistp384ecdsa-sha2-nistp521ssh-rsa-cert-v01@openssh.comRSA-CERTssh-dss-cert-v01@openssh.comECDSA-CERTL;0;8;B;88+::99p9p9p9p9<=(=8=<=X>>>>`>>BxBHB BBxBHB B B B@C CB`C@C CB`CCDCCDC0HHHhHG0HHHhHGKKxKKMK L8K LKK8LKMLKNLLpMLJLpMLJ0N NPN@NpNNQhRQRTccbdccbd4k SIZE_MAXxcalloc: out of memory (allocating %zu bytes)xreallocarray: out of memory (%zu elements of %zu bytes)xrecallocarray: out of memory (%zu elements of %zu bytes)xasprintf: could not allocate memory%s: couldn't parse address %.100s%s: inconsistent mask length for match network "%.100s"%s: empty entry in list "%.100s"%s: list entry "%.100s" too long%s: list entry "%.100s" contains invalid charactersInvalid network entry "%.100s"Inconsistent mask length for network "%.100s"0123456789abcdefABCDEF.:/addr_match_cidr_listaddr_match_list "= " fcntl(%d, F_GETFL): %sfd %d is O_NONBLOCKfd %d setting O_NONBLOCKfd %d is not O_NONBLOCKfd %d clearing O_NONBLOCKfd %d is TCP_NODELAYfd %d setting TCP_NODELAYtcpany[%s]:%dput_host_port: asprintf: %sput_host_port: %s.addargs: argument too longreplacearg: argument too long%s: NULL replacement%s: too many keys%s: string too long%s: invalid format%s: unknown key %%%c/dev/nullCouldn't open /dev/null: %s dup2: %s tohex: length > 65536clock_gettime: %sgetsockopt: %sTMPDIR/tmp/ssh-XXXXXXXXXXXX%s/ssh-XXXXXXXXXXXX%s: template string too shortaf110x%02x%s: socket: %.100sunlink(%s): %.100s%s: set socket %d IPV6_V6ONLYsetsockopt IPV6_V6ONLY: %salready daemonized%s: sshbuf_put_u8: %s%s: malloc failed%s: waitpid: %s%s %s exited on signal %d%s %s failed, status %drealpath %s failed: %s%s is not a regular filedirname() failedcannot stat file %s: %sempty domain name://missing%Y-%m-%d%Y-%m-%dT%H:%M%.4s-%.2s-%.2s%.4s-%.2s-%.2sT%.2s:%.2s%.4s-%.2s-%.2sT%.2s:%.2s:%.2saf12af13af21af22af23af31af32af33af41af42af43cs0cs1cs2cs3cs4cs5cs6cs7eflowdelaythroughputreliabilityfcntl(%d, F_SETFL, O_NONBLOCK): %sfcntl(%d, F_SETFL, ~O_NONBLOCK): %sgetsockopt TCP_NODELAY: %.100ssetsockopt TCP_NODELAY: %.100ssetsockopt SO_REUSEADDR fd %d: %sSetting routing domain is not supported on this platformreplacearg: tried to replace invalid arg %d >= %dtilde_expand_filename: ~username too longtilde_expand_filename: No such user %stilde_expand_filename: No such uid %ldtilde_expand_filename: Path too long%s: path "%s" too long for Unix domain socket%s: cannot bind to path %s: %s%s: cannot listen on path %s: %sbad ownership or modes for file %sbad ownership or modes for directory %sInvalid environment variable "%.100s"child_set_env: too many env varsdomain name "%.100s" starts with invalid characterdomain name "%.100s" contains consecutive separatorsdomain name "%.100s" contains invalid charactersargv_assemblesock_set_v6onlyunix_listenermktemp_protopercent_expandeA.ACOpenSSL version mismatch. Built against %lx, you have %lxPRNG is not seeded%%%02X%s%s%s=%s?;objecttokenmodule-path&pkcs11:%s%s%slibrary-manufacturerpin-valueAALA A Bpkcs11_uri_parseabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-.()abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-.()/%s: The '%s' does not look like PKCS#11 URI%s: Bad arguments. The pkcs11 can't be null%s: pk11-path expected, got EOF%s: The id already set in the PKCS#11 URI%s: Failed to percent-decode CKA_ID: %s%s: Setting CKA_ID = %s from PKCS#11 URI%s: The %s already set in the PKCS#11 URI%s: Setting %s = %s from PKCS#11 URI%s: Unknown part of path in PKCS#11 URI: %s%s: Multiple module-path attributes arenot supported the PKCS#11 URI%s: Setting PKCS11Provider = %s from PKCS#11 URI%s: Multiple pin-value attributes arenot supported the PKCS#11 URI%s: Setting PIN from PKCS#11 URI%s: Unknown part of query in PKCS#11 URI: %s%s: crypto_sign_ed25519_open failed: %dssh_ed25519_verifyMD5SHA1SHA256SHA384SHA512crypto_hash_sha512expand 16-byte kexpand 32-byte k, )c]!!\cX%`-V%`,i\1Sn6i!XfffffffffffffffffffffffffffffffC(N_E 3};=lZL86jF_VQ8dQ9V^)# `"\_HbHbCc:>tI"JgxHh$g&`&iwgpW:IGs 5z%FV= /2a8/2(LlqG'G;i{:N\-Bq_Bg7[/b<xf onys!(lmYYt#3W $+:'#'g7z'jxn:.rpkwRay-@](_py{OD  3mwN`&O~@ORx1}V9 VBil9i:O9-8@Lxzk,4D <zQxjFy) d& j n^Loyr(&=[I]@z#&z$_{7K!E 4a2#UHSc(GZV:0 (KDt:n2?5_nYe]4 p}* `4xewV mWaxIT&N~^lV1 '=}&kyQ\uU 4<3 Ta90!&p13s.dtIHMMH@2A|7-Th+J[Q*KGz|R:k='YCye)Q.y~iYqI</4 ,>e MK;J;`X**zH Fj4,E1=(AvR<N6 Q*b^El~):Y&/&ORG$} [ zul,vY15j4qJ]S&<3dDzCl?"sdI/qiBV{/}{(v/o"_MNW6[R<3ZrK8J-D k->_h("jx)t> -pBzIr2+\T2WT3`eg&4O[F3T&[h<Z7'GIZh#@egDhz4TyT/pN]6To-Ck .d#,.Z;F+41FUC1`x"BjcYT)oz<_e'Or'H~t2(`c6277t%NgSYnd4dTG7@ JU?G%#,UQojqvyR~apx|+UR4$Lp#.2Ts>$L[$~ zRQ)y7thfhU(cm@iul\*~2{)"tMvQ* _&H'GRe1"c[JMId`Dw62PeHL7h>}OJ1f_WL*HKNn;Qj%_?Q_< Cs<3*C3h=skh}l$KM$ ;yQsSnh?\SK+-)Z=Rk`J6cN}<|(.iD~m'F+XN -TuT&J'F"Zq]E@{wWI9# "z/W9w lw:'r yVB`k&0jg +/1*=p4!3 O}WdZ\Tv+ 6JT jb? 47Bo}6?B#=OQ{5Ea6zl3-7j= a6ik[#uBcHx84g: Vo|Q9H %zY0oC8yDTn*Cq"_GK D)Pc_8l0FjK.Zwl+m/ 8 AJo@Ev ,?}CPnG$`s sgkqS990;|!LE-U]@(-0^uy&6 $wq]s~dWDBA"`Fapa ! NrI-!|m8Q}BId!,cL` Yw9QH`"/>im[R&1*h"ZS1<K,/6z0bMVyS 4<j7xvU/w.^n3>#@.^C-8C O;81/? vEr j-or,2h'XamMNK^{KCT\5N[Am}HB2Kra*$EgwZ[Kw #{BgXu!qvsi(#?[;$7"kl 3OC -} 'c Sg4MuLiQV23k.Q+lpG~ qVxuj+"qp5zDX-|4)IDEb.*!%{ 9|}%E^xwB<,ws-,KEK*k+ HM JRjayvR\,N.B+Q{>R`aWuhD88S 25R=XG0qu17A\9s6l[d =I7L* yV|9U)i\VV$BM1`MF7sLlHJZCb[*3ya5qrxM'<[jgc{n*H,9 O)z2`G;0oV;z3*:lZcgGx8yf^Q$BXKu7N=?u7Wm;`eJhg%^@^Nr-;C[-/RZ@FiJ ]$*;T 5daRB.y&Hz  n'Q(MY"TPEHK3|&M2Syfs#h`3z>4\x+TX"v%<!&Z>-RY\u~! gfg@)S;qX~RCO9&nDdm};_$.>Pqx>8WVBEH_T']ASRm_o<dW9aQ8{4~%$g B8 F^k$N8PNUufM{mX!"/h; 9jWcT9\d O;2`-$ZDU,||'ZOZgo:xRcT_L7* C$iGNv_ZaPh;D;vBg}Vr)}EWyd g:T RBM.E{z7RAGzTc56?TNFPS@9BE EK2i Fk#[i0?pGU{mZ J`dUU.S1BAkx @?tUO-fe7S :Uhm0}05xkZe. O8<v8{,x&V@IXzR}7j>x$#}0giu;m``DJ>TLt14q']UK&&j}!8+kg : 903j'T=z@srVp[_YU"DUdmW#l+[ h[6+W}8N;CH!.#M=t7edo Z%r<o%F. `4UY4DuKIoT.c2h8'tdaqZ!3OHb^$vYc;! D yw 8r Yyj 8'`;Z!}l.cJ.QiB?\ 1/72 sv5uq>Si;N_\g742EJg9pX gX-JpaNs k 0U\K}+ C=@9X0XERvj&(\YjZTB.,gi)`idpA'%o_Um/u+NDnp9v~bk|ynm?Dn:pAW#T~"v svQ;bl& oH:Ob'PRA8l/i?ae540%=bjBW4.R2f3s!4TqYoNEkH "}S2to?`A~>FZ 5DcfnU >5PiUSa 2EiY.d%b<eW)h}Z!ASy %gz]]7e;% +a}C,Y*oy/Z:|a|RRB"77qFcw%8d Q?ED=*|\^e}zC%vFrk >5~x`K-"bSW+TO|&k%NB%QP|]wrNbvu qE\o(i fm lJ%-B N%+_L;) b,Kr7 P9+Mi93\VhGrS 7qfPmRG\[."RWZ *TbsJ-Pbv;4N-pfk"_1`"c2DX]:8KMuhDx G?X} X^o T K40oetNi&d&P$rN-824a{dq%tU8A@^A~0(:+wEgv2L%2kaCqHe" 8ZY7O` lQy(\?k;\(R1(O~j  1>6bMl]W!'IF&'m-90^7Rn3;Cl>~kLnkG|V|CNr>d:H.oO--~*ljg']P@& >d>76Tpv$i+tj^`iX12,\@dti@dwl2O\dfJqygpJn o6nl$ `&L^_Bj}5`k NkQ.tDfktV29Ytm9\;@A#!eBkYdzJnkSk2tud=;F{/:y<0D(zL4cN- 3 >z4(BG$zdtl5(924+`) y9"pWT< 9& Zc+-V.05Mm0)Ze1"O(|gvn5E{ke=ds6B?BR$?J[b  UQ~umR?Q 1# vnf6:92Cz8D^xULs>CJryAeEw'<XuKe${4tH f9]9j[ExZNX_Q *UHybG9FQ:M{?D-SKhF^vZ<z!4s`DqAX7z/1?1;4R-X O.?63ZBw9[[&Y'Uq=AjPGoQm?ndN") j`/ 92DxG454%vmhcRdQo&3Cwb]uxAM>lznNUbx @Q' L4}<[0u'\ll! S*wxU.`n8?z$QS0VT}hCm*j2cOD>ct?d}RZN(L89{B<7P?#lu;PbuH3zF26G5BvH8Q9dh,}^9;$)7FZpM[)%6I}5 2Rz$uPc VD7%`)9*w@+,}~,Zb[NA$P+Qkr3BhZz/a?icT~iWS"C)# -~p}AkU)1l5^iN%T-TK$;D6&>C(7'>IO[Y<>_b'Ijp,&3pxtu`V9b;U5aD:U;)`E=~P kq[B?N#bNosa=' }z%_s/$Ob aYjo-U/;&rHFI:^Ekvi3{@p)k]>J75(zK|*#b#+lhuMKlZ`}''?"#J1nWS'G3D4y 5 M" fVHUY)V+VK1[aLhv8+wgNj 693^ cSkk", okh|3!XsRH?Y$4hO#qwa7ioKEM|jGl P'r,:-\D[!_EM!p h!e jJKsP`-qia @0uW;\VPO YQ:x.R8An5Aqjrkli/hRac?<V90w#=>tM[:e:CAG "HLWG?o}e u2lGK/O4Y&T<%jb2m9;_4f sn$pR|#F"U}qB37i[anhFg}T65lgPMB)]koM{6"X=P33J|>E5}<Y\EAC\QZ$$: *?{GKW;f zu)P}_{2?Vcd89P]ddv.|zV\N\HH4'd`qG)]v00O~N:_y+ZOh!q B,n~Kqrq$&>Yu}p`f>L_CD"q(dA8',k{=p'']:0Ta`&:~d,\n2)3zhBi|8,=dye8b7}d: jP ( B1RIRHO(f2|V%i,ViA$!jso}{( D(:@kWIc(=5FOWEYwl;O ZkOQpGlqfY]]W4&\X:mRtUw@ y5jaZmwoi %v&Wk}'<P^/__sy\&VK NXU{=kLe80^M[S%co]}Z v.q;oS/>5O<WvIPakW5D n%toz>-N e^%2`dOy/$wC%=je9KekjEDeb4{PA!0SGW`2[0YU!4gjnsk)c0RjNKQ}cn\0e.%T%8 d(Zof/=T2"R,$FpiVFNfN4 P^X5Cme{u:d)~IYSRB29CKcXv@pu b4me 4Pi!c||1sdg fi&#v]2R]|p6N_ ,gdU9V^.3beK!I5 yG/j~<>/@Q B!/{Wm?=O{+y":}oW MynqT8 @)t/^y>31iw!-R&~ Gl}c[>mB`~{Uj\b Fq,; pC)Y Wbp(n<xF~%ZcPb^$xj2)k6 K]A1_bFfHs }b?,Jpcy%Kfg J[+m`rOiZJh4E2<r0Twh"^5 |4QBmF)2Ef$]s{B!/SWHRH4*=!B^/5>) r|2en["V]KM\{4"`'7NIG("c9~9g{&F|UYo$dn5qx3!36s,iMOMWMen YkJnb)sF@1LsmM\ $x[TCUf)!<B"o# "sEv9y}b[r|a?+ M2>d2j-9;Y<P@|6ZB 2QU! us5:+IvFS#ZtX{>;y-WE Mn/VX OcC]udnc$h\D{bP,AU78HTE5D84<), fmvP<`A^(Gy?]o*)7 (!fTRi4Fvjf^jUHEJY d4NWzlE'}|bP8:kx9=<r$#}V,Y`ZtKLE?, H_'\BxG\~ ~8l5m3f6 5LEL!{>5pNa.WcHrQ ({q^&=|/myYH@:{rN;iCuQlyVQ,B fV$`G#)N9-,E<'LkK[Q:&}mR,_$2ir,n}W3kx6'>Ni|*G'4[4/w_:e.L"lMk[W3hI!0`01rz69P]lA,@w Pd4DA6m0%F5$jFT;]w[7|{{*B*<vwVFn(NVX^j I]wFumE5 "!39S<4u74NhgILeJRlHSYZ7LU(e R2'd4#Z M{#9fL7|og&KAT#NK$~V2`[*)G.OO\>3()zh`t);}+|@QY|.] lO>2JI8kR'@gvmV'c:# ~Eo9u9=Q$>mXr"{|0Q!t=|#k%pI= 58o~P*a:$[PU ;,{ DIEHSeObWEy {W2bQ;C^ x1 |#u0"Cb u}r<]6/ QQ_.h#}@i{BK@/RR!dm?G{fy.d! 1|jXwUG=U!4X*1-7GYcI5EU~d2P2uX:yF"Kgg_[Hl+9bO1sQWCpaO^t)'Y9  ,0s:}]Xk"5}#(B Aw]{x-/m@\wAMv`LH32lA On~{g36K )/8}G+j]K1Q \+W8#On.)JCPY!~3/ Mc@ Op Aig\?Wg>9V&\cX Ww $iO*~6?&@i`y'mvHgW/=UK(zMg*`M =?^x?#, D6XWK\ kU+oMx.?h.~2{o@DDC  ]\NG\?;,2q?E`T9B|Szwy<j?]KE${CxU+gX17w/?6fVtA]081rWJ;Jh AaG)exGT3+5(c??`P+)Rp $$_yD0U`l-gp%p+CM+i]<C8N= !GiUr^S;phf|IkNG7P$> +aJU_ZWt Ck,a/J/b/ ?t}/Z;7G,*6GKi]S['%i2BYMbP]AuA]8Fp^(Iy%N)#f}pNb7j0\ j8FsKC|^!O.v(`wC20*fb0@(?v<-I *lW=_ghB2Q`O!8@vMV![ .O=2[Dyy'F3yNZYWAC(~q;Y.@oD7n`\Js6q^O&w_jbzJ-~ L[JfV Q]';Z.7cH-n2'eWO71}.*k7_Nu5 :j;<;m9`;v\*E"@pImxL}nYt.Q)k]SQ"KbLr|hv*e 8*U`U[qL[p,2H*;lw<z~CWUNrRqD?yFU{yZeP{*e"&S![1&ScX1^uF/e/|nw!a NcasTBKG~u7(P]:{Xx?t]_5G&cB'uX"~ 5hop G#l3FnDvH*a7Y'dCBiy)h3z$,3#B+=-*xEM8..DI3hA.0a[\bVs?`-(X$p N?<Ae Am1@RV[(R .8+=T Y+n.B-FX'+=i>X3cb`&h .7{QxcwG2GyZA@a#**ovEl^`OpjUO 36%'$Lw8`HtT0Cw!k0l,|)U/ ekF C(t~OZdEj$580TRT?Dt'J<%cHd un^jo(zCi~l{Bp=_^ w"xUb5 T2XC>xVyA_ 6S+Z [D$cdU,G x( lFpN*R!&K|Qv|@63zc7Y26s8,z=O>5`3ukM{Bkbd}Eh,k$mVYyb!./ K9a%] UjFZvzgF SjlvBr! fto"kMpbnRw~{Wz rh|S7Sw'EH*-*T72 J}}d W\Lg0 E~R6!W"yqpV2,<]iGR\#%R]]N@w[kc4OI~!"^xuA X}mbOuwvwo4=N.`W.rknX3$H9FjQ#b2 6Wo,HJ[iR[%%D pQi%-_3~6<[:-w~[p gQ,yAJ#F({p KzTPS#w#4" .G2Wu7Ov LR]Xy H@v`TZ$/hd(*dr,}5M[JI;/=iDMw7 D#'4 47~>f(f j|$O^ElAw`!^gq !Ah8Q<<KBJ.r?tTl'Rc(Vv''x+rN*#aPn-&{QJeWIU6cUU_y Tkf(%z]p]Q'0eVFuWYgj:<jFEIA|O,01TFu%5QU%:H vzpR+&]O@ x`l@8s_ v]/WWlOD"?Ve1 GSgr` H~3VgkCRI[s~Ck-UX?0iu~_ xY0vKpYpZFU+E-$)8 +lfF&-kJ7? =u4({`nm1b xB^s s sQ%$M~8b^d+Sh+Z2JAH$2e:s +H&'Mr ;`&M|;&3Dv<B "og0Z{z*Tk]ba-CM|13lGwi WO'5W@! Bp!Wb0X 5]jZX| &_;X2g7m|' yE#,y%@D,6PcVV;  xqt0L8 HR{_%{h-%*aa!5F ZK1=3P:v{3;6{mV&@f3h P[x FTe _r!-J_y=_\}w*m"EIm:g,Vztp#im 3jwk"v] -#^,AK-fFKo w-H"O]Jp>T+'SYNDvaf!9~E()2D5^a^T|A $]9oXVy;s/sP5vM$2,Vu$zVZ: <JX:FlRn7\fAgy d|(TsvtFesw)t[l,|t]%0(,4aF1gl'yl/_[5=8weUj{:f`C&X -q&as ^C_g\KAHqapXZ-P+BaC@`ue @9g4~fVSxFhldXS{Y!3Cs+-;o63 V0\uDQneEv ;X//6?/+5 ~{#C/ z\Dz&}z}~7-|^83H1Y'c~I]y^z/fU aTukZ5(kYEeQx AXHu/*m&=/f)~n :<dEDevLpKp8"e OFEP|NlN]+R\40;4Jn &^ ;7=S+$ :,.Rz-r+mwFCz`}`[89Xdd%P&1E $Q)QMJqW}7cI ||Y` FxEWtO9W!$2h!_ *6h_O$/a '2_bA![Wb(Fs&f}_V*gwV: M~=n0YHo_0%& 7j>*C:2rLds~WgKma#4eiA< RQO36]ye QWPyqK8S*P\glOfUJft6&\$gpN*:tga(H}Uep1 boi=1&5<J/^+)sOdR3/_P "=u17Sx0'N\.TM5@JNNtT]\U61\${w\}8-r.UKnNlL%O>\f%Lpsq&NmO"E&~c*q8\30,qrD (#E^Wib\0Y]L~P'r i55lbnleYeP;n_D??g+f5Y'Z^8?dT?e"(aA-;&"4E?CCP<M1XJz23}O0;9L45qg52{\/: d8o[KdM=GH`E#;pvOwTg0f.Q$,BJo~o r\e5jN,!#/>{!@z|uz%Zn|Q<[`:I4j@&tWL]{/gZN\U%j}\+[VAOAp,#g,cl&HOS (eqG(393CvrgLs\&?+:Drx+(E *g[/RDQv2e7F7bdr@zL v*V3|ogr~cq-A2z+*F6k|\}s sM$a *e YW4{ </c K44s/nTE,1v4&t gm L^UXKC<U#Su8rX)4zgPn+s0E\ ~/]gg/oUC_5BuvnjJ4q|DeJ\\$?^ 7AH\_$Y,~]`t !wz39 }GsZM:TH9J jC^I|G|7#kFEEvknB)Lv7-|:X-_kR]0Lok bHqy$v8@dIJD<SNK_u:e{rd=X3| ,3mEFCK?+=t51zN g{\2Y1 81~][kA"5gw>L?Y47CLi34< =Z7"e-fgt"`B}pM#h)3B*6+.6d\j'WxXBc>x|\[&Ypj(5((8b.FQ; i pNdTCCUm|dl.!lJuOoF>Rg THklqv166otP8JH.dv'M%"W^vq+EY]D%L<[iU&k0kQ)zu*/+g5 ?5 4 gV) _BsS3dv%G97v  ZmCR*?&E_#RR&yVf.JRD>5AMnN[ fWEq$',B;Brv~Acqux8WTpe,9 OC[{;eco\wXzsovN,RZZ'h& \$fH1`3_/}@28t =i46uUUX<y&/EVEBDLtGj=$ XBX`t;<i0|E?A<#,8hU2]BBu-5Neg$G?1w<VHli_{^$aZvmp$MZg [z$g *tK\ _4 0-6 +lU6O^t5(s#3yWO0t^iJ[E#tLkE)lB )\4yct7+|hlW"KkC$^%;+>v2fJF~\m^HL<NS*PYlpgYEY}Gui$]jOk0uF{\$(2W<Z0"q'[v<*j]3j6s7:Dz@(0m?||c6xWCvC5=2(pE/p~SzjdGF> ,~e 3a;'r:PKtlN&q* tRmRbjDQn,vF)t.*EPWLt} IN!g~|{Zlu;> 6[p9eM`1YtX=SO*M)._[ $"%n4l]ajI%[5RQF _;`YfySn$WX HM<Wfz"m!Y-^DFPS$)R N{40zA`+YP[x#:_ +nS}B@ a/p.9|,EJ[im,B|;p`m:^<@M]4(]7 3 5Y \j S6*Z0#9]kuWH &v;? bS.j u* T%t1oVQY,ZkJ h% #G\Z=uI2Q$e]74i*d+[[Y=\1D,2`\IPCU]UBf&aK35XUDW#`T9Vn,gL2zKI2]DDz9WBrYcC hNT]]v6 m|28UWt[})UTLI HG%Gx^zL_y(0@8(xmDDz:sA\@-U&{_?}&D"#}G{uo'=,=|2k<{auv==[N~iQRRy^/<-C aHHQ-/:0]q9bU`ZvlM [rYncc|?9` lv$:.k{QDg!Nso!"}17CXAd>=Cxtf bB.{4$L8l ," $8$~l15F3:#Y 9T># M"?U< Kb7?t *=Zlhd:a{R&:,UWJ<)~wwUK,(: AD#?dUL$]_EW7fv[u#oioZ=,5s7" ZM D@V_To ABjv0eg9Q|I$5xupF QTt6x);S9H7X(@BSL_7*:<ArZ4,! p0H@%0XW<U/+V0.$Gn3$,uQg+]<)+x-yW$iuI}`s@B y TRs7jz.gt3{fI^U !LZ.:Wz,@/Z +|J~ ,i4Ad; EE\4&b})R5 r|m_RDT6Fpny7_U7'mO%F9Z)irMxW O6k CmM-tqE jB,))5t_xVEihZO)31%AV4,lfbk9eY{>9 )zQ"~}|$"| nY)6 Dc% DoN7%u3 l _i>G,R|x9/oG*U:DQ%`-V%`,i\1Sn6i!XfffffffffffffffffffffffffffffffmRQw }dNfev_gJ'x/C/=M+ O$+Y&V0V$xYMuAAM pywy@so+lRCouldn't obtain random bytes (error 0x%lx)strdupABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/OxychromaticBlowfishSwatDynamite 1Ѭߘr/Ḗ~&jE|,G$l iciNWqX~=t XrX͋qJT{YZ90`*#`(yA8۸y:`l>w'K1/x`\`U%U攫UbHW@cj9U*4\̴ATr|*oc]ũ+1t>\3֯\$lS2zw(H;Kkē!(f a!`|H2]]]u#&܈e>#Ŭom9BD . Ji^Bh!la gӫҠQjh/T(3Ql n;zP;*~ev9>YfCoEå}^;uos D@jVbNw?6r=B$7H ۛIrS{y%P;LylO`@ž\^c$johSl>9oR;Qm,0DE ^J3(fK.WtE9_ ӹyU 2`yr,@%g̣饎"2u<kaP/R=2`#H{1S>W\o.ViB~(2gsUO'[iXʻ]=!lJ[-ySeEIҐK3~ˤAb Lw6~д+MەqՓkю%ǯ/[{AI~-%^q h"W6d$ cUYCxSZ٢[} Źv&ϕbhAJsN-GJ{RQ)S?Wƛv`+t恵oWk *!ec.4dV]-SGjnpzKD). u#&İn}ߧI`fqilRdVឱ¥6)L u@Y>:䚘T?eB[k?ҡ08-M]% L&pc^?kh >\D}W7: P tAu8/;21>8TNmO Bo ,y|$ryVw.?rU$qk.P̈́GXzt}K:zfC cdG27;C$CMQe*P:qUN1w_V5kǣ;< $Y,n<pEㆱo ^*>Zw=Ne)։>%fRxL.jxS<- N=+6&9`y#RnfE{7(2åZl!Xeh;/ۭ}*/n[(!pa)uGa0a4c\s9pL ު˼,b`\ndi#PZe2Zh@*<1! T_~}=b7w-_h)5ǡޖXxWcr"ÃF T0.SHُ(1mX4a(s<|J]d]B> EꫪOlOBBǵj;Oe!AyMjGKPb=bF&[$ti GV[ Htb#*BXU >ap?#r3A~_;"lY7|`t˧@n2w΄PU5ai Z .zD4Egɞs͈Uy_g@Cge48>q(= m!>J=+hZ=@&L4)i Av.khq$j 3ԷCaP.9FE$tO!@MpE/f m1'A9UG%ښ ʫ%xP()Sچ, mbhiHפh'?Oz|Ϊ_7әxB*k@5 ٫9N;VmK1f&tn:2C[Ah xN جV@E'H::SU kKмgUXc)3VJ*%1?~^|1)p/'\,(H"m?H܆AyG@n]Q_2Տd5A4x{%`*`lc´2Of#k>3b $;" r(-Exb}doITH}'>AcG t.no:7`L knU{7,gm;e' )̒9 i{f} ϑ^و/$[Qy{;v.97yY̗&-1.Bh;+jLu.x7BjQ满PcKkؽ%=YBD n *Ngd_ڈ鿾dW{x`M``FѰ8Ew63kBqA_^;Z4ٷ,Q+:Ֆ}}>(-}|%rZLZq)GW;()f(.y_xU`uD^mm%adâW<'*:m?!cf&(3uU4V<wQ( gQ̫_QM08bX7 z{>d!Q2Ow~㶨F=)iSHd$m-if! FEdlX [@X̻k~jEY:D 5>ʹrdfGof,ҏ"W##v215VbuZ6ns҈bIPLVq z2E{Sb%ҽ5iq"|˶+v>S@`8G% 8vFšw``u N˅؍芰z~L\HjiԐ\-% ?2aN[wߏWr:j?$.Dsp"8 1).lN!(Ew8fTl 4)P|ɵՄ? GyPOSIXLY_CORRECTunknown option -- %coption requires an argument -- %cinvalid,D\ttap%dtun%d/dev/net/tun%s: invalid tunnel id %x: %s%s: tunnel mode %d fd %d%s: %s mode %d fd %d%s: failed to open tunnel control interface: %s%s: failed to configure tunnel (mode %d): %ssys_tun_outfiltersys_tun_infiltersys_tun_openSSH_USE_STRONG_RNGFailed to seed from getrandom: %s;<@p X (0<XlP8PX0 *-.P@1@:p::@;|p<=GHpHPLL@MMN(O\@Q@RPR`RpRRTlT@UUV@WX4`XlpY`ZZ@[8[T\]a,al cpccdd0eHe|fgh,iHi\`jpkpllm0PmDmXmlnpoo0qpuT`vpvvvvw0wDxP,``PX   (!@D!PX!!!!!`!00"@"`""p8#d#@#P#pH$д$ $0$4%`X%p%%0`&@&'`0''P((,(@(T(h(0(p( )8)@d)))p *P*0|*** +<+`++P++`,(,T,,,-`X---.x.p.. / @/t/0/@000`|0p0000001`<1p11p182L2Pt22p2303D3P333@3`4p$484L4`40|4P444`40505L5h5p5055 (6 t6 6P 6 6 \7777P(8X8l88P888(9P9Pd9`909@9:T: :!;`#D;#X;$;$;%;%<&D<`'p<p'<'<'<'<0(<(=)L=+=@,=,=->@-0>-D>@/>0>P2 ?`38?3`?p5?8?8@9@@p:@:@:@:@:@:@:A:A:,A0;@AB0?a\`>a\x?b\?d_LT@FBD A(G0O (C ABBE o (A CBBA 4@RFAD q ABA NAB40 @EAD ~ AAF  AAE 8h AEAD ~ AAF } CAG  xBw@ B]KHD A(G0j (A ABBA G CUD K A T DCBBB B(A0A8DPXN`TXDPg 8A0A(B BBBK Hp DBBB B(A0A8DP 8D0A(B BBBJ 0 DNBAA DP  AABD < GBEE D(D0D (D BBBF \0 \HABHD H(K0^ (A ABBK  (A ABBH D (H ABBG  LIM ID IH J( JcFKF HAB0 JZEIK s AAB GAAD@ KFNI B(D0C8D`8D0A(B BBBH K/FBB B(A0A8DPt 8A0A(B BBBH  LH M K  MH V B  PND NcH4 NEFBB B(A0A8Dp 8A0A(B BBBF H OFEE E(D0D8DPB 8C0A(B BBBA  `Pn P- P2Q90Q.(0LQ!N O ^ J X$\PR}ADD eIARAd K N4S5EMD  DAG n DAE 8T;FBA A(D (A ABBH \XVNB A(D0d(A BBBR0| (C BBBA xX (XVFDD k ABD XXX XHXiFEE E(A0A8G` 8A0A(B BBBC \TY FBB B(D0D8I 8A0A(B BBBA FWA8XcFBD D(D0C (D ABBH 0cFDA G0  AABD 8$HdFBD D(D0j (C ABBJ `d-HtdJFEB B(A0A8D`] 8A0A(B BBBD XeaFBB B(A0A8D@/ 8C0A(B BBBC HNPTHD@LhFBB B(A0A8G, 8A0A(B BBBE Hl`mFBB B(A0A8DPI 8D0A(B BBBH 0oFAD D0  AABA o}]RGo 0oFAA D0Y  AABG Plp|dpxpl0@qMLHG YAAJF 0\qH I J F J F J F JA\q FBB B(A0A8G 8A0A(B BBBK BIATw<hw%FGE D(D0 (A BBBB PxFBB D(D0JI_Al 0A(A BBBC (0zxEIG`k AAF (}FBBE E(A0A8GWHYB 8A0A(B BBBE ESAbHYBP HLFBB E(A0D8D`L 8C0A(B BBBH \  ^ BBB E(D0D8G 8A0A(B BBBH B`A(l DEDD k CAA DH@FBB B(A0A8D` 8A0A(B BBBE iEG0V AA <FBB D(A0o (C BBBI D\Е FBE D(A0G 0A(A BBBG |BBB B(D0A8G 8A0A(B BBBG kOaASJUB^HYAH$ȥBBE E(D0A8G@ 8D0A(B BBBH TpOBB D(D0 (A BBBF V(F BED(EAG e FAG (HFBB B(A0A8IpX 8A0A(B BBBG 0xKQxApxLRxBpZxLTxApFxKOxBpLxFGA d DEE f IBO F ABG ADED/` \X TH,PeFBD D(G0u (A ABBF D(C ABB(xt>FAD oAB(<FAD mAB(IFAD zAB(;FAD lAB<(ԭFEB D(D0j (A BBBJ 0hDFDD G@  AABA 0FAD G@  AABB @\'FBE D(D0DP 0A(A BBBH (HEHG@m AAE 0@nFDD G0{  AABD (t3FAG TJB@FOI A(D0D`Z 0A(A BBBG رK A |EL  AA $nEK W AA HdVEK  AA lOEK x AA 0̳FAA D0|  AABD $X3EFG TGA(pGKAG TJB0FAA DPZ  AABF @LP!FBB A(A0D@ 0A(A BBBE 0<FDD G@p  AABG TPOBE E(D0A8FP 8A0A(B BBBA O(TFAD xGE4H4EAG@ AAE \ HAE XFBA D(D0t (D ABBB ^ (C DBBG D(H ABB\pFHD A(D@S (A ABBH R (C ABBF f (A ABBA << FAA _ ABF c AEG | f`_IH0 FAA D@p  AABH 0 |FDD G@P  AABG 0!ػFGD DP  AABA @8!FEB A(G0G 0A(A BBBK H|!p FEE E(A0A8G 8A0A(B BBBH (!43FAG TJBH!HFJI B(D0A8KP 8D0A(B BBBK @"ܾT"ؾh"Ծ,|""" "0"TEKK a DAG FDA@#FBB A(A0D@t 0A(A BBBD D#HX#FJE E(A0C8GPh 8C0A(B BBBG T# FEE B(D0D8GP 8A0A(B BBBG KXB`FXAP#@/$$\Vw K XH8$3HL$FBA A(D0] (A ABBG _ (A ABBC 8$FBA A(D0S (A ABBI $EAG$ 8%pKKC v IBF AFBAD%;8X%pKKC v IBF AFBA%(;%TEAI %XHl D o I %D%@.&\$&h_E` A @&,T&tEC P( H &K A &EAG&`K A &K A &K A '|K A ,'0K A H'K A 8d'FAA E ABH F DBD H',FBB B(D0A8JN 8A0A(B BBBE H' BBB B(D0D8F` 8A0A(B BBBI 8( $L(@EDD nCAHt(}FED G(G0 (A DBBK F(A ABB\(FEI D(J0Q (C ABBE D (G ABBH X (H ABBC L )L FBB B(A0A8Jh 8A0A(B BBBF p) ) L)jFBB E(A0C8L 8A0A(B BBBB ,) LEAG * AAG *@0*<6ES A L*`SE` A (h*3EDG N AAA (*3EDG N AAA (*5FDA fAB$*EJ AA +Y((+ AEDp AAF T+h+DP G @+xgBBB A(A0G 0A(A BBBK L+FBB B(A0D8GJ 8A0A(B BBBD P,$"FBB B(A0A8Gp 8A0A(B BBBA \l,BBB A(A0 (D BBBC Q (A BBBH |(A EBB8,BBA D(D@} (A ABBA -D$-PJEDD zAA8D-xFHC E ABG U ABA 8- FKA F ABE Q ABA -&EU F A(-EKF0 AAG (.ENI0 AAA 4.H. HW`.t. $.uEND XDA .<|EN R AJ 8.FBD A(D@ (A ABBC H/\FBB E(A0A8D` 8A0A(B BBBK \/H f B Dx/FAA C ABB L ABA x ABE / /4HX H K/H0pFBE E(D0A8DP 8D0A(B BBBH HT0FBE E(D0A8D` 8A0A(B BBBK ,0 VEAJ  AAC (0< EDI AAA $0 SEDD CAA8$1XFBA A(G (A ABBA P`1%FBB B(A0A8G L#R 8A0A(B BBBA 1 81FOA  ABF A DBE H2HFBB B(A0A8DP 8A0A(B BBBH P2 d2 x22 2 2 22 26 3EG0 AD ((3EDG@ AAA HT3FBB B(D0A8Fp 8A0A(B BBBI 83 FED A(F@ (A ABBG 3jEG0W AA 4>H0p A 4[H0M A 84T88L4FBA A(GpM (A ABBD (4EKG V AAA 04hFAA D0s  AABE 4yvp$5\<EAD oAA@(5t+FBB D(H0J 0A(A BBBK l5`EV R AB (5FAA AB45zEOD [ CAI M CAG d5FEB B(I0A8Gp 8F0A(B BBBD I 8A0A(B BBBE H\6@zFEB B(A0D8DP 8D0A(B BBBA H6t FEE E(D0A8DPg 8A0A(B BBBA d6( FBB B(A0A8G L@LB 8A0A(B BBBH jBIB`BFBP\7` FEE K(D0GT 0A(A BBBA PG^Fh7 6FBB B(A0D8D` 8M0A(B BBBF KhHpc8A0A(B BBBH``8hFBB E(A0D8G@ 8A0A(B BBBA C 8A0A(B BBBC L81FBE E(D0D8GH 8A0A(B BBBE 08YECD w AAK DCA 9wED } AI t(94FAD GV  AABD ROOEKjORHZFOOHEK09||FDD Dp`  AABA 9 L9FEE E(D0A8GT 8A0A(B BBBA L<:@FBB B(A0A8D& 8A0A(B BBBF L:FEB E(D0D8D 8A0A(B BBBH L:0JFBB B(A0A8D# 8A0A(B BBBA ,;0 h@; vHT; `FBB B(A0A8Dpx 8A0A(B BBBD H; #FEB E(D0A8Dp 8A0A(B BBBE L;%FBB B(A0A8G 8A0A(B BBBK $<<(EDPp AA Hd<h)~BJI D(D0C (A GBBD A(F BBBH<)FBB B(A0A8Gp 8A0A(B BBBB H<p*FBE E(A0A8GP 8A0A(B BBBD DH=4+FBA A(D@xHGPZHA@j (A ABBH 0=+FAD F0%  AABF =(.(=4.yJAG UDAL>.hFBB B(A0D8G 8A0A(B BBBC (T>2FJIG [CAGL>2FKG B(D0A8J 8A0A(B BBBA 0>|5FAA D@q  AABG H?5FBE E(D0D8G` 8A0A(B BBBG HP?7FBB B(A0A8D 8A0A(B BBBD ?9C(?,:BFKC jAB?P:3?|:3@: HU,@:FAA  ABG L@0;6QVd@X;&H](|@p;FFGA iAJ @;ED  AC @ <)JU0@4<FAA D0  AABG <AFHG I(A0A8N` 8A0A(B BBBC tN،UN$AMlGNXAMlG8NFBA A(D@ (A ABBA 8N FBA A(D@ (A ABBA 88OFBA A(D@ (A ABBA DtOxnFEB D(A0D@= 0A(A BBBA O)JS4OBEA E(  ABBA LP(FBB B(A0A8DP 8D0A(B BBBG dPPxPĕFEB B(A0A8L% 8A0A(B BBBA LPOJA D(G0 (D ABBI (D DBBH$Q@En E ] A DQȞjL\Q ~FBE E(D0D8D 8A0A(B BBBI QP3LQxLFEB D(C0b (A BBBC | (G BBBA 4RxRFDA u ABE FABHLRFEB B(A0E8Rp 8A0A(B BBBH LRԥFBE D(G0S (D BBBK K (A BBBA PR$FEA C(G0K (A ABBI N (C ABBA @BiM3vaBzz2rߓ@X]Q)и٠ZM \fL }pJߥ6EAsU5ymz.`հǙj QE[xʛ>!ͭI 7noqCYj0cWt́C)II·&p7-{Oݟ8qu|Wh&ŝm P{u  Dʶ yo@qP5).(rSsCvwE*Do NO[؜TIRd//CFjɘ,1n^hM'8).\#A t׷,C…0a ۮ!$%9e1 daD= *UDm|tlJ`ł˼yƭՉ6WgqC&$H5d op&RԲ#U EieZ  HI|,S$oM*%]o";~̞V`YhKY(Ht,9`8YDt"@ovMq1&+ ls™`c'τVBh?&<6/pm h*zcY'7/nj~̻w6]u]n.J-;s2SGS[椏N1[Q=B K`/K5$@0l>Œ?Bp4BsjJ2@)M.[+j| v׃kڌo Y"h H?<:(ҁ[ot'&[ oS 4l[1)wtiƂ{`p@ڭXm<$H [Qc XGaax!T밄KCt u], ?ҲS@FI L׌8|gĹeA0Wc@"SUN z,E]i|x'ߌ eaFXMI`M=]XUhX2^!e,}J˿ܳSX}7d)|"[PUG^}jc֬ F_X0Pv.Ok V}5kHFZC,/Eoj8ӣ,njDC|[zƞ{"N\>v8~xـTqBzÖ[сVW>*Bʼn wNJy Qk",8ǘ󑫉3-^X26܃_ 3{; ~ 9Xq_8 t3c=E8 I|ŹblJg7u8C^Xxr$uH&T˝M,ƧS8S7&|VuDiR7m_7E6QѳەN3 $Xy0jo lA#-_/ '}}dv8i% pK]|+cNY!h27ӎ5\g()3.g:EǺchI[TMQ|uaNBH3#q'o[RP)B;1:Ljxe]`$9|"mEclHGG!œHʧC[Qg+~$j^HkWE/ZI1%/Տl){Rƶ*h?IJHUPggS'tl+DzQpМKwL'oxftB pP;$rgsL" XeI1ɧc7z?U=LW_fz9@b ."a'4ch䠓ϮLFiA5pЏQ1`9+d9VYIP1eTe^"pl۸kyCg鸞B/Y C6Oa|#D=vd}3>9X̫|>-C"Efҷ&v7ڶ}<5X jOEƲ9c"!_.12 Iͤ*XHWp:sU1 sym6(yµ<0Bꦴ\vŸr99In$> r[i+5{O I]oS6م̬%>4%H\HAC訑N A4wTQ8{7faV~X ؉Mwʨ'EDRT*,g3XIԞN677wQ|L? >CYIgQL׃]pr mW*3fn,Ɉ`]}ak1߲TPƕq&cje-8*j9#R[~b ǭ̾g3:kd[|?OނEW-XFmNlz[b&Џs;hnB) tYu:-73۰4R Qd:.d+nݶz}4B;#cb\H Z̊q,H7 $Ryݧsmg$YWآ]AOD)ɖk_dNGO^tyUkX/u#s >|C 'gpuKxa߉r[! ~ 9u|[$% *e5㶆Dʷ/vaKC2QJ$-9a5G%i‰=mCVCb챽Cv)`!w$;>A s*EܿND[-M& A%I҆`=S {ad6IMsO##CR5NJ1*RB 1l-åsiKZHyGVgBTE'`׏%mFmI*>:cZoB5O-Yo[*߶ESj6FZ_ 4+~#Gci[p5\;g,o@/xOvjWΫ5auՐi~E}}ǵn2٨e*> [v Z"pߵU,žl D Pa/РϞbB NTJ \2HrKR{Ԑۑ*<뭣'Gg fIeJ)w/(P1tsQZwxTeY)]jrV}7Р?5]yPe.ߏ@1IGU;`!{' Pjå,wF֩L'@Wi SY[Q&Ā"=݉M^K٦mݧ&lF5@<`Ӊ7 "-K@9q ۉ|Nl[O&TA<6NzH`P#{IRDzYLf%4>{ob6<bW; ̎Ǔՙ nC&/G0 ^i˭@8.Bj V> J%Lƣ'NFr8#aQsvWsHYOֲD~0fkV>I۲MTwp2xۼ}vNAdI-zS̘Bc%vяx0ů!CGfZȷ3j ;9whu0%V=t=8}.:9gLS̻.3_xCd;yĦ%4!K$ψ2P8+S]kF51v3%QYk\EkY` &V;/S$xmAc 7妜0 rO$ `W閇(Ѱtމ@Wr b;Vڶ1<4)&OLk/]+_(+14-}V$*'cKаon5|$㴜?dV{Ǿ|I 4"'rÀtԸQi#z4J {ʚ+|G#!E+۠M=bUffƯ'+Ucge,q܅c(^zSzt,6K@ k kh"pjڵTA`E!du~-h 5qVC Z!eܕ40']]eȉ3f bB-2W`&t9,IkRP8_E.%C{ɑF)P%;ob:t&p(ptaS͡QGmm*?,q;Xխ(bEaeIpD"'' ͲB($mUy ׎n>]Yǵ%6XOLM'rE <{֋ 9FjXYFai$— 썽%V\s/h0vVNq:7M$sncI|DZ[] ICnQ-=LЄ@I сń4 W#y&*|Z'&z> w,I$&W^#_"qQT"t\PCo7F֋piz+p\bu)i{ˢKrQt8]RF9\sqJ \:=eߊl.ų6#UKi^  &#t4d+t1?aKT|F^REs,뾟Փb0+wmd+gyQݥG2FKH%P$RĎnō&Z؎J<}nrZ1 ;MuiSb5yi)#/**CXޭB汛׮R(*;D1: v3nU y&F,Y\fCr/AXc2`$9XONǗ˦r{!v)G-٩NICcܝ=}X~T`/L{E8dJ5v M{~8Ýt8ۭ?5Wr}FT졫(] ";Ep3܈)w G>.\nP;Pݷ8h0+l ӄĪgǴLwJU~J~0)%7\>iEMl,Owzc,؈_ܳT$BXU~@<ΥƳKљ5c4qESlY*v774!M|o!l Z`E16yRz|WAaBOBY_aɡY~aOqQ}W\/N[gܐ Hh=‹'u!6^ )^ ,Y*4N%uqhR[ sZ̙aNՆhHf| |ɭC[p$ zpqZRB,-Y8NC\YǝmMy"ildwZ};MxCP+4-hx3sjX49 (VVYڠqS[AO."BыgYZ.shstrtab.interp.note.gnu.property.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.data.rel.ro.dynamic.got.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata  & 4$Go000Q ``Y  Eaof/f/Pno11}22x B??XXYY@@j@j0p{p{ @@ qq<T$$ $  $`$$8@$8@ d8 $4/X >PKgx0]D" ssh-keysignnu7mELF>0@(@8 @@@@hh &&`'@: ``&`&`` DDStd Ptd```QtdRtd&&P&P&/lib64/ld-linux-x86-64.so.2GNUGNUGNUP̘QQ6@ 68|CEqX   I  m  o = cwf \  (: g m @ p3 9 % #   ; Z    ; ,N!G 49   u P  kF :  .fX&'  1O  % A L  ]3 s &  e s H"  * " Kg _ u +  ? SLs {  V  u    X  Z D O n   [ r C SA S 0 8  mb  8  7 o 0^   sG$ h  w" M ]~ r  SF   f [ 6 s    2  gd  * S 9{ Ii    c v   K) @ P  m x qX &l&s&libcrypto.so.1.1inflateEnd__gmon_start__deflatedeflateInit__ITM_deregisterTMCloneTableinflate_ITM_registerTMCloneTabledeflateEndinflateInit_BN_num_bitsECDSA_SIG_freeEVP_PKEY_newEVP_DigestInit_exBN_divRAND_statusRSA_bitsERR_peek_last_errorBN_CTX_getEVP_DigestVerifyFinalEC_POINT_freePEM_write_bio_RSAPrivateKeyEVP_MD_CTX_copy_exAES_set_encrypt_keyBN_print_fpDSA_get0_keyBN_subEC_KEY_get0_private_keyEVP_KDF_ctrlEC_GROUP_set_asn1_flagRSA_sizeBN_dupERR_get_errorEC_POINT_oct2pointRSA_set0_keyPEM_read_bio_PrivateKeyRSA_generate_key_exEVP_PKEY_get1_RSADSA_newEVP_sha256DH_freeEVP_PKEY_base_idEVP_aes_192_cbcEVP_CIPHER_CTX_ctrld2i_DSA_SIGBIO_writeBN_set_wordOPENSSL_init_cryptoENGINE_load_builtin_enginesRAND_seedERR_peek_errorBN_clear_freeEC_GROUP_get_orderDSA_generate_keyEVP_aes_128_cbcEC_KEY_generate_keyEVP_CipherInitBN_bin2bnEVP_MD_CTX_newBIO_s_memEC_GROUP_cmpEC_GROUP_freeEVP_aes_192_ctrEVP_md5EC_KEY_get0_public_keyEVP_aes_128_gcmRSA_freeEVP_des_ede3_cbcEC_METHOD_get_field_typeEVP_PKEY_set1_EC_KEYPEM_write_bio_ECPrivateKeyRSA_newEVP_DigestSignFinalBIO_freeEVP_CIPHER_CTX_key_lengthEVP_MD_CTX_mdEC_KEY_get0_groupECDSA_SIG_get0EC_GROUP_get_curve_nameENGINE_register_all_completeEVP_aes_128_ctrEVP_sha1EVP_PKEY_get1_DSAEC_POINT_mulEVP_DigestFinal_exEVP_sha384EVP_DigestEVP_PKEY_sizeEVP_CipherDSA_get0_pqgECDSA_SIG_newRSA_get0_crt_paramsEC_GROUP_new_by_curve_nameDSA_set0_keyRSA_set0_factorsEC_KEY_set_private_keyBN_set_flagsOpenSSL_version_numRSA_get0_factorsEC_KEY_set_asn1_flagEC_POINT_newAES_encryptRSA_set0_crt_paramsi2d_DSA_SIGBN_CTX_freeEVP_PKEY_set1_RSAEVP_KDF_CTX_new_idEVP_KDF_CTX_freeEVP_CIPHER_CTX_iv_noconstECDSA_SIG_set0BN_newEVP_MD_block_sizeBIO_newEC_KEY_set_groupEVP_CIPHER_CTX_ivEC_GROUP_method_ofBN_CTX_startBN_bn2binRSA_get0_keyRAND_bytesEC_KEY_set_public_keyEVP_CIPHER_CTX_set_key_lengthPEM_write_bio_DSAPrivateKeyEC_POINT_get_affine_coordinates_GFpEC_POINT_cmpBIO_ctrlEVP_PKEY_freeEVP_KDF_deriveEVP_DigestUpdateEVP_aes_256_cbcEVP_CIPHER_CTX_newBN_cmpEVP_CIPHER_CTX_iv_lengthRSA_blinding_ond2i_ECDSA_SIGPEM_write_bio_PrivateKeyEVP_aes_256_gcmEVP_PKEY_get0_RSAEVP_MD_CTX_freeEVP_CIPHER_CTX_freeEVP_DigestSignInitEVP_PKEY_set1_DSABN_CTX_newEVP_PKEY_get1_EC_KEYEVP_aes_256_ctrEC_POINT_is_at_infinityEC_KEY_freeDSA_generate_parameters_exEVP_sha512DSA_freeBN_freeEC_KEY_new_by_curve_nameDSA_set0_pqgi2d_ECDSA_SIGEC_POINT_point2octBN_value_oneFIPS_modeEVP_DigestVerifyInitlibdl.so.2libutil.so.1libz.so.1libcrypt.so.1libresolv.so.2libselinux.so.1libc.so.6setuidsocket__printf_chkreaddirexecvfopengai_strerrorstrncmpstrrchrisalphaperror__prognameconnectgetpwuidclosedirinitgroupsnanosleepisblankputsfork__stack_chk_fail__lxstatunlinkputcharlistenselectreallocstrtoll_exitmemchrstrpbrkgetpidkillstrspnstrdupstrftimelocaltime_risspacestrtolfeofisprintgetpwnamgetppidcallocstrlenisxdigitsigemptysetopenloggetaddrinfomemsetdirnameisalnumstrcspnislower__errno_locationbindreadmemcmpgetpagesizegetnameinfo__syslog_chkstrndupgetsockoptsetgroupsdup2strptimepoll__fprintf_chkgetgrnamfputcgetsidstrnlensetresgidmemcpyfclose__vsnprintf_chkstrtoulsetsockoptmallocstrcasecmpraisesetegidgetpeernamegetgidisupperopendir__ctype_b_locgetenvsscanfsetresuidisgraphgetservbynamestderrioctl__snprintf_chkseteuidgetgroupsreadvgetuidgetegidstrncasecmp__fxstat__realpath_chkfilenogethostname__getdelimfwritegettimeofdaysigaction__explicit_bzero_chkgeteuid__memcpy_chkclock_gettimewaitpidlocaltimestrchrgetsocknamemktimeqsort__ctype_tolower_loc__cxa_finalizefreeaddrinfo__vasprintf_chkfcntl__xstatisdigitiscntrlmemmovestrsepgetrandomsetgidstrcmp__asprintf_chk__libc_start_maindirfdcloselogsnprintfsysconfreallocarrayispunctprogram_invocation_short_name_edata__bss_start_endGLIBC_2.14GLIBC_2.4GLIBC_2.25GLIBC_2.3GLIBC_2.8GLIBC_2.26GLIBC_2.3.4GLIBC_2.17GLIBC_2.2.5OPENSSL_1_1_1bOPENSSL_1_1_0         B  ii  ii ii ti ui m&&П&&&&& & &@&P& `&p&&&&Ъ&&& &&@&P& `&p&&&&&Ы&&&& & 0&@&P&&&& &&Ь&&&& & 0&@&`&p&& &&Э&&&&& &%0&0@&7P&I`&Yp&p&&&&&Ю&&&&*&9 &O0&I@&aP&r`&p&&&&&&Я&&&(&=&O &0&g@&zP&`&p&&&&&&а&&D&&& & 0&@@&6P&J)`&p&#&8&K&^&h&tб&&&&& &0&@&P&`& p&#&/&=&Q&b&в&s&~&&& &0&@&P&`&p&& &&&&г&,&:&&H&N &Y0&h@&yP&`&p&&&&&&"д&1&C&Z&h &S(&_H&P&dp&qx&y&}&y&ȵ&y&&&&8&@&`&h&&&&&&}ض& &&&&(&H 0&P&x X&x& &&&&& &j0&p@&uP&}`&p&&& &&и&&&&& &0&@&P&&&&&& &@&`&&& &(&F&d &}@&`&& && л& & & & &  & 0& @& P& `& p& & & & & & м&!&!& !&!&! &"!@&&X&r*p&*&*&*&*н&*&&&*0&+H&#+`&A+x&(1&P1&_+&r+ؾ&+&+&+ &x1`&+h&+p&+x&+&,&,&,&),&:,&I,&5п&:&:& 7&:&; &;0&H7@&/;P&8;`&C;p&I;&X;&7&f;&m;&w;&7&;&@8&;&; &80&X9@&;P&;`&;&c &l &w &  & H& p& && & & 8& &s&&w&&|&&&(&&@&AP&G`&Mp&S&x&Y&_&e&k&&q&w&&&&@&h&&&,&&&X&&&&8&&'&>&B&a&y&&&&&& H&X&h&x&P&q&C&.&0&&&{&&&&&&&&&& & (& 0& 8& @&H&P&X&`&h&p&x&&&&&&&&&&&& &!&"&#&$&%&&&(&)&* &+(&,0&-8&.@&/H&0P&1X&2`&3h&4p&5x&6&7&8&:&;&<&=&>&?&@&A&D&E&F&G&H&I&J&K&L&M &N(&O0&Q8&R@&SH&TP&UX&V`&Wh&Yp&Zx&[&\&]&^&_&`&b&c&d&e&f&g&h&i&j&k&l&m&n&o&p &r(&s0&t8&u@&vH&wP&xX&z`&|h&}p&~x&&&&&&&&&&&&&&&&&&&&& &(&0&8&@&H&P&X&`&h&p&x&&&&&&&&&&&&&&&&&&&&& &(&0&8&@&H&P&X&`&h&p&x&&&&&&&&&&&&&&&&&&&&& &(&0&8&@&H&P&X&`&h&p&x&&&&&&&&&&&&&&&&&&&&& &(&0&8&@&H&P& X& `& h& p& x&&&&&&&&&&&&&&&&&&&!&"&# &$(&%0&&8&'@&(H&)P&*X&+`&-h&/p&1x&2&3&4&5HH\&HtH5S&%S&hhhhhhhhqhah Qh Ah 1h !h hhhhhhhhhhqhahQhAh1h!hhhh h!h"h#h$h%h&h'qh(ah)Qh*Ah+1h,!h-h.h/h0h1h2h3h4h5h6h7qh8ah9Qh:Ah;1h<!h=h>h?h@hAhBhChDhEhFhGqhHahIQhJAhK1hL!hMhNhOhPhQhRhShThUhVhWqhXahYQhZAh[1h\!h]h^h_h`hahbhchdhehfhgqhhahiQhjAhk1hl!hmhnhohphqhrhshthuhvhwqhxahyQhzAh{1h|!h}h~hhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhah Qh Ah 1h !h hhhhhhhhhhq%-B&D%%B&D%B&D%B&D% B&D%B&D%A&D%A&D%A&D%A&D%A&D%A&D%A&D%A&D%A&D%A&D%A&D%A&D%A&D%A&D%A&D%A&D%}A&D%uA&D%mA&D%eA&D%]A&D%UA&D%MA&D%EA&D%=A&D%5A&D%-A&D%%A&D%A&D%A&D% A&D%A&D%@&D%@&D%@&D%@&D%@&D%@&D%@&D%@&D%@&D%@&D%@&D%@&D%@&D%@&D%@&D%@&D%}@&D%u@&D%m@&D%e@&D%]@&D%U@&D%M@&D%E@&D%=@&D%5@&D%-@&D%%@&D%@&D%@&D% @&D%@&D%?&D%?&D%?&D%?&D%?&D%?&D%?&D%?&D%?&D%?&D%?&D%?&D%?&D%?&D%?&D%?&D%}?&D%u?&D%m?&D%e?&D%]?&D%U?&D%M?&D%E?&D%=?&D%5?&D%-?&D%%?&D%?&D%?&D% ?&D%?&D%>&D%>&D%>&D%>&D%>&D%>&D%>&D%>&D%>&D%>&D%>&D%>&D%>&D%>&D%>&D%>&D%}>&D%u>&D%m>&D%e>&D%]>&D%U>&D%M>&D%E>&D%=>&D%5>&D%->&D%%>&D%>&D%>&D% >&D%>&D%=&D%=&D%=&D%=&D%=&D%=&D%=&D%=&D%=&D%=&D%=&D%=&D%=&D%=&D%=&D%=&D%}=&D%u=&D%m=&D%e=&D%]=&D%U=&D%M=&D%E=&D%==&D%5=&D%-=&D%%=&D%=&D%=&D% =&D%=&D%<&D%<&D%<&D%<&D%<&D%<&D%<&D%<&D%<&D%<&D%<&D%<&D%<&D%<&D%<&D%<&D%}<&D%u<&D%m<&D%e<&D%]<&D%U<&D%M<&D%E<&D%=<&D%5<&D%-<&D%%<&D%<&D%<&D% <&D%<&D%;&D%;&D%;&D%;&D%;&D%;&D%;&D%;&D%;&D%;&D%;&D%;&D%;&D%;&D%;&D%;&D%};&D%u;&D%m;&D%e;&D%];&D%U;&D%M;&D%E;&D%=;&D%5;&D%-;&D%%;&D%;&D%;&D% ;&D%;&D%:&D%:&D%:&D%:&D%:&D%:&D%:&D%:&D%:&D%:&D%:&D%:&D%:&D%:&D%:&D%:&D%}:&D%u:&D%m:&D%e:&D%]:&D%U:&D%M:&D%E:&D%=:&D%5:&D%-:&D%%:&D%:&D%:&D% :&D%:&D%9&D%9&D%9&D%9&D%9&D%9&D%9&D%9&D%9&D%9&D%9&D%9&D%9&D%9&D%9&D%9&D%}9&D%u9&DAWAVAUATUSHH $HdH%(H$1HD$0Α1H=y<D$ H=<1D$,1H=h<11H=r<$A11H=t<$1j1H={<$1S1H=<$1<$0 HHH$ЭHHD$I@fHHE1IjH kLH=5<HNW_HAXs$\L$DE1LIt$DEHH9tDEHH9uE+1H$HD$0H$HAt9H $E11D hDAEu8HD$0Ht HD|$HHt@E4HAuDfH=;HH18Hut$1H=;kIH1HHt$*LD$*<HHt$,Lg|$,!IHNHT$@Ht$8L_Ht$@H|$8HD$HHD$0jIHHD$h1LHH$2HD$hHt$+LH1H @!G|$+2t11LHD$X1LHI|HT$XH5:HHH1LL;HT$XH5y: HHHD$p1LHHD$>HT$`Ht$PL$H|$p `H|$pH|$PH$LLHL$XLH5:1H=}:`6LHL$hHH9-HL$XHFHD$x1LHI1HD$HT$xH8HH$H$HLoHL3j1H50:H=B96HD$HLLc(HD$0H|$0H+HtHYH|$0HI9uڋ$1腓HHH|$0~HH=9H1{(H׃@LnHLwiUH5u91H=85H|$HUH={81'(PLE1HjLD$PHL$HHt$gZYhH|$8LkHT$xHt$pLL91H$dH3 %(H[]A\A]A^A_Ht$`H|$PHT$HD$L$u1HD$H;sqHL$X<.tSOǃbH5Q8H=N7H1/+HL2&H=f7H01&HHLH $ H $\aH57H=6H1&aH=p6HH1&H01&H55H=51&H=51v&H=~5j&H=;61\&H=61F&H5g7H=4611&H=51#&H=51&8H=e4HH.1&H01%H1&H=o5H01%H=t51%LfH561H=5/3[^`H=6H1}%H= 61o%f.D1I^HHPTLv3H 2H=J0&H=1&H1&H9tH60&Ht H=y1&H5r1&H)HHH?HHtH/&HtfD=E1&u+UH=/&Ht H= &yd1&]wH &H5H;xtHPHuH5H5514@AWFIAVAAUL-O5ATLdUH-95SHG5HIH. &HHD;pt HPHuLH޿1IM9uH[]A\A]A^A_fATH &USHH4fH;xtHPHuH41H5{Tt+EH-{LdHH1H*L9u[ ]A\wAWAAVI֍VAUHL- 4ATH)L%>{UH-)4SI\8H9f.AuKIvHtBHu/I8I9A.uIvHtHuH &LDHD;xtHPHuH3L17ANIHtrH5t31A.t-AN IVHH5A31 I8.I94H[]A\A]A^A_fDH5s1fIVH5y1ye@H5Hs1[zfDIV(H5y19XSH 2tAGLwH>HcH>H 2tH n2H)2HEH5! &H2fH;^tHVHuH1H511[H뷃1H=&;ptBHHHHHufDH 1t1H=2& ;pWBHHHHHuZ1H=& @;pBHHHHHu눃:1H=& @;pBHHHHHuM1H=K&f;pBHHHHHu 1H=&f;pgBHHHHHutk1H=&D;p/BHHHHHut?1H=&D;pBHHHHHu]H ,0H 0H 0fHH&H/H9xtHPHuH/H5/1Lff.ATUStUHoL%/'HfX uH]t!LHt[1]A\f.[]A\fDAVAUATUStqHL5I/HL(ftLHEdEAu)LHuEfA t<-t \u„u[1]A\A]A^[]A\A]A^fAUIATIUSH~B11@AH89~&ILHttH[]A\A]DI8HcIcIJAH H)I$HHAT$PIT$HPIT$HPAT$ P IT$(HP(H[]A\A]DAUIATIUSH~B11@AH89~&ILH蔼tH[]A\A]DI8Hc9IcIJAH H)I$HHAT$PIT$HPIT$HPAT$ P IT$(HP(AT$4@0P4H[]A\A]fDAWAVAUATUSHD AcHIA1E}EWHCI9tGHD9(uH LjuHLH5x;[H=,]A\A]A^A_'fIcALD(D H H[]A\A]A^A_þdH=7;1AWAVAUATUSHdH%(HD$1,cHAHH1HHH5sK=L,$D,E~`E~1HCL9tGHD9PuH0LJuLH5<:H=t+&H<$#DIcADPD,L0HD$dH3%(uIH[]A\A]A^A_HH~IH$@H4$H=Y:1ZdH=:It@%&tÐHH5*H=-H¸Ht Bf%&HfDHt'HH5V.Hf.f.HHHXXXXXXXXHHH)HHHHǂǂǂHHBBHBHB HB(HB0HB8HB@BHHBPHBXHB`HBhHBpHBxHǂ,ǂ HǂHǂHǂǂHǂǂHǂǂHHHHǂHǂHǂHǂHǂHǂHǂHǂHǂHHǂHǂHǂHǂ (HH$H,H4Hǂ<HǂDHǂPHǂXH`HhHpxHǂHǂHHǂHǂHHHHHǂHHǂHǂDu LJu LJt@LJff.fAWAVIAUATUSH?uA~uAFA~ uAF A~uAFA~u1IAFAu1IAI~A~ uAF A~$uAF$A~(uAF(A~,uAF,A~4uAF4A~8uAF8A~$HIHH5$HI HtaH5#HtNIHt3H=#HuAuI_H[]A\A]A^A_HIdž HIdžcHIdžX$HIdžHxIdžHXIdžOAdžH=)rAH=ICArIAdžH=$qAH=*ICAqI1LHH5(1LHH51LHH5i1LHuH5Q1HpLH59H IFIE1EfDIHH)HHHHmE1H$ dH3 %(D"H []A\A]A^A_DDŽ$H$H|$0~IHtfDHHtLRHt$L1A$ H=&EIEDE1HD$D9~OMcJHD$H@JH|$0qIH<-tL<+uI|$rD+EHLUHfHŘL-% HŐHňL-%HŀH|$08qH 8H$H6r$=D;EHt$x0HpL-%kL-6%_D$E_$ HHl$@DŽ$D$THHEHD$XH$HD$`H$HD$H$0 DxH|$0LpIH1 & <~uDl$TELk? A<$~4 H|$`HT$XLH5TH$HD$Hf1Ҿ)H)@)@ )@0)@@ H$D$E$D+ $ $ EDE1D$88蛺8D+DŽ$AD9$= H$DL --L4H EuL zD$0 $ H=!1Ht$H$HH 1wLH=$ Ht$LH=zM$ Ht$LH=2$ Ht$H=1$ Ht$LH=$ Ht$d1H=S$ Ht$LH=HL$APMPLL1UAYAZ$ Ht$H=Y1rLZ$g$ Ht$H=`1A$ Ht$d1H=W"$ Ht$H=W1HjjD$8Pt$8D$8PH8ff.AWAVAUATUSHH$0Ht$HT$ L$8HL$(LD$0HD$8dH%(H$1$@HD$@HD$H^H5IEAIHAt9H觗HT$P薢7\$lD$h1LH= 1HD$H1HD$HD$@HD$FHM鋄$HPAWAVt$XSLD$pHL$XHT$PHt$HH|$`H0Ht$H|$L .HuH|$@>L&uiH$dH3 %(u@H[]A\A]A^A_1@9 LH= 1 5H=F LH= 1葡8LH=H1fDH dH%(HD$1D$ jt$0HD$PH HT$dH3%(uH衡HIHHdH%(HD$1HIH=荄u 1H<$HL$dH3 %(uHCAU,ATI1USH1HdH%(HD$1,HH5CHH < H耛HHt  Mt L8;(sx[ Ys4 s|!Ѳ`J7豲5衲s 蔲`脲3xsks ^s Qs8<DssHAHsPHt @蝴HsXHt B芴Hs`H_CHHDnlL辱s00豱0F衱sl+蔱,6脱sh wPgWWs,*JU:s(^- # pM(9RݰaͰZ}ms`$P8E@4D0HHt 2HHt 3HH(HHDŲHXHt I诲HHt 1虲HHt -胲HHt bmHHt WHHt VAHspHt ,.HHSHHDHdHlHHDHHt OڱHHt Qı9Ht Hƿ'觱HH)HHD舱H Ht 4rHHt /\HHt cFHHt _0HsHt H.膬HoHX,H0!XH蚫 H HlHU<GH@讪HHHP藪:>H51蛑tiH5c 1vx,H51Q 觑dthKH1HVH1H5djH5\H1运jH(1H H5)茐S$1H5'vH5)H1UHH]:HHHH1DLHśWHL3LH/H5LL MHH CHHWASP1ARVH5u茏H0HD$dH3%(H[]A\A]fƿK=H=詎T@H5HHHIDHIL1詚KHLM9H@ LHfH51蝎~E1L%f.HLHHHH1V9ο 褎H5x1%H5[1 H=dAHHP>AfH 8 HL ( MH= IH= I謖H5EH=q1gATUSH ʼn%CSsA%H=c1%F%11%艎k%EH=%Hc!.=C%HHa%LHc=!%tJ%L%3%9CtrsH;諉W11 %HcH=%--%HIH%ȍHcC%L̙{謒{L[]A\fD賏Hx%v%[]A\Ð苏E11HC%yQ8躑H=<H148蝑H=HH1l8耑sH=:H1L8`sH=-H1,ד8@H3H=H1 ff.%tr%S%5%H=1{% ~b%GxNHc=%H55%@x.%[H=1b8膐H=1H1U8iH=$H168JH=H1H=p1 fATUSH谓IH`%DSsH=A1{U{ۊ!D9ctCu^;Cs;C9kt >螆;CuB;Cu8[]A\@D0u D賏tH5H=1k誒AH5^H=M1kƎAH53H=1H5H=1H=?1H= 1r8膎sH=H1R8fsH=H12f::HHcH>HHHHwHHHHQHHHHHHHHHH)HAHHHH!HG8H鬌@HHHHHHHHHH H!HHUHH!H1HGHIHaH2HyH"H H"HYHqHHHHHHHHHHHGHt(W0u!8wuH=vHWHHH9s fDHWSHH?H)H4HCH)CHC[ff.@SHHHtAH@(H@ @0@8H@@ߍHHCHt H[fDH1>ff.HtgHw^UHHSHH胍Ht-HX HXHX(@0@8H@@HhHH[]f.1ff.fHtW0t8G8=v;H1  9HHGH9uDHtHG H=wHW(H9rHGH9rH;GrHtF0u HFH9uF8=tH~iHF H=YHV(H9LHFH9?H;F5Hw@1F8ff.fHtGSW0Ht,C8=v7 1~ [8HGH9uDH{tHS HwHK(H9rHSH9rH;SrC8u5H{@lC0HC@t%HHH虇H[[fDH;Hs(HuH;̈́ff.USHHtG0Ht7K8Qv@1 1} AHH[]HOH9u΋K8QwH{HtHK HwHS(H9rHkH9rHSH9rH)Hw$HC(H9rHSH9rHCHH9sfD1 | 蚇1HHHCHH 0H1!fH;;t[1 | EC0u 1HH9CuC81=pH{@H_HK )fDH)ff.G0uW8v HGHG@SHH?HCH9uus1 { 襆Hs(H;HCHCHt&ָHHtnHHCHC(H[-DHtHC H=xHs(H9kHCH9^H;CqOf.H;ff.HG HG(HG@G8AUATUSHHtDg0HHEt>C8PvG1 Az dHD[]A\A]fDHGH9uNjC8PwH{tHS HwHs(H9rHKH9rH;KrH9EH1H9H@Hs(H9vMHCH9srAH=v LE0I9H;LGLHtaHHCLk(L9r.Hk HD[]A\A]@HE1[D]A\A]HA[D]A\A]@AAfHtG0t0G8=v3H1 Cy 1HfHGH9uDHtHG H=wHW(H9rHGH9rHWH9rH)ff.HtO0t0w8F=v3H1 x Y1HfHGH9uDHtHW HwHG(H9rLGL9rHI9r1uHL)ƒHDDHtG0t0G8=v3H1 x 蹂1HfHGH9uDHGHtHW HwHO(H9rHwH9rHWH9rHff.HtG0t0W8Jv2H1 w (1HÐHwH97uDHtHO HwHw(H9rLGL9rHOI9ru1uHH1ff.fHtG0t8DG8APv8H1 v vH@HOH9uDHtHW HwLO(L9rHOI9rHH9ru%AuH9w H)H)H9ʺBø@AUATIUSHH'ŅtH[]A\A]@HC1HLH;C @HCHs(LH9vLH;E0L;k LGLղHt(Lk(LHHHCNH[]A\A]ýmff.ATUHSHHt-HIuHSH HHHkI $[]A\uHk[]A\ff.USHHtW0HHt4C8=v=1 t H[]DHGH9uЋC8=wHKHtHC H=wHs(H9rHCH9rHsH9rHt8uYH; tT1 pt 1@H9w8HkHkH;kt 1H[]@HC1HC@H)ø=fUSHHtW0HHt4C8=v=1 s ~H[]DHGH9uЋC8=wHsHtHC H=wH{(H9rHKH9rH{H9r1Htu7H;3t21 ^s ~1fH9wH)kH1[]fDHH)ZfD t@ t+t rttdEf.ewH% H'+fHtNAUIHATIUSHcHyHŅx%Ht H9rHLLH[]A\A]øH11dH%(HD$1H`H<$gw=NHL$dH3 %(uH;~ff.AWAVAUATUSHdH%(HD$1HHHIxLlmILIHLHHȰLH5LHteAI^L IL=Hl$ MHHHPL1XHZLL衯L9uHL$dH3 %(LuH[]A\A]A^A_f.E1}fDAWAVAUATUSHHHHt$H<$wHSHLhIHHHMtMfL}HHH $LHH蒯LH5HЮHuHH[]A\A]A^A_fLH|$JT-HL)rtH5\Ht~DDLH D1@ATUSH0dH%(HD$(1H HHAԾH/%D9p@H(uuEt$AwH HcH>fDH%f.H(PtD9uPt9uL v9H\$(dH3%(eH0[]A\L%wHHcH>fD@ 9HE`HH8HMuE3HE`HH0y|dH} LHFEH5s=t#H5y=t=H58HEHڀHu H覎H}0ALH諀Hu0 HH}H Ht$1HT$ ~LHdHt$ HwHt$HeH}HHL$HT$Ht$zH}Ht$ 1sLH!Ht$H蔋 Ht$HHt$HjHt$ HUDvl1ew]xfAVAAUIATIUHSHtHHtHE~HHt~LDHhAŅtHY[D]A\A]A^DHIMtI$HtLoHEHtHH}LHg|DAAAUAATIUH-~SHC%HLHxƅuHCHt5H[]A\A]f.H(DkAH+fS HtAE{wHHcH>fDDH%f.H(Jt$9uBt9uHH[]A\A]HH[]A\A]fD뙐ffn1ff.@7t:H %9tB@HHQ(uHDHA0Ht*H %f9tB@HHQ(u1f.AHff.wH[%fH(Pt9uP9tuHÐHPwAwHhHcH>fD1fDH%fH(Pt9uP9tuHÐHffffATH5IUSHR%H3Ht Lut(C uH{LktH(kuɽ []A\ff.fUHSH%H$DuH3Ht HttC@H(uH[]ÐCH[]fDAWL=%AVL5AUATE1U1SH(|$t$T$L$x@Aw t\D$uTLHtD$HBD%LnHL$IIt$.wHtyH<IULHD$wLL$LI(AGtYM7 tMtDL$Eu EG$EuӋ|$cL$gAW [fH1mH(H[]A\A]A^A_@AWAVAUATUSHdH%(HD$1Ht?u,1HL$dH3 %(H[]A\A]A^A_AprIH$HtIH5 LBuHH8L= @H5ٷLuHHta8t\HL uEt:LH%fDH({tH;1Ht{uLlLlqHdH%(HD$1? HHcH>@HL$dH3 %(Hf.Wt͸ t1H1HtH11YrH<$@jfDH1HvH11 vH<$j\1Npff.HdH%(HD$1?HHcH>@H uHHt$dH34%(uRHÐH1Hj1H<$fDH11HPu1H<$@1H0?p1ff.Ht*7t#H t% f9tB@HHQ(u1f.AHff.WwTH HcH>1Dff.f.f.ff.fAWAVAUATUSH8t$ LD$LL$dH%(HD$(1HIHIHPmPHcH|$ fHHkAIHt&|$ AFI11HLft7LpHOiHL$(dH3 %(DulH8[]A\A]A^A_DHT$Ht$LguHT$ HLjuHD$ I$E11AEAA+nff.AWMAVAAUIATIUHSHDL$ jHt~DHU11IHHitHoH[]A\A]A^A_LLH"guHcT$ LH߽ltE멽ff.H H=*HtF H=$Hָt& H=H%ft t1t  tEff.Hlt%HqtH.HEtt1D@fHSHwKH)HcH>H0 ‚H{(@HC0謂HC( t%H%9t$P@H(uH߾h[jf.@ tH{`Ht{H߾h[=DHmHC HGkHC fH _HC Fff.@UHSHH?H}@H}HH}TeE t1HE(ڃH<6e;] rH}((eH}PoH}XeHH`[]SS`pkHHtI3HHtK&HC@Ht=HCHHt/HCHC(HCPHCXH[f.H1H[ÐUhSHjHH(H@ @H@H@H@`H@(H@0H@PH@X wkH t:t%H%9tTP@H(uHH[]fD"u\tdHtHC+fDH1cHH[]@@ t|HC`HuH1mHtHC+Qff.AUATUSHXdH%(HD$H1HtuHHtmHBH HcH>HC0Ht?HU0Ht6HHpH3 H3rH u#HHHpHBH3rH1H ƸtfD1H\$HdH3%(HX[]A\A]EHwpH=9Hc H>֐1@H H5Hc H>ff9P1GH HcH>@1f롐H{HH}1HT$(Ht$0kH}Ht$@1HT$8kHt$8H|$(`Ht$@H|$0`H{ HsH} h]HZH} ]HHdIH7H} `H{ I_LLHeH} []H{ IO]H{ H_LLHHrbaL[EH1H5jHc H>H{HH}HL$HT$Ht$fH}HL$8HT$0Ht$(lfH{1Ht$ \_H}Ht$@1L_Ht$(H|$M_Ht$0H|$6_Ht$8H|$_Ht$@H|$ _ָd@1WAfyf&fDL!Z1dedDHtWHtR;uLAVH%AUATUHSHu 9t,P@H(uHH[]A\A]A^eD1D@ tLm`Lc`LL tMtMtI<$I}II9t [1]A\A]A^I<$I}I I<$ILLHscf1UDATIUHS=Ht7H1HH(ŅtH[]A\HLi߽f.1f1DfAWAAVIAUIATUSHH(dH%(HD$1HD$HD$HtHMtID谐HHHT$Ht$ÅtZHl$E1L\HtHt$HHQ_H|$\HL$dH3 %(H([]A\A]A^A_f@bHl$IHt^HT$HHDA@諒ÅuMtMeE1Mt D܏IHl$MHl$E14*WaAWAVAUATAUHSHdH%(H$1HL$(HT$ Q9Lt$(Ll$ A5H DHcH>1tlLLHLt$(Ll$ HLHL]H|$ <[HH$dH3%(H[]A\A]A^A_ÉyLLH+HLt$(Ll$ @HbcdfghkluyDŽ$aeioH$HmnprstvzH$LHf$xƄ$xD$I|$aHH"xEL1E1ɿAHD$D]D9\$DADEDDARW) DB#DDgAщAR) AIB;DH9l$AQDATD]AAAF DDOGB -IAF D BAD)AAA98AD)D9\$H|$𺫪DgR)4 GxGDHAT$xl@) HD$%_HHH|$01H|$HMKt5LH\$AE1HA7EAAEDǃɃAEHѺAHDAAOƃL$NLcK LcLLD A w AD AuHH9xH\$KH$HD$|HBƄ }*H5F%@9Q@HHN(uL ML$HPLKL1%_ZYv\uH ր%@9B@HHQ(uL L1L^HkMAI!%tL$LL$LcLDIWLD@ƾI1P^M)L)HMAI!%tADINLD@IM)M)I+HE1HIE-I9rLHLLL$LLD$SLL$LD$MIHDHA-J9H)Hv+ Ht$HyLfAHn fG|HGIDAHHIGI APH9uH|Hx@ H9uHƁ+MJHfH@-H9uJ DAAtAUtATfTfDLMIHDH@-J0H)Hv+{1-fHLL1VH|$ BTDH$HyHHDITHTHH)I)DX1҉փML5L 79r<@LN0uAUATTLL$1E1L$LfL[9+AE1|fAE1`fLI0eH@rfDAsxAtAM J 2yH}HLLLD$LPLD$3HUAAH$HHHDItHtHH)I)Dj1MD=L99rNL `L T^AM ALL"WALfL AUATIUHSHHtHKHHtcH1H14AŅt%H%HQHD[]A\A]HcHHtMtI$1AAATIUSHHdH%(HD$1HH$.ŅuQH $A4$Hz%A|$DH(PtL9uP9tuHH5$H1YH<$PH\$dH3%(uH[]A\H"VfAUATIUHSHHt|HHHŅtHH[]A\A]fHHI-LLHXHtLVtU 똽ff.@HG`PHޜtHŜHHEAWIAVAUATUSH(dH%(HD$1HH$HHD$NHIRŅ~(HL$dH3 %(H([]A\A]A^A_;SIHI佟,DLHLRTtNHILA,$t)"KHHuL JpLI[LIHTHLL/H߽JLSfDAWAVAUATUSHH2H IIH~fE :KHIE0H@ KIE(HHH蘈A]1M,$fu|=<IENIHjPIHteHJtt1LLELtaMu1VULWqfLH[]A\A]A^A_fLU1Wf.+SLTLW@ Xd@hVHHtwHIE11jHE1E12FZHYtJtIm1QhHQfD1T1V1QH5H=1胏fDfD@IE MHHt'H?LtZHEM1E4@f.@fHsTIm 1XEKff.@AWAVAUATUSHHhdH%(HD$X1H?UH .HHcH>KIH8{xLIIF HNH{ KGI~ HHHD$HD$E1HD$E1E1!IHH{HL$HHT$@Ht$8PH{Ht$P1IH|$8mJIHD$HH|$@RJIHD$HH|$H7JIHH|$P!JHD$HI~LLLK1I~Ht$1I@IHH{HT$0Ht$(1SH|$(IIHH|$0IIHeI~1HL5G}HD$E1HD$HD$D[IHHH{0t8 EIIF0HXHC0oAoHAO HBr%u9P@H(uLuE1E1E1HD$1E1HD$HD$LLHLHH|$HH|$HLHH|$HHt$XdH34%(JHh[]A\A]A^A_@@ aHLZÅLHD$E1E1E1HD$HD$PE1E1E1HD$E1HD$HD$HD$E1E1HD$HD$E1E1E1HD$HD$E1E1HD$E1E1E1E1E1HD$HD$E1HD$HD$bKE1E1E1HD$E1HD$HD$,AWAVAUATUSHHHo`HI0HHHuH8HMAąt!HHD[]A\A]A^A_Hu@H{@MAąuHuHH{HLAąuHEHCECH}HJHCHHE0HC0HE8HC8H}PHtjHsPYumH}XHtwJHCXH} uG{ I}`HtI]`$DHCfDHCPfDAvKHHC(HtK} tE1fD} AD9vHE(EHT$JH[]A\fDH,$HH1HHBu1빸Gff.D\$HtHHtHIwF?wGLIcL>fDE7EHp@E0ø@H|$u ofD\$HtRIwI?wJL7IcL>E9Eq+CE03ø@w5UHSHH,=HC`Ht+1H[]føHj% fD9tB@H(ufR tSHH`Ht7PHC`wH JHcH>@11[1[D1[D1[D1[@AWAVAUATUSHdH%(H$1HD$HD$ HD$8HIHw`HHH>MI͋t,HMƺHmi% 9tDP@H(uH$dH3<%(HĨ[]A\A]A^A_f.x tAmHZHvXHWHtHD1HT$(Ht$LHC`L L轻s Hh%f.H(PP9uPt9uH0LJH$urHD$p HHD$3HD$ LHIuB9Hs0 LfIKfDLD$D$H|$ D$ >H|$>H|$8=H<$=D$Q@CH}HHDuRH{Ht$@1HT$HGHt$HL4UdHt$@LUJfH5P2CH5=tH5=t=H5lHE4$LIH$H{ 9HE`HH8ɵHHE`HH0ABqHu0 H(AXHu(@HABH}HL$HT$Ht$@H}HT$0Ht$(_5H}11HL$ =Ht$H0M+H}HT$Ht$HL$ ;H}HT$0Ht$(4Ht$HLHt$HLHt$ HLHt$(HLoHt$0HL]EH5B=t#H5H=t=H5HEH@Hu HuNH} d>HH)LHE`HH8HH}1HT$03HE`HH0w@3HE`HH8ųHHE`HH0=@mcHE`Ht`H8菳HtSH}HL$11(>H}HT$0Ht$(u3H}11HL$ #;HE`HH0?Q8AWAVIAUEATUSHH|$@Ht$HHL$PdH%(H$1EɸHD$hHD$xDNHt :L%Ld$L'dHHFHD$H3IH"HD$(HdH11HT,|EHHyH|$8o1Ht$@HC-H|$@9C]H{ "{*IHC HH'H!&IH1H{ l'LHHN>H{ M'LHH{ L% t"HQ% 9P@H(uHdHMtI$1LHH|$8'H|$@'H|$P'H|$X8(H|$`.(H|$h$(H|$p(H|$x(H$(L.DH$dH3 %(#H[]A\A]A^A_11H|*mHHHt$hHD<LHt$pH/<7Ht$xH<"H$H< H{HL$xHT$pHt$h'H{1H$HD$xHD$pHD$h%HDŽ$11H)HHHt$`H\;dHt$XHG;OH{HT$`1Ht$X#@HD$`H{HD$XgE111H(HT$HHt$PH)u^H|$H HH HD$PE1HD$PHC0(DD@ EE11AKAE11;x HC`LHDŽ$HDŽ$HDŽ$HDŽ$HDŽ$HDŽ$HDŽ$H8+tAfDHC`HHp&tgH$D$莞H$聞H$tH$gH$ $D$2@AE1=HC`HHp%uHC`H$HHp(eH$H)0MHC`HHp0Q%5HC`HHp89%H$H/H$H/11H&H$H/HC`H8詢HHD$蜢H$H$HHD$'HC`PpH$HD$ HDŽ$HC`x B pr H$HH$赡H_HC`H$Hx@')H$HtHHC`HxH)t7}H$11;%H$11"%H$-HuE1AE1AAfE11AE11AAuE1AgE1AYANY&H$ HC`HL$HH(pHt?H$11:$H$11!$H$HuHC`H$1HpPu¸Hs`HVP HH>HS`E1HHzPRjH$H$LD$L+D$ 7Y^HC`H$H$HPXHC`Hx@螜uHC`HxH茜cE11AfUHSH^Ht&HHHǺvH߉輙H[]ýff.BfAWAVAUATUSH(Ht$dH%(HD$1H@I $ /HHH5Hz&HIL9tNL5L=wH%DM7MtLI9uLLH$t9I(Aou̸Ht$dH34%(H([]A\A]A^A_@ tAL< t < ufH< t< tt$ t97HIH0H5H}%HHI/(HHLH$0H$HLHt$L$ΗI܋$A$ t ufIA$ t tLD$A9( ;H° AmSHF%D9hJ@H(uUwPH HcH>H׉$L $>D$,AGA]tyt$LõfI} $dH|$$HW IU WAUHG G$vHD$L $I}$!H|$$HWIUHG…mI}$#H|$$HWIUHGfI}0 $7H|$$HW0IU0HG0dfJ A0t%H1E%9t$J@H(uL蠴fDR tI}`Ht$訵LD$$IP`IU`I@`Am@u E9xL0_fDOE;L)LfSHH dH%(HD$1Ht$&u$H|$HDH|$D$ 膔D$ HL$dH3 %(uH [wAVAUATIUSHHH($H@!HHt8H0!IHt(LHHH"t- fDH[]A\A]A^LH#HHAD9}7HLHdtL1#LHx{yff.AVAUIATIUSHdH%(H$1H$HD$HD$HD$HD$ HD$(HD$0HD$8HD$@HD$HHD$PHD$XHD$`HD$hHD$pHD$xHDŽ$HDŽ$HDŽ$HtHH1LH,$ÅHH|$H|$8H|$pH|$xH$}H$pH$cH|$@YH|$HOH|$PEH|$`;H|$h1H|$X'H|$議Ht$H|$(3Ht$ H|$03Ht$13Ht$ 1w3H$dH3 %( HĠ[]A\A]A^fDH@HHcH>@Ht$LCH,$DHt$LuH$L+uHD$H$1HxHDŽ$HD$DHt$L{Ht$PL+fHt$XL+QHt$`Ll+I~ =DE1MM4$E1w A萡IHSHAA1IFH1 'I~蟌ADžtMtA>tE1A H胋tY E1HnAfD AIHH|AIFAHSAVAUATIUHSH YH|HHH.HF IHH2 IHL>HVH Hȁ=LLIHLiH HH-H%H=F|HM H}LEHMH=| H}LHu H[]A\A]A^H IH{HcH%[]A\H8A]1A^D@HAH% H=h{HP USHHNHHHHX H-G%H=c{HM H/ Ht*H" H}HFHuH []fHMH={ @AWAVAUATUSH8dH%(HD$(1x(IHL΃~EuDL$pIHL=H|$(dH3<%(H8[]A\A]A^A_fDEtxADD$HHT$HT$DD$IDD$HT$HT$DD$HD$AEDD$HT$KHHT$DD$HIAEatDE1LLD HD$1oE1Hu ALDD$HT$HT$DD$tAu)HHE1EjHT$(LL ZYgHL$ 1ҾLg FHt$ HcL/E1DD$HT$QHT$DD$HItϋEtH!HuLDD$HT$DD$HT$@E1At%HuLDD$HT$iHT$DD$HHuHE1jHT$(ELAZA[P@HHuHLjHT$(E1EE1^_HHE1EjHT$(LmAXAY롻(ATIHUSHtHMtItexO[H]LA\@ u;LLHHzt+t&HL[H ]A\ f.[]A\fD[L]LA\1IHtHMtIHH 11D1ffDHfAUATIUHSHHdHHIvxMt%Ht HLL1H[]A\A]DH1[]A\A]ff.ATUHSH~HI x1Ht I$HHU[]A\fATUHSH~HÍx1Ht A$ʉU[]A\@ATUHSH}~HI荁x1HtA$AT$ fU[]A\ATUHSH-~HI=x1HtA$U[]A\DAVIAUATIUHS}IMtI$HtHEL|Hv[A]ˁw=Ls|HH9r:MtIM,$1HtH][]A\A]A^fffATIUHSHH dH%(HD$1HtHHtHHT$Ht$Lx1Ht HD$HEHt$HtH3HLHL$dH3 %(u H []A\>ff.ATUHSHH dH%(HD$1HtHHtHHT$Ht$x9Ht%Ld$I|$HHEHtHMu.B!1HtHT$HHL$dH3 %(u&H []A\ÐHt$LHH뽸off.@AVAUIATIUHSH dH%(HD$1HtHHtHEHT$Ht$L|ÅuxH\$Ht%Lt$1HLHtITH911LÅuyMt$Ll$I}bHI$HtaMu9B)Ht HD$HEHL$dH3 %(u>H []A\A]A^Ht$LHH벻뾻뷻9fU1H1SHH(dH%(HD$1wtHL$dH3 %(uDH([]@Ht$ H{uԋt$ HT$H|uT$ Ht$Hf.ATIUHSHHdH%(HD$1H|Åx1HuHL$dH3 %(uH[]A\H<$HL2fATUHHSHZxHIy[LHH]A\]ff.fAVIIHAU1I1ATUHSH0dH%(HD$(1Ld$MoD$HBHD$ u)HL$(dH3 %(H0[]A\A]A^fDoMHEHcLHHT$A $ID$i{x=sH|$MMHcHc9uL|rhYOHHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$H$HD$HD$ D$0HD$HHL$dH3 %(uHff.SHHdH%(HD$1HzxjH$HH8HH$H0PHH$H(PHH$H PHH$HPHH$HPHH$HPH$X1HL$dH3 %(uH[^ff.SHdH%(HD$1HXyx'H$H$PH$xH$X1HL$dH3 %(uH[fSHdH%(HD$1HxxH$8H$X1HL$dH3 %(uH[f.SHdH%(HD$1HxxH$1HL$dH3 %(uH[1ATUSHdH%(HD$1HHIHHs%xŅx1H$1H$PH$PH$XHuHL$dH3 %(u+H[]A\H$HLHx|ff.U1HSHHHt HHHHH[] ff.fHt7ATUHHSHUsHIzt[LHH]A\1fATUSH0dH%(HD$(1HHHHHT$ Ht$Ht"HL$(dH3 %(H0[]A\DHt$ H|$kIHtSHD$ HHpvuHL)lu LeLD$ mD$ fDtjAVAUATUSHdH%(HD$1HHHHuffDHHtVEtHDDItuAŅyIHt$dH34%(DH[]A\A]A^@HE1E1muAŅxAH$ H$JH$bH$BEtH$@E1HtH$HHJ| 4gA\ff.@ATIUHSHH dH%(HD$1HT$Ht$x9Ht$HuN1Ht HD$HEMtI$HHtHL$dH3 %(utH []A\fDHD$xOHw?u1u9 fD8uHHD$HuqHt`놸|fDHBAWAVIAUIATIUS1Hf.HHnL1HkH9I)DC >L1HcnIQI9t'M9wLIH=>nZI9uL hfDL.SHH9tBI9vE<D|$AǀupT$HDP@tLDHH9uDL HI9H[]A\A]A^A_L ATUHSHnHپHIHkm1QHynHIo[HL]HA\\ff.USHH(dH%(HD$1.nHHSofomD$)$Ht}HHH9wcH|-aHtT1f.  P  LPHH9uhHt$dH34%(u5H([]@1@HD$dH3%(uH(H=e[])fAUATUHSHJmHHonHIHH9wnHHSHHHL$LmHHt?LHHLtHH[]A\A]ÐHHLHH1[H]A\A]fDHH=d[]A\A]f.AUIHATIUSHH1HuH[]A\A]HHHt}HHL xuHcHL8x,HHHHZH1[]A\A]DHHHD$ H*D$ H[]A\A]øWHHHH3ff.fATUSHlHHekHtpHHtH1HHHtfLcJT%H9uHHHHt8HMupH[]A\DvHHtHf1[]HA\fDH{GHHtHHHHHfLf.HFH=wT?u?Ht*IHHHHE1HL\u1H1D쐸f.f.ATUSH dH%(HD$1HtgHHHT$Ht$Ņu&{IHtNt$H|$HHt8L#HL$dH3 %(u2H []A\HT$Ht$LAATIUHSHH dH%(HD$1HT$Ht$|xHt$H|$LHtHL$dH3 %(u'H []A\fD11HATIHUHSH0dH%(HD$(1VHHHT$ Ht$LHxTH$Ht$ H|$HHu3HHH߃uI11L7H߉D$ |D$ HL$(dH3 %(uH0[]A\Z۸AVIAUATUHHSH dH%(H$1XILd$LAD$It$9E~D$H)LHcHxALO1H$dH3 %(uQH []A\A]A^f.LD$ D$ @f@AWIAVIAUIATUSHdH%(H$1HIE11ɺLLHHH=ILIILLHH9uSHLLHL.H$dH3 %(u?HĘ[]A\A]A^A_k@HS볽DATUHHSHJHI[LHH]A\f.AWAVAUATUSHHH<$Ht$HT$dH%(H\$81HD$ HD$0HtHH|$H5[8HHHD$(Ld$0IHD$Hl$ L5dL=dDHٺ LH%HHD$ HD$(#wIr˹ HLHLt t u#HpHt$(pH< t< tHt$H<$n…LHl$(H5v$H-L|$$DMt'HD$(8HDD$Hu$HIDH|$ $GH/$f.H(HH\$8dH3%(uHH[]A\A]A^A_úNff.AWEAVIAUIATIUHSHLL$\HHHLHD$XELHPLL$wXZtH]H[]A\A]A^A_fDAL1H|$'n,HD$HH@`HxPHD$Ѕ H|$ HrHHt$8dH34%(DuuHH[]A\A]A^A_@HHH$D1fHYyHD$cAtAiAxfUHHSHHHutH[]f1ҹHHtDH[]H1[]UASHdH%(H$1H\$HT$ HD$ HHDtJuT$f tb1fH$dH3 %(H[]Dy8[H=1WH1D$ H$H11jA IH0ZYuS 1H`fDt$ f.k8H=VH1c1&H5)XH=VH1xf? uDOEuDG Eu t f.U1HSHH=VHSCHCC f ESfCH[]ATIUSHdH%(H$1H\$P18HD$ H1HLLd$ 7LHމ?LH f|$P HH=V1HE1E1L$Hjt$Lw^_1H\$ f1LHL$HD$$D$ CHC$C,D$(RLJD$Pf1HL$HL)D$ )D$0)D$@D$$D$(H|$H|$HtZH$DHwHjHE1E1ZYuHHtHD$Hx(H|$HuH|$H|$L$HLH= U1LHH$dH3%(H[]A\ÐD$ Sk8H=SH1H{fHLH=STH|$$HLsLHH=T1H$Kjf.ATAAUSHdH%(H$1H\$Hl$ HD$ HHHDtbu!D$f tbf|f tvft(1H$dH3%(HĠ[]A\H{WpD[uD$f uHHD$ D$fufDE1E1HH$HATt$H`ZYuHoWDaDH5SH=RH1) ff.HHt HH=HhoH1LHtHfH=H0oS1HdH%(H$1Ht H$dH3 %(u_H[@HH0t Hn8H5RH= QH1H=nf1DfAWE1AVL5LRAUATE1USHY%Ht$@|$ f.CuaT$tCtRLMt D$HC'L LLdH$It$H$HIt;H<(HLMhH(L3MuHL[]A\A]A^A_f.LE1GG IH? H5MQ€tA@ @GGuGtfDG@GDfUHH=PSH%HH(H;HtH H HHcH>fH %H % %tH%fH譿Ht@r%Z%B%*% %PPl@%T@%<@%$@% @%@%@H1%H8fH'FH%H81wH.Fff.AH=T%tw=%1@1Df%t 1=%DS1AHt%[8.HپHDIH=%H81+衽H=%H5%ff.fUHAWAVAUATSH(dH%(HE19=%II0IŋH EEHcH>fDžL CH=%MMHLHH=|%HLɃ!L=%MH%Hz%LAL=s%AEHEdH3%(=He[A\A]A^A_]Dž8fDžL C f.L BfDD%DžEL BfD}%DžEL /f.DžL f/{f.=.%H=k%%H,"L1HCBFѾ@H1AWLL LMMHHH耽AXAYH1HATALAH}Hڋ H!%t=%DHJHDY@H^HH)HfDH%H8|ff.HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ HD$$D$0HD$dH3%(uHff.PXHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ $D$0HD$ /pff.@HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ HD$$D$0KHD$dH3%(uHff.HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ HD$$D$0{HD$dH3%(uHNff.HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ HD$$D$0HD$dH3%(uH~ff.HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ HD$$D$0HD$dH3%(uH设ff.HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ HD$$D$0 HD$dH3%(uH޽ff.HHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$H$HD$HD$ HD$D$0HHD$dH3%(uHf.ATUSHtF<*tRt-8tHILE(D$HuLDMMHU P^^_AcEhM*ɸHHH|$HHHtu1HH9HGHH4$HH=1DD$ UDD$ H(D[]A\A]A^A_fDH}0oEA fHdElYM4$I~@ALDD$ DD$ El1H=1}HLsD$ HD$HLH$fD@1I>D$ DD$ HHH=1DD$ ǃ^LDD$ DD$ 2AfDDD$ DD$ HIF@AAuD@1]ff.USHH/tADžL9v)؉1H[]u苅H} H[]כHHHx8HAUATIUHSHHtHDkhLK8H>Mt8HLHHAULRP1R耜H([]A\A]DH( I@AVIAUIպATAUSHH dH%(H$1Hl$HD$H7AD$5wkHvHcH>8hSHtGHCHt>Ht41HHCDHHH=HH1rH|$LL蝝1H߃DHt$H =HIHDHHDHt~IH=s11H7HH=11HHH=11HHHH5H=DHHD1H| HsH51H=:1k1HHH=1PPXHHL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$H$HD$HD$ D$0HD$ff.USHH/H}(z1H[]DH}(H}HcHtt-H}(HHc[]kt t뤸띐AWIAVAUATUSHXHH<$dH%(HD$H1CD$x@IHc蠗HhLHE1D$ 0L|$0Ld$ Lt$@H<$H$HHx(gHCHP@I1HcH{HcP~ D$Mftt$L_]L'aC11MHxy>) t QPtLL%^D$~PD"f.HD$ HL$HdH3 %(D$ u7HX[]A\A]A^A_HŏH$踏$D$ D$ HHHx(,HHff.HHHx(@tH=?HÐH=Hf.SHHt$ ktX|$ tNHtP uŅI~(HT$ Ht$!ŅLHu)H5cH= tfh聉YHHx0HHx0 H@Hx0鼎ff.HHx0ЍHHx0HHx0ЎHHx0透HHx0鰏HHx8HHx0 HHx0HHx8鐄HHx8HHx8 HHx8ЄHHx80HHx8pHHx8鰅HHx8ЇHHx8HHx8 HHHx8<HHЃff.USHHHHz8HtHHEHHx8H[]fUSHHdH%(HD$11D$Hl$fD$H@t$Hx0HHHx0誈HL$dH3 %(uH[].ff.AVAUATAUHSdAŅt [D]A\A]A^ÐHEDHx0萋AŅu1E1Eu(DHEAHx07u#AA9tu}uAA[]DA\A]A^ÐUHSHH$@H$HL$PL$Xt@)$`)$p)$)$)$)$)$)$dH%(H$(1H\$ ILL$H$HHD$H$0D$D$ 0HD$~HH=1*Ht!H$(dH3%(uZH[]@HEHx0uHEHHx0ҋuHEH5Hx0躋uH AVAUATUSHHtL/H~HIE苰u'1H5% HVtr[]A\A]A^fHtU u͋EtIMI} DH9vI} A)1E[]A\A]A^H[]A\A]A^fAUIATUSHHH$@H$HL$PL$Xt@)$`)$p)$)$)$)$)$)$dH%(H$(1d$t H=|Ld$ H=$LH$ 5LL$MHH$HD$H$0D$D$ 0HD$|1HLH=H1HHH5Iu H8tH H1HH߾}1AWAVIAUATUSHL/dH%(HD$x1M`MIL|$Mg0D$tA_E1DAG8A_1I}0pF@t$vH=1E_lI}0E\$@t$M1t$E)At$A)A7ADBEtXADAAAA8_AD1A@8GB>)A88AƅAHD$(AI}0HHHD$AÅH|$tI}tH|$(HHp~I}0gI}0HÉD$HD$(HS@0HD$(@pHD$(pHD$(PHD$(DxI}0MtNET$EtDEL$ Eu:%A@LALD$0H6*AÅI}0t$I}(HT$IHAÅI}0AA)DD$HI}AAAWHDD$HT$8N_AXAÅuTMAt$~AL$ 9Hl$0AT$ I}(HD\$6D\$IAfDHL$xdH3 %(DHĈ[]A\A]A^A_AGP1@&@I}0pF@t$vH=1I}0E11HD$D$D$SI}0AÅ:I}@aIU@Iu0LAÅI}0=I}0H55AÅIu@I}0pAÅމ\$I}0ofDAu)IFZH=1D\$rD\$AuA=D$1҉II}0D\$t$I}|$D\$|$42EDE"LAfH|$(HmfDHl$0HT$(LAA@ID$0'D\$fDIFP\u%LADAH=1ADžA[AP }H5dL1f.AVAUATIUSHH{0HCH{02hE<0w?@t9E<@Lu @1[]A\A]A^H{0LtE1@H=1 O}H@hHS0HHPHHPHHHC0HnE][L]A\A]A^H{0LH5NH=_1AEDǃL5^JGH,HUHPHEHUHHuL}HHH}DmgLMuq1AL˺H{0HEHC0HEHuHEHyǃL@= [fDH5AH=:1fD@AUATUSHHHt uH[]A\A]QHH{0lIHvsH{0PIōBՃvH5H=1TP@/wAAEeHs0H{({u H{061H[]A\A]ffUSHHH$@H$HL$PL$Xt@)$`)$p)$)$)$)$)$)$dH%(H$(1<@t(H$(dH3%(H[]H$Hl$ IHD$LL$HH$0D$D$ 0HD$qHH=1HuXH1Hx0}uFHHHx0~u3HH5Hx0~uHuHXH5BH=WH1ѫwff.AWAVAUIATIUSHXHHT$dH%(HD$H1DEHXHHE0H}HD$HEhHD$ D$hEDD$0HD$D$EvH{ wH{ IhH{EHHOuKF=H=1 H5)L1XAuA fE1HL$HdH3 %(D HX[]A\A]A^A_HD$ HD$D$0D$+D$1D$DxDt$\$DH=1FAA)1HT$HLAFE8mEH$e$H$X dH3 %(Hh []A\A]A^A_fPtLL2D$,~dPYftNHL$P; HHL$at;mHL$H|$HQf.=37iff.fH1dH%(HD$1Ht$uHL$dH3 %(D$u$HÉH5H=H1:if.U1҉SHHdH%(HD$1Ht$5u L$9uHT$dH3%(u$H[]ÐH5_HOuӸhff.@H@1f.Dff.SHtH`Ht[H=J1)HH=_f.SHt*Ht%HHHp AiHt[H=S1ܛH=1ΛHH=\1轛ff.fUHSHHK_HtH[]HHH=J}ff.fUHSHHKHtH[]HHH=J=ff.fATIUSbHXHHLHH3H[]A\ff.SHHHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HHD$ $D$0HD$kxH;tHT$dH3%(uH[H=g1Cff9u@fo)HFHGft0f u"FG ! HHu1@fB!G1UfSHXdH%(HD$H1HT$D$HD$BHB$B,D$HtxHHL$1d\H|$ÅuYHtYHGHtsfOHE)Eft_f u)vL fUoHM@E_DHu#Ht$HdH34%(u*HX[]DŐvfM@EdD uzwr1fA fz1BBfDv HcHvutt )ȉD1f wf1BBfBf t̹ )ȉB1@HHII?dH%(HD$81f;>uvILtdLD$ LL|tOT$ fA;udftnf u8I@IQI@ 8uqHHL9u1AI9L$4t wffDHL$8dH3 %(uRHHfDf uL$$AQ19tʸ9wwbff.AVAUATUSHdH%(H$1H-L$HHH@L觕H?/LpaIHHt$Hx fA|$IHD$8IHt$LW|$Ef<f tfH$dH3 %(lH[]A\A]A^f.Ht$L2|$fA DfoD$HD$ LL$PDL)D$0HD$@lD$Pff SLIQPHH9uLD$pHt$0LL"D$pff  I@WHH9uHD$ foL$HC1) DUf.A &T$Tqf AL$tt}`fAWAVAUATUHSHHxdH%(HD$h1HtHt$0iAH_HD$HD$(HXHD$0D$ Ll$(HD$Lt$$Ld$PH5^LbIHA؀!u AGILLLt[u7HtT$$H|$Lu!D$ f.HrLH\^ĐD$ LH51H=ԟ@H|$YHL$hdH3 %(D$ u^Hx[]A\A]A^A_D$ fDHH5H=/1xD$ fDD$ D$ ^ff.@AWAVAUATUSHHxH|$dH%(HD$h1HtHt$0H^HD$HD$(HHD$$E1Lt$(HD$L-Hl$PLL`HH;HXIH1H5pH\I9tHH5s1AH=_HT$HHoH|$cT$$H|$0HDD=HT$H51AH=H|$WHL$hdH3 %(DHx[]A\A]A^A_HH51AH=蒙밉D$HH=1{T$AfHH=1AYt@HT$H5D1E1H=3XAM\f.@AWAVAUATUSL$HH $L9uHHLL$L|$0HHcH@LIHMdH%(H$8@1T1H;9$l$(D@fD$,EH|$8HD$(E1HD$LDHHtTHtwI@IH9H)IAuHMtSH|$AՃuF[9fDHD$ZHt$H‹to E1 Z H$8@dH3 %(LHH@[]A\A]A^A_fH)IIMuAI@HT$Mt1H|$AHT$uf.H|$AՃ$IZH|$GWZE1-mZff.fAWAVAUATUSH8LL$dH%(HD$(11H;=$t$ D@fD$$HHD$ HAIHD$HME1HKt=DL)HHtbHtMIMtH|$AփL9wHL$(dH3 %(LH8[]A\A]A^A_f Y HD$XHt$H‹t tJE1DHT$Mt1H|$AHT$rsXcH|$U>Xff.fE1E1vHKX1HfD3E1E1@AWAVA AUL-I$ATUH-?S1H@|$H$CfHH<IVI \ImHt@D$HI\$C'RL<$IM$H<$It$[IHuH<$RHL[]A\A]A^A_ÐAUIH5ATUHSH$HLWAąuHu*HD[]A\A]@H H3HuA@CEtUSҍBIE SHE0ҍBIECt PHE CE HD[]A\A]@{ 訉HE(Ht{ 臉E EAJ@HwHtSWHtWt2t[fDH(HtLS߉x@1[HqHC0Hu[H(aHC0Ht1¸[øff.AWAVAUATUSH(dH%(HD$1 @dGHI׉MM΃t>A~HL$dH3 %(D*H([]A\A]A^A_H0Hcщt$LD$gH{0HT$H5s$cE1MtS H5\$LL9IGYLd$ LH{(11莈xJH{(Lix5H{(HcLVx"H{(@H5$]wDADLd$LQH{0HcL"xH{0LH5$s,f.ATATUSHPdH%(HD$H1G L9w\HMA@HI%t!H|$HdH3<%(u8HP[]A\S LHBt͸4T@SGHt@t#H(Ht͈HC(HC0[H0HtnH0Ht2^Ht?SHHHtS1HH{GNfHC0CC [fDATUSHdH%(HD$1Ht?u"1HT$dH3%(H[]A\RIH$HtHH5}HUHt@8t;H-dfHHUHt 8t1HyLuMvLhMfRfAVAUATUSL/MHAHH5LHDIHHHtQD0A"tuH+H5oH}Et?PHlH+}=uA=tH}H5BPHDH[L]A\A]A^fPHDHL[]A\A]A^HLHuHHPH;"PHHt H+@E1[]LA\A]A^fAUATUHSHdH%(HD$1>LHxIEWI\$C HHh@Ht!<%t-H<+tވCHHHh@uLUHDPUDPEPЀ vNPvvP7AUHEJЀ w7DAAD tcHوS?AUHEJЀ vɍJw%DWAWAJwD7ALE1JHt$dH34%(LuH[]A\A]LPfHt'H u( t tHuf.ff.UHSH^JHt,HHt#+KHLHDJ tDHuH[]fDAT1USSx_AĉÉAu6H=v1踏ھ1uSÃtND[]A\fD1E1H='OD[]A\bNA8KH=H1R;NA܋8KH=H1^ff.AT1AUSRxZʼnDt6H=1ھD1RŃtI1[]A\@1H=肏[]A\M8JDH=H1膊oM8JDH=vH1蔍fSu ?M8u [aQ[Jf.USHdH%(HD$1HLD$D$HJ<$tSH=1$̍AHߺFt5HD$dH3%(ulH[]fDH=1耍fDcL8IH=H1[f;L8IH=mH1cLff.UASHdH%(HD$1HL$D$BEt1HT$dH3%(u*H[]ÉK8IH=H1衈 Lf.1fH1H=jHf1DU0HSHTH}H(HH}HCH}HCECECH} HC H}(HC(HH[]ff.S1HHdH%(HD$1Hu~H<$tH5H?PHt*@fHT$dH3%(uH[fJ@AUATIUSHdH%(HD$1H$HtrH:HIDIH1Hx1LLD;tWHT$dH3%(ucH[]A\A]fH5@t1HLY}H<$u fD뢐LhD1LIDAWAVAUIATUSH(dH%(HD$1IMA}HHD$E1AHHD$ID9"aHt$ LFHT$HL9}"=HHBHD$Htl/tD:t?t 1H[]A\ÐHEH[]A\þ]HEHtH/ufMtA$HHEH[]A\@H8AH1ED?[SHuAHD8]t H[HH[ff.<:tJ1<[„u =<]u<:tFGHt<@u[uHGHu1<:uuH@tHGH>HT$H>HL$dH3 %(DH([]A\A]A^A_f.HBHtHHl$HH|$1AHHw8tTHHH|$HDHt?u?MtI.1MtIU1E1M,A$#D1fHT$fHT$A xBUSHHHT$@HL$HLD$PLL$Xt:)D$`)L$p)$)$)$)$)$)$dH%(HD$(1HHL$H|$H$D$HD$HD$0D$0HD$ `Fs H;HHtiCH9sLSk HJKHL$H HSHHD$(dH3%(u=H[]f6HC H=1tAf.UHSHHL$HLD$PLL$Xt:)D$`)L$p)$)$)$)$)$)$dH%(HD$(1HL$H|$H$D$HD$HD$0D$0HD$ Et;U9vGHEH<:HEHT$HHD$(dH3%(uH[]H=)1s@H=r1sUHSHH?Ht7Et1f؃HHHH9II)A-ELl$HLL7LBD$CHL` L9H tA</H1HDH]1H|$ILH5=HD$H$dH3%(uoHĨ[]A\A]D7HL` L39H uHt냐fA</HHDHZQ*>H=C1qLH=qH=1qDH=qAWAVAUATUSHH $HxE1E1H$HHH$H$PL$`L$hE1H$XdH%(H$81H$D$HD$ H$@HD$(IHD$0HH$`HALH H HtY/[HALH HJHAHAv/vHH~AH H HuEtD$EH$0Ƅ$01Ht$uFfD]IB0=dƄ0AD$Il$<%u]Le%tAEtgL4$E1fDAIE9tKI>:HtDH|$HHt8In=E9s]H5H=E1oHwHAfDH$0;H$8dH3<%(Hx[]A\A]A^A_EtD$EtHt$ D$/w.ƒD$II8~H5H=v1nLD$ I@HD$ H5aH=`1nH5LH=_1n:EtD$H5)H=1nff.GwAT1H=|US%?Aĉh1>u98 Hu؉D.uɋ}17HHHHy$H81100A []A\D[D]A\t/o986HsHff.AWAVAUATUSHdH%(HD$1HLt6HILIIMtHIHl$L=fD MH1H;LHLkL9uHL$dH3 %(Lu'H[]A\A]A^A_H=I8f.HHDff@HH7DΉ77fff7@MbHHciH)iHcHwf.SHH dH%(HD$1z$uzH-uHD$dH3%(u|H [H޿-t1H-t<784H=}H1yy$f.H1.H$HHiD$HCth7UHSHH(dH%(HD$1HHt$HS㥛 HH?HH$H+EHHH)H+My HH@BHS㥛 iHH?HHH)ʍ)HD$dH3%(uH([]6f.AWAVAUATIUSH8dH%(HD$(1Ll$ILIHD$HL$HS㥛 \$H$HH?HfD$HH)HT$5H8L2D}LLD}JuA uCtA$yEnHL$(dH3 %(u"H8[]A\A]A^A_1ո5AUAATIUSHdH%(HD$1$D$HHͅDL33tC48sIuwHthHLD$߾2ŃtO$u=1sHL$dH3 %(uIH[]A\A]fDDL2A$A<$1H=H1jt4SHH dH%(HD$1HLH$HL$HS㥛 HHH?HHH)HSHD$dH3%(uH [64fDH(dH%(HD$1HH$HT$dH3%(uH(3fH(dH%(HD$1HffHD$dH3%(H* $H*D$^XuH(3DHHwHWHGHG(HG HG8HG0AUATUSHHHHwdH%(HD$81H HwuH{(H|$ H;ss"HD$8dH3%(UHH[]A\A]Hl$ HHL$(Ht$ HS㥛 H+s HH?Hs0HHH)H+S(HS8yHH@BHs0HS8Hu H{8wHCHHCgfH*HCYHafH*^ f/H,H4ׂCHHHHi@BHS H)H9HK(uH;K8H)H+K8HS0HK8yHH@BHS0HK8HHCH3HHH9HBHCHiH$Ll$IHL$ 18ufoT$)$LL1tHCH,HD$ HL$(HS㥛 HC HH?HHH)HS( f.\H,H?DHfH*XHƒfHH H*XfH'HCH;HH4H9HGHC0ff.UHH=qSHH/Ht.ILr1HHH2~HH9r1H/HH%HvH[]H5YH=31cff.ATUSHdH%(HD$1HIHZ$1H5yfDHHsHt8L&uHHyZ$D(HL$dH3 %(u9H[]A\@1HL -A<$tH$:uH=vG/teH%Z$HefDH9ztGHBHuHALH=p$u1Hp$HfHxUSHt$Hw/HHU]uH[]@AVAUATAUպlSHHHĀdH%(HD$x1IHD$MEI}IEfLH)lHLf$aHk1Ҿ-AƅtYnLD0DDV)H\$xdH3%(DMH[]A\A]A^f.Hx%t,8tc*HH=H1iqf.HH5v1AH=i,$d,D HD)HH55H=vH1iDAf"DeX,A(HÉ)H5H=H1>i+",D HD)HH5H=H1 iDA!HS$DeU,DSH5`H=HdH%(HD$1D$xmHL$Aߺ)$tHD$dH3%(u&H[Ð[+8(H=UH1Sh+ff.ATUSHHHAHE1A8HHHtHH+E1E9CH{HuHH8usHt j+ueH{HuHHE18uJHt A+uHT$H1H\$8dH3%(HH[]A\A]A^A_@АHH~HH\$0HHt$/H|$0IHX8'HH诳11HHD$LD$1HT$0H:|$/:t0H׉t$LD$LD$t$HHuy@H׾/LD$HT$gHT$LD$HH|$0HD$2LD$LL$IQHT$0Ht Ayg1HD$HtH1MtM$E1MtAuMAI17@1E1$HLD$LD$1!f1ff.@U1SHt,H%HfBu_u"H]uH[]f.H1[]SHdH%(HD$1H$HHt?uHT$dH3%(u0H[HH1NLHH$HuĉfATUHSHHpdH%(HD$h1HRH tL1XH5ZoLd$@HC H PHC IL%PHC PHCLPHCP1H0H5 fATIUHSHPdH%(HD$H1HH\$HGHH|$H|$HLHHHD$HdH3%(u HP[]A\@1?/AWMAVIAUIATIUSHHhdH%(HD$X1HD$ HD$(HtHMtI$H;H{0;  HHHsHs  HHL$ HT$ MM=HckHD$ HcT$ Ht$(1HD$(HHH|$ HT$Ht$HHD$ H|$EH|$XI2DxDIHcAMcH0I&Lt$0((L/LH|$H)ػHp&LH|$L)Hp(譇IHH5tH2Åuq(LL\Åu[L辎D$ Mt1Hc I$HLct$ LÏI<$LHMtHcD$ IE @E11H|$ H9LHL$XdH3 %(uPHh[]A\A]A^A_E1fDE1fDf먻f.AWAVAUATUSHXHL$LD$dH%(HD$H1HD$(HD$8HD$@HHH?HIUlHcMZHLHH~1Ht$8HE1AE1E1E1Lr LL"LH袇H|$8H H|$(HtHt$0HH|$(# HL$HdH3 %(DHX[]A\A]A^A_DHT$0Ht$(HRH|$8H5tE1AE1E1E11H@HGH|$0(IHAIHOIHOH|$(LA IHHD$(LHx~ IHLLLE1҅1LLT$zLT$HcHtnIHHt$@LHD$@HD$ELT$ALT$HIHuHLT$AE1E1@A2DE1AE1E1E1E1E1E1AAE1E1AE1AVAE1E1kE1E1AZHL$HT$EMLE1LE1ALT$"E1Af.@AWMAVAUIATIUHSHHHL$dH%(HD$81HD$HtHMtI$HH} }菟}Ã^IH Hu H& LD$LHL$HT$M衟LHD$HcT$Ht$ 1HD$ IHÁIH貁HD$HtCHT$0Ht$(LHt$(L ÅuHt$0L ÅH|$ H|$LLDLHL$8dH3 %(HH[]A\A]A^A_HD$E1E1E1HD$DHD$mD념HHl$HHHÅ>LHsÅ)HHl$̇D$Mt/Hc+I$HtDH|$Hcl$ӈI<$HHMHcD$IED ff.@AWAVAUATUSHXdH%(HD$H1HD$ HD$(HD$0HD$8HD$@HhH HZ?HIIM跜>H5M,{4AătvHLHH1Ht$8H trE1AE1LH|$0H LtH|$ jH|$(`H|$8HL$HdH3 %(DHX[]A\A]A^A_Ht$0HyLl$8HHL tE1AE1XfDHHH|$0Ht$ xH|$0Ht$(aTIH HT$(Ht$ H&HD$(1LHD$ HcIHttHt$@LHD$@HD$LT$D$H|$0LT$HLT$Ht%Hs HLT$HD$uL\$LT$tsA5E1AE1!AOADE1AE1AAA DL$MDLLLLT$L\$L\$AL LT$fDIH=b|L€tD H=N|LƸ€t$ H=8{LIu`H=K|L€tH"H=TL€t%"H=aL€ҺDff.AWAVAUATUSH8Ht$dH%(HD$(1H HH?諘AąH{HL$ 11^ H{HT$Ht$IHHHIHH$HH|$ IHH|$HD$HHLHt$HHyt1MHLLAHLH<$LH|$LHT$(dH3%(DH8[]A\A]A^A_HD$AA[Ht$HHYH4$1MHL=H{H$LHL$HHL$DDHEHELEHL$H$A$DApAWIAVAUIATIUSH8H $LD$dH%(HD$(1HD$ HtHMtI$Mt A9kMIvA? aIiI=IHIwHLL$L$LHL$HT$ LE1A2HcH$EHcT$9Am8xAIHtZH5wtH5vtH5wHEL ADžu H$Ht$ L ADž@H|$ H4$LyHL$(dH3 %(DH8[]A\A]A^A_@LHMtIt Af)Ht$ HcH<H|$ HH@Lx~D$Mt-HcI$Ht6Hc\$LI<$HHRMHcD$IE ADADAAWAVAUATUSHdH%(HD$x1HD$HD$ HD$(HwHHi?HIIMMcKHBM9H{`=eHLzvHH1Ht$HuyH|$!AǃMtHH=uLt.L^A9tLd$ HT$(,HT$ Ht$(HFtrLd$ HT$(HLHH|$H6wH|$0@@rHL$xdH3 %(HĈ[]A\A]A^A_f.H8|Ht3Ld$ HT$(|Ld$ HT$(a@H{GLd$ HcI9r$Dd$H蛦HuEL{{HDHHzH9u%1HL$dH3 %(u(H[]A\A]A^fD1H=œ;&fDAVAUAH=ATUHSH dH%(HD$1H\$I@HDL%=$LߥHuyHH'wH9}HvHHT$H|ŅuvHT$HDL荥H9HL$dH3 %(H []A\A]A^Ð8 tH=1:뽉H=1:릉ǽlH5H=AH1:}l8H=H1_:VDSH@dH%(HD$81HptG=uXH0H-00HHD$8dH3%(u!H@[0H=\H10%H=10IHH I MLHLHHLIH LI Hk;LH9L9HH;HB1HHP;HHEff.fAUIE1IATAUHSJTKhKxHH L9t#HKKxIIu[]A\A]fLH%HKxJLHHQ Kxff.@AWfAVAUAATIUSHHH<$H\$ Hl$dH%(HD$81)D$T$D$AL<$AH\$ D$ Hl$D$DhDLHHAfoL$ Dt$IAOE9uDt$Dl$ DIIL4$A)uLHjHXHD$8dH3%(HH[]A\A]A^A_DLHHAr\H $HD$ HHDHTHTHHIHH)AH)AAbA1ƒH4H4D9rEAu4E5H $A"EH $BD+fBD) H $EBD+BD)'AWAVAUATUHSHHHHBH2HT$8HD$(GHt$ AԉD$GD$ G D$AHHHHD$0fDHH}D$H}AH} D$H}D$H}D$H}AH}ADT$DL$DC {$GDcs(K,C!Dd$E|$LCDsMET5IыT$DIDIыSDIILL$(H H H;\$0HD$8Ht$ HL$(H0HHHH[]A\A]A^A_ff.fUHSHHHcPTHH@[N)Hu~@HwJHLtf.HH9uHcTHX HyTHXHHHUH`HEHǃPHǃXHǃ`H[]DHH)H~AD@HAШtD)H@u~kHfDHwzH|8tfHH9uHcTHXHPTD HfAWIAVLAUATUHSHDPE,A?w*MLLDPH[]A\A]A^A_@EuCA݃?vAHcTLHXAHDD)DADTIA@DA\E)LLM!HcT@LHXHT@tHt/SHHHH[@fAWAVAUATUHSHdH%(H$1HHLd$HタHH$HZHLLL1LHL꾀HfLLHILH1H{HLHǃHHPLIdAEM9u빠LHHǃPHǃXHǃ`H$HlHh HhADhIHtlHǃxL!hH$(Hp跺HpA診LHDpLtL!pLHǃMCfo$0foU0AUfo$pfoepDILID$ T$ AGAWM9u־PfIMIHHHH)HHH#HH"H)HH)H)IMM9uŹLLL蘹H膹HL|HH$dH34%(uH[]A\A]A^A_ff.@AWIAVAUATUHSHH(dH%(HD$1=IE1IJsxHvH;JsxHJHH0JH 7HHJ|5H JJHHHH$H4HH!HL9J &HHGHB33IZINHǃPLHǃXHǃ`ǃHǃxHǃEgAGAA%;u;t"HLHEKDH1EHL$dH3 %(jH([]A\A]A^A_@ILLHrTDHH$HHHH H0HHH1HHHHHHHH$H4HH!HHH9v HH3H̶HD$HHHH H0HHH1HHHHHHHH$H4HH!HHH9v HH3H}6ff.AWAVAUATIUHSHH(dH%(HD$1HLH=%LH~zI~iIIMI MwI IHH߹LH$ HHD$ LH߁PL9uI M)MtDHH:DHL$dH3 %(urH([]A\A]A^A_MxIE1DHHILHL.DLHAA)EM)I7IHH I MLHLHHLIH LI Hk;LH9L9HH;HB1HHP;HHEff.fAUIE1IATAUHSJTKKHH L9t#HKKII u[]A\A]fLH%HKJLHHQ Kff.@AWfAAVIAUATIUSHHdH%(HD$81A)D$H\$ D$ Hl$T$DhD$D$LHHAfoL$ D|$IANE9uDt$AD9t$ uEHHHD$8dH3%(u!HH[]A\A]A^A_fLHHR+ff.AWAVAUIATIUSHxHBH2HT$hDHD$XGHt$@HrD$4GHt$HHrD$0G Ht$PD$8GD$ GD$(GD$$GD$,AHHHHD$`f.LDT$<賱I}D$覱I}D$ 虱I} D$茱I}A耱I}AtI}iI}^T$D\$ DT$ LH.$LLL$$@$讌LLLHH1fDTT HH u1H$dH3 %(uH[]A\A]DAWAVIֺ AUIATM}@ULSHHHt$L$LLdH%(H$1K$LL$$M9@$Mt1A4@t@HI9u1I|$ fD4@t HH uL$IU LHs Ll$LLL$%H$LHHD$荠HD$LH1A  HH uHU MHHH$PL$HqHLH$讋HLHLL襍LLLH$LH$1fTT HH u1H$dH3<%(uHĨ[]A\A]A^A_AWAVAUATUSHdH%(H$x1HH?AHILIL$HML腗LHILH$0Lt$HHD$WHD$LH藊L$Iu LLD$辉LD$LLH$H L$HHD$/HD$LH/LLHKuTHt 11z@A|=@|5rHH9rI $H$xdH3%(uAHĈ[]A\A]A^A_fD11HtDVHH9r본zf.W22V W2V W2V W2V W2V W2V W2V W2V W 2V W 2V W 2V W 2V W 2V W2V W2V W2V W2V W2V W2V W2V W2V W2V W2V W2V W2V W2V W2V W2V W2V W2V W2V HHA@%u1HÉ3H5ZH=Q H1f.AWAVAUATUS1HL>@|$H$MtiI13@LH<(IVIM}MtAD$H$Il$B#LIH<$LdIIt$HHuH<$HH[]A\A]A^A_H1 H1Ht ־Hff.U1H=ZSHHHjHHvH߾HnvH;t H[]fD1H6%u僥H}hDžD$ ;H}0$HE0D$ H[]ÐUSHHHBt@\uI1H=OYH;t H[]H9uHH[]HH5^H1>ff.@ATIH=XUSH #fHH;HtLuH[]A\ú H#H-XHH+HtH4HLHu1H[]A\fDHG@(u@ATUSHH!%tIHDHSHDډ@LHH)#HH $HHhH1H! t€DHqHDΉ@HH)H9t*8~[]H5ebHH=W1A\fLHuMH߉bhHu[]A\ATIUHoPSHfH;HĻH9u[L]A\鳻@H5A# ff.@H5a#ff.AVAUATUSHdH%(HD$1Ht?Hu#1HT$dH3%(H[]A\A]A^+IH$HtIH5LHHte8t`L-LLHHt=8t8H@HuHޅuGH=\1L虺Q@1HH=DV?Lw,DH=[1J賿AWAVAUIATUSHdH%(HD$1Hb?HVH>H1IH=HLMdIH$HL9HHHLHIH5ULHHtj8teL-9 8tPHHpu.LLHI9LHHI9LL#HHuLHL$dH3 %(HuH[]A\A]A^A_ÐHD$dH3%(u_HH[]A\A]A^A_ڽf.HD$dH3%(u/LL1螸@L萸H1膸nܽff.AWAVAUATIHUSH(dH%(HD$1MtM,$MtA}uC>HI$EAHL$dH3 %(DH([]A\A]A^A_fI$AEI<+<-L11ԼHD$HD$HHD$H$IfDA?!H获LLsHHt[HH IHtHHL]H<$H5MIHuAHt }tI,$E11fAHH|$LHIuHHt?LIԶIuHI$HtLE1訶HD$1Apf.A[лAWAVAUATUSHdH%(HD$1H?Iu-HT$dH3%(H[]A\A]A^A_f. THH5HIH$HHtz8tuL%QL-*DHHHt.LH踽HHt@8t;HLt1HH=VtL|18D1LH= QLWD1蜺ff.ATIUHS11Lu8uHHmPfDH3LuHH9u1L访t []A\D[L]1A\¾fAWAVIAUIATUH SHdH%(HD$1HH$HH/HHH28ADžuZD$1L%*#2D$H=HI41D$D$ wVH41HADžtHH!.HL$dH3 %(DH[]A\A]A^A_AHt$H#ADžuHt$HADžut$MtA6H=7O1Mt$H=;O1;I]iAf蒸fHtBfff.@U1H SHHjH0t H[]DH=uH=N1H=NHHjHC@Xt,1CHHtjH 0tHD$ PD$ kHc.uH5ONH.uHHq.uH<맸fAWAVAUATAUHSH= NHHdH%(HD$81HBHD$1HHiHt$H^.t$>1Ld$ HD$(Lt$0H$sLl$(HT$01L|HL1H5WLH=M8HD$(HL$HD$(HAPH|$ H|$(9\$vd1LH-ucH4$LH-upL|$ H=LLMLH5WH=L1H-H\$8dH3%(ugHH[]A\A]A^A_ÐH|$ $C$fDH=Q1HDMg1LH5VH=WLT@ATUSH_HE1tD[]A\ǃHH{`J/HvtH{`0HtqHǾ詤H<-AąuHs`Hi+AąuHJ:AąuH=K1ejfAVAKf.AWH=KAVAUAATUSHHxLbdH%(HD$h1MHHfHt$PH.,I|$hHT$PH\AƅuU1HF+uru 11HT+uPu1H+AƅtBf.HL$hdH3 %(DHx[]A\A]A^A_f.A1H*AƅuH?+AƅuA$uHAƅuL{LJH wJHD$XLH=JHD$`E_(EHE1~I`1HT$XH 2JL:JALEW(H=_JEIE1H9IhHT$`Ht$LAƅHD$XEO(HD$HD$`H$AE?H$H5 JH8H5JAGXHD$`H8H$HL$AG\H $HT$uEG(EtPAHD$`H5NHxtAHD$`H5NHxstAH$H8HD$H1L-HH8H=IHIG0IDH1;I0H/HPH $AWHPA@ 1AHD$HqHxH=YIHIG8IDH1I8H;AG@ -I8IH2H{8)H{0 H[S|HHt8?HChHt61HC`Ht(#HCpHtHCxHt H[H1H[ÐHtfff.@SHHHGHx`7uCHSH߉D$ H <ǂ1HYH!HdYD$ H[f.SHHt H[DHtH{Ht D$ D$ HCH[HHGHt>tǀHf1H5FH={>kHH5FH=S>NAWAVAUATUSHxLoH|$Ht$ MT$HL$dH4%(Ht$h1I}y1MAA_ l$HD1ҿHcHJIHtIHA H1LјLKL蓥t$t/VHl$8HD$0Ld HH8HI9uHt$hdH34%(yHx[]A\A]A^A_uFH^fD1Q1lL蛞1LH|$H|$HD$(?HL$(LH1ȗL$HT$ 1L觗1LA芗INI1LkHLLdLd0LHHHD$Lpf苦H3+H#I]H蒚IEHHt$ HHHD$LpNfDAW(MIGtiHT$0HP(HT$@IGHP HD0IUHB@AE(uYIEHT$0HP(HT$@IEHP IUHD01HB@fDHT$8HP(HT$HIGHP IEHT$8HP(HT$HIEHP 륻qءAUATUSHH_HHHHtJHt@IHI{@sDLLHEsD{@IEH}H[]A\A]øHGHHtBH@9u5t(HHHHҺDH@@D9Ftиø@HtgSHH HtS1H{ gH{(HtS1ĕH{(KfH{0CC LfCh[fff.@AWAVAUIATUSHHHt$dH%(HD$81HGx(HhpL`xu HLILMwA}L ,eH1H58LAUL81Y^AŅsL LIHIH=#LLFLII9L AŅL-IHHH=u8Lt$/1 HD$HD$HD$HE1T$~H=Ht$ahhH H=#LEH[8 p軛H5?H=7H11E1A8=fDL-M) H5r?H=a7H11E1E1LLHDHL$8dH3 %(HH[]A\A]A^A_t$/@ @ @EHuAąZH"H= H5>11E1H=7LH5<HAW9f8nU{H5t>H=HDA8D H5B>H=6HH5)>11E1H=;eHXHHv8SSH-H貫IHiHHHH(IHL$41LHT$0H5M6T$4t$0H1H=;EHJT$0<  H=;1AH5;H@HIHHC@([HT$1LH5<H=l5L舖HD$HD$H=H5*9H1E1mH5<1H=09A-/E1E1! H5j<H=4H1@H5I<11E1H={9AH58H1E1H= 91A艚1E1E18AH5;H=+1H1lnH5;11E1H=3AGILH5;11H=%9(LE1-H5q;H={311Aa|$4cHSz(t @uGu urE1HkHA`DLH=9H1A#H6HA+DLH=9H1A`HH=91JLH=i812H5:H=31AH5f:H=p21}1@ff.ff.ff.f.UHSHH(dH%(HD$1Ht$jHtHL$dH3 %(uNH([]H|$(tH|$@RuH|$HH5H|$D$ ~,D$ 胘AUIHATIUSHDHH HtOHHLHDu+HLHEH߉˒H[]A\A]fDH߽諒޽fLFHHNMHu2HV v(IP HH9BLB@HHQHuLAHQ q(MtIP HH9J}LBo@H9A HDAoH I LH MI9AhIILHII LHMtII HiHHI HuUf.y(LAMt EX(ELIMt EQ(E*A(HJ IHMt EH(EHI9HJL9uHJy(HqHt DF(EHqHtv(tr(q(B(HIHtA(HJHqHrHtHV Hr Hq HH;VHNHQHJ HHA(ÐA(HJB(HqHrHtHV Hr Hq HH;VHr HNHQHJ HJfA(HJB(HqHrHtHV Hr Hq H|H;VHr HNHQHJ HJfHHV v(HLI@HN]LB~L+HLBLOH|HN]MtAp(uOAA(HqA(LFLAMtIH LA LF MI;H IpHNHq HJr(q(B(HIHtA(HJHqHrHtHV Hr Hq HtMH;VHNHQHJ HHfDIILH7hHLAMt E@(E?F(HqA(LFLAMtIH LA LF Mt>I;Ht=IpHNHq HJHNRIpH+HN"H7Ip@HGHu DHHPHuHG HtH9xuHP HHt HH9xt1HGHu DHHPHuHGHtH9xuHPHHt HH9xt1LFHHNMHu2HV v(IP HH9BLB@HHQHuLAHQ q(MtIP HH9J}LBo@H9A HDAoH I LH MI9AhIILHII LHMtII HiHHI HuUf.y(LAMt EX(ELIMt EQ(E*A(HJ IHMt EH(EHI9HJL9uHJy(HqHt DF(EHqHtv(tr(q(B(HIHtA(HJHqHrHtHV Hr Hq HH;VHNHQHJ HHA(ÐA(HJB(HqHrHtHV Hr Hq HH;VHr HNHQHJ HJfA(HJB(HqHrHtHV Hr Hq H|H;VHr HNHQHJ HJfHHV v(HLI@HN]LB~L+HLBLOH|HN]MtAp(uOAA(HqA(LFLAMtIH LA LF MI;H IpHNHq HJr(q(B(HIHtA(HJHqHrHtHV Hr Hq HtMH;VHNHQHJ HHfDIILH7hHLAMt E@(E?F(HqA(LFLAMtIH LA LF Mt>I;Ht=IpHNHq HJHNRIpH+HN"H7Ip@HGHu DHHPHuHG HtH9xuHP HHt HH9xt1AVIAUEATIUHSHHHHu?H(uH[Ht#H;HuHuI$1H[]A\A]A^1Et(HHt]Ht:HHZHB HHH9rHpHt ~(H9ZMA(HP@(HJHHHtHA HH HJ HiH;AoHQHBHP lfDL`HXHD[]A\A]A^A_fDHqHrH?HV Hr Hq HH;V1HNHQHHJ HfI$HQH@ H@H@@(I$I$E1@(Bf.A(HB(@(qHsHrHHV Hr Hs HH;VH^HSHZ HHHifDI$HQI $HHA H;VHNfDF(HB(@(H]HS I$[HC H:@H^;Aff.AUIATIHUHSHUHtkHÉITHTU1It H4 9rHHLuH[]A\A]f.H߉D$ D$ H[]A\A]øff.AVIAUATUHSHH0dH%(HD$(1Ll$ Ld$HD$HD$ 7DLLH蚅u-HT$ HtH9uWHt$L*u.HHuHL$(dH3 %(uMH0[]A\A]A^@H|$D$ D$ @H5(H='H|$7ATUSHtAL&HnHt(H[HtHKHHLyH[HuH[]A\1fAVfIAUATIULSHPdH%(HD$H1H\$)D$LkH)D$ L)D$0"Ņt)HL$HdH3 %(jHP[]A\A]A^fDI~(H$H|$HHf)LHھ)CL)C \"ŅuI~0HH|$HHfLHL))C)C ŅDI~ HH|$HTHLsID$`I^8Ll$I@E1LLHHPPu`Ht$HtI|$`uHE11LLHu1Ht$HI|$`ffD@AWAVAUIATUSHH~I] HuIHHCHuMe HHLHH;B~HH7~HuI](Hu EHHCHuMe(HHLHH;}HH}HuI]0Hu EHHCHuMe0HXHLHzH;}HH}HuIm8HDLeHE MID$ HE HUHH]Hu :@HHCHuL}HhHLIHL}MuH]Hu @HHCHu@HpHKIHCHHH fDHHPHuHHHPx HtHQHH;BHJoCH9XHD@oKHHsHH9^HFHsHFHsHtHFHtHH@HuH;|HL|MH}LOMvH[]A\A]A^A_x fHHHt DI EHpHt DF EJ@ HBHHHt y HEH9HBH9uHBx HHHt DY EHHHtDQ EtJ H B H@Ht@ HBHHHJHtHQHJHHHJH;QPHAHPHBHEH@ @ HBB HHHJHtHQHJHHHH;QHJHAHPHBHB @ HBB HHHJHtHQHJHHHH;QtvHJHAHPHBHBGDHS{ HHQHt&H9Zt_HJfDHS{ HuHuHMfDHEEHAf.HEyHJhHE+HMHAHwF HH@ HqHpHtHFHpHqHSH;FYHNHAHHHBJ H B H@Ht@ HBHHHJHtHQHJHHHtZH;QHAHPHBHEHJHF3HIE@ HEf.HpHt v A HH@ HqHpHtHFHpHqHH;FHNHAHHHBfHA+I ~HMHNHEHAHM}HNmHH}Ht(HP8H@ H@(H@0H@8HP@HHtrfff.@H7UHSHHHvH{HHCH[]ff.AWHAVAUATUSHXdH4%(Ht$H1H92HH&Hw@IH8HHL$AHAąt)H|$HdH3<%(DHX[]A\A]A^A_Lt$fHl$)D$ I^Mn)D$0L|$Ht>1HI9r HSH9HSHsH9HHuHUD0rHHefoL$foT$ fo\$0PX IFHHs#f.H9HPHBPɃHt:HHH9rH;hwHA;ufDHHRDHC C(<HXHHV Hz(HB HHH9Ht y(nHJH9B(HP@(HJHHHtHA HH HJ HH;ACHQHBHP HV HrIF@(HkHu N@HHEHuHHtHPH9UHUH9vHHLwHtHkHuHk HtuHH;]ufHE HHt\HH;UtfHXHCHtHPH9UWHUH9sHSLHHsHHHu"HHQI9H9H@H9sH+I9L{fDHHHt y(H9rB(HP@(HJHHHtHA HH HJ HH;A%HQHBHP @HqHrHHV Hr Hq HH;VHNHQHHJ HfIVA(HB(@(>HQIVVHNHJHHQ HJ HN Ht~H;QHqHHVHr HHf.IN;HA H@HQHN C(I^xIvf.HF Hf@HqgAAvDHt@AVHAHw@AUH8ATUHHSHdH%(H\$1HAąt*Ht$dH34%(DH[]A\A]A^fD(!wHH^HuIHHGL,$ImHu@HUHtHHuLuyHUHuHkHCHCC H]fDHSHz HBHHH9Ht y yHJH9 B HP@ HJHHHtHAHHHJH(H;ANHQHBHPHSHrIE@ DLE1UoHMonH]'HHHt y H9ZB HP@ HJHHHtHAHHHJHH;AHQHBHP@HqHrHHVHrHqHH;VHNHQHHJHfIUA HB @ 3HQHKHJHHQHJHKHH;QHYHHSHZHHfDIUHQIM+HAH @HN HCHCHCC I]XI][HCH:@HY;HA)mJrff.@UHHSHH(dH%(HD$1H5H=|H1萳HT$Ht$HuHT$Ht$H} HL$dH3 %(uH([]qff.AT1IH5UHSHH=HuH{(L[]A\[]A\ff.AT1IH5nUHSHH=躲H uH{0L[ ]A\[]A\ff.UHHSHHtHAHGL1Hl$L1[LIvIHEHIVIHZH)HbH9ILFH)H0H9HGH)HH9HGfA"Hl$(E1AHD0HZHl$(H)IH9LFH)H9HG1A Hl$(1AHAHDH|$11 pTDHt$(L2H|$(HD$(E1A LIvIHA"u#HLAHA"19H\$DHoLHVpILHD$ HXHuHHCHufHhHHttH3LotHl$LLSA"+H9ILFH)H9HG1Hl$(HL$(Hl$LHLHLCLH\$0HnHt$HToHD$ H@HD$ H Hl$\$DLd$HL|$0HMl$ Mu IIEHuf.LXIHIUIuHmt؉LIvIHHIIVH"HZH8 AHH)H)AHH9HGH)H9HHHGI1H9LFHHt(Ll\HLnIHMl$(Muf.IIEHuLJIHIUIuHlt؉Hl$Hl$(EHH5 1Hl$H=,:H߻-LPH9ILFH)H9HG1Hl$!HHt(LkGHLm4HMd$0Mu HIID$HuL9IHt!IT$I4$HktۉeHHDl$E1MnHD$XLt$`HD$HD$LJ<LLHD$HL$E1JHT$@H$H$=:HmLIbI9HQLIFHT$Ht$LI)]HQE1MRHjH$H$H$Y^uCHtVE1 IL9tHKAIv(H|$ppAątMELd$Ld$HD$ME1Hl$XILHD$ AHH9\$t@H3LtH;HHl$A0Hl$A H|$tEttH<$tJEtE11u9H;$s3E1K1XSH~# uH[f.HH51H=؏HH5蹙HHt+HH5W1H=詏;uH=1ւH=1ȂSH#@u H[H1H5H=H#uK@tHH5HHtN1HH5H=;uH=14@HH5@јHHtO#H=1U1SHӉH=H/HbuHt(H H1H H1[]DHPuHtff.H1H=見1Hff.@HG@H8H0HH9uw"9vfDwHL@9sÐHcHT@AWL=AVAAUATUHSHHdH%(HD$1Ll$Ld$@LLHEuruED$H߃K4@ ‰D$ D$ K4LK4HLHl$K4HHIHHH?H$dH3%(uHĨ[]A\A]A^A_)0fAWAVAUATIUHM$SHHHdH%(H$1L$L$EHLH$D$ LLHLHpHLL"HHHH$HHqH$HHH $ZH $HLH\$HHLLHHHHHHHLHHHHHHHHLH$LHHHHLH LHHHHgLH L 1Ҁ|$9t LLI$LL1H$dH3 %(u?HĨ[]A\A]A^A_fDHLLYf-@AUATUHSHHHdH%(H$1L$ILHLLnHLH$HTHHL 0EH$dH3%(uHĘ[]A\A]5-DUSHH^ HH t1H[]AWAVAUATUSHH $HH $HLD$(HIIHT$L$0H\$0LMdH%(H$"1 I I I L@H$0HLHLIHHHD$LIH HT$LHIHHHL$XLL$$HMI LL@H$0 HLHzI HHHD$ H$I H` Ht$LH@I HH$I H. Ht$LHIHH$IH LHMZLHoH$IH LLHIH?H$IH HD$ HHIH H$IHj Ht$LHJIHH$IH8 LLHMHLL,$IHL LLHIHLnLIH Ht$LHIH=LIH Ht$LH{IH LHL,$IL$0"^ LD$(LMe}Ht$L$"H}HH H0H0HEHHHH)H)H{IHHLHHaHH6A<$uOHHM9u?HHL H$"dH3%(uPH"[]A\A]A^A_HHH$HLV A$HHH L/{U(DAWAVIAUMATUSHXdH%(H$H1H$L$HHD$hLd$pH$$1LH$pZIHHD$ILLHHD$@H$pHL$HH$pHL$XH$HL$PH$pHL$0H$HL$H$HL$8H$HL$(H$pHL$ IHL$HL$hHLHD$`HT$H|$HLLLLLLHYHt$H|$XLwHt$H|$PL5HT$XLLHT$PHHH|$0LH5H|$LHHT$HHt$@HSHlHHAHD$H|$8HHHt$8H|$(HHt$8H|$ HHT$(Ht$0LHT$ Ht$LHT$(Ht$ H|$HT$Ht$0H|$@HD$`HHUH$HdH3%(uHX[]A\A]A^A_%f.DHO|G|ƒG|AADPH PHH9uuDG|HWxHDƃH4!HAH9u-!މA)DG|DDHD)HBH9u)71f.HH ug|f.HoIoNIoV o^0of@onPLdH%(H$1ov`o~p)$)L$)T$ )\$0)d$@)l$P)t$`)|$pLLIfHHWH9uH$dH3%(uHĘ#ff.HooOIoW o_0og@ooPdH%(H$1ow`opL)$)L$)T$ )\$0)d$@)l$P)t$`)|$p $IIID9HW!H9uH$dH34%(uHĘ"ff.fHooOoW o_0IdH%(H$1og@ooP)$ow`op)L$LooN)T$ )\$0oV o^0)d$@of@)l$PonP)t$`ov`)$)$)$)$)$)$)|$p)$o~p)$L$LLIfDHHH9t#9t1H$dH34%(uHø!@D1A 1D!1ʉHH=uHooOoW o_0og@ooPdH%(H$1ow`opH)$)L$)T$ )\$0)d$@)l$P)t$`)|$p$H$dH3%(uHĘ DHGHfDHH9uHDHH9u1f.   HH=ufDHHdH%(H$1FIMH|$FxD$|I@@HHHL9u1fDA +  HH=uH$dH3%(u HĘ3ff.HdH%(H$1HHLDHHHL9uHH@HH9uHH$dH3%(uHĘ)fHdH%(H$1IILDHH9uIML@E14A4HH=uHII9uIq|HfDAIHAAPAL9uڋD$|HO|ƒG|AADPHf PHH9ut G|H$dH3%(uHf.H@AWHAVIAUATUSH(H|$Ld$H$LH$L$L$dH%(H$1`LLHRHHHDLHL6L$LLLL$LLH LLHLLHHHHHHHHHHHHHLHLLLHHHHAHHHxHHHjAuL$LHA LHLLH:HHH,@HHHHHH AuLHHAHHHHHHHHHHHHAuL$LHALLLHHHH|@HHHjHHH\AuL$LHA1L:LLH,HHHfDHHH HHHAuLHHAHHHHHHfDHHHHHHAuLHHHHHHHHtHHHfHHHXHHHJH|$LH:H$dH3%(uH([]A\A]A^A_0AWHAVIAUIATUSHdH%(H$1HH$L$HL$HHHHHHLHLHLLLLHL$iLHL[LLHMHHH?uL$LH޽ LLLHHHHuL$LH޽LLLH@HHHuLHH߽ HHH@HHHuL$LH޽1LjLLH\@HHHJuL$LH޽cL*LLH@HHH uLHH߽1HHH@HHHuLHHHHHHHHLHLH$dH3%(uHĘ[]A\A]A^A_f.AWAVAUATUSHdH%(H$1]#D$,]#D$0]#D$4]#D$8~]#D$<x]#D$@r]#D$Dl]#D$Hf]#D$L`]#D$PZ]#D$TT]#D$XN]# L]#J]#D$ D$lL$$ 8]#D$(HX#HD$HD$p\$\L$hHD$`f.D$XD$ Dt$hD|$HDD$8Dd$TD$t$DD$\DT$4|$PT$$\$@D\$0DL$LL$(l$K|>HD$ Ht$@Kt>Ht$`Kt>Lt$pH|$PLMHt$XH|$HD$D$ |$ Ht$@AHT$8Ht$`Ht$X&Ht$P@>Ht$0Le;H<$LLH|$fo$fo$)D$p)$tbH\$(LML|$ LL;H<$LLYHL 0HHH9uIM9uIH\$(HD$H9HGHD$ LD$ PL91H|$HHt$h DHI9vjLH H9uH)\$D$ H|$ HH|$0%1H$8dH3<%(u*HH[]A\A]A^A_H)D$륃D$ cAS33AAAFDD3A3D DD1AAAAEFFDD3F 3 D1AAAAEFFDD3F 3D1AAAAEFFDD3F 3D1AAAAEFFDD3F 3D1AAAAEFFDD3F 3D1AAAAEFFDD3F 3 D1AAAAEFFDD3F 3$D1AAAAEFFDD3F D13(AAAAEFFDD3F 3,D1AAAAEFFDD3F 30D1AAAAEFFDD3F 34D1AAAAEFFDD3F 38D1AAAAEFFDD3F 3<D1AAAAEFFDD3F 3@D1A[AAFDD33DD DD1ɉ ff.@S3D3AAAFDD3A3<D DD1AAAAEFFDD3F 38D1AAAAEFFDD3F 34D1AAAAEFFDD3F 30D1AAAAEFFDD3F 3,D1AAAAEFFDD3F 3(D1AAAAEFFDD3F 3$D1AAAAEFFDD3F 3 D1AAAAEFFDD3F D13AAAAEFFDD3F 3D1AAAAEFFDD3F 3D1AAAAEFFDD3F 3D1AAAAEFFDD3F 3 D1AAAAEFFDD3F 3D1AAAAEFFDD3F 3D1A[AAFDD33D DD1ɉ ff.HQHHH5QHGHaH8HH)H)΁HHff. A1f9v$DɃIE D Auf fDIff.AULLHATMUSH1HdH%(HD$1@1f9DǃIED uA1IM9u$Ld$HD$@LHH$IABD$ABM9uLLMDLHHj$IABD$ABM9uIM9uHD$dH3%(uH[]A\A]I-VfDAWIAAVI1AULHATUSHIH(dH%(HD$11fA9H? uA1IM9u1E1Ld$E1Hl$1fE9AAL6 uD1D$1fE9YAAL6 u1HLL߉D$HDD$T$DCSI9vIIHD$Lf1fE9AAL? @uD1D$1fE9~AAL? @u1HLL߉D$ImDD$T$EEAUI9sIH9\$QHD$dH3%(uZH([]A\A]A^A_fLAfLA>fHϾ;LALAffH MHIHH5MHOH ]H8HHH)H)΁HHLH;ff.ft7SIIH\DIRLLAII9u[fDff.@ft7SIIH\DIRLLII9u[fDff.@AUATUSHdH%(HD$1HIAE1Ld$HfDALHHAȉ$ABȉD$l$IABAJAR‹D$ARAJARABARE9wHD$dH3%(u H[]A\A]BfAUATUSHdH%(HD$1HIAE1Ld$HfDALHHAȉ$ABȉD$$IABAJAR‹D$ARAJARABARE9wHD$dH3%(u H[]A\A]rfAUATUSHdH%(HD$1IHAE1Ld$H1@A0HHuALHHAȉ$ABȉD$$L։ABA AJ̋D$AJABAJAJIBAJE9v Il@HD$dH3%(u H[]A\A]xAVIAUATIUSHdH%(HD$1LlLTAAHl$HHM4DAHHLȉ$ABȉD$$ABA AJ̋D$AJABAJAJ1AJfAA2TAHHuIIM9oAHHLȉ$AFȉD$7$AD$AF1 @AA2AHHuHD$dH3%(uH[]A\A]A^MHl$HfAWAVAUATUHSH(D'Ht$AAĀu/sHfDHDeAAĀu BD` u]HE1@E_A_HCHu-uE9Lc@ÀE1E1E1I H1I+fD..EAH]ÀuXDBDPtπ.tӃ0EAwAM9KtMHI)L9HL,3]ÀtEE1ABD$DD$LD$D8tCNAԋt$LD$H;4t)II+HWDD$F$LD$D8uUHPDd$H>WNHHIIL9HHIL9LIM9+IgfffffffLLAIH?HH)II9~LIAv0AE1IgffffffffHH?AIHH)HA9uHD$HH01D@wHM9CK MHI)L91L4 (H([]A\A]A^A_Ð"H([]A\A]A^A_EtMM:HD$L0H(1[]A\A]A^A_E1E1E1 DIHH1LȾH?IM1I)HUMI H4AI9|,HHuMH5UUH1HÐHU ELLAUHHILHHApHHI.uL9PL{fftpHfIHfAWftSM9w1fA?E @H|$T$U(T$2WHD$"HE0HD$7M9sHT$ Ht$@H u1f3fDATIWLLULL$@LD$0Ht$87ZY[IH1E @H|$T$QT$HD$8L0AЅ3E )1[HD$8/5DAWAVAUATUSL$HH $L9uH(H$HHdH%(H$@1f~F Ld$LoLI$AUf/tftHIPH9u|$6LJHPH@ LI$fflHHfQH9uHE1LfDD$HLd$D+L#LL#E#f*~f%HLfGLNff?t9f[uDVHWA!t|HNLfE[f7HLA?K HLfDwDK L9tf*LvA*HLfDW_fDf~HFu[fHpH:HNHH@HfE"DfA]uA[fD7A!Ds D|$ 'HfHWf-H][uf9:[HufDHqHHftwf:ufx]ugH)HHMtLMH#1@EfD;TAuHfEtH9uA<1HL MuŋD$ [fHWf-1Af]-f%HfWHWfGH]A]HzHDs f:L)HfGHfWHTq2HJ[1fz:[Q@H-jf.1f7f|$GS E9}1 tLH$@dH3%(H(@[]A\A]A^A_A[fDHA!HE)HcKMc%@LA,IHOE*E}HsLcHKJ,J<1HH@HITHIDTHH9uLH tLKt/LIHL)@H hHSH *HLhHSH *HH9uL1H$ 4$M$MSHHH?ZYD+S E9uH$1HH]fA!HWfDOiAA9HEHIcL$HHKHf.؃ tv@upt S݃8L@u A$\IÀt A$MIiHHID$H q@?A$^DAT$6@A$\0AD$؃0A\$0AD$ID$[]A\A]A^fA\HcHf@\sID$fA4$&@ATIUSH6@t2H 3H@uD)[]A\@1[]A\ff.AWIAVAUATU1SAHAAH8H|$HT$dH%(HD$(1HDH$DD$|AM|$t ,@u @u @ t9AL$ t$A͋t$Hf|(){},'`";&<>|(){}%s: ignoring duplicate key %stcp/usr/bin/xauth.ssh/id_rsa~/.ssh/id_dsa.ssh/id_ecdsa.ssh/id_ed25519.ssh/id_xmss/etc/ssh/ssh_known_hosts/etc/ssh/ssh_known_hosts2~/.ssh/known_hosts~/.ssh/known_hosts2ciphers%s: %s: %smacskex_algorithmshostbased_key_typespubkey_key_typesca_sign_algorithms%s: invalid hostname "%s"%s: invalid username "%s"protocolnot /bin/sh %s line %d: missing argument.default =%s line %d: integer value %s.canonicalfinalMissing Match criteria for %soriginalhostlocaluserexec%lluiSHELLopen(/dev/null): %sExecuting command: '%.500s'dup2: %s%s: fork: %.100s%s: waitpid: %scommand returned status %d%s line %d: Invalid SetEnv.%s line %d: too many SetEnv.false~/.ssh/etc/ssh%s/%s%s line %d: %s%.200s line %d: Bad mask.%s: Unimplemented opcode %dmatch %sfound (parse only)fstat %s: %s[@%s: kex_assemble_names failedconnecttimeout nonetunneldevice any:anycanonicalizePermittedcnames %s:%sescapechar noneescapechar %s ipqos %s rekeylimit %llu %d streamlocalbindmask 0%o syslogfacility %s 1234567890.proxyjump %s%s%s%s%s%s%s%s%s alwaysforceautopoint-to-pointautoaskinet6confirmoffaccept-newfallbacktorshglobalknownhostsfile2rhostsauthenticationuserknownhostsfile2useroamingusershuseprivilegedportafstokenpassingkerberosauthenticationkerberostgtpassinggssapiauthenticationgssapikeyexchangegssapidelegatecredentialsgssapitrustdnsgssapiclientidentitygssapiserveridentitygssapirenewalforcesrekeygssapikexalgorithmspkcs11providersmartcarddevicerhostsrsaauthenticationcompressionlevelforwardagentforwardx11forwardx11trustedforwardx11timeoutexitonforwardfailurexauthlocationgatewayportspasswordauthenticationkbdinteractiveauthenticationkbdinteractivedevicespubkeyauthenticationdsaauthenticationhostbasedauthenticationskeyauthenticationtisauthenticationidentityfileidentityfile2identitiesonlycertificatefileaddkeystoagentidentityagenthostkeyaliasproxycommandremoteforwardlocalforwardescapecharglobalknownhostsfileuserknownhostsfileconnectionattemptsbatchmodecheckhostipstricthostkeycheckingcompressiontcpkeepalivenumberofpasswordpromptssyslogfacilitylogleveldynamicforwardpreferredauthenticationshostkeyalgorithmscasignaturealgorithmsbindaddressbindinterfaceclearallforwardingsenablesshkeysignverifyhostkeydnsrekeylimitconnecttimeoutaddressfamilyserveraliveintervalserveralivecountmaxsendenvsetenvcontrolpathcontrolmastercontrolpersisthashknownhostsincludetunnelpermitlocalcommandremotecommandvisualhostkeyipqosrequestttyproxyusefdpasscanonicaldomainscanonicalizefallbacklocalcanonicalizehostnamecanonicalizemaxdotscanonicalizepermittedcnamesstreamlocalbindmaskstreamlocalbindunlinkrevokedhostkeysfingerprinthashupdatehostkeyshostbasedkeytypespubkeyacceptedkeytypesignoreunknownproxyjumpy(cm{o <,LD~&__SXEk<_vmd (2wsE|H<)\\N7$'; vdump_client_configparse_jumpfill_default_optionsexecute_in_shellprocess_config_line_depthadd_identity_fileadd_certificate_fileToo many certificate files specified (max %d)Too many identity files specified (max %d)Identity file path %s too longaes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-gcm@openssh.com,aes256-gcm@openssh.comchacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.comhmac-sha1,hmac-sha2-256,hmac-sha2-512,hmac-sha1-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.comumac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256,ssh-rsaecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsaecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsagss-group14-sha256-,gss-group16-sha512-,gss-nistp256-sha256-,gss-curve25519-sha256-,gss-group14-sha1-,gss-gex-sha1-%s: line %d: Bad configuration option: %s%s line %d: Ignored unknown option "%s"%s line %d: missing time value.%s line %d: invalid time value.%s line %d: unsupported option "%s".%.200s line %d: Missing argument.%.200s line %d: Bad GSSAPI KexAlgorithms '%s'.%.200s line %d: Bad number '%s': %s%.200s line %d: RekeyLimit too small%.200s line %d: Too many identity files specified (max %d).%.200s line %d: Too many certificate files specified (max %d).%s line %d: too many authorized keys files.%.200s line %d: Invalid ProxyJump "%s"%.200s line %d: Bad port '%s'.%.200s line %d: Bad SSH2 cipher spec '%s'.%.200s line %d: Bad SSH2 Mac spec '%s'.%.200s line %d: Bad SSH2 KexAlgorithms '%s'.%s line %d: Bad key types '%s'.%.200s line %d: unsupported log level '%s'%.200s line %d: unsupported log facility '%s'%.200s line %d: Missing port argument.%.200s line %d: Missing target argument.%.200s line %d: Bad forwarding specification.Host directive not supported as a command-line option%.200s line %d: Skipping Host block because of negated match for %.100s%.200s line %d: Applying options for %.100schecking match for '%s' host %s originally %s%.200s line %d: '%s' cannot be combined with other Match attributes%.200s line %d: %smatched '%s'%.200s line %d: skipped exec "%.100s"Unable to execute '%.100s': %scommand '%.100s' exited abnormally%.200s line %d: match exec '%.100s' errorUnsupported Match attribute %s%.200s line %d: %smatched '%s "%.100s"' One or more attributes required for Match%.200s line %d: Bad Match condition%.200s line %d: Bad escape character.%s line %d: Invalid environment name.%s line %d: removing environment %s%s line %d: too many send env.%.200s line %d: Missing ControlPersist argument.%.200s line %d: Bad ControlPersist argument.%.200s line %d: Bad tun device.Include directive not supported as a command-line option%.200s line %d: bad include path %s.%.200s line %d: include %s matched no files%.200s line %d: glob failed for %s.Can't open user config file %.100s: %.100s%s line %d: Bad IPQoS value: %s%s line %d: too many hostname suffixes.%s line %d: Invalid permitted CNAME "%s"%s line %d: too many permitted CNAMEs.%.200s line %d: Missing StreamLocalBindMask argument.%.200s line %d: Invalid hash algorithm "%s".%.200s line %d: Invalid environment name %s.%s line %d: Deprecated option "%s"%s line %d: Unsupported option "%s"%.200s line %d: garbage at end of line; "%.200s".%.200s line %d: Including file %s depth %d%sToo many recursive configuration includesBad owner or permissions on %sReading configuration data %.200s%s: terminating, %d bad configuration optionschallengeresponseauthenticationnohostauthenticationforlocalhosttemporarily_use_uid: %u/%u (e=%u/%u)restore_uid: temporarily_use_uid not effectivepermanently_set_uid: no user givenpermanently_set_uid: temporarily_use_uid effective%s: was able to restore old [e]gid%s: egid incorrect gid:%u egid:%u (should be %u)%s: was able to restore old [e]uid%s: euid incorrect uid:%u euid:%u (should be %u)getgroups: %.100sinitgroups: %s: %.100ssetgroups: %.100ssetegid %u: %.100sseteuid %u: %.100srestore_uid: (unprivileged)restore_uid: %u/%upermanently_set_uid: %u/%usetresgid %u: %.100ssetresuid %u: %.100spermanently_set_uidsuccessunexpected internal errormemory allocation failedincomplete messagebignum is negativestring is too largebignum is too largeinsufficient buffer spaceinvalid argumentkey bits do not matchinvalid elliptic curvekey type does not matchelliptic curve does not matchkey lacks certificate datainvalid elliptic curve valueincorrect signatureerror in libcryptoinvalid certificateagent refused operationDH GEX group out of rangedisconnectedno matching cipher foundno matching MAC foundprotocol version mismatchcould not load host keyfile changed while readingbad permissionskey not foundagent not presentagent contains no identitiesKey is revokedConnection closedConnection timed outConnection corruptedProtocol errorInvalid key lengthnumber is too largeunknown errorelliptic curve point is too largeunknown or unsupported key typeplain key provided where certificate requiredunknown/unsupported certificate typeinvalid certificate signing keyunexpected bytes remain after decodingcommunication with agent failedmessage authentication code incorrectno matching compression method foundno matching key exchange method foundno matching host key type foundcould not read protocol versionrekeying not supported by peerpassphrase is too short (minimum five characters)key encrypted using unsupported cipherincorrect passphrase supplied to decrypt private keycertificate does not match keyinternal error: buffer is read-onlyKRL file has invalid magic numbersignature algorithm not supported|l\L<, |l\L<, |l\L<, |l\L<4%s%02xssh-unknownssh-ed25519ED25519[%s %u] .o+=*BOX@%&#/^SE%s %srsa-sha2-512Certificate invalid: expiredforever%Y-%m-%dT%H:%M:%Sbefore %safter %sfrom %s to %sbcryptaes256-ctropenssh-key-v1 point=(NULL) %s: BN_CTX_new failed %s: BN_CTX_get failed x= y=exponent=(NULL)ED25519-CERTssh-rsaRSArsa-sha2-256ssh-dssecdsa-sha2-nistp256ECDSAecdsa-sha2-nistp384ecdsa-sha2-nistp521ssh-rsa-cert-v01@openssh.comRSA-CERTssh-dss-cert-v01@openssh.comECDSA-CERT{Ghx` pppppHpH P(0`@  #$##%($]$#p$($0$$@$%P$$&h$`$%$#`$%$#&p&&&&h&H**N**-< SIZE_MAXxcalloc: out of memory (allocating %zu bytes)xreallocarray: out of memory (%zu elements of %zu bytes)xrecallocarray: out of memory (%zu elements of %zu bytes)xasprintf: could not allocate memory%s: couldn't parse address %.100s%s: inconsistent mask length for match network "%.100s"%s: empty entry in list "%.100s"%s: list entry "%.100s" too long%s: list entry "%.100s" contains invalid charactersInvalid network entry "%.100s"Inconsistent mask length for network "%.100s"0123456789abcdefABCDEF.:/addr_match_cidr_listaddr_match_listhmac-sha1hmac-sha1-96hmac-sha2-256hmac-sha2-512hmac-md5hmac-md5-96umac-64@openssh.comumac-128@openssh.comhmac-sha1-etm@openssh.comhmac-sha1-96-etm@openssh.comhmac-sha2-256-etm@openssh.comhmac-sha2-512-etm@openssh.comhmac-md5-etm@openssh.comhmac-md5-96-etm@openssh.comumac-64-etm@openssh.comumac-128-etm@openssh.com "= " fcntl(%d, F_GETFL): %sfd %d is O_NONBLOCKfd %d setting O_NONBLOCKfd %d is not O_NONBLOCKfd %d clearing O_NONBLOCKfd %d is TCP_NODELAYfd %d setting TCP_NODELAYput_host_port: asprintf: %sput_host_port: %saddargs: argument too longreplacearg: argument too long%s%s%s%s: NULL replacement%s: too many keys%s: string too long%s: invalid format%s: unknown key %%%cCouldn't open /dev/null: %s dup2: %s tohex: length > 65536clock_gettime: %sgetsockopt: %sTMPDIR/tmp/ssh-XXXXXXXXXXXX%s/ssh-XXXXXXXXXXXX%s: template string too shortaf11%s: socket: %.100sunlink(%s): %.100s%s: set socket %d IPV6_V6ONLYsetsockopt IPV6_V6ONLY: %s/dev/ttyalready daemonized%s: sshbuf_put_u8: %s%s: malloc failed%s %s exited on signal %d%s %s failed, status %drealpath %s failed: %s%s is not a regular filedirname() failedcannot stat file %s: %s%s=%sempty domain name://missing%Y-%m-%d%Y-%m-%dT%H:%M%.4s-%.2s-%.2s%.4s-%.2s-%.2sT%.2s:%.2s%.4s-%.2s-%.2sT%.2s:%.2s:%.2saf12af13af21af22af23af31af32af33af41af42af43cs0cs1cs2cs3cs4cs5cs6cs7eflowdelaythroughputreliabilityfcntl(%d, F_SETFL, O_NONBLOCK): %sfcntl(%d, F_SETFL, ~O_NONBLOCK): %sgetsockopt TCP_NODELAY: %.100ssetsockopt TCP_NODELAY: %.100ssetsockopt SO_REUSEADDR fd %d: %sSetting routing domain is not supported on this platformreplacearg: tried to replace invalid arg %d >= %dtilde_expand_filename: ~username too longtilde_expand_filename: No such user %stilde_expand_filename: No such uid %ldtilde_expand_filename: Path too long%s: path "%s" too long for Unix domain socket%s: cannot bind to path %s: %s%s: cannot listen on path %s: %sbad ownership or modes for file %sbad ownership or modes for directory %sInvalid environment variable "%.100s"child_set_env: too many env varsdomain name "%.100s" starts with invalid characterdomain name "%.100s" contains consecutive separatorsdomain name "%.100s" contains invalid charactersargv_assemblesock_set_v6onlyunix_listenermktemp_protopercent_expandeA.ACssh_msg_send: type %ussh_msg_send: writessh_msg_recv enteringssh_msg_recv: read: headerssh_msg_recv: read: %sssh_msg_recv: read: bad msg_len %ussh_msg_recvOpenSSL version mismatch. Built against %lx, you have %lxPRNG is not seeded%s: crypto_sign_ed25519_open failed: %dssh_ed25519_verifyMD5SHA1SHA256SHA384SHA512crypto_hash_sha512SSH2_MSG_NEWKEYS receivedtype %u seq %udiffie-hellman-group1-sha1gss-gex-sha1-%s: write: %.100sgss-gss kex names ok: [%s]first_kex_follows %d reserved %u SSH2_MSG_NEWKEYS sentexpecting SSH2_MSG_NEWKEYSserver-sig-algsSSH2_MSG_EXT_INFO received%s: nul byte in %s%s: %s=<%s>%s: %s (unrecognised)SSH2_MSG_KEXINIT sent(no match)client->serverserver->clientSSH2_MSG_KEXINIT receivedlocal %s KEXINIT proposalpeer %s KEXINIT proposalext-info-ckex-strict-c-v00@openssh.comkex-strict-s-v00@openssh.comwill use strict KEX orderingkex: algorithm: %skex: host key algorithm: %szlib@openssh.comzlibkex: %s need=%d dh_need=%dproposals match%s: no kex%s: requested twiceOpenSSH_8.0SSH-%d.%d-%.100s%s%s %s: sshbuf_putf: %s%s: sshbuf_consume_end: %s%s: sshbuf_dup_string failedLocal version string %.100s%s: read: %.100s%s: sshbuf_put: %s%s: banner line too long%s: banner line %zu: %s%s: calloc failedSSH-%d.%d-%[^ ] gss-group1-sha1-gss-group14-sha1-gss-group14-sha256-gss-group16-sha512-gss-nistp256-sha256-gss-curve25519-sha256-diffie-hellman-group14-sha1diffie-hellman-group14-sha256diffie-hellman-group16-sha512diffie-hellman-group18-sha512ecdh-sha2-nistp256ecdh-sha2-nistp384ecdh-sha2-nistp521curve25519-sha256curve25519-sha256@libssh.orgKEX algorithmshost key algorithmsciphers ctosciphers stocMACs ctosMACs stoccompression ctoscompression stoclanguages ctoslanguages stocstrict KEX violation: unexpected packet type %u (seqnr %u)"%.100s" is not allowed in FIPS modeUnsupported KEX algorithm "%.100s"SSH2_MSG_EXT_INFO with too many entries, expected <=1024, received %ustrict KEX violation: KEXINIT was not the first packetrsa-sha2-256,rsa-sha2-256-cert-v01@openssh.comrsa-sha2-512,rsa-sha2-512-cert-v01@openssh.comkex: %s cipher: %s MAC: %s compression: %sproposal mismatch: my %s peer %sNo SSH identification string received.%s: No SSH version received in first %u lines from serverTimed out waiting for SSH identification string.Connection timed out during banner exchange%s: Connection closed by remote host%s: banner line contains invalid characters%s: client sent invalid protocol identifier "%.256s"Bad remote protocol version identification: '%.100s'Invalid SSH identification string.Remote protocol version %d.%d, remote software version %.100sProtocol major versions differ: %d vs. %dProtocol major versions differ.probed from %s port %d with %s. Don't panic.scanned from %s port %d with %s. Don't panic.Remote version "%.100s" uses unsafe RSA signature scheme; disabling use of RSA keysdiffie-hellman-group-exchange-sha1diffie-hellman-group-exchange-sha256sntrup4591761x25519-sha512@tinyssh.orgsend_errorkex_exchange_identificationkex_start_rekexkex_input_ext_info%s: bad length%s: revoke type %s%s: revoke by sha1%s: revoke by sha256%s: insane bitmap gap%s: checking CA key%s: not a KRL%s: alloc failed%Y%m%dT%H%M%S%s: bitmap wraps u64Unsupported KRL section %u%s: checking KRL %sSSHKRL k`!Wssh_krl_file_contains_keyssh_krl_check_keyblob_sectionparse_revoked_certsssh_krl_from_blobrevoked_certs_generatessh_krl_revoke_key_sha256ssh_krl_revoke_key_sha1ssh_krl_revoke_key_explicitKRL version %llu generated at %s%s%sKRL contains non-signature section after signatureKRL signed more than once with the same keyUnsupported KRL certificate section %uKRL certificate section contains unparsed dataKRL section contains unparsed dataAll keys used to sign KRL were revokedKRL not signed with any trusted keyOpenSSH_2.*,OpenSSH_3.0*,OpenSSH_3.1*match: %s pat %s compat 0x%08xignoring bad proto spec: '%s'.%s: original cipher proposal: %s%s: compat cipher proposal: %s%s: original public key proposal: %s%s: compat public key proposal: %sNo supported PK algorithms founddiffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1No supported key exchange algorithms foundOpenSSH_2*,OpenSSH_3*,OpenSSH_4*OpenSSH_7.0*,OpenSSH_7.1*,OpenSSH_7.2*,OpenSSH_7.3*,OpenSSH_7.4*,OpenSSH_7.5*,OpenSSH_7.6*,OpenSSH_7.7*1.2.18*,1.2.19*,1.2.20*,1.2.21*,1.2.22**OSU_0*,OSU_1.0*,OSU_1.1*,OSU_1.2*,OSU_1.3*,OSU_1.4*,OSU_1.5alpha1*,OSU_1.5alpha2*,OSU_1.5alpha3*PuTTY_Local:*,PuTTY-Release-0.5*,PuTTY_Release_0.5*,PuTTY_Release_0.60*,PuTTY_Release_0.61*,PuTTY_Release_0.62*,PuTTY_Release_0.63*,PuTTY_Release_0.64*TeraTerm SSH*,TTSSH/1.5.*,TTSSH/2.1*,TTSSH/2.2*,TTSSH/2.3*,TTSSH/2.4*,TTSSH/2.5*,TTSSH/2.6*,TTSSH/2.70*,TTSSH/2.71*,TTSSH/2.72*WinSCP_release_4*,WinSCP_release_5.0*,WinSCP_release_5.1,WinSCP_release_5.1.*,WinSCP_release_5.5,WinSCP_release_5.5.*,WinSCP_release_5.6,WinSCP_release_5.6.*,WinSCP_release_5.7,WinSCP_release_5.7.1,WinSCP_release_5.7.2,WinSCP_release_5.7.3,WinSCP_release_5.7.4no match: %saes*match_filter_blacklist failedNo supported ciphers found%s: original KEX proposal: %s%s: compat KEX proposal: %sOpenSSH_3.*Sun_SSH_1.0*OpenSSH_5*OpenSSH_6.6.1*OpenSSH_6.5*,OpenSSH_6.6*OpenSSH**MindTerm*3.0.*3.0 SecureCRT*1.7 SecureFX*1.3.2*Cisco-1.**SSH Compatible Server**SSH_Version_Mapper*FuTTY*Probe-*ConfD-*Twisted_*Twisted*compat_kex_proposalcompat_pkalg_proposalcompat_cipher_proposaldispatch_protocol_error: type %d seq %udispatch_protocol_ignore: type %d seq %uskipped packet (type %u)protocol error: rcvd type %dssh_dispatch_run_fataldispatch_protocol_errorexpand 16-byte kexpand 32-byte k, )c]!!\cX%`-V%`,i\1Sn6i!XfffffffffffffffffffffffffffffffC(N_E 3};=lZL86jF_VQ8dQ9V^)# `"\_HbHbCc:>tI"JgxHh$g&`&iwgpW:IGs 5z%FV= /2a8/2(LlqG'G;i{:N\-Bq_Bg7[/b<xf onys!(lmYYt#3W $+:'#'g7z'jxn:.rpkwRay-@](_py{OD  3mwN`&O~@ORx1}V9 VBil9i:O9-8@Lxzk,4D <zQxjFy) d& j n^Loyr(&=[I]@z#&z$_{7K!E 4a2#UHSc(GZV:0 (KDt:n2?5_nYe]4 p}* `4xewV mWaxIT&N~^lV1 '=}&kyQ\uU 4<3 Ta90!&p13s.dtIHMMH@2A|7-Th+J[Q*KGz|R:k='YCye)Q.y~iYqI</4 ,>e MK;J;`X**zH Fj4,E1=(AvR<N6 Q*b^El~):Y&/&ORG$} [ zul,vY15j4qJ]S&<3dDzCl?"sdI/qiBV{/}{(v/o"_MNW6[R<3ZrK8J-D k->_h("jx)t> -pBzIr2+\T2WT3`eg&4O[F3T&[h<Z7'GIZh#@egDhz4TyT/pN]6To-Ck .d#,.Z;F+41FUC1`x"BjcYT)oz<_e'Or'H~t2(`c6277t%NgSYnd4dTG7@ JU?G%#,UQojqvyR~apx|+UR4$Lp#.2Ts>$L[$~ zRQ)y7thfhU(cm@iul\*~2{)"tMvQ* _&H'GRe1"c[JMId`Dw62PeHL7h>}OJ1f_WL*HKNn;Qj%_?Q_< Cs<3*C3h=skh}l$KM$ ;yQsSnh?\SK+-)Z=Rk`J6cN}<|(.iD~m'F+XN -TuT&J'F"Zq]E@{wWI9# "z/W9w lw:'r yVB`k&0jg +/1*=p4!3 O}WdZ\Tv+ 6JT jb? 47Bo}6?B#=OQ{5Ea6zl3-7j= a6ik[#uBcHx84g: Vo|Q9H %zY0oC8yDTn*Cq"_GK D)Pc_8l0FjK.Zwl+m/ 8 AJo@Ev ,?}CPnG$`s sgkqS990;|!LE-U]@(-0^uy&6 $wq]s~dWDBA"`Fapa ! NrI-!|m8Q}BId!,cL` Yw9QH`"/>im[R&1*h"ZS1<K,/6z0bMVyS 4<j7xvU/w.^n3>#@.^C-8C O;81/? vEr j-or,2h'XamMNK^{KCT\5N[Am}HB2Kra*$EgwZ[Kw #{BgXu!qvsi(#?[;$7"kl 3OC -} 'c Sg4MuLiQV23k.Q+lpG~ qVxuj+"qp5zDX-|4)IDEb.*!%{ 9|}%E^xwB<,ws-,KEK*k+ HM JRjayvR\,N.B+Q{>R`aWuhD88S 25R=XG0qu17A\9s6l[d =I7L* yV|9U)i\VV$BM1`MF7sLlHJZCb[*3ya5qrxM'<[jgc{n*H,9 O)z2`G;0oV;z3*:lZcgGx8yf^Q$BXKu7N=?u7Wm;`eJhg%^@^Nr-;C[-/RZ@FiJ ]$*;T 5daRB.y&Hz  n'Q(MY"TPEHK3|&M2Syfs#h`3z>4\x+TX"v%<!&Z>-RY\u~! gfg@)S;qX~RCO9&nDdm};_$.>Pqx>8WVBEH_T']ASRm_o<dW9aQ8{4~%$g B8 F^k$N8PNUufM{mX!"/h; 9jWcT9\d O;2`-$ZDU,||'ZOZgo:xRcT_L7* C$iGNv_ZaPh;D;vBg}Vr)}EWyd g:T RBM.E{z7RAGzTc56?TNFPS@9BE EK2i Fk#[i0?pGU{mZ J`dUU.S1BAkx @?tUO-fe7S :Uhm0}05xkZe. O8<v8{,x&V@IXzR}7j>x$#}0giu;m``DJ>TLt14q']UK&&j}!8+kg : 903j'T=z@srVp[_YU"DUdmW#l+[ h[6+W}8N;CH!.#M=t7edo Z%r<o%F. `4UY4DuKIoT.c2h8'tdaqZ!3OHb^$vYc;! D yw 8r Yyj 8'`;Z!}l.cJ.QiB?\ 1/72 sv5uq>Si;N_\g742EJg9pX gX-JpaNs k 0U\K}+ C=@9X0XERvj&(\YjZTB.,gi)`idpA'%o_Um/u+NDnp9v~bk|ynm?Dn:pAW#T~"v svQ;bl& oH:Ob'PRA8l/i?ae540%=bjBW4.R2f3s!4TqYoNEkH "}S2to?`A~>FZ 5DcfnU >5PiUSa 2EiY.d%b<eW)h}Z!ASy %gz]]7e;% +a}C,Y*oy/Z:|a|RRB"77qFcw%8d Q?ED=*|\^e}zC%vFrk >5~x`K-"bSW+TO|&k%NB%QP|]wrNbvu qE\o(i fm lJ%-B N%+_L;) b,Kr7 P9+Mi93\VhGrS 7qfPmRG\[."RWZ *TbsJ-Pbv;4N-pfk"_1`"c2DX]:8KMuhDx G?X} X^o T K40oetNi&d&P$rN-824a{dq%tU8A@^A~0(:+wEgv2L%2kaCqHe" 8ZY7O` lQy(\?k;\(R1(O~j  1>6bMl]W!'IF&'m-90^7Rn3;Cl>~kLnkG|V|CNr>d:H.oO--~*ljg']P@& >d>76Tpv$i+tj^`iX12,\@dti@dwl2O\dfJqygpJn o6nl$ `&L^_Bj}5`k NkQ.tDfktV29Ytm9\;@A#!eBkYdzJnkSk2tud=;F{/:y<0D(zL4cN- 3 >z4(BG$zdtl5(924+`) y9"pWT< 9& Zc+-V.05Mm0)Ze1"O(|gvn5E{ke=ds6B?BR$?J[b  UQ~umR?Q 1# vnf6:92Cz8D^xULs>CJryAeEw'<XuKe${4tH f9]9j[ExZNX_Q *UHybG9FQ:M{?D-SKhF^vZ<z!4s`DqAX7z/1?1;4R-X O.?63ZBw9[[&Y'Uq=AjPGoQm?ndN") j`/ 92DxG454%vmhcRdQo&3Cwb]uxAM>lznNUbx @Q' L4}<[0u'\ll! S*wxU.`n8?z$QS0VT}hCm*j2cOD>ct?d}RZN(L89{B<7P?#lu;PbuH3zF26G5BvH8Q9dh,}^9;$)7FZpM[)%6I}5 2Rz$uPc VD7%`)9*w@+,}~,Zb[NA$P+Qkr3BhZz/a?icT~iWS"C)# -~p}AkU)1l5^iN%T-TK$;D6&>C(7'>IO[Y<>_b'Ijp,&3pxtu`V9b;U5aD:U;)`E=~P kq[B?N#bNosa=' }z%_s/$Ob aYjo-U/;&rHFI:^Ekvi3{@p)k]>J75(zK|*#b#+lhuMKlZ`}''?"#J1nWS'G3D4y 5 M" fVHUY)V+VK1[aLhv8+wgNj 693^ cSkk", okh|3!XsRH?Y$4hO#qwa7ioKEM|jGl P'r,:-\D[!_EM!p h!e jJKsP`-qia @0uW;\VPO YQ:x.R8An5Aqjrkli/hRac?<V90w#=>tM[:e:CAG "HLWG?o}e u2lGK/O4Y&T<%jb2m9;_4f sn$pR|#F"U}qB37i[anhFg}T65lgPMB)]koM{6"X=P33J|>E5}<Y\EAC\QZ$$: *?{GKW;f zu)P}_{2?Vcd89P]ddv.|zV\N\HH4'd`qG)]v00O~N:_y+ZOh!q B,n~Kqrq$&>Yu}p`f>L_CD"q(dA8',k{=p'']:0Ta`&:~d,\n2)3zhBi|8,=dye8b7}d: jP ( B1RIRHO(f2|V%i,ViA$!jso}{( D(:@kWIc(=5FOWEYwl;O ZkOQpGlqfY]]W4&\X:mRtUw@ y5jaZmwoi %v&Wk}'<P^/__sy\&VK NXU{=kLe80^M[S%co]}Z v.q;oS/>5O<WvIPakW5D n%toz>-N e^%2`dOy/$wC%=je9KekjEDeb4{PA!0SGW`2[0YU!4gjnsk)c0RjNKQ}cn\0e.%T%8 d(Zof/=T2"R,$FpiVFNfN4 P^X5Cme{u:d)~IYSRB29CKcXv@pu b4me 4Pi!c||1sdg fi&#v]2R]|p6N_ ,gdU9V^.3beK!I5 yG/j~<>/@Q B!/{Wm?=O{+y":}oW MynqT8 @)t/^y>31iw!-R&~ Gl}c[>mB`~{Uj\b Fq,; pC)Y Wbp(n<xF~%ZcPb^$xj2)k6 K]A1_bFfHs }b?,Jpcy%Kfg J[+m`rOiZJh4E2<r0Twh"^5 |4QBmF)2Ef$]s{B!/SWHRH4*=!B^/5>) r|2en["V]KM\{4"`'7NIG("c9~9g{&F|UYo$dn5qx3!36s,iMOMWMen YkJnb)sF@1LsmM\ $x[TCUf)!<B"o# "sEv9y}b[r|a?+ M2>d2j-9;Y<P@|6ZB 2QU! us5:+IvFS#ZtX{>;y-WE Mn/VX OcC]udnc$h\D{bP,AU78HTE5D84<), fmvP<`A^(Gy?]o*)7 (!fTRi4Fvjf^jUHEJY d4NWzlE'}|bP8:kx9=<r$#}V,Y`ZtKLE?, H_'\BxG\~ ~8l5m3f6 5LEL!{>5pNa.WcHrQ ({q^&=|/myYH@:{rN;iCuQlyVQ,B fV$`G#)N9-,E<'LkK[Q:&}mR,_$2ir,n}W3kx6'>Ni|*G'4[4/w_:e.L"lMk[W3hI!0`01rz69P]lA,@w Pd4DA6m0%F5$jFT;]w[7|{{*B*<vwVFn(NVX^j I]wFumE5 "!39S<4u74NhgILeJRlHSYZ7LU(e R2'd4#Z M{#9fL7|og&KAT#NK$~V2`[*)G.OO\>3()zh`t);}+|@QY|.] lO>2JI8kR'@gvmV'c:# ~Eo9u9=Q$>mXr"{|0Q!t=|#k%pI= 58o~P*a:$[PU ;,{ DIEHSeObWEy {W2bQ;C^ x1 |#u0"Cb u}r<]6/ QQ_.h#}@i{BK@/RR!dm?G{fy.d! 1|jXwUG=U!4X*1-7GYcI5EU~d2P2uX:yF"Kgg_[Hl+9bO1sQWCpaO^t)'Y9  ,0s:}]Xk"5}#(B Aw]{x-/m@\wAMv`LH32lA On~{g36K )/8}G+j]K1Q \+W8#On.)JCPY!~3/ Mc@ Op Aig\?Wg>9V&\cX Ww $iO*~6?&@i`y'mvHgW/=UK(zMg*`M =?^x?#, D6XWK\ kU+oMx.?h.~2{o@DDC  ]\NG\?;,2q?E`T9B|Szwy<j?]KE${CxU+gX17w/?6fVtA]081rWJ;Jh AaG)exGT3+5(c??`P+)Rp $$_yD0U`l-gp%p+CM+i]<C8N= !GiUr^S;phf|IkNG7P$> +aJU_ZWt Ck,a/J/b/ ?t}/Z;7G,*6GKi]S['%i2BYMbP]AuA]8Fp^(Iy%N)#f}pNb7j0\ j8FsKC|^!O.v(`wC20*fb0@(?v<-I *lW=_ghB2Q`O!8@vMV![ .O=2[Dyy'F3yNZYWAC(~q;Y.@oD7n`\Js6q^O&w_jbzJ-~ L[JfV Q]';Z.7cH-n2'eWO71}.*k7_Nu5 :j;<;m9`;v\*E"@pImxL}nYt.Q)k]SQ"KbLr|hv*e 8*U`U[qL[p,2H*;lw<z~CWUNrRqD?yFU{yZeP{*e"&S![1&ScX1^uF/e/|nw!a NcasTBKG~u7(P]:{Xx?t]_5G&cB'uX"~ 5hop G#l3FnDvH*a7Y'dCBiy)h3z$,3#B+=-*xEM8..DI3hA.0a[\bVs?`-(X$p N?<Ae Am1@RV[(R .8+=T Y+n.B-FX'+=i>X3cb`&h .7{QxcwG2GyZA@a#**ovEl^`OpjUO 36%'$Lw8`HtT0Cw!k0l,|)U/ ekF C(t~OZdEj$580TRT?Dt'J<%cHd un^jo(zCi~l{Bp=_^ w"xUb5 T2XC>xVyA_ 6S+Z [D$cdU,G x( lFpN*R!&K|Qv|@63zc7Y26s8,z=O>5`3ukM{Bkbd}Eh,k$mVYyb!./ K9a%] UjFZvzgF SjlvBr! fto"kMpbnRw~{Wz rh|S7Sw'EH*-*T72 J}}d W\Lg0 E~R6!W"yqpV2,<]iGR\#%R]]N@w[kc4OI~!"^xuA X}mbOuwvwo4=N.`W.rknX3$H9FjQ#b2 6Wo,HJ[iR[%%D pQi%-_3~6<[:-w~[p gQ,yAJ#F({p KzTPS#w#4" .G2Wu7Ov LR]Xy H@v`TZ$/hd(*dr,}5M[JI;/=iDMw7 D#'4 47~>f(f j|$O^ElAw`!^gq !Ah8Q<<KBJ.r?tTl'Rc(Vv''x+rN*#aPn-&{QJeWIU6cUU_y Tkf(%z]p]Q'0eVFuWYgj:<jFEIA|O,01TFu%5QU%:H vzpR+&]O@ x`l@8s_ v]/WWlOD"?Ve1 GSgr` H~3VgkCRI[s~Ck-UX?0iu~_ xY0vKpYpZFU+E-$)8 +lfF&-kJ7? =u4({`nm1b xB^s s sQ%$M~8b^d+Sh+Z2JAH$2e:s +H&'Mr ;`&M|;&3Dv<B "og0Z{z*Tk]ba-CM|13lGwi WO'5W@! Bp!Wb0X 5]jZX| &_;X2g7m|' yE#,y%@D,6PcVV;  xqt0L8 HR{_%{h-%*aa!5F ZK1=3P:v{3;6{mV&@f3h P[x FTe _r!-J_y=_\}w*m"EIm:g,Vztp#im 3jwk"v] -#^,AK-fFKo w-H"O]Jp>T+'SYNDvaf!9~E()2D5^a^T|A $]9oXVy;s/sP5vM$2,Vu$zVZ: <JX:FlRn7\fAgy d|(TsvtFesw)t[l,|t]%0(,4aF1gl'yl/_[5=8weUj{:f`C&X -q&as ^C_g\KAHqapXZ-P+BaC@`ue @9g4~fVSxFhldXS{Y!3Cs+-;o63 V0\uDQneEv ;X//6?/+5 ~{#C/ z\Dz&}z}~7-|^83H1Y'c~I]y^z/fU aTukZ5(kYEeQx AXHu/*m&=/f)~n :<dEDevLpKp8"e OFEP|NlN]+R\40;4Jn &^ ;7=S+$ :,.Rz-r+mwFCz`}`[89Xdd%P&1E $Q)QMJqW}7cI ||Y` FxEWtO9W!$2h!_ *6h_O$/a '2_bA![Wb(Fs&f}_V*gwV: M~=n0YHo_0%& 7j>*C:2rLds~WgKma#4eiA< RQO36]ye QWPyqK8S*P\glOfUJft6&\$gpN*:tga(H}Uep1 boi=1&5<J/^+)sOdR3/_P "=u17Sx0'N\.TM5@JNNtT]\U61\${w\}8-r.UKnNlL%O>\f%Lpsq&NmO"E&~c*q8\30,qrD (#E^Wib\0Y]L~P'r i55lbnleYeP;n_D??g+f5Y'Z^8?dT?e"(aA-;&"4E?CCP<M1XJz23}O0;9L45qg52{\/: d8o[KdM=GH`E#;pvOwTg0f.Q$,BJo~o r\e5jN,!#/>{!@z|uz%Zn|Q<[`:I4j@&tWL]{/gZN\U%j}\+[VAOAp,#g,cl&HOS (eqG(393CvrgLs\&?+:Drx+(E *g[/RDQv2e7F7bdr@zL v*V3|ogr~cq-A2z+*F6k|\}s sM$a *e YW4{ </c K44s/nTE,1v4&t gm L^UXKC<U#Su8rX)4zgPn+s0E\ ~/]gg/oUC_5BuvnjJ4q|DeJ\\$?^ 7AH\_$Y,~]`t !wz39 }GsZM:TH9J jC^I|G|7#kFEEvknB)Lv7-|:X-_kR]0Lok bHqy$v8@dIJD<SNK_u:e{rd=X3| ,3mEFCK?+=t51zN g{\2Y1 81~][kA"5gw>L?Y47CLi34< =Z7"e-fgt"`B}pM#h)3B*6+.6d\j'WxXBc>x|\[&Ypj(5((8b.FQ; i pNdTCCUm|dl.!lJuOoF>Rg THklqv166otP8JH.dv'M%"W^vq+EY]D%L<[iU&k0kQ)zu*/+g5 ?5 4 gV) _BsS3dv%G97v  ZmCR*?&E_#RR&yVf.JRD>5AMnN[ fWEq$',B;Brv~Acqux8WTpe,9 OC[{;eco\wXzsovN,RZZ'h& \$fH1`3_/}@28t =i46uUUX<y&/EVEBDLtGj=$ XBX`t;<i0|E?A<#,8hU2]BBu-5Neg$G?1w<VHli_{^$aZvmp$MZg [z$g *tK\ _4 0-6 +lU6O^t5(s#3yWO0t^iJ[E#tLkE)lB )\4yct7+|hlW"KkC$^%;+>v2fJF~\m^HL<NS*PYlpgYEY}Gui$]jOk0uF{\$(2W<Z0"q'[v<*j]3j6s7:Dz@(0m?||c6xWCvC5=2(pE/p~SzjdGF> ,~e 3a;'r:PKtlN&q* tRmRbjDQn,vF)t.*EPWLt} IN!g~|{Zlu;> 6[p9eM`1YtX=SO*M)._[ $"%n4l]ajI%[5RQF _;`YfySn$WX HM<Wfz"m!Y-^DFPS$)R N{40zA`+YP[x#:_ +nS}B@ a/p.9|,EJ[im,B|;p`m:^<@M]4(]7 3 5Y \j S6*Z0#9]kuWH &v;? bS.j u* T%t1oVQY,ZkJ h% #G\Z=uI2Q$e]74i*d+[[Y=\1D,2`\IPCU]UBf&aK35XUDW#`T9Vn,gL2zKI2]DDz9WBrYcC hNT]]v6 m|28UWt[})UTLI HG%Gx^zL_y(0@8(xmDDz:sA\@-U&{_?}&D"#}G{uo'=,=|2k<{auv==[N~iQRRy^/<-C aHHQ-/:0]q9bU`ZvlM [rYncc|?9` lv$:.k{QDg!Nso!"}17CXAd>=Cxtf bB.{4$L8l ," $8$~l15F3:#Y 9T># M"?U< Kb7?t *=Zlhd:a{R&:,UWJ<)~wwUK,(: AD#?dUL$]_EW7fv[u#oioZ=,5s7" ZM D@V_To ABjv0eg9Q|I$5xupF QTt6x);S9H7X(@BSL_7*:<ArZ4,! p0H@%0XW<U/+V0.$Gn3$,uQg+]<)+x-yW$iuI}`s@B y TRs7jz.gt3{fI^U !LZ.:Wz,@/Z +|J~ ,i4Ad; EE\4&b})R5 r|m_RDT6Fpny7_U7'mO%F9Z)irMxW O6k CmM-tqE jB,))5t_xVEihZO)31%AV4,lfbk9eY{>9 )zQ"~}|$"| nY)6 Dc% DoN7%u3 l _i>G,R|x9/oG*U:DQ%`-V%`,i\1Sn6i!XfffffffffffffffffffffffffffffffmRQw }dNfev_gJ'x/C/=M+ O$+Y&V0V$xYMuAAM pywy@so+lRCouldn't obtain random bytes (error 0x%lx)/proc/%ld/fdstrdupABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/OxychromaticBlowfishSwatDynamite 1Ѭߘr/Ḗ~&jE|,G$l iciNWqX~=t XrX͋qJT{YZ90`*#`(yA8۸y:`l>w'K1/x`\`U%U攫UbHW@cj9U*4\̴ATr|*oc]ũ+1t>\3֯\$lS2zw(H;Kkē!(f a!`|H2]]]u#&܈e>#Ŭom9BD . Ji^Bh!la gӫҠQjh/T(3Ql n;zP;*~ev9>YfCoEå}^;uos D@jVbNw?6r=B$7H ۛIrS{y%P;LylO`@ž\^c$johSl>9oR;Qm,0DE ^J3(fK.WtE9_ ӹyU 2`yr,@%g̣饎"2u<kaP/R=2`#H{1S>W\o.ViB~(2gsUO'[iXʻ]=!lJ[-ySeEIҐK3~ˤAb Lw6~д+MەqՓkю%ǯ/[{AI~-%^q h"W6d$ cUYCxSZ٢[} Źv&ϕbhAJsN-GJ{RQ)S?Wƛv`+t恵oWk *!ec.4dV]-SGjnpzKD). u#&İn}ߧI`fqilRdVឱ¥6)L u@Y>:䚘T?eB[k?ҡ08-M]% L&pc^?kh >\D}W7: P tAu8/;21>8TNmO Bo ,y|$ryVw.?rU$qk.P̈́GXzt}K:zfC cdG27;C$CMQe*P:qUN1w_V5kǣ;< $Y,n<pEㆱo ^*>Zw=Ne)։>%fRxL.jxS<- N=+6&9`y#RnfE{7(2åZl!Xeh;/ۭ}*/n[(!pa)uGa0a4c\s9pL ު˼,b`\ndi#PZe2Zh@*<1! T_~}=b7w-_h)5ǡޖXxWcr"ÃF T0.SHُ(1mX4a(s<|J]d]B> EꫪOlOBBǵj;Oe!AyMjGKPb=bF&[$ti GV[ Htb#*BXU >ap?#r3A~_;"lY7|`t˧@n2w΄PU5ai Z .zD4Egɞs͈Uy_g@Cge48>q(= m!>J=+hZ=@&L4)i Av.khq$j 3ԷCaP.9FE$tO!@MpE/f m1'A9UG%ښ ʫ%xP()Sچ, mbhiHפh'?Oz|Ϊ_7әxB*k@5 ٫9N;VmK1f&tn:2C[Ah xN جV@E'H::SU kKмgUXc)3VJ*%1?~^|1)p/'\,(H"m?H܆AyG@n]Q_2Տd5A4x{%`*`lc´2Of#k>3b $;" r(-Exb}doITH}'>AcG t.no:7`L knU{7,gm;e' )̒9 i{f} ϑ^و/$[Qy{;v.97yY̗&-1.Bh;+jLu.x7BjQ满PcKkؽ%=YBD n *Ngd_ڈ鿾dW{x`M``FѰ8Ew63kBqA_^;Z4ٷ,Q+:Ֆ}}>(-}|%rZLZq)GW;()f(.y_xU`uD^mm%adâW<'*:m?!cf&(3uU4V<wQ( gQ̫_QM08bX7 z{>d!Q2Ow~㶨F=)iSHd$m-if! FEdlX [@X̻k~jEY:D 5>ʹrdfGof,ҏ"W##v215VbuZ6ns҈bIPLVq z2E{Sb%ҽ5iq"|˶+v>S@`8G% 8vFšw``u N˅؍芰z~L\HjiԐ\-% ?2aN[wߏWr:j?$.Dsp"8 1).lN!(Ew8fTl 4)P|ɵՄ? Gy0B%lld%c%lld.%1lld%c@BKMGTPEHOMEalnumalphablankcntrlgraphlowerprintpunctupperxdigitinvalidtoo small  8Ph tap%dtun%d/dev/net/tun%s: invalid tunnel id %x: %s%s: tunnel mode %d fd %d%s: %s mode %d fd %d%s: failed to open tunnel control interface: %s%s: failed to configure tunnel (mode %d): %ssys_tun_outfiltersys_tun_infiltersys_tun_openSSH_USE_STRONG_RNGFailed to seed from getrandom: %s;t@Рp Xx`Щ\ X@pP`L` t0t`p0 L000PPlPP@ 0 P d x    0 , D `\ t   !L!!p!!0!PT"P""`#t##P##P## $$@l$p $p!$0"$"%"%@$d%%%p%%%%%% &&P&&'@&(h&(&)&.&.\'/p'`/'p/'/'/'/'18(:(;(@<))A*FP*H*PI*I*I+J4+KH+0K\+Kp+K+L+R8,RL, T,V,Y -`-`-c-`mP.m|.m.r.r/t@/|/0ЇT0P00@\111 101@1P2\22@22Џ 3L303303$40X4p44P45,5P50t55055p06t667P,7@d7 7 8`8p8 889`9Ц99 (:@:: :8;;;<H<|<<P=P=@x==`>8>лX>|>>>>??н0?D?X?l? ??? @X@@@p@ALA0AAApA B HB`\BxBBBBBPBpC8CTCpCPC CCCCPD0TDD D0Ep(EtEE$F8FPFF0FGXGtG`GG(H0THHHHH0IP$I`8I`dIIIPIIJJ@DJJJK KZ>Z>Z?0[@[`B[B[C\CD\D\D\E\`F\pF ]F$]F8]FL]0Gt]G]H]J ^@K<^K^L^@L^L^@N_Od_PQ_`R_R_pT$`Wx`W`X`pYaY(aYЃ>>? @@`APB(BDpC`0DDDąE؅@EPEpFLFpLpMԆM`R8STT|`UUVȇ@V܇pVVVW,`W@WTXxYpZ[\Ј0]^X_@bdH0epejlX mlmmnpőppqq0qDrXrt@spttČ0xzh~~̍0` p @` |PȎ`HdxІȏ܏@ @\Ȑ00 ؑ0@$8tPԒP H`PXl@$0@\`ė 8`ȘP0@`T4p`zRx (/D$4]FJ w?:*3$"\Xott FBB B(A0A8G L0 0H0Z0E00K0U0A0o 8A0A(B BBBA H<LtJHE I(F0H8K@I8A0A(B BBBA(PBHC oFBT|JEH Q(K0H8I@  8A0A(B BBBG |A E  D4\jBAA L CBK AFBH@BBB A(A0k (C BBBD A(F BBBH؏FED A(D0@ (A ABBF t(A ABBHlFED A(D0@ (A ABBF (A ABB`$FBB B(A0A8D@\ 8K0H(B BBBG j 8A0A(B BBBA HLFBB B(A0A8DP 8A0A(B BBBD JTuȒ6MUCH, FBE B(A0A8DPP 8A0A(B BBBA Lx\FFB B(D0A8D, 8A0A(B BBBA HFEE B(A0C8Ga 8A0A(B BBBH <H(BEB B(A0D8G 8A0A(B BBBF FDAbXHNAKAQAKAIANWRI]B$$HB B(E0D8E@Ih BBB B(A0A8GNBBDAbX 8A0A(B BBBI $`OH(Z0D8F@I T A ]H O A P FLF A(I@HHAPGXA`DhApP@X (A ABBJ 8(TFAA f ABG c ABB XLUjAN,|(FAA  ABE Ka}ctE\ G (FAD oAB(p\<FAD mAB(0\IFAD zAB(\\;FAD lAB<\FEB D(D0j (A BBBJ 0,]FDD G@  AABA 0]FAD G@  AABB @0D^'FBE D(D0DP 0A(A BBBH (t0_EHG@m AAE 0_nFDD G0{  AABD (_3FAG TJB@_FOI A(D0D`Z 0A(A BBBG D`K A `daEL  AA bnEK W AA LbVEK  AA bOEK x AA 0bFAA D0|  AABD $$@c3EFG TGA(LXcGKAG TJB0x|cFAA DPZ  AABF @8d!FBB A(A0D@ 0A(A BBBE 0$eFDD G@p  AABG T$ ePOBE E(D0A8FP 8A0A(B BBBA O(| fTFAD xGE4 gEAG@ AAE \ HAE X gFBA D(D0t (D ABBB ^ (C DBBG D(H ABB\EAJ  AAH pH> FBB E(D0A8D6 8A0A(B BBBH TUNAOTBH><FIB B(D0D8Gp 8A0A(B BBBE T?#FBB B(A0A8G L@IAI 8A0A(B BBBC `?fH y A (|?(qEEG0{ AAB ?|??6ES A ?SE` A (@3EDG N AAA (4@3EDG N AAA (`@5FDA fAB$@(EJ AA @Y(@, AEDp AAF @ADP G @$AgBBB A(A0G 0A(A BBBK LhAFBB B(A0D8GJ 8A0A(B BBBD PAl"FBB B(A0A8Gp 8A0A(B BBBA T BHBBB B(A0A8H Q D5 8A0A(B BBBJ HdBcFBB B(A0A8Dp 8A0A(B BBBC B4B0-PQBH DB@FBH I(A0H8FPy8D0A(B BBBLH0p A \L[H0M A xL88LFBA A(GpM (A ABBD (L|EKG V AAA 0LFAA D0s  AABE (Mlyvp$@M<EAD oAA@hM+FBB D(H0J 0A(A BBBK MEV R AB (MTFAA AB4MzEOD [ CAI M CAG d4N`FEB B(I0A8Gp 8F0A(B BBBD I 8A0A(B BBBE HNzFEB B(A0D8DP 8D0A(B BBBA HNFEE E(D0A8DPg 8A0A(B BBBA d4OFBB B(A0A8G L@LB 8A0A(B BBBH jBIB`BFBPO FEE K(D0GT 0A(A BBBA PG^FhOT 6FBB B(A0D8D` 8M0A(B BBBF KhHpc8A0A(B BBBH``\P( hFBB E(A0D8G@ 8A0A(B BBBA C 8A0A(B BBBC LP41FBE E(D0D8GH 8A0A(B BBBE 0Q$YECD w AAK DCA DQPwED } AI thQFAD GV  AABD ROOEKjORHZFOOHEK0Q|FDD Dp`  AABA R@ L,R8FEE E(D0A8GT 8A0A(B BBBA L|RFBB B(A0A8D& 8A0A(B BBBF LR(FEB E(D0D8D 8A0A(B BBBH LSJFBB B(A0A8D# 8A0A(B BBBA lShSvHSp`FBB B(A0A8Dpx 8A0A(B BBBD HS!FEB E(D0A8Dp 8A0A(B BBBE L,T#FBB B(A0A8G 8A0A(B BBBK @|TX'FEH D(A0D@ 0A(A BBBG @T'[FBL A(D0DP 0A(A BBBB $U)EDPp AA ,U)c0@U)BOG D(|  ABBC HtU`*BFB E(D0A8D 8A0A(B BBBF HU+BEB B(A0D8G8A0A(B BBB( V-ADG  AAF H8V /BEI B(A0D8F@l 8A0A(B BBBE V/>JiELV/QFGB B(A0I8G 8A0A(B BBBA HV24FEB B(A0D8G` 8A0A(B BBBE LJiELY=uFGB B(A0I8GC 8A0A(B BBBA HPY$AFBB B(D0D8Gp 8A0A(B BBBG LYhEFBB B(D0D8Gp 8A0A(B BBBH (YFFJIG [CAGLZFFKG B(D0A8J 8A0A(B BBBA 0hZIFAA D@q  AABG HZJFBE E(D0D8G` 8A0A(B BBBG HZKFBB B(A0A8D 8A0A(B BBBD 4[NC(H[LNBFKC jABt[pN3[N3[N HU,[NFAA  ABG [PO6QV[xO&H](\OFFGA iAJ @\OED  AC d\@P)JU0\TPFAA D0  AABG <\PEFEE A(F0T(O BBB\P^AX]4Q 0$]0QEMD f DAG NDAX]QE N Sx]lR ]hR 8]dRFED A(G0^ (A ABBE ]R]R]8^ SFBA D(R (A ABBA LD^SFBJ E(E0D8J  8A0A(B BBBA L^@UFBB B(A0A8G 2 8A0A(B BBBG ^V-^WEH] A D_WBBB B(A0A8FP8D0A(B BBBd_ X$D_4|_8XEJG0A AAG LAA4_XECG { AAD R DAE 4_YBKA n ABA FAB8$``Y RAA  AUG eAB(``4Z-BDE WDB`8Z`DZ@`PZFBB A(A0D@w 0A(A BBBA ``,[FBB E(A0A8DP? 8A0A(B BBBB W 8A0A(B BBBO H\a\FBB B(G0A8D`T 8A0A(B BBBJ Ha\^4FBB B(A0A8DPy 8A0A(B BBBK 4aP_~FDD Y ABF ADDH,b_~FBJ E(A0I8DP 8A0A(B BBBD xb`(b`ERG0Z AAF LbaFBB B(D0D8Ms 8A0A(B BBBB (c|cFAA ] ABH H4c0d FIB E(A0A8G 8A0A(B BBBK (co!NAG DAcpAcpoES H NcpcpfEG XA$dHqPEG M AF nADdpqiHa G ^ A LddqFBB B(A0A8DL 8A0A(B BBBH 8dPu}FBA A(D0a (A ABBA du\g\euqJ\J\$e@v FBB E(A0A8GWNTA 8A0A(B BBBD e| e|e|e|e|(e|ADG@r AAH 8f<}~BHD A(D0F (C ABBG Tf}hfFHG I(A0A8N` 8A0A(B BBBC <| UP| AMlGl| AMlG8|< FBA A(D@ (A ABBA 8| FBA A(D@ (A ABBA 8}dFBA A(D@ (A ABBA D<}(nFEB D(A0D@= 0A(A BBBA x}PKFBB B(A0D8D` 8A0A(B BBBB O 8F0A(B BBBA a 8C0A(B BBBA 8~$Kc B A YAF H  L B <~)JSt\~OBE E(A0A8DPe 8A0A(B BBBH <8F0A(B BBBEHP~ ~~G I Y G G I Y G `<BBE E(A0D8DP 8A0A(B BBBH S 8A0C(B BBBI `BHB B(D0D8J 8A0A(B BBBE HBBO`p+BBB B(A0A8G I!l 8A0A(B BBBH !K!U!A!lh<BBB B(A0A8H Q D  8A0A(B BBBD LSAP؀%BBB B(A0A8G L@I@ 8A0A(B BBBG ,X(OD@(FBA A(G L@I@, (A ABBH (l*FAD ABL*OJA D(G0 (D ABBI (D DBBH$ ,En E ] A ,,jLD-~FBE E(D0D8D 8A0A(B BBBI 0.3LX.LFEB D(C0b (A BBBC | (G BBBA 4X1RFDA u ABE FABH41FEB B(A0E8Rp 8A0A(B BBBH L3FBE D(G0S (D BBBK K (A BBBA PЃ4FEA C(G0K (A ABBI N (C ABBA @$@4 FEB D(D0D` 0A(A BBBB Dh 6 FBA A(H Q D (A ABBE 86pEGG h AAK D CAA L7iFIB B(A0A8G 8A0A(B BBBD D<(8eFEE E(H0H8G@n8A0A(B BBBP8П&         fhhhhh%h0h7hIiYipi<?=>@BAC*494OiIiair   +,(*=*O0 giz F-D() @6J)#8K^ht !##$&'./1 d#2/3=5Q7b96s8~:;DEGHIJKL MNOP,Q:RSHTNUYWhXy[YZ\]^_`"a1bCcZVheS_dqy}yy} H x   jpu}    ``@ `(Fd}`@ ( 0 8 H P X h p x      @ `  !! !!!"!&r* * * * **&*+#+A+(1P1_+r++++x1 ++++,,,),:,I,5 :: 7: ;;H7/;8;C;@I;X;7f;m;`w;7;@8@;@;@8 X9@;;;@c l w            @ s&w&|& &0&@    # 2 B r &&o0 `  &@X4$ oo03oo0oa`& s0s@sPs`spssssssssstt t0t@tPt`tptttttttttuu u0u@uPu`upuuuuuuuuuvv v0v@vPv`vpvvvvvvvvvww w0w@wPw`wpwwwwwwwwwxx x0x@xPx`xpxxxxxxxxxyy y0y@yPy`ypyyyyyyyyyzz z0z@zPz`zpzzzzzzzzz{{ {0{@{P{`{p{{{{{{{{{|| |0|@|P|`|p|||||||||}} }0}@}P}`}p}}}}}}}}}~~ ~0~@~P~`~p~~~~~~~~~ 0@P`p 0@P`pЀ 0@P`pЁ 0@P`pЂ 0@P`pЃ 0@P`p AGMSxY_ekqwGA$3a1r_ GA$3p1113 GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA! GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA* L GA*GOW*GA$3a1` GA$3p11130IGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA! GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*GOW*GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA*P GA*GOW* GA*FORTIFY YGA+GLIBCXX_ASSERTIONS GA*FORTIFY0GA+GLIBCXX_ASSERTIONSssh-keysign-8.0p1-30.el8_10.x86_64.debug׋{s7zXZִF!t/?"]?Eh=ڊ2Nw=UR'Gla_-8@x_O?1Ԥ4o "6l܃s5???lZɀyx^Z%ݪ>`V3L3ϝ׋4L$Ѿ 9^c4C_x <.{SnSإz~̱LC֛sw1wQ҄ }̪{Kj /*-Eov/p,mtH?\!ggu/|rqQ,^RQe47'@U$7r#QQb75(X ;Hz}-i7U۾o.jvXr3e%ȅi@2n' cH9'g5p0 d¾Vqzv>H]YV#W(]bu4_4T؏Zr (H"5q֎ex: ۙ\jHA=4w{s-]Is '1h:c װ.L2*N|7l/Ԑȓ1 ?I:n hr P)/1QX<=6JP4 zA(3}ʂD\Wp@ڽ`\G_q'%_8iqn.iްPfKf^ 4g?9igP2Hc7n8ߔo#Qunɞgd0$J֎.a6TK6*T[v~t)7COVzגi5 ye5KxJ21q<yGbP]FDqTp"lU'S-l]wjJ̀*K}P XH -<3mFOrE 29tnM7I>"ުÃy+oRЍˉkBnG@B~;$7G3R ل*i~Z.[pB"&#X*mקUIE &b7ڧ1}*U:!9.N pDaE"F3m4{qF-cV/em[tJK{#&uB!<ɩy87@iA`X>ETMv6Prk.j ؆Zwfw,(Wc'7;so$}A5;~ PH]W>njXl)o8,)3{n7O=sl9¿t,'YӟkA"+v@V|{'+#8ܽ^&Q]b QhM"qF4-,X-J@w.-](-$v҉H7!WF=*߃u=' !@rk5"wPqMЫ7wzg>R@6\Ia[pb&d(O݀S'e۹<^r*5hS;^UpW\-dS'ո ,:'h@1 dk%tY /-3H6Hn$xJ^zjI-eZ*b3je5XɭUB!4i q3լCSobb}!ODNt |c1w TK1^g4;J=&_]nTmsx$I-BO2o/1iQe!NUU3@,7<7KBf"߉_gq= `[:R=nHka'G?ouxk#> ll2^\oXw^4s5rl;_Lߟpw2͗j4 .촶g (nFe&,f'G\拆83)$mA#̳ǵ$UW_fk'KD"ػ­_w77#n;eңr؉7ZGd]d lOq5C&9xs\|ء:9 [0E4\ٟamiIGK:zi;)XRl_GQO@܁P+OJ'9'"؉coW"I2>M២XȡҁzS2,%2+ hb w#jNL6s`AeB =&6i3 fz44Q: CG%Dd7àe)8"ώvZ ΄` 2/zZm[lqon(PWC2X8 \zcebAo$2<­~tz:7^= c2TVrpExhi^B ,H_Y6f=lp?[}̘ ݸeVvUW'qRyZ:a}])?<|[9 D2Na&ZP>D[łο(>"(1sʀKfb bbQrtQl5 R{Vg6B89ukFR\jjG`$ɲҊķ oE `-Y[䲎E ap8Çneq]蔔hq|>߈C/t+F>-Z?b.mv.& .@j8-/_{w\ų1|nZeR[n!lǚ̴-G"|5ݝ罙MG:g1)q5*^|ϵiŇ.4'U +ÃzDR4hweƆ*~Q> }xu4ڒ* Ɇ[;_׽zPrc}զOT.?SH$wZ!3ωqnjl9o[ѱF1Pn lp "pެXXuYJ2@#9=\m=J{~lv \Vfd~J9]!e6 q{a׬7F15ХB&?wܤIce4d`43UGDцf<7&m@fmd ȿ3*DS.pLfl;O.|2uA ),NݸkJ5NvNQ'~%=S[O蔪zqr $~&6ʶ92p6 4"ɲU~f8Pd3"jWBhm*U0Άli"8RO L.8پ{ED(gKD \{)]dyq-["۫:׋eI i |.\RoY a3C6f֏t3B 9.gTatT!brϛab4c@~qy?kz-]eh[eq)i5.e{aʧ"2p>޺0l^x^~v65`&xdp<@l˯VҗMEKҏF~6V''|x?|@YQ9;Fse ݞd)۰>xأ1V"$A\fWnfuB曛llNJa;CPB,1)(P y͡'])+H [NsȾc1*aMRG9k|$TC-'uOtaynu6=h[gأV4a4@wӉE&ӜįARITc9)>QFS]Dvŝy)cJ'A\/'hy-r#9%\LyC<۴`c b^GAsyI(Bf,6RFbpfbYs]P}{ rfLvl$ (_,!7~q W73ReZ7c-=WI݆}y{UE-ĚaϽ;{Az69Bfv}kӠP#3K2$)d2}JљGbC ',٤jUx@DC]9bJ?E;e Vy `d7^>汻&{5-k;0ΘU)XSOk4^_ …b4y&F>2/r}[mec6n}nu4" r`/ʋi/AıYLHMzSN%.Ƿzu)p崻Y|Ӣ|s%eVe_e&N X%!ܓSֱ_k\- #8D3-8<[͓ek} /2S+2 *j w"SP;CVcc\A=C3F7JU)S蟀I7p?z-=2IJCY:V̝ ?FP'Oo;NpԴqM!- = 0-"Xʷ\smyg%Z=[2d1玈|3KEUwhC$(7awz6pYK+D7|lo2i)B`6@{OgB3_0'-Uu [3囱\;bP Y F'3G*p~3 WI `p,G HixJmJ fbBfGJ^ÝWdt<06>« LW6KJaq6Ml2U*y\s"5Ji܉&20MR'5{ >ͮJJicG@9jrw $ PQ!K-41-޵iRTܪoq4y{<>?.V*A8[MJ8 &,M3wKfZԝu&n9P ^aLҁ(_٬cUG] v\>[rǛoCӡ%FM#Wx *@a,ۖd ZQTH mk#WߕCWgCv>!|L2@%8$`TgDx#5Dj,:V@:/|~*K'ٹ_թV4/}{D.hԞ;`YV\Gbp.lUgzb $ R0AlA0a4 ՟޻~&V3)¶t*X؅Jaʀ#:f';u:UH:yRkB3ۧ WM϶RJEN7(hI{'F\-i=fXߢ֛)`;O|p O Bu \ K+(bTaDWtREeuVz4^bobAQ"x7"_ܜv>'xw1\; L=(4SNvCJݭ`7 Ŵ >ed4(p)Ӈ %I2>{ΐ2.Yʠ2Zf9MSiag5ݴb]൜H׹Ŗt= ?}bv#?Q/?K əiEyFTd=?H:+>[N)i+Y\!EzgYZ.shstrtab.interp.note.gnu.property.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.data.rel.ro.dynamic.got.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata  & 4$Go000Q ``XY ao00rno0303}44$BXX@rrss < + ``&&& `&``&0 &  & f 0/">PKgx0]ʬo sftp-servernuȯELF> @@0@8 @@@@hh@@ СС!С!p @@!@!`` DDStd Ptdbbb44QtdRtdСС!С!00/lib64/ld-linux-x86-64.so.2GNUGNUGNU7&f\@%/Pl85@ |CEqXHn(cJ%y;  9e!,Sc/lP4lr! A`e= "Nu6ZMWW^ G;-@B+JfRk2Wq }Vd3I]IvFM!@!@!libcrypto.so.1.1__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTableRAND_statusERR_get_errorOPENSSL_init_cryptoENGINE_load_builtin_enginesRAND_seedENGINE_register_all_completeOpenSSL_version_numRAND_byteslibdl.so.2libutil.so.1libz.so.1libcrypt.so.1libresolv.so.2libselinux.so.1libc.so.6socketfchmodreaddirgai_strerrorstrncmpftruncatestrrchrperror__prognameconnectgetpwuidclosedirnanosleepgetgrgid__read_chkputsfutimes__stack_chk_fail__lxstatunlinklistenselectmkdirreallocfsyncstrtoll_exitmemchrstrpbrkgetpidstrspnstrdupstrftimelocaltime_rstrtolfstatvfssymlinkgetpwnamgetppidcallocstrlenprctlsigemptysetopenloggetaddrinfomemsetdirnameutimensatrmdir__errno_locationbindchdirreadgetpagesize__syslog_chkgetsockoptfchmodatdup2strptimepoll__fprintf_chkfchowngetsidlseekmemcpy__memmove_chk__vsnprintf_chkstrtoulsetsockoptmallocumaskstrcasecmpraiseopendir__ctype_b_locgetenvgetservbynamestderrioctlfchownat__snprintf_chkgetuidreadlink__fxstat__realpath_chkgetcwdfwritegettimeofdayrenamesigaction__explicit_bzero_chk__memcpy_chkclock_gettimewaitpidcloseopenlocaltimestrchrmktime__ctype_tolower_loc__cxa_finalizefreeaddrinfo__vasprintf_chkfcntl__xstatmemmovestrsepgetrandomstrcmp__asprintf_chk__libc_start_maincloselogsnprintfreallocarrayfreeprogram_invocation_short_name_edata__bss_start_endOPENSSL_1_1_0GLIBC_2.14GLIBC_2.6GLIBC_2.25GLIBC_2.3GLIBC_2.8GLIBC_2.4GLIBC_2.26GLIBC_2.3.4GLIBC_2.17GLIBC_2.2.5        m 6 ii  ii ii ii ti ui  С!Aء!@!!!s<!@!J(!R<0!@@!IP!OAX!@h!bx!"<!@!G!XA!@!aȢ!^AТ!@!C !gA8!`lH!lA`!]p!rA! q!wA!g!}Aأ!T!A!c!A(!@Y8!AP!d`!>x!@k!A!^!<Ȥ!Oؤ!=!V!t=!V(!Q=@!TP!Ah!Tx!=!P!<!Mȥ!<!K !,R0!2R@!RP!R`!Rp!R!R!R!R! RЦ!'R!R!R!R!R !R0!R@!RP!R`!Rp!R!X!X!ZЧ!Z!Z!Z!Z!Z !Z0!Z@!ZP!Z`!Zp!Z!Z!Z!Z!Z!ZШ!Z!Z![![![ ![8!Vȯ!Я! د!+!3!:!P!k!!ȫ!Ы!ث!!!!! ! ! ! ! !(!0!8!@!H!P!X!`!h!p!x!!!!!!!!"!#!$!%Ȭ!&Ь!'ج!(!)!*!,!-!.!/!0!1 !2(!40!58!6@!7H!8P!9X!:`!;h!<p!=x!>!?!@!A!B!C!D!E!F!Gȭ!HЭ!Iح!J!K!L!M!N!O!Q!R!S !T(!U0!V8!W@!XH!YP!ZX![`!\h!]p!^x!_!`!a!b!c!d!e!f!g!hȮ!iЮ!jخ!l!m!n!o!p!q!r!s!t !u(!v0!w8!x@!yH!zP!{X!|`!}h!~p!x!!!!!!!!!!HH!HtH5R|!%S|!hhhhhhhhqhah Qh Ah 1h !h hhhhhhhhhhqhahQhAh1h!hhhh h!h"h#h$h%h&h'qh(ah)Qh*Ah+1h,!h-h.h/h0h1h2h3h4h5h6h7qh8ah9Qh:Ah;1h<!h=h>h?h@hAhBhChDhEhFhGqhHahIQhJAhK1hL!hMhNhOhPhQhRhShThUhVhWqhXahYQhZAh[1h\!h]h^h_h`hahbhchdhehfhgqhhahiQhjAhk1hl!hmhnhohphqhrhshthuhvhwqhxahyQhzAh{1h|!h}h~hhh%-t!D%%t!D%t!D%t!D% t!D%t!D%s!D%s!D%s!D%s!D%s!D%s!D%s!D%s!D%s!D%s!D%s!D%s!D%s!D%s!D%s!D%s!D%}s!D%us!D%ms!D%es!D%]s!D%Us!D%Ms!D%Es!D%=s!D%5s!D%-s!D%%s!D%s!D%s!D% s!D%s!D%r!D%r!D%r!D%r!D%r!D%r!D%r!D%r!D%r!D%r!D%r!D%r!D%r!D%r!D%r!D%r!D%}r!D%ur!D%mr!D%er!D%]r!D%Ur!D%Mr!D%Er!D%=r!D%5r!D%-r!D%%r!D%r!D%r!D% r!D%r!D%q!D%q!D%q!D%q!D%q!D%q!D%q!D%q!D%q!D%q!D%q!D%q!D%q!D%q!D%q!D%q!D%}q!D%uq!D%mq!D%eq!D%]q!D%Uq!D%Mq!D%Eq!D%=q!D%5q!D%-q!D%%q!D%q!D%q!D% q!D%q!D%p!D%p!D%p!D%p!D%p!D%p!D%p!D%p!D%p!D%p!D%p!D%p!D%p!D%p!D%p!D%p!D%}p!D%up!D%mp!D%ep!D%]p!D%Up!D%Mp!D%Ep!D%=p!D%5p!D%-p!D%%p!DUHSH܅"mHtHH1[H]5GH Ho!H81HZ[]f.D1I^HHPTLH H=Xo!H=o!Ho!H9tHno!Ht H=o!H5o!H)HHH?HHtH5o!HtfD=uo!u+UH=o!Ht H=`!dMo!]wSHHH=r~!-ju H[ VIMH5jH=H1qmATAUSH=H`dH%(HD$X1z=n! H~H=H$HqHD$HqHD$HrHD$HxHD$ HtHD$(HtHD$0HvHD$8HzHD$@HHD$HHFH41vPHH4eHgDHfHf=n!HHH$HHD$HHD$HHD$HHD$ HHD$(HHD$0HHD$8HHD$@HHD$HHGH4hu;H5{Hgu(HHD$XdH3%(uDH`H[]A\Q/KH5`H=H1WkH5HH=51BkMff.fAT1USHH={!dH%(H$1H[`@H={!Ht$?Å'H$1H=vD$uWu;މ*H<$H$dH3%(HĐ[]A\fDL$$T$ H=1H4$tL$$T$ AH4$ru(wHq4gD$0H|$Ld$@HD$H@LHH4$1LH= tD$,H4$Hl!Hl!Hk!D$0Hk!Hk!D$@T$(H4$H=K1sT$(H4$tD$mD$(@H H0(VHFÉjHH5H=H1hff.fUHSH(dH%(HD$1HT$Ht$\ÅuHD$H|$H=v"HL$dH3 %(ubH([]@HuJ轤H|$x<;~j!s4HcHH)H oj!HыC‰EfDff.S1H H=\x!dH%(HD$1Ht$\H=3x!1Ht$\H=1tHT$Ht$1H=qHt$H|$X1t1H|$H|$vHD$dH3%(uCH [(wH84뱉FH5tH=H1fff.AUAATUHSHLfHAJH#HHaDH`HuH_HuH_HuH_HuH_Hu H_uyHu(H_uiHu0H_uYHu8Hs_uIHu@Hc_u9LHT_u*HuPHD_uHHH[]A\A]K/EH5H=H1WeH5H=51BefU1SHH=u!dH%(H$1Ht$kZ1H=Hl$~rHt$H=|1+oH|$HtR(v1BH|$H$dH3%(uHHĘ[]H4H뺉%DH5H={H1MdXS1H H=t!dH%(HD$1Ht$rYH=t!1Ht$WYH=1oqHT$Ht$1H=nHt$H|$X1t1:H|$H|$HD$dH3%(uCH [k(wH4뱉CH5H=qH1CcNff.S1H H=s!dH%(HD$1Ht$bXH=s!1Ht$GXH=1_pHT$Ht$1H=mHt$H|$x1t1*H|$H|$HD$dH3%(uCH [[(wH4뱉 BH5tH=aH13b>ff.AUIATAUSHFHhHH0]HN\DH;\1DH=mE~SAT$I]HH)MdHfHsH]uBHsH]u2HH7u#H8I9uHHH[]A\A]NG@H50H=MH1aH5H=1 af.ATUSHH $H`1dH%(H$X1H=q!Ht$ V1H=Hl$P3nHt$H=1kH|$HuYd(v8H|$H$XdH3%(utH`[]A\H4HH|$ Ld$DP3LHl$Hl$뎉?H5H=H1_ff.AT1IUSH=kCHtdiHHZu1HYu#LH5uHH[]A\fE?H5H=eH17_H5H=1"_fS1HH=o!dH%(HD$1HTTH=1llH4$H=1iH<$Q1t*CH<$HD$dH3%(u(H[@{(wH4}&>H5H=|H1N^ff.U1SHXH=n!dH%(H$H1Ht$kSH=n!1Ht$PS1H=Hl$ ckHT$Ht$1H= hHt$H(D$8Ht$%=t[HNH|$H|$H$HdH3%(pHX[]@H|$VHŋ_ƒ&H@HrtPHt$H$[Ht$H|$a1FE(5f.H4 Ht$H|$!u;@c(H4H|$t!1f._7D (w Hh4H|$t$ t$ };H5H=H1[fAT1USHH=hl!dH%(H$1Ht$P91HCHl$@H=hHT$H5$1H=efHt$H(Ht4H|$fH$dH3%(H[]A\1HaHl$@H=DhHT$H5B1H=eHt$HhULd$HL-LaOZ:H5H=YH1+Zff.1UDBfATUSHH $H`1dH%(H$X1H=j!Ht$ OH|$?1H=&H\$P%gHt$H=#1dH|$H4HtXH|$ Ld$q,LH\$H\$(H|$H$XdH3%(uuH`[]A\(w H`4[H= pHD$+8H5wH=H1XS1HH=\i!dH%(HD$1HMH=1eH4$H=1bH<$1t*H<$HD$dH3%(u(H[@ (wHh4 7H5H= H1Wff.AT1USH@H=yh!dH%(HD$81Ht$LH=Ph!Ht$+D$uwAH=-1dHt$1H=(aH|$D1tCH|$HD$8dH3%(u_H@[]A\f\$(A념(wH84량6H5TH=H1Vff.AWIAAVAAUAATUSHD%W!AH4$5X!LD$H=X!85X!mX!LD$HX!L $DbIcHH)HH,QW!EE0DuLLEDmD}.W!mHEHbX!HH@(H@ HD[]A\A]A^A_DIcH-.X!HH)HH݋E0ff.AT1USHH=&f!dH%(H$1HJpH=e!Ht$b)ÅWH$1H=aD$x8u<މ{H<$RH$dH3%(HĐ[]A\T$ H4$H=1L$$^T$$t$ H<$us(wH4uD$0H|$Ld$@HD$8HV@LHAH4$1LH=Fl^D$,H<$H5MV!HJV!H;V!D$0HDV!H5V!D$fDH4$T$(H=1^t$(H<$_trD$H4$HT$H=1]Ht$H<$ktD$UDCD$(7H 'D$(H h( H<É2H5H=H1Rff.f1x+9=U!v#HcH U!HH)H ы1VvfDHALcHIDEx D9T!w(H_MtdHLH=O1Hl\@JH T!L)Hу:uLJ(LB HMt)HLH=D1H!\LL@HI@AUATUSHH=Yb!dH%(HD$1Ht$ T$H=1^|$1\$x;S!rH3H4HD$dH3%(H[]A\A]HcH~S!L$I)ILtuHz DzL%AS!AI|$A$1Q!AD$0Q!AZr(E5&0H5/H=|H1NPYfAWAVAUATUSHH $H|$H=`!Ht$,dH%(H$1wD$QDD$,D>t$H=kHD1[|$,x;=8R!r>|$8H$dH3%(H[]A\A]A^A_HcHH)HQ!Hƒ8uHXH\$H$HtHt8 1A GfL$Ld$0HD$DH|$&HH:A9 H4$HH=NL,H 9SLHHEPLL$1LLkZYqHcLHH)HT$L,Iu!HSf11LIEH0&IEd#H\$|$HDd$H;AH8xH{oA9|H|$`CEH|$8IcSeHD$fu|$>H|$S-H5H=H1{Mff.HcHO!HH)H¸:t@B@SHH=]!dH%(HD$1Ht$T$H=\1Z|$OH=cH1WHcL$x9 JO!w QHD$dH3%(uH[1xHH)H O!Hу:u1uZ(wH4뉉 ,H5H=`H12L=ff.fUSHH=\!dH%(H$1Ht$ mDD$ D8H=HD1W|$ x9=4N!w26H$dH3%(ugHĘ[]f xHl$Ht,O(w H4H7*H5H=6H1KATUSHH=[!dH%(H$1Ht$ KDD$ DH=HD1V|$ x9=M!w0H$dH3%(H[]A\ÐxHl$@ƿHy*(wH4tfLd$HLPLF})H5H=H1Iff.fAVAUATUSHH=tZ!dH%(H$1Ht$H=HZ!Ht$ÅkT$H=w1PUL$x9 K!w8H$dH3%(CHĐ[]A\A]A^DAąxcIŋD$,uXu땋T$ L$$L1H=ST$$t$ Du(RH4GfD$0H|$Lt$@HD$hH@LHq1LLH=wRD$,H5J!DH|J!HmJ!D$0HvJ!HgJ!D$T$(LH=1;Rt$(D ttD$HT$LH=1RHt$DtD${D$(H sKD$([H K(HtÉ&H5H=H1FDUSHHH=W!dH%(HD$81Ht$3H=dW!Ht$ 8H=KW!HT$(Ht$0 ;DT$DLL$(LD$ DHH=~17RHcL$x; H!r6H|$0HD$8dH3%(yHH[]DŅxHHlH!H)Hƒ8Ht$ 1҉HHT$(Ht$0HcH;T$(uZHcL$1Z; H!NH<H)HH=G!H σ9uu01%fD@uqDH=1QHQ(@ (w Hh4H=1t$ Mt$ fH=z1M(H4k$H5H=H1Dff.AVIAUAATAUSx(Htk@HH?u9DH>u*IcLH?uHwH[]A\A]A^'*#H5IH=&H1CH51H=1CATAUSZDHH诀D1H=OHډfH[]A\ff.U1SHH=+T!dH%(HD$1H8H=1PH4$H=1yMH<$HHthH4$11Icx/ƉH<$]HD$dH3%(uTH[]fDHLf.(wH4t="H5H=H1eBDAW1AVAUATUSHXH=S!dH%(HD$H1Ht$7AąCH=R!Ht$m4Aą'H=R!Ht$ !Aą T$1H=bOD$ƒPDDDAljAAADE⻶D@DEL$DADEDʀA DED$ =B!D$`AB!AEtH57H=B!պEt%=B!H5H=B!諺T$t%=B!H5H=B!~Et%=rB!H5H=YB!TEt%=HB!*H5H=/B!*Ht$1HB!H=JB!t ACH|$D1Åyp A!(H cG8H|$THD$HdH3%(HX[]A\A]A^A_Ð\$8ZHt$E1D¿Ɖ=!A!u|$@ADH5cDD$ H=A!DD$ E =@!H50H=@!иfD1O! D$D$AAAƃAAA L$h1H=7I=;@!u |$f=@!m|$_fDH5`H=@!H5@H=?!H5 H=?!%H5H=?!蠷/DH5H=H1=|$ATUSL$HH $L9uH dH%(H$1H=N!Ht$H=N!Ht$\/H=M!H/DT$DpD $LD$HDH=1H<$|$x;=V?!r4XH$dH3%(`H []A\D+ŅxHt$1҉wH$Ld$LwHŅt‰H=13HL޿gHcD$];>!QHH)HH>!Hƒ8/HcHh #H=01$Hf(H 4H=1BDm()H5BH=H1Q;\ff.=!SHt H5=!HtH;1OHu]H5=!HtJH;1OHu"H==!t1H31H=<E1[H8H3H=1wG[HH31H=E1[H71H=tE1[ff.H==!ATUSH==!}=D$HI!AuH8nL|$ LHD$@ HD;!LDH1IU j1AWH|$PL [H MEH5;oH|$PHD$(XZ::!+HH!H5Hw,!H8H;H(H{uH&+!fDH;H(H{u1H=N:!HH!H8OH2:!H=-:!\H`H!H8OH:!sL=EH!H4$8!I?RHH!H=w!HT$@:uH/8!I7H==17L=G!I?8D8!I7H=1?L=G!I?7D$I7H=1p?L=wG!H4$I?HD$(H= HT$@I7:H9HuHL$(9s=Hg7!HHHY7!H8I1褿H37!L$ET$5:7!H8:8軕H=%HD$@HHM HHZ8!EHD$@H=HE8!H68!H=?H01?H)F!HCkH$F!H.\LHJLHHD$Ht.Ht"8Ht$H=aH1=L|$;Ll$)!HE@HH=E!"H=vE! IH~ H޿lE11HH7yk^8tH=H1=Hx5!H=HH5FH=141Ht`HL$p1@HH $BH $HfH=D!HH*trH5H=ȿH13H޿蝞t8H=RD! LHmH"H=-D!H#uH=D!!thUH5UH=}H13H=C! EH1ѝ?H=EJH5!@H=C!(IăH=uC!@HXo$=o$A9H=DC!*"H=+C!AD$LD$ J%D$;<<E=4!.H=B!L$Džt$;Hk&!H(;pL`MuH=e1:H=B!6T$ H9%H=B!T$ )9$$H=^B!+T$ 4B!CH54H=H1k1I7H=s1Z1H=.H=H19H=1%1H=11H59H=H10=3!~H=A!L<#JD$L+H5*L+H52Lj+H5LS+H5L<+H5L%+H5L+lLL@1!HcH!!Hk(HHw =|$(A&T8H=H1 7-8ֺH=ͿH16HcHk(LHw t2|$HHHHHHHHHH}AWAVAUATUSHHxH<$H~XLl$/L$dH%(H$h1轷{LI蟢DKHl$; 1L H讶Ld$GDK 1 L LƹLt$'耶H5L輡Mg1HSXHAfH9 H9HD$SL HHHD$uD$SHqLHHBIYH{0HHCЋD$HL$ HT$H\$`HHL$4$MLt$HL$QATHT$8RUAWAVH1胵H@HW>H$hdH34%(Hx[]A\A]A^A_fD{1Lt$'i{ 1HLDKLILR1MHD$SHD$DH\$`M4$L\t$WATRUAWAV(@HD$SL HHHD$菵x腳DAWAVAUATUSHH $HH $HH $HD'dH%(H$01HHHD$EHD$D$ D$$H A/HIHHL$8H޺LIIHHHH$D$MH$HD$0HD$@IM)IH<$LLL)HSIuLBƄ4B|=/tIGH=@BD=/BD=Iǀ$tgH4$H=tLH4$H=ҿIv'BD=/HįL@@I)MfDH/LIHHH<$HڹLƄ1fDH4$HǜIH=HHT$HƱND$H%=ZD$Dp NH$ HH豯H…HcƄ $ /Iv5BD=/HHL$(HD$蚮HL$(HT$L@@I)MMtEBH /tvƄ /HcƄ LHH=wHH޺LXDt$HHpMIIv.JD58/u$DHD$$D$ E1H$0dH3%(L!H0[]A\A]A^A_f./IfM{tHsL$AL蟛H1DT$ toH耬uE1df.HXJVD$ HH$DEAgH5ļHHD$8ML$$IHD$(ffDPXH::HHcH>HUHoHxHHkHnHrHHfHpHqHwH~HپHvHپHtHHH_HlHpHH藬8H<@HKHپHGHOHYHHFHOHHɾHH?HHѾHHHH H!HH9HHHHH1HϻHλHлHջHڻHٻHܻHپHŸHHGHt(W0u!8wuH=vHWHHH9s fDHWSHH?H)H4衩HCH)CHC[ff.@SHlHHtAH@(H@ @0@8H@@/HHCHt H[fDH1ff.HtgHw^UHHSHHөHt-HX HXHX(@0@8H@@HhHH[]f.1ff.fHtW0t8G8=v;H1 HHGH9uDHtHG H=wHW(H9rHGH9rH;GrHtF0u HFH9uF8=tH~iHF H=YHV(H9LHFH9?H;F5Hw@1F8ff.fHtGSW0Ht,C8=v7 1 [HGH9uDH{tHS HwHK(H9rHSH9rH;SrC8u5H{@lC0HC@t%HHHH[頤[fDH;Hs(HեH;}ff.USHHtG0Ht7K8Qv@1 1 HH[]HOH9u΋K8QwH{HtHK HwHS(H9rHkH9rHSH9rH)Hw$HC(H9rHSH9rHCHH9sfD1 D j1HHHCHH 0H1!fH;;t[1 C0u 1HH9CuC81=pH{@H_HK )fDH)ff.G0uW8v HGHG@SHH?HCH9uus1 O uHs(H;HCHCHt&&HHtnHHCHC(H[鍣DHtHC H=xHs(H9kHCH9^H;CqOf.H;ff.HG HG(HG@G8AUATUSHHtDg0HHEt>C8PvG1 A 4HD[]A\A]fDHGH9uNjC8PwH{tHS HwHs(H9rHKH9rH;KrH9EH1H9H@Hs(H9vMHCH9srAH=v LE0I9H;LGLCHtaHHCLk(L9r.Hk HD[]A\A]@HE1[D]A\A]HA[D]A\A]@AAfHtG0t0G8=v3H1 ~ 蹡1HfHGH9uDHtHG H=wHW(H9rHGH9rHWH9rH)ff.HtO0t0w8F=v3H1 ~ )1HfHGH9uDHtHW HwHG(H9rLGL9rHI9r1uHL)ƒHDDHtG0t0G8=v3H1 c} 艠1HfHGH9uDHGHtHW HwHO(H9rHwH9rHWH9rHff.HtG0t0W8Jv2H1 | 1HÐHwH97uDHtHO HwHw(H9rLGL9rHOI9ru1uHH1ff.fHtG0t8DG8APv8H1 | FH@HOH9uDHtHW HwLO(L9rHOI9rHH9ru%AuH9w H)H)H9ʺBø@AUATIUSHH'ŅtH[]A\A]@HC1HLH;C @HCHs(LH9vLH;E0L;k LGL%Ht(Lk(LHHHCNH[]A\A]ýmff.ATUHSHHt-HIuHSH HHHkI $[]A\uHk[]A\ff.USHHtW0HHt4C8=v=1 ;z aH[]DHGH9uЋC8=wHKHtHC H=wHs(H9rHCH9rHsH9rHt8uYH; tT1 y 1@H9w8HkHkH;kt 1H[]@HC1HC@H)ø=fUSHHtW0HHt4C8=v=1 +y QH[]DHGH9uЋC8=wHsHtHC H=wH{(H9rHKH9rH{H9r1Htu7H;3t21 x ԛ1fH9wH)kH1[]fDHH)ZfDAUATIUHSHHHHIxMt%Ht HLLJ1H[]A\A]DH1[]A\A]ff.ATUHSH]HImx1Ht I$HHU[]A\fATUHSHHI-x1Ht A$ʉU[]A\@ATUHSHHIx1HtA$AT$ fU[]A\ATUHSHHIx1HtA$U[]A\DAVIAUATIUHSFIMtI$HtHELHv[A]ˁw=LHH9r:MtIM,$1HtH][]A\A]A^fffATIUHSHH dH%(HD$1HtHHtHHT$Ht$Lx1Ht HD$HEHt$HtH3HLVHL$dH3 %(u H []A\莙ff.ATUHSHH dH%(HD$1HtHHtHHT$Ht$x9Ht%Ld$I|$菕HHEHtHMu.B!1HtHT$HHL$dH3 %(u&H []A\ÐHt$LHH뽸还ff.@AVAUIATIUHSH dH%(HD$1HtHHtHEHT$Ht$L|ÅuxH\$Ht%Lt$1HL蚓HtITH911LÅuyMt$Ll$I}rHI$HtaMu9B)Ht HD$HEHL$dH3 %(u>H []A\A]A^Ht$LHؙH벻뾻뷻艗fU1H1SHH(dH%(HD$1wtHL$dH3 %(uDH([]@Ht$ H{uԋt$ HT$HVuT$ Ht$Hf.ATIUHSHHdH%(HD$1HÅx1HuHL$dH3 %(uH[]A\H<$HL蹘肖fATUHHSHHI[LHH]A\]ff.fAVIIHAU1I1ATUHSH0dH%(HD$(1Ld$MoD$HBHD$ u)HL$(dH3 %(H0[]A\A]A^fDoMHEHcLHHT$A $ID$x=sH|$MMHcHc9uLrhYO#HHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$H$HD$HD$ D$0HD$HHL$dH3 %(uHkff.SHHdH%(HD$1HwxjH$HH8HH$H0PHH$H(PHH$H PHH$HPHH$HPHH$HPH$X1HL$dH3 %(uH[讓ff.SHdH%(HD$1Hx'H$H$PH$xH$X1HL$dH3 %(uH[2fSHdH%(HD$1HHxH$8H$X1HL$dH3 %(uH[ڒf.SHdH%(HD$1HxH$1HL$dH3 %(uH[聒ATUSHdH%(HD$1HHIHHsŅx1H$1H$PH$PH$XHuHL$dH3 %(u+H[]A\H$HLHx ̑ff.U1HSHHHt HHHHH[] ff.fHt7ATUHHSHHI[LHH]A\1fATUSH0dH%(HD$(1HHHHHT$ Ht$Ht"HL$(dH3 %(H0[]A\DHt$ H|$1IHtSHD$ HHp8uHLu LeLD$ lD$ fDtjGAVAUATUSHdH%(HD$1HHHHuffDHHtVEtHDDItAŅyIHt$dH34%(DH[]A\A]A^@HE1E1AŅxAH$ H$JH$bH$BEtH$@E1HtH$HHJ| dgA\ff.@ATIUHSHH dH%(HD$1HT$Ht$x9Ht$HuN1Ht HD$HEMtI$HHIHL$dH3 %(utH []A\fDHD$xOHw?u1u9 fD8uHHD$HuqHt`놸|fDPXHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ $D$0HD$f.D!DHtaATIH={U1SH fDHH{Ht(LuHcH [HD(]A\D[]A\øt+H Hf.H9ztHBHuHDHtaATIH=סU1SH fDHH{Ht(LPuHcH [HD(]A\D[]A\øt+Hy Hlf.H9ztHBHuHBDPXHlff.HH=q!Ht5 Eu( u> H HcH>fH!H ! tHz fH݆HT@B *    PPl@ T@ <@ $@ @j @R @H! H8fHH H81Q藅Hff.AH=T tw= 1@1Df t 1= DS1AH藋tl [8讇HپHwIH- H81{H= H5 ff.fUHAWAVAUATSH(dH%(HE19= IIpIŋH -HcH>fDžL H= MMHLHH=L HLɃ!|L= MH Hz LAL=s AEHEdH3%(=He[A\A]A^A_]Dž8fDžL f.L ϜfDDu DžEL fDM DžEL ?f.DžL {f.= H=k  H,RL1H(豃@H1AWLLLKMMHHHAXAYH1HATAL{H݆Hڋ H!%t= DHJHDY@H^HH)HkfDH H8\ff.HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ HD$$D$0HD$dH3%(uH莄ff.PXHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ $D$0HD$ off.@HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ HD$$D$0KHD$dH3%(uHff.HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ HD$$D$0{HD$dH3%(uH.ff.HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ HD$$D$0HD$dH3%(uH^ff.HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ HD$$D$0HD$dH3%(uH莀ff.HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHHD$HD$ HD$$D$0 HD$dH3%(uHff.HHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$H$HD$HD$ HD$D$0HHD$dH3%(uH~f.ATUSHtF<*tRt-8tuvILtdLD$ LL|tOT$ fA;udftnf u8I@IQI@ 8uqHHL9u1AI9L$4t wffDHL$8dH3 %(uRHHfDf uL$$AQ19tʸ9wwqff.AVAUATUSHdH%(H$1H-L$HHH@L]H?/LpIHHt$Hx .sA|$IHD$8IHt$LW|$Ef<f tfH$dH3 %(lH[]A\A]A^f.Ht$L2|$fA DfoD$HD$ LL$PDL)D$0HD$@lD$Pff SLIQPHH9uLD$pHt$0LL"D$pff  I@WHH9uHD$ foL$HC1) DUf.A &T$Tqf AL$tt}9ofAWAVAUATUHSHHxdH%(HD$h1HtHt$0iAHnHD$HD$(HXHD$0D$ Ll$(HD$Lt$$Ld$PH5pLoIHA؀!u AGILLLt[u7HtT$$H|$Lu!D$ f.HrLH,^ĐD$ LH51H=Q@H|$FkHL$hdH3 %(D$ u^Hx[]A\A]A^A_D$ fDHH5FH=υ1HD$ fDD$ D$ omff.@AWAVAUATUSHHxH|$dH%(HD$h1HtHt$0HmHD$HD$(HHD$$E1Lt$(HD$L-nHl$PLLmHH;H.jIH1H5HkI9tHH51AH=d/HT$HHoH|$cT$$H|$0HDD=HT$H51AH=H|$ViHL$hdH3 %(DHx[]A\A]A^A_HH5F1AH=ob밉D$HH=1KT$AfHH=1A)t@HT$H51E1H=XAM>kf.@AVAUATUSL/MHʄAHH5LHD*gHHHtQD0A"tuH+H5H}Et?jHlH+}=uA=tH}H5hiHDH[L]A\A]A^fiHDHL[]A\A]A^HgHuHHiH;"iHHt H+@E1[]LA\A]A^fAUATUHSHdH%(HD$1ngHxIEWI\$C HHh@Ht!<%t-H<+tވCHHHh@ukgUHDPUDPEPЀ vNPvvP7AUHEJЀ w7DAAD tcHوS?AUHEJЀ vɍJw%DWAWAJwD7ALE1 fHt$dH34%(LuH[]A\A]LhfHt'H u( t tHuf.ff.UHSHeHt,HHt#eHLHDJ tDHuH[]fDAT1US jx_AĉÉAu6H=1Xھ1iÃtND[]A\fD1E1H=MD[]A\BgA8eH=H1gA܋8eH=H1ff.AT1AUS9ixZʼnDt6H=1ھD1iŃtI1[]A\@1H="[]A\vf8eDH=BH1&Of8dDH=ބH14fSu f8u [g[df.USHdH%(HD$1HLD$D$Hd<$tSH=1$lAHߺbbt5HD$dH3%(ulH[]fDH=1 fDCe8cH=H1fe8cH=ՃH1eff.UASHdH%(HD$1HL$D$at1HT$dH3%(u*H[]Éd84cH=H1Adf.1fH1H=o Hf1DU0HSH$H}HHH}HCH}HCECECH} HC H}(HC(HH[]ff.S1HHdH%(HD$1H%SH<$tH5}H/fHt*@fHT$dH3%(uH[f4c@AUATIUSHdH%(HD$1H$HtrH:HItbH1Hx1LL`;tWHT$dH3%(ucH[]A\A]fH5|^t1HL RH<$u fD뢐L_1L5bDAWAVAUIATUSH(dH%(HD$1aMA}HHD$E1AHHD$ID9"aHt$ L`HT$HL9}"=HHBHD$\HD8]t H[HH[ff.<:tJ1<[„u =<]u<:tFGHt<@u[uHGHu1<:uuH@tHG)THtDH|$HHt8)@=E9s]H5vH=to11HwHAfDH$0 H$8dH3<%(Hx[]A\A]A^A_EtD$EtHt$ D$/w.ƒD$II8~H5uH=n1LD$ I@HD$ H5uH=n1sH5uH=n1^iSEtD$H5uH=0n1;ff.KAT1H=]nUSuUAĉh1*UuR8 Hu؉DMuɋ}QQH"nHH H81!NgNA []A\D[D]A\MOR8PHmHff.AWAVAUATUSHdH%(HD$1HLt6HILIMtHIHl$L=mfD MH1HRLHLn=L9uHL$dH3 %(Lu'H[]A\A]A^A_H=ltIzQf.HHDff@HH7DΉ77fff7@MbHHciH)iHcHwf.SHH dH%(HD$1f uzHKuHD$dH3%(u|H [H޿Kt1HKtP8NH=kH1 f.H1&LH$HHiD$HCtOUHSHH(dH%(HD$1HHt$HS㥛 HH?HH$H+EHHH)H+My HH@BHS㥛 iHH?HHH)ʍ)HD$dH3%(uH([]:Of.AWAVAUATIUSH8dH%(HD$(1Ll$ILIHD$HL$HS㥛 \$H$HH?HfD$HH)HT$NH8LMD}LLD}JuA uCtA$yEnHL$(dH3 %(u"H8[]A\A]A^A_1ո0NAUAATIUSHdH%(HD$1$D$HHͅDLLtCM8sIuwHthHLD$߾jLŃtO$u=1sHL$dH3 %(uIH[]A\A]fDDLcLA$A<$KH=hH1 #MSHH dH%(HD$1HLH$HL$HS㥛 HHH?HHH)HSHD$dH3%(uH [LfDH(dH%(HD$1HH$HT$dH3%(uH(rLfH(dH%(HD$1HffHD$dH3%(H* $H*D$^enXuH(LDHHwHWHGHG(HG HG8HG0AUATUSHHHHwdH%(HD$81H HwuH{(H|$ H;ss"HD$8dH3%(UHH[]A\A]Hl$ HHL$(Ht$ HS㥛 H+s HH?Hs0HHH)H+S(HS8yHH@BHs0HS8Hu H{8wHCHHCgfH*HCY"mHafH*^ mf/H,H4ׂCHHHHi@BHS H)H9HK(uH;K8H)H+K8HS0HK8yHH@BHS0HK8HHCH3HHH9HBHCHiH$Ll$IHL$I8ufoT$)$LL1JtHCH,HD$ HL$(HS㥛 HC HH?HHH)HS( f.\H,H?DHfH*XHƒfHH H*XfH'HCH;HH4H9HGHCIff.UHH=dSHHHHt.ILd1HHHI~HH9r1HhdHHCHvH[]H5jH=ld1{ff.ATUSHdH%(HD$1HIH1 1H5@dfDHHsHt8L(DuHH D(HL$dH3 %(u9H[]A\@1HLFA<$tH$:uH=vGteH HcfDH9ztGHBHuHALxcH=: uHH. HfH@cUSHt$HGHHU]uH[]@AVAUATAUպlSHHHĀdH%(HD$x1IHD$MEI}IEfLH)lHLf$2Hk1Ҿ)FAƅtYnLDGDDDH\$xdH3%(DMH[]A\A]A^f.HBtE8tDHH=bH1qf.HH5g1AH=ebE$d}ED HDDHH5gH=eH1$DA@De8EA(HÉCH5OgH=AaH1޿+ED HDCHH5gH=eH1詿DA+@HcADeDDSH5fH=`HdH%(HD$1D$HL$Aߺ)H[]fD1??9uH=@_1HfDAWIAVAUATIUSHH8Ht$ HT$(HIAA$V1E11I!D< < z<\<'E1<"AwLHcHcM ,LILL$r?AONO\HpLT$L$L$L$LT$LL$IKDA1@I!9E@ @ @0HcI4,6H@t:@\uA|,"@:HcI4,\6H@uEt{MLKlfDH;Hd>H9uLW>H8[]A\A]A^A_@D9PLc|$HcAcD|$fDHD$ L$HD$(L(1H8[]A\A]A^A_@DKIIcI4,sW6Hc@0I4,fD'@ADE1"<:If.DD$[fAWAAVAUATUHSH|$ ߕH$H"͕HHE%E1DH(HED0EvAE1,@AHA覬uWHEF48IEthA"t. A tA tAHpfDA'tA\u\HOtωĐH5`H=[H1@E'EH<$"H<$HDH<$"ޫAHD9l$ H<$ڛHx:HHL<$L蹛LIޜLHH@L蘛LD;H3HH[]A\A]A^A_EtH<$ >uf.H<$HtF蕏H5_H=;H1软DH<$ H5_H=~<1苯H5_H='Z1vfDAWAAVAAUIATIUSHdH%(HD$1Hl$#=8uL1HD<Ãt\$؃<m߅u=C?LVLN%LFHNໃrF%@ඃwFHF@S_@uFsMMIHHF ҃⻃rA҃ⶃwA,2uAsIHH@҃⻃rAҁⶃw~ZutH ffD= =@ =pu- Hf@PA-IHH=DF-FSFxAxIHHDASIHHDx HfT Hfs-cdblxAWAVIAUIATIUHSHhdH%(HD$X1H4HD$HD$ H4HD$0HHD$@D8HM9~OHHHDHE1 H|$XdH3<%(Hh[]A\A]A^A_ Ht$LHT$L9t:uHH9tPI9WHH9t\"I9dHtUHED;i@ 1\ "t I9t˹" D "u D;fAVAAUATIUS\autA@u p@u a@u R@ t2AA( > Hff.؃ tv@upt S݃8L@u A$\IÀt A$MI HHID$H q@?A$^DAT$6@A$\0AD$؃0A\$0AD$ID$[]A\A]A^fA\5 HcHf@\sID$fA4$&@ATIUSH6@t2H 3H@uD)[]A\@1[]A\ff.AWIAVAUATU1SAHAAH8H|$HT$dH%(HD$(1HDH$DD$|AM|$t ,@u @u @ t9AL$ t$AA͋t$Hf HcL$IE/MAH;$\A\AE<8wHHs t$At$Hf(H1|tAWIAVIAUAATL%dg UH-dg SL)HHt1LLDAHH9uH[]A\A]A^A_ff.HH%s: buffer error: %srequest %u: sent status %uSuccessEnd of fileNo such filePermission deniedFailureBad messageNo connectionConnection lostOperation unsupportedUnknown errorsent status %s%s: sshbuf_new failedset "%s" mode %04o%Y%m%d-%H:%M:%Sset "%s" modtime %sset "%s" owner %lu group %lurequest %u: hardlinkhardlink old "%s" new "%s"request %u: statvfsstatvfs "%s"request %u: posix-renamerequest %u: symlinksymlink old "%s" new "%s"request %u: readlinkreadlink "%s"request %u: removeremove name "%s"request %u: renamerename old "%s" new "%s"request %u: %sstat%sstat name "%s"request %u: realpathrealpath "%s"request %u: rmdirrmdir name "%s"request %u: mkdirmkdir name "%s" mode 0%orequest %u: setstat name "%s"set "%s" size %llu %s%sclosedir "%s"request %u: close handle %u%s%s%srequest %u: fsync (handle %u)fsync "%s"process_write: seek failedprocess_write: write failednothing at all writtenrequest %u: opendiropendir "%s"request %u: open flags %dREAD,WRITEAPPENDCREATETRUNCATEEXCLopen "%s" flags %s mode 0%oread change len %dprocess_read: seek failedrequest %u: sent data len %dforcedrequestsInvalid query type Invalid log level "%s"Invalid log facility "%s"URefused requests already setInvalid umask "%s"Invalid file mode "%s"d:f:l:P:p:Q:u:m:cehRSSH_CONNECTIONUNKNOWNchdir to "%s" failed: %sselect: %sread eofread: %swrite: %sreceived client version %uposix-rename@openssh.comfstatvfs@openssh.comhardlink@openssh.comfsync@openssh.comlsetstat@openssh.comiqueue grew unexpectedlymsg_len %u < consumed %u%s: sshbuf_check_reserve: %sUnknown message %ufstatvfsfsynclsetstatopenclosereadwritelstatfstatfsetstatreaddirrequest %u: lsetstat name "%s"posix-rename old "%s" new "%s"request %u: sent names count %drequest %u: sent attrib have 0x%x%s%sclose "%s" bytes read %llu written %llurequest %u: readdir "%s" (handle %d)request %u: fstatvfs "%s" (handle %u)request %u: fstat "%s" (handle %u)request %u: fsetstat handle %drequest %u: write "%s" (handle %d) off %llu len %zurequest %u: sent handle handle %dRefusing open request in read-only moderequest %u: read "%s" (handle %d) off %llu len %dRefusing %s request in read-only modeRefusing blacklisted %s requestPermitting whitelisted %s requestRefusing non-whitelisted %s requestsession closed for local user %s from [%s]Permitted requests already setusage: %s [-ehR] [-d start_directory] [-f log_facility] [-l log_level] [-P blacklisted_requests] [-p whitelisted_requests] [-u umask] [-m force_file_perms] %s -Q protocol_feature Malformed SSH_CONNECTION variable: "%s"session opened for local user %s from [%s]%s: sshbuf_check_reserve failed: %sbad message from %s local user %sReceived extended request before initReceived %u request before initUnknown extended request "%.100s"z000222222222222222262z/p/c122222/1022022221process_extendedprocess_initprocessprocess_openprocess_closeprocess_readprocess_writeprocess_fstatprocess_setstatprocess_fsetstatsend_data_or_handleprocess_opendirprocess_readdirprocess_removeprocess_mkdirprocess_rmdirprocess_realpathsend_attribprocess_do_statprocess_renamesend_namesprocess_readlinkprocess_symlinkprocess_extended_posix_renameprocess_extended_statvfssend_statvfsprocess_extended_fstatvfsprocess_extended_hardlinkprocess_extended_fsyncsend_msgsend_statusprocess_extended_lsetstatsftp_server_mainNo errorNo such file or directoryUnknown status?%b %e %H:%M%b %e %Y%s %3s %-*s %-*s %8s %s %s%s %3s %-*s %-*s %8llu %s %sGot file attribute "%.100s" len %zu`;p;;;;;;;;decode_attrib..No user found for uid %lu successunexpected internal errormemory allocation failedincomplete messagebignum is negativestring is too largebignum is too largeinsufficient buffer spaceinvalid argumentkey bits do not matchinvalid elliptic curvekey type does not matchelliptic curve does not matchkey lacks certificate datainvalid elliptic curve valueincorrect signatureerror in libcryptoinvalid certificateagent refused operationDH GEX group out of rangedisconnectedno matching cipher foundno matching MAC foundprotocol version mismatchcould not load host keyfile changed while readingbad permissionskey not foundagent not presentagent contains no identitiesKey is revokedConnection closedConnection timed outConnection corruptedProtocol errorInvalid key lengthnumber is too largeunknown errorelliptic curve point is too largeunknown or unsupported key typeplain key provided where certificate requiredunknown/unsupported certificate typeinvalid certificate signing keyunexpected bytes remain after decodingcommunication with agent failedmessage authentication code incorrectno matching compression method foundno matching key exchange method foundno matching host key type foundcould not read protocol versionrekeying not supported by peerpassphrase is too short (minimum five characters)key encrypted using unsupported cipherincorrect passphrase supplied to decrypt private keycertificate does not match keyinternal error: buffer is read-onlyKRL file has invalid magic numbersignature algorithm not supported@@@@@@@@|@l@\@L@<@,@@ @????????|?l?\?L?>>>>>>>|>l>\>L><>,>> >========|= At=DAEMONUSERQUIETFATALCouldn't open logfile %s: %s fataldebug3debug1debug2%.*s %.500sERRORINFOVERBOSEDEBUGDEBUG1DEBUG2DEBUG3AUTHAUTHPRIVLOCAL0LOCAL1LOCAL2LOCAL3LOCAL4LOCAL5LOCAL6LOCAL7Unrecognized internal syslog level code %d Unrecognized internal syslog facility code %d ^^^^^^_(_@_X_0^h^hbb8baa`aaxmalloc: zero sizexcalloc: zero sizexmalloc: out of memory (allocating %zu bytes)xcalloc: nmemb * size > SIZE_MAXxcalloc: out of memory (allocating %zu bytes)xreallocarray: out of memory (%zu elements of %zu bytes)xrecallocarray: out of memory (%zu elements of %zu bytes)xasprintf: could not allocate memory%s: couldn't parse address %.100s%s: inconsistent mask length for match network "%.100s"%s: empty entry in list "%.100s"%s: list entry "%.100s" too long%s: list entry "%.100s" contains invalid charactersInvalid network entry "%.100s"Inconsistent mask length for network "%.100s"0123456789abcdefABCDEF.:/addr_match_cidr_listaddr_match_list "= " fcntl(%d, F_GETFL): %sfd %d is O_NONBLOCKfd %d setting O_NONBLOCKfd %d is not O_NONBLOCKfd %d clearing O_NONBLOCKfd %d is TCP_NODELAYfd %d setting TCP_NODELAYtcpany[%s]:%dput_host_port: asprintf: %sput_host_port: %saddargs: argument too longreplacearg: argument too long%s: NULL replacement%s: too many keys%s: string too long%s: invalid format%s: unknown key %%%c/dev/nullCouldn't open /dev/null: %s dup2: %s tohex: length > 65536clock_gettime: %sgetsockopt: %sTMPDIR/tmp/ssh-XXXXXXXXXXXX%s/ssh-XXXXXXXXXXXX%s: template string too shortnoneaf110x%02x%s: socket: %.100sunlink(%s): %.100s%s: set socket %d IPV6_V6ONLYsetsockopt IPV6_V6ONLY: %s/dev/ttyalready daemonized%s: sshbuf_put_u8: %s%s: malloc failed%s: waitpid: %s%s %s exited on signal %d%s %s failed, status %drealpath %s failed: %s%s is not a regular filedirname() failedcannot stat file %s: %s%s=%sempty domain name://missing%Y-%m-%d%Y-%m-%dT%H:%M%Y-%m-%dT%H:%M:%S%.4s-%.2s-%.2s%.4s-%.2s-%.2sT%.2s:%.2s%.4s-%.2s-%.2sT%.2s:%.2s:%.2saf12af13af21af22af23af31af32af33af41af42af43cs0cs1cs2cs3cs4cs5cs6cs7eflowdelaythroughputreliabilityfcntl(%d, F_SETFL, O_NONBLOCK): %sfcntl(%d, F_SETFL, ~O_NONBLOCK): %sgetsockopt TCP_NODELAY: %.100ssetsockopt TCP_NODELAY: %.100ssetsockopt SO_REUSEADDR fd %d: %sSetting routing domain is not supported on this platformreplacearg: tried to replace invalid arg %d >= %dtilde_expand_filename: ~username too longtilde_expand_filename: No such user %stilde_expand_filename: No such uid %ldtilde_expand_filename: Path too long%s: path "%s" too long for Unix domain socket%s: cannot bind to path %s: %s%s: cannot listen on path %s: %sbad ownership or modes for file %sbad ownership or modes for directory %sInvalid environment variable "%.100s"child_set_env: too many env varsdomain name "%.100s" starts with invalid characterdomain name "%.100s" contains consecutive separatorsdomain name "%.100s" contains invalid charactersargv_assemblesock_set_v6onlyunix_listenermktemp_protopercent_expandeA.ACOpenSSL version mismatch. Built against %lx, you have %lxPRNG is not seededunable to make the process undumpableCouldn't obtain random bytes (error 0x%lx)strdup0B%lld%c%lld.%1lld%c@BKMGTPEPOSIXLY_CORRECTunknown option -- %coption requires an argument -- %cinvalidtoo smallt $ >8>d?P?@@0AdB@CCC4ExEFG`GG$pHXHII K$ LXLxL`MMNPN,pNHPlPPP@Q`QTU$pV@@W\XxXYZ@[ \$]p_ _`__D`bbb c4@cPclc d`d@e e, fX gl h k l!op!p!q "r "PrH" s"s"t" u #u8#uL#ud#ux#v#v#w#x$y`$z|$@{$P{${$ | %}X%@%%&(&d&&&'T'Јh'|'''' '0'@'(P,(X((() ) <)`P) ))p)*0,*`p***p*0`+++P`, ,` -Ф--p.,..0.@./,/@/ X/Px/`/ /@/040H000д0 1 <10P1@h1101p111@t222p83`x3P3404H4`4P45855 5(6l66@6@7 7zRx (/D$4@0FJ w?:*3$"\H t?AZ E 43BDA Q  DABE 0FCC G  AABG (hADD@X AAE ( EH0 AA 8L^BEA D(D0  (D ABBE (ECI AAD EH0 AA EH0 AA 8BED A(F0 (D ABBE 485FAA G I!  AABI ,pBFC W ABE $EH } AE (wECI AAE 04BCC I  AABD $ 84LOFAA G I!  AABH EH } AE 0l"FCC D`  AABJ HhBHE E(A0A8DP 8D0A(B BBBF 0(<FCC G  AABH \= pGx I B F 8gFBA C(D@ (A ABBH `FBB B(A0A8G L" 8A0A(B BBBH "`"]"A"4@, H\EF  AD (lXEAI AAJ 0L#FAA I  AABB @HFBB A(C0G 0A(A BBBF (REAF` AAF <<(BEE D(C0J (A BBBE (|TBDH ~AB(ECF0 AAG LFDB B(A0C8D~ 8A0A(B BBBB <$ TFAA H Q D  AABF (d@Ge D _ A \ D TNAA Pt FBB B(A0A8H Q GȁDЁsȁA* d,hvH@FBB B(A0D8Gp~ 8A0A(B BBBH DFDA i ABI c CBH @ ABM @FBB B(A0C8J Y N F B F A B B ] f 8A0A(B BBBG k  K A B A A B B I \ FBB B(A0A8G L@L`Lb 8A0A(B BBBK  EAD0 qEDF d HDE eFA4 pKT 0a}cp tE\ G ( sSIL {AAK 8a_0 Ji M PHc E A G ( EAD y DAH 4 @!a} J T " h " | "  "p "FBA A(D0B (D ABBG  (D ABBE D (D DBBH D (G DBBE  ,#a\0 #a\H ,$a\` $b\x <%d_L %FBD A(G0O (C ABBE o (A CBBA 4 T&RFAD q ABA NAB4 |&EAD ~ AAF  AAE 8P T'EAD ~ AAF } CAG H (eFBD D(G0u (A ABBF D(C ABB( ,(>FAD oAB(@(<FAD mAB(0T(IFAD zAB(\x(;FAD lAB<(FEB D(D0j (A BBBJ 0(FDD G@  AABA 0x)FAD G@  AABB @0*'FBE D(D0DP 0A(A BBBH (t+EHG@m AAE 0d+nFDD G0{  AABD (+3FAG TJB@+FOI A(D0D`Z 0A(A BBBG D,K A `4-EL  AA -nEK W AA .VEK  AA X.OEK x AA 0.FAA D0|  AABD $$/3EFG TGA(L(/GKAG TJB0xL/FAA DPZ  AABF @0!FBB A(A0D@ 0A(A BBBE 00FDD G@p  AABG $1EAGD`2 8X\2pKKC v IBF AFBA2;82pKKC v IBF AFBA2;3EAI  3Hl D o I 8 5L5.`$5t05_E` A t5,5tEC P( H 8K A 9EAG (:K A (:K A D;K A `D<K A |<K A =K A 8P>FAA E ABH F DBD H>FBB B(D0A8JN 8A0A(B BBBE H<x@ BBB B(D0D8F` 8A0A(B BBBI LA $HA@EDD nCAH`A}FED G(G0 (A DBBK F(A ABB\AFEI D(J0Q (C ABBE D (G ABBH X (H ABBC LpB FBB B(A0A8Jh 8A0A(B BBBF CC CC6ES A CSE` A (8,D3EDG N AAA (d@D3EDG N AAA (TD5FDA fAB$hDEJ AA  EY(lE AEDp AAF $PF8 GDP G @THgBBB A(A0G 0A(A BBBK L,JFBB B(A0D8GJ 8A0A(B BBBD PK"FBB B(A0A8Gp 8A0A(B BBBA \<MBBB A(A0 (D BBBC Q (A BBBH |(A EBB88NBBA D(D@} (A ABBA OD$OJEDD zAA8PFHC E ABG U ABA 8PPFKA F ABE Q ABA Q&EU F A((QEKF0 AAG ( RENI0 AAA pRlR HW0tRDpR $XlRuEND XDA R|EN R AJ 8 SFBD A(D@ (A ABBC HSFBB E(A0A8D` 8A0A(B BBBK ,UH f B DH VFAA C ABB L ABA x ABE tV pV4HX H KVH WpFBE E(D0A8DP 8D0A(B BBBH H$0XFBE E(D0A8D` 8A0A(B BBBK ,pYVEAJ  AAC (Z EDI AAA $[SEDD CAA8[FBA A(G (A ABBA P0T]%FBB B(A0A8G L#R 8A0A(B BBBA 0` 8,`FOA  ABF A DBE H`FBB B(A0A8DP 8A0A(B BBBH  da 4`a H\a\Xa pTa Pa LaHa Da6 paEG0 AD (bEDG@ AAA H$ bFBB B(D0A8Fp 8A0A(B BBBI 8p Tc FED A(F@ (A ABBG (djEG0W AA  td>H0p A  d[H0M A !d88!eFBA A(GpM (A ABBD (X!gEKG V AAA 0!gFAA D0s  AABE !|hyvp$!h<EAD oAA@!h+FBB D(H0J 0A(A BBBK <"jEV R AB (`"dkFAA AB4"(lzEOD [ CAI M CAG d"plFEB B(I0A8Gp 8F0A(B BBBD I 8A0A(B BBBE H,#nzFEB B(A0D8DP 8D0A(B BBBA Hx#pFEE E(D0A8DPg 8A0A(B BBBA d#qFBB B(A0A8G L@LB 8A0A(B BBBH jBIB`BFBP,$sFEE K(D0GT 0A(A BBBA PG^Fh$dt6FBB B(A0D8D` 8M0A(B BBBF KhHpc8A0A(B BBBH``$8vhFBB E(A0D8G@ 8A0A(B BBBA C 8A0A(B BBBC LP%Dw1FBE E(D0D8GH 8A0A(B BBBE 0%4zYECD w AAK DCA %`zwED } AI t%zFAD GV  AABD ROOEKjORHZFOOHEK0p&||FDD Dp`  AABA &P| $&H|EDPp AA &|&| '|$'|-EY A D'| L\'|BBB B(A0A8G 8A0A(B BBBA '8'Dj('/AFDP AAF ( <(LBB D(A0 (A BBBE T(0H] K Hp(+FBB E(A0D8D@ 8A0A(B BBBD ,(؃SFC AEG(7HX A )܄)؄44)ЄFAC L  AABA l)X.)t4)L)܅.Hax)KFBB B(A0D8D` 8A0A(B BBBB O 8F0A(B BBBA a 8C0A(B BBBA 8@*ĈKc B A YAF H  L B 4|*(BEA E(  ABBA L*FBB B(A0A8DP 8D0A(B BBBG <+0FHA P0K  AABB q AAB<D+FHA P0K  AABB q AABL+OJA D(G0 (D ABBI (D DBBH$+БEn E ] A +Xj,L,,h~FBE E(D0D8D 8A0A(B BBBI L|,LFEB D(C0b (A BBBC | (G BBBA 4,RFDA u ABE FABH-FEB B(A0E8Rp 8A0A(B BBBH LP-FBE D(G0S (D BBBK K (A BBBA P-DFEA C(G0K (A ABBI N (C ABBA @- FEB D(D0D` 0A(A BBBB D8.L FBA A(H Q D (A ABBE 8.pEGG h AAK D CAA L.HiFIB B(A0A8G 8A0A(B BBBD D /heFEE E(H0H8G@n8A0A(B BBBT/A@!s<@JR<@IOA@b"<@GXA@a^A@CgA`llA]rA qwAg}ATAcA @YA d> @kA ^< O=Vt=VQ=TAT=P<M<K,R2RRRRRRRR R'RRRRRRRRR R R XX(Z0Z8ZHZPZXZhZpZxZZZZZ Z@Z`ZZZZ[[[[ &6 0/ :С!ء!o0`  !0 #h oooooh@!`/p/////////00 000@0P0`0p00000000011 101@1P1`1p11111111122 202@2P2`2p22222222233 303@3P3`3p33333333344 404@4P4`4p44444444455 505@5P5`5p55555555566 606@6P6`6p66666666677 707@7P7`7p7 ?VGA$3a10/O@ GA$3p1113?:GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA! GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA*?L5 GA*GOW*GA$3a1P@: GA$3p1113ЁI:GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA! GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*GOW*GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA*P:: GA*GOW* GA*FORTIFYAY7GA+GLIBCXX_ASSERTIONS GA*FORTIFYЁ:GA+GLIBCXX_ASSERTIONSsftp-server-8.0p1-30.el8_10.x86_64.debug(7zXZִF!t/57d]?Eh=ڊ2N/^%V>eS* @NwWc]*4uLW#*B$̨w },=΍ge 9G 7-T3㺯5{^ oFuR/ȟ Wy;!NZ),Yq7\a|<_r(^_X |=9YɵN [Ч)mdY3G f*J ],`zgVX|D Md"b\ad6jhm:OuM&BURD$aȝ jNK8{8I H`1gΥ28nvJ emvM6iy LJOj؜U4ypWT E( GF7ZLOGYpX RIz^uZ9F&!%^ MI54X,- x+s;4DYᛈ~Y.fv'WBQq\GOB27>$T>bòsOl#%{9ĐKk9rA|K:ҩMvfewTK/ɭ.BNvq4?}E~Ԫ1iI;ȭV#FQ F%u98yOêwkA?bG;L1ĄYp>fx`s] }f~ ze'Kc&T]HMwpdR?S4Tݸmͻd8*[rv$1sknx\o6@mp#(Nh*a}w7r1?akb-\8ί|.:/о[3 <Þ,NusKZ4!V>L~X9$I`/২SH [ ͯft_*_{A#0i3@-FdF9ɰө3.QΟoz-819qjNY35%tŐ]*`Zkk?2nϔ0jwi̻VeY H|3x} woq n%/mM'Yîq#zm^~$cH3{a+` GhfzL%, ׳ 週b77֢\* >\'Z1%~2sF—jh9 jQh3H' V}w6`|0ᒀX˔&>t-;CXl0$ R"Y7 6jLkv (v 2x4rujiZy~fɒ 9Uň l-&6.z<'Z[NxpR?ȓEFO &7-~ Quvhk2^ahiUI@}ʜr#)`d6:KT h)Ėc5`ŦO/ B-TӏsȢ; j8a6pwl$|,l~{iqXKS&<#{(x `6hef 4(rd)d|M(;tq.xJ=P(陦SHݟWH!-9بdTǹpG5^ܧ`*CnF?Y ,#n!7\ҧ>챗X *C E, O5U;fxHϞ cAK*Pj,k%#hJL GauI<{$@)3_Pyȃ8$[) B4*5Lfϝ)Ɛ&g Z *)l:M;вDwUJ'3G~WeOи0M Ɩg3e!f!9C|wҌjرgYZ.shstrtab.interp.note.gnu.property.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.data.rel.ro.dynamic.got.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata  & 4$Go000Q ``8 Yaono}h B##0 0/0/P/P/077 ??%:: ::' bb4jjh/С!Сء!ء!` @!@`!`!@@!@h a@ 0/L>PKgx0] sshd-keygennuȯ#!/bin/bash # Create the host keys for the OpenSSH server. KEYTYPE=$1 case $KEYTYPE in "dsa") ;& # disabled in FIPS "ed25519") FIPS=/proc/sys/crypto/fips_enabled if [[ -r "$FIPS" && $(cat $FIPS) == "1" ]]; then exit 0 fi ;; "rsa") ;; # always ok "ecdsa") ;; *) # wrong argument exit 12 ;; esac KEY=/etc/ssh/ssh_host_${KEYTYPE}_key KEYGEN=/usr/bin/ssh-keygen if [[ ! -x $KEYGEN ]]; then exit 13 fi # remove old keys rm -f $KEY{,.pub} # create new keys if ! $KEYGEN -q -t $KEYTYPE -f $KEY -C '' -N '' >&/dev/null; then exit 1 fi # sanitize permissions /usr/bin/chgrp ssh_keys $KEY /usr/bin/chmod 640 $KEY /usr/bin/chmod 644 $KEY.pub if [[ -x /usr/sbin/restorecon ]]; then /usr/sbin/restorecon $KEY{,.pub} fi exit 0 PKp:1]w#w# PROTOCOL.muxnu[This document describes the multiplexing protocol used by ssh(1)'s ControlMaster connection-sharing. Multiplexing starts with a ssh(1) configured to act as a multiplexing master. This will cause ssh(1) to listen on a Unix domain socket for requests from clients. Clients communicate over this socket using a simple packetised protocol, where each message is proceeded with a length and message type in SSH uint32 wire format: uint32 packet length uint32 packet type ... packet body Most messages from the client to the server contain a "request id" field. This field is returned in replies as "client request id" to facilitate matching of responses to requests. Many muliplexing (mux) client requests yield immediate responses from the mux process; requesting a forwarding, performing an alive check or requesting the master terminate itself fall in to this category. The most common use of multiplexing however is to maintain multiple concurrent sessions. These are supported via two separate modes: "Passenger" clients start by requesting a new session with a MUX_C_NEW_SESSION message and passing stdio file descriptors over the Unix domain control socket. The passenger client then waits until it is signaled or the mux server closes the session. This mode is so named as the client waits around while the mux server does all the driving. Stdio forwarding (requested using MUX_C_NEW_STDIO_FWD) is another example of passenger mode; the client passes the stdio file descriptors and passively waits for something to happen. "Proxy" clients, requested using MUX_C_PROXY, work quite differently. In this mode, the mux client/server connection socket will stop speaking the multiplexing protocol and start proxying SSH connection protocol messages between the client and server. The client therefore must speak a significant subset of the SSH protocol, but in return is able to access basically the full suite of connection protocol features. Moreover, as no file descriptor passing is required, the connection supporting a proxy client may iteself be forwarded or relayed to another host if necessary. 1. Connection setup When a multiplexing connection is made to a ssh(1) operating as a ControlMaster from a client ssh(1), the first action of each is send a hello messages to its peer: uint32 MUX_MSG_HELLO uint32 protocol version string extension name [optional] string extension value [optional] ... The current version of the mux protocol is 4. A client should refuse to connect to a master that speaks an unsupported protocol version. Following the version identifier are zero or more extensions represented as a name/value pair. No extensions are currently defined. 2. Opening a passenger mode session To open a new multiplexed session in passenger mode, a client sends the following request: uint32 MUX_C_NEW_SESSION uint32 request id string reserved bool want tty flag bool want X11 forwarding flag bool want agent flag bool subsystem flag uint32 escape char string terminal type string command string environment string 0 [optional] ... To disable the use of an escape character, "escape char" may be set to 0xffffffff. "terminal type" is generally set to the value of $TERM. zero or more environment strings may follow the command. The client then sends its standard input, output and error file descriptors (in that order) using Unix domain socket control messages. The contents of "reserved" are currently ignored. If successful, the server will reply with MUX_S_SESSION_OPENED uint32 MUX_S_SESSION_OPENED uint32 client request id uint32 session id Otherwise it will reply with an error: MUX_S_PERMISSION_DENIED or MUX_S_FAILURE. Once the server has received the fds, it will respond with MUX_S_OK indicating that the session is up. The client now waits for the session to end. When it does, the server will send an exit status message: uint32 MUX_S_EXIT_MESSAGE uint32 session id uint32 exit value The client should exit with this value to mimic the behaviour of a non-multiplexed ssh(1) connection. Two additional cases that the client must cope with are it receiving a signal itself and the server disconnecting without sending an exit message. A master may also send a MUX_S_TTY_ALLOC_FAIL before MUX_S_EXIT_MESSAGE if remote TTY allocation was unsuccessful. The client may use this to return its local tty to "cooked" mode. uint32 MUX_S_TTY_ALLOC_FAIL uint32 session id 3. Requesting passenger-mode stdio forwarding A client may request the master to establish a stdio forwarding: uint32 MUX_C_NEW_STDIO_FWD uint32 request id string reserved string connect host string connect port The client then sends its standard input and output file descriptors (in that order) using Unix domain socket control messages. The contents of "reserved" are currently ignored. A server may reply with a MUX_S_SESSION_OPENED, a MUX_S_PERMISSION_DENIED or a MUX_S_FAILURE. 4. Health checks The client may request a health check/PID report from a server: uint32 MUX_C_ALIVE_CHECK uint32 request id The server replies with: uint32 MUX_S_ALIVE uint32 client request id uint32 server pid 5. Remotely terminating a master A client may request that a master terminate immediately: uint32 MUX_C_TERMINATE uint32 request id The server will reply with one of MUX_S_OK or MUX_S_PERMISSION_DENIED. 6. Requesting establishment of port forwards A client may request the master to establish a port forward: uint32 MUX_C_OPEN_FWD uint32 request id uint32 forwarding type string listen host uint32 listen port string connect host uint32 connect port forwarding type may be MUX_FWD_LOCAL, MUX_FWD_REMOTE, MUX_FWD_DYNAMIC. If listen port is (unsigned int) -2, then the listen host is treated as a unix socket path name. If connect port is (unsigned int) -2, then the connect host is treated as a unix socket path name. A server may reply with a MUX_S_OK, a MUX_S_REMOTE_PORT, a MUX_S_PERMISSION_DENIED or a MUX_S_FAILURE. For dynamically allocated listen port the server replies with uint32 MUX_S_REMOTE_PORT uint32 client request id uint32 allocated remote listen port 7. Requesting closure of port forwards Note: currently unimplemented (server will always reply with MUX_S_FAILURE). A client may request the master to close a port forward: uint32 MUX_C_CLOSE_FWD uint32 request id uint32 forwarding type string listen host uint32 listen port string connect host uint32 connect port A server may reply with a MUX_S_OK, a MUX_S_PERMISSION_DENIED or a MUX_S_FAILURE. 8. Requesting shutdown of mux listener A client may request the master to stop accepting new multiplexing requests and remove its listener socket. uint32 MUX_C_STOP_LISTENING uint32 request id A server may reply with a MUX_S_OK, a MUX_S_PERMISSION_DENIED or a MUX_S_FAILURE. 9. Requesting proxy mode A client may request that the the control connection be placed in proxy mode: uint32 MUX_C_PROXY uint32 request id When a mux master receives this message, it will reply with a confirmation: uint32 MUX_S_PROXY uint32 request id And go into proxy mode. All subsequent data over the connection will be formatted as unencrypted, unpadded, SSH transport messages: uint32 packet length byte 0 (padding length) byte packet type byte[packet length - 2] ... The mux master will accept most connection messages and global requests, and will translate channel identifiers to ensure that the proxy client has globally unique channel numbers (i.e. a proxy client need not worry about collisions with other clients). 10. Status messages The MUX_S_OK message is empty: uint32 MUX_S_OK uint32 client request id The MUX_S_PERMISSION_DENIED and MUX_S_FAILURE include a reason: uint32 MUX_S_PERMISSION_DENIED uint32 client request id string reason uint32 MUX_S_FAILURE uint32 client request id string reason 11. Protocol numbers #define MUX_MSG_HELLO 0x00000001 #define MUX_C_NEW_SESSION 0x10000002 #define MUX_C_ALIVE_CHECK 0x10000004 #define MUX_C_TERMINATE 0x10000005 #define MUX_C_OPEN_FWD 0x10000006 #define MUX_C_CLOSE_FWD 0x10000007 #define MUX_C_NEW_STDIO_FWD 0x10000008 #define MUX_C_STOP_LISTENING 0x10000009 #define MUX_S_OK 0x80000001 #define MUX_S_PERMISSION_DENIED 0x80000002 #define MUX_S_FAILURE 0x80000003 #define MUX_S_EXIT_MESSAGE 0x80000004 #define MUX_S_ALIVE 0x80000005 #define MUX_S_SESSION_OPENED 0x80000006 #define MUX_S_REMOTE_PORT 0x80000007 #define MUX_S_TTY_ALLOC_FAIL 0x80000008 #define MUX_FWD_LOCAL 1 #define MUX_FWD_REMOTE 2 #define MUX_FWD_DYNAMIC 3 XXX TODO XXX extended status (e.g. report open channels / forwards) XXX lock (maybe) XXX watch in/out traffic (pre/post crypto) XXX inject packet (what about replies) XXX server->client error/warning notifications XXX send signals via mux XXX ^Z support in passengers XXX extensions for multi-agent XXX extensions for multi-X11 XXX session inspection via master XXX signals via mux request XXX list active connections via mux $OpenBSD: PROTOCOL.mux,v 1.11 2018/09/26 07:30:05 djm Exp $ PKp:1]qHHPROTOCOL.cve-2023-48795nu[This documents OpenSSH's deviations and extensions to the published SSH protocol. Note that OpenSSH's sftp and sftp-server implement revision 3 of the SSH filexfer protocol described in: https://www.openssh.com/txt/draft-ietf-secsh-filexfer-02.txt Newer versions of the draft will not be supported, though some features are individually implemented as extensions described below. The protocol used by OpenSSH's ssh-agent is described in the file PROTOCOL.agent 1. Transport protocol changes 1.1. transport: Protocol 2 MAC algorithm "umac-64@openssh.com" This is a new transport-layer MAC method using the UMAC algorithm (rfc4418). This method is identical to the "umac-64" method documented in: https://www.openssh.com/txt/draft-miller-secsh-umac-01.txt 1.2. transport: Protocol 2 compression algorithm "zlib@openssh.com" This transport-layer compression method uses the zlib compression algorithm (identical to the "zlib" method in rfc4253), but delays the start of compression until after authentication has completed. This avoids exposing compression code to attacks from unauthenticated users. The method is documented in: https://www.openssh.com/txt/draft-miller-secsh-compression-delayed-00.txt 1.3. transport: New public key algorithms "ssh-rsa-cert-v01@openssh.com", "ssh-dsa-cert-v01@openssh.com", "ecdsa-sha2-nistp256-cert-v01@openssh.com", "ecdsa-sha2-nistp384-cert-v01@openssh.com" and "ecdsa-sha2-nistp521-cert-v01@openssh.com" OpenSSH introduces new public key algorithms to support certificate authentication for users and host keys. These methods are documented in the file PROTOCOL.certkeys 1.4. transport: Elliptic Curve cryptography OpenSSH supports ECC key exchange and public key authentication as specified in RFC5656. Only the ecdsa-sha2-nistp256, ecdsa-sha2-nistp384 and ecdsa-sha2-nistp521 curves over GF(p) are supported. Elliptic curve points encoded using point compression are NOT accepted or generated. 1.5 transport: Protocol 2 Encrypt-then-MAC MAC algorithms OpenSSH supports MAC algorithms, whose names contain "-etm", that perform the calculations in a different order to that defined in RFC 4253. These variants use the so-called "encrypt then MAC" ordering, calculating the MAC over the packet ciphertext rather than the plaintext. This ordering closes a security flaw in the SSH transport protocol, where decryption of unauthenticated ciphertext provided a "decryption oracle" that could, in conjunction with cipher flaws, reveal session plaintext. Specifically, the "-etm" MAC algorithms modify the transport protocol to calculate the MAC over the packet ciphertext and to send the packet length unencrypted. This is necessary for the transport to obtain the length of the packet and location of the MAC tag so that it may be verified without decrypting unauthenticated data. As such, the MAC covers: mac = MAC(key, sequence_number || packet_length || encrypted_packet) where "packet_length" is encoded as a uint32 and "encrypted_packet" contains: byte padding_length byte[n1] payload; n1 = packet_length - padding_length - 1 byte[n2] random padding; n2 = padding_length 1.6 transport: AES-GCM OpenSSH supports the AES-GCM algorithm as specified in RFC 5647. Because of problems with the specification of the key exchange the behaviour of OpenSSH differs from the RFC as follows: AES-GCM is only negotiated as the cipher algorithms "aes128-gcm@openssh.com" or "aes256-gcm@openssh.com" and never as an MAC algorithm. Additionally, if AES-GCM is selected as the cipher the exchanged MAC algorithms are ignored and there doesn't have to be a matching MAC. 1.7 transport: chacha20-poly1305@openssh.com authenticated encryption OpenSSH supports authenticated encryption using ChaCha20 and Poly1305 as described in PROTOCOL.chacha20poly1305. 1.8 transport: curve25519-sha256@libssh.org key exchange algorithm OpenSSH supports the use of ECDH in Curve25519 for key exchange as described at: http://git.libssh.org/users/aris/libssh.git/plain/doc/curve25519-sha256@libssh.org.txt?h=curve25519 2. Connection protocol changes 2.1. connection: Channel write close extension "eow@openssh.com" The SSH connection protocol (rfc4254) provides the SSH_MSG_CHANNEL_EOF message to allow an endpoint to signal its peer that it will send no more data over a channel. Unfortunately, there is no symmetric way for an endpoint to request that its peer should cease sending data to it while still keeping the channel open for the endpoint to send data to the peer. This is desirable, since it saves the transmission of data that would otherwise need to be discarded and it allows an endpoint to signal local processes of the condition, e.g. by closing the corresponding file descriptor. OpenSSH implements a channel extension message to perform this signalling: "eow@openssh.com" (End Of Write). This message is sent by an endpoint when the local output of a session channel is closed or experiences a write error. The message is formatted as follows: byte SSH_MSG_CHANNEL_REQUEST uint32 recipient channel string "eow@openssh.com" boolean FALSE On receiving this message, the peer SHOULD cease sending data of the channel and MAY signal the process from which the channel data originates (e.g. by closing its read file descriptor). As with the symmetric SSH_MSG_CHANNEL_EOF message, the channel does remain open after a "eow@openssh.com" has been sent and more data may still be sent in the other direction. This message does not consume window space and may be sent even if no window space is available. NB. due to certain broken SSH implementations aborting upon receipt of this message (in contravention of RFC4254 section 5.4), this message is only sent to OpenSSH peers (identified by banner). Other SSH implementations may be whitelisted to receive this message upon request. 2.2. connection: disallow additional sessions extension "no-more-sessions@openssh.com" Most SSH connections will only ever request a single session, but a attacker may abuse a running ssh client to surreptitiously open additional sessions under their control. OpenSSH provides a global request "no-more-sessions@openssh.com" to mitigate this attack. When an OpenSSH client expects that it will never open another session (i.e. it has been started with connection multiplexing disabled), it will send the following global request: byte SSH_MSG_GLOBAL_REQUEST string "no-more-sessions@openssh.com" char want-reply On receipt of such a message, an OpenSSH server will refuse to open future channels of type "session" and instead immediately abort the connection. Note that this is not a general defence against compromised clients (that is impossible), but it thwarts a simple attack. NB. due to certain broken SSH implementations aborting upon receipt of this message, the no-more-sessions request is only sent to OpenSSH servers (identified by banner). Other SSH implementations may be whitelisted to receive this message upon request. 2.3. connection: Tunnel forward extension "tun@openssh.com" OpenSSH supports layer 2 and layer 3 tunnelling via the "tun@openssh.com" channel type. This channel type supports forwarding of network packets with datagram boundaries intact between endpoints equipped with interfaces like the BSD tun(4) device. Tunnel forwarding channels are requested by the client with the following packet: byte SSH_MSG_CHANNEL_OPEN string "tun@openssh.com" uint32 sender channel uint32 initial window size uint32 maximum packet size uint32 tunnel mode uint32 remote unit number The "tunnel mode" parameter specifies whether the tunnel should forward layer 2 frames or layer 3 packets. It may take one of the following values: SSH_TUNMODE_POINTOPOINT 1 /* layer 3 packets */ SSH_TUNMODE_ETHERNET 2 /* layer 2 frames */ The "tunnel unit number" specifies the remote interface number, or may be 0x7fffffff to allow the server to automatically chose an interface. A server that is not willing to open a client-specified unit should refuse the request with a SSH_MSG_CHANNEL_OPEN_FAILURE error. On successful open, the server should reply with SSH_MSG_CHANNEL_OPEN_SUCCESS. Once established the client and server may exchange packet or frames over the tunnel channel by encapsulating them in SSH protocol strings and sending them as channel data. This ensures that packet boundaries are kept intact. Specifically, packets are transmitted using normal SSH_MSG_CHANNEL_DATA packets: byte SSH_MSG_CHANNEL_DATA uint32 recipient channel string data The contents of the "data" field for layer 3 packets is: uint32 packet length uint32 address family byte[packet length - 4] packet data The "address family" field identifies the type of packet in the message. It may be one of: SSH_TUN_AF_INET 2 /* IPv4 */ SSH_TUN_AF_INET6 24 /* IPv6 */ The "packet data" field consists of the IPv4/IPv6 datagram itself without any link layer header. The contents of the "data" field for layer 2 packets is: uint32 packet length byte[packet length] frame The "frame" field contains an IEEE 802.3 Ethernet frame, including header. 2.4. connection: Unix domain socket forwarding OpenSSH supports local and remote Unix domain socket forwarding using the "streamlocal" extension. Forwarding is initiated as per TCP sockets but with a single path instead of a host and port. Similar to direct-tcpip, direct-streamlocal is sent by the client to request that the server make a connection to a Unix domain socket. byte SSH_MSG_CHANNEL_OPEN string "direct-streamlocal@openssh.com" uint32 sender channel uint32 initial window size uint32 maximum packet size string socket path string reserved uint32 reserved Similar to forwarded-tcpip, forwarded-streamlocal is sent by the server when the client has previously send the server a streamlocal-forward GLOBAL_REQUEST. byte SSH_MSG_CHANNEL_OPEN string "forwarded-streamlocal@openssh.com" uint32 sender channel uint32 initial window size uint32 maximum packet size string socket path string reserved for future use The reserved field is not currently defined and is ignored on the remote end. It is intended to be used in the future to pass information about the socket file, such as ownership and mode. The client currently sends the empty string for this field. Similar to tcpip-forward, streamlocal-forward is sent by the client to request remote forwarding of a Unix domain socket. byte SSH2_MSG_GLOBAL_REQUEST string "streamlocal-forward@openssh.com" boolean TRUE string socket path Similar to cancel-tcpip-forward, cancel-streamlocal-forward is sent by the client cancel the forwarding of a Unix domain socket. byte SSH2_MSG_GLOBAL_REQUEST string "cancel-streamlocal-forward@openssh.com" boolean FALSE string socket path 2.5. connection: hostkey update and rotation "hostkeys-00@openssh.com" and "hostkeys-prove-00@openssh.com" OpenSSH supports a protocol extension allowing a server to inform a client of all its protocol v.2 host keys after user-authentication has completed. byte SSH_MSG_GLOBAL_REQUEST string "hostkeys-00@openssh.com" string[] hostkeys Upon receiving this message, a client should check which of the supplied host keys are present in known_hosts. Note that the server may send key types that the client does not support. The client should disgregard such keys if they are received. If the client identifies any keys that are not present for the host, it should send a "hostkeys-prove@openssh.com" message to request the server prove ownership of the private half of the key. byte SSH_MSG_GLOBAL_REQUEST string "hostkeys-prove-00@openssh.com" char 1 /* want-reply */ string[] hostkeys When a server receives this message, it should generate a signature using each requested key over the following: string "hostkeys-prove-00@openssh.com" string session identifier string hostkey These signatures should be included in the reply, in the order matching the hostkeys in the request: byte SSH_MSG_REQUEST_SUCCESS string[] signatures When the client receives this reply (and not a failure), it should validate the signatures and may update its known_hosts file, adding keys that it has not seen before and deleting keys for the server host that are no longer offered. These extensions let a client learn key types that it had not previously encountered, thereby allowing it to potentially upgrade from weaker key algorithms to better ones. It also supports graceful key rotation: a server may offer multiple keys of the same type for a period (to give clients an opportunity to learn them using this extension) before removing the deprecated key from those offered. 2.6. connection: SIGINFO support for "signal" channel request The SSH channels protocol (RFC4254 section 6.9) supports sending a signal to a session attached to a channel. OpenSSH supports one extension signal "INFO@openssh.com" that allows sending SIGINFO on BSD-derived systems. 3. SFTP protocol changes 3.1. sftp: Reversal of arguments to SSH_FXP_SYMLINK When OpenSSH's sftp-server was implemented, the order of the arguments to the SSH_FXP_SYMLINK method was inadvertently reversed. Unfortunately, the reversal was not noticed until the server was widely deployed. Since fixing this to follow the specification would cause incompatibility, the current order was retained. For correct operation, clients should send SSH_FXP_SYMLINK as follows: uint32 id string targetpath string linkpath 3.2. sftp: Server extension announcement in SSH_FXP_VERSION OpenSSH's sftp-server lists the extensions it supports using the standard extension announcement mechanism in the SSH_FXP_VERSION server hello packet: uint32 3 /* protocol version */ string ext1-name string ext1-version string ext2-name string ext2-version ... string extN-name string extN-version Each extension reports its integer version number as an ASCII encoded string, e.g. "1". The version will be incremented if the extension is ever changed in an incompatible way. The server MAY advertise the same extension with multiple versions (though this is unlikely). Clients MUST check the version number before attempting to use the extension. 3.3. sftp: Extension request "posix-rename@openssh.com" This operation provides a rename operation with POSIX semantics, which are different to those provided by the standard SSH_FXP_RENAME in draft-ietf-secsh-filexfer-02.txt. This request is implemented as a SSH_FXP_EXTENDED request with the following format: uint32 id string "posix-rename@openssh.com" string oldpath string newpath On receiving this request the server will perform the POSIX operation rename(oldpath, newpath) and will respond with a SSH_FXP_STATUS message. This extension is advertised in the SSH_FXP_VERSION hello with version "1". 3.4. sftp: Extension requests "statvfs@openssh.com" and "fstatvfs@openssh.com" These requests correspond to the statvfs and fstatvfs POSIX system interfaces. The "statvfs@openssh.com" request operates on an explicit pathname, and is formatted as follows: uint32 id string "statvfs@openssh.com" string path The "fstatvfs@openssh.com" operates on an open file handle: uint32 id string "fstatvfs@openssh.com" string handle These requests return a SSH_FXP_STATUS reply on failure. On success they return the following SSH_FXP_EXTENDED_REPLY reply: uint32 id uint64 f_bsize /* file system block size */ uint64 f_frsize /* fundamental fs block size */ uint64 f_blocks /* number of blocks (unit f_frsize) */ uint64 f_bfree /* free blocks in file system */ uint64 f_bavail /* free blocks for non-root */ uint64 f_files /* total file inodes */ uint64 f_ffree /* free file inodes */ uint64 f_favail /* free file inodes for to non-root */ uint64 f_fsid /* file system id */ uint64 f_flag /* bit mask of f_flag values */ uint64 f_namemax /* maximum filename length */ The values of the f_flag bitmask are as follows: #define SSH_FXE_STATVFS_ST_RDONLY 0x1 /* read-only */ #define SSH_FXE_STATVFS_ST_NOSUID 0x2 /* no setuid */ Both the "statvfs@openssh.com" and "fstatvfs@openssh.com" extensions are advertised in the SSH_FXP_VERSION hello with version "2". 3.5. sftp: Extension request "hardlink@openssh.com" This request is for creating a hard link to a regular file. This request is implemented as a SSH_FXP_EXTENDED request with the following format: uint32 id string "hardlink@openssh.com" string oldpath string newpath On receiving this request the server will perform the operation link(oldpath, newpath) and will respond with a SSH_FXP_STATUS message. This extension is advertised in the SSH_FXP_VERSION hello with version "1". 3.6. sftp: Extension request "fsync@openssh.com" This request asks the server to call fsync(2) on an open file handle. uint32 id string "fsync@openssh.com" string handle One receiving this request, a server will call fsync(handle_fd) and will respond with a SSH_FXP_STATUS message. This extension is advertised in the SSH_FXP_VERSION hello with version "1". 4. Miscellaneous changes 4.1 Public key format OpenSSH public keys, as generated by ssh-keygen(1) and appearing in authorized_keys files, are formatted as a single line of text consisting of the public key algorithm name followed by a base64-encoded key blob. The public key blob (before base64 encoding) is the same format used for the encoding of public keys sent on the wire: as described in RFC4253 section 6.6 for RSA and DSA keys, RFC5656 section 3.1 for ECDSA keys and the "New public key formats" section of PROTOCOL.certkeys for the OpenSSH certificate formats. 4.2 Private key format OpenSSH private keys, as generated by ssh-keygen(1) use the format described in PROTOCOL.key by default. As a legacy option, PEM format (RFC7468) private keys are also supported for RSA, DSA and ECDSA keys and were the default format before OpenSSH 7.8. 4.3 KRL format OpenSSH supports a compact format for Key Revocation Lists (KRLs). This format is described in the PROTOCOL.krl file. 4.4 Connection multiplexing OpenSSH's connection multiplexing uses messages as described in PROTOCOL.mux over a Unix domain socket for communications between a master instance and later clients. $OpenBSD: PROTOCOL,v 1.36 2018/10/02 12:51:58 djm Exp $ PKp:1]6 ] PROTOCOL.krlnu[This describes the key/certificate revocation list format for OpenSSH. 1. Overall format The KRL consists of a header and zero or more sections. The header is: #define KRL_MAGIC 0x5353484b524c0a00ULL /* "SSHKRL\n\0" */ #define KRL_FORMAT_VERSION 1 uint64 KRL_MAGIC uint32 KRL_FORMAT_VERSION uint64 krl_version uint64 generated_date uint64 flags string reserved string comment Where "krl_version" is a version number that increases each time the KRL is modified, "generated_date" is the time in seconds since 1970-01-01 00:00:00 UTC that the KRL was generated, "comment" is an optional comment and "reserved" an extension field whose contents are currently ignored. No "flags" are currently defined. Following the header are zero or more sections, each consisting of: byte section_type string section_data Where "section_type" indicates the type of the "section_data". An exception to this is the KRL_SECTION_SIGNATURE section, that has a slightly different format (see below). The available section types are: #define KRL_SECTION_CERTIFICATES 1 #define KRL_SECTION_EXPLICIT_KEY 2 #define KRL_SECTION_FINGERPRINT_SHA1 3 #define KRL_SECTION_SIGNATURE 4 #define KRL_SECTION_FINGERPRINT_SHA256 5 2. Certificate section These sections use type KRL_SECTION_CERTIFICATES to revoke certificates by serial number or key ID. The consist of the CA key that issued the certificates to be revoked and a reserved field whose contents is currently ignored. string ca_key string reserved Where "ca_key" is the standard SSH wire serialisation of the CA's public key. Alternately, "ca_key" may be an empty string to indicate the certificate section applies to all CAs (this is most useful when revoking key IDs). Followed by one or more sections: byte cert_section_type string cert_section_data The certificate section types are: #define KRL_SECTION_CERT_SERIAL_LIST 0x20 #define KRL_SECTION_CERT_SERIAL_RANGE 0x21 #define KRL_SECTION_CERT_SERIAL_BITMAP 0x22 #define KRL_SECTION_CERT_KEY_ID 0x23 2.1 Certificate serial list section This section is identified as KRL_SECTION_CERT_SERIAL_LIST. It revokes certificates by listing their serial numbers. The cert_section_data in this case contains: uint64 revoked_cert_serial uint64 ... This section may appear multiple times. 2.2. Certificate serial range section These sections use type KRL_SECTION_CERT_SERIAL_RANGE and hold a range of serial numbers of certificates: uint64 serial_min uint64 serial_max All certificates in the range serial_min <= serial <= serial_max are revoked. This section may appear multiple times. 2.3. Certificate serial bitmap section Bitmap sections use type KRL_SECTION_CERT_SERIAL_BITMAP and revoke keys by listing their serial number in a bitmap. uint64 serial_offset mpint revoked_keys_bitmap A bit set at index N in the bitmap corresponds to revocation of a keys with serial number (serial_offset + N). This section may appear multiple times. 2.4. Revoked key ID sections KRL_SECTION_CERT_KEY_ID sections revoke particular certificate "key ID" strings. This may be useful in revoking all certificates associated with a particular identity, e.g. a host or a user. string key_id[0] ... This section must contain at least one "key_id". This section may appear multiple times. 3. Explicit key sections These sections, identified as KRL_SECTION_EXPLICIT_KEY, revoke keys (not certificates). They are less space efficient than serial numbers, but are able to revoke plain keys. string public_key_blob[0] .... This section must contain at least one "public_key_blob". The blob must be a raw key (i.e. not a certificate). This section may appear multiple times. 4. SHA1/SHA256 fingerprint sections These sections, identified as KRL_SECTION_FINGERPRINT_SHA1 and KRL_SECTION_FINGERPRINT_SHA256, revoke plain keys (i.e. not certificates) by listing their hashes: string public_key_hash[0] .... This section must contain at least one "public_key_hash". The hash blob is obtained by taking the SHA1 or SHA256 hash of the public key blob. Hashes in this section must appear in numeric order, treating each hash as a big-endian integer. This section may appear multiple times. 5. KRL signature sections The KRL_SECTION_SIGNATURE section serves a different purpose to the preceding ones: to provide cryptographic authentication of a KRL that is retrieved over a channel that does not provide integrity protection. Its format is slightly different to the previously-described sections: in order to simplify the signature generation, it includes as a "body" two string components instead of one. byte KRL_SECTION_SIGNATURE string signature_key string signature The signature is calculated over the entire KRL from the KRL_MAGIC to this subsection's "signature_key", including both and using the signature generation rules appropriate for the type of "signature_key". This section must appear last in the KRL. If multiple signature sections appear, they must appear consecutively at the end of the KRL file. Implementations that retrieve KRLs over untrusted channels must verify signatures. Signature sections are optional for KRLs distributed by trusted means. $OpenBSD: PROTOCOL.krl,v 1.5 2018/09/12 01:21:34 djm Exp $ PKp:1]U>PROTOCOL.agentnu[This file used to contain a description of the SSH agent protocol implemented by OpenSSH. It has since been superseded by an Internet- draft that is available from: https://tools.ietf.org/html/draft-miller-ssh-agent-02 PKp:1]ġ&O README.tunnu[How to use OpenSSH-based virtual private networks ------------------------------------------------- OpenSSH contains support for VPN tunneling using the tun(4) network tunnel pseudo-device which is available on most platforms, either for layer 2 or 3 traffic. The following brief instructions on how to use this feature use a network configuration specific to the OpenBSD operating system. (1) Server: Enable support for SSH tunneling To enable the ssh server to accept tunnel requests from the client, you have to add the following option to the ssh server configuration file (/etc/ssh/sshd_config): PermitTunnel yes Restart the server or send the hangup signal (SIGHUP) to let the server reread it's configuration. (2) Server: Restrict client access and assign the tunnel The OpenSSH server simply uses the file /root/.ssh/authorized_keys to restrict the client to connect to a specified tunnel and to automatically start the related interface configuration command. These settings are optional but recommended: tunnel="1",command="sh /etc/netstart tun1" ssh-rsa ... reyk@openbsd.org (3) Client: Configure the local network tunnel interface Use the hostname.if(5) interface-specific configuration file to set up the network tunnel configuration with OpenBSD. For example, use the following configuration in /etc/hostname.tun0 to set up the layer 3 tunnel on the client: inet 192.168.5.1 255.255.255.252 192.168.5.2 OpenBSD also supports layer 2 tunneling over the tun device by adding the link0 flag: inet 192.168.1.78 255.255.255.0 192.168.1.255 link0 Layer 2 tunnels can be used in combination with an Ethernet bridge(4) interface, like the following example for /etc/bridgename.bridge0: add tun0 add sis0 up (4) Client: Configure the OpenSSH client To establish tunnel forwarding for connections to a specified remote host by default, use the following ssh client configuration for the privileged user (in /root/.ssh/config): Host sshgateway Tunnel yes TunnelDevice 0:any PermitLocalCommand yes LocalCommand sh /etc/netstart tun0 A more complicated configuration is possible to establish a tunnel to a remote host which is not directly accessible by the client. The following example describes a client configuration to connect to the remote host over two ssh hops in between. It uses the OpenSSH ProxyCommand in combination with the nc(1) program to forward the final ssh tunnel destination over multiple ssh sessions. Host access.somewhere.net User puffy Host dmzgw User puffy ProxyCommand ssh access.somewhere.net nc dmzgw 22 Host sshgateway Tunnel Ethernet TunnelDevice 0:any PermitLocalCommand yes LocalCommand sh /etc/netstart tun0 ProxyCommand ssh dmzgw nc sshgateway 22 The following network plan illustrates the previous configuration in combination with layer 2 tunneling and Ethernet bridging. +--------+ ( ) +----------------------+ | Client |------( Internet )-----| access.somewhere.net | +--------+ ( ) +----------------------+ : 192.168.1.78 | :............................. +-------+ Forwarded ssh connection : | dmzgw | Layer 2 tunnel : +-------+ : | : | : +------------+ :......| sshgateway | | +------------+ --- real connection Bridge -> | +----------+ ... "virtual connection" [ X ]--------| somehost | [X] switch +----------+ 192.168.1.25 (5) Client: Connect to the server and establish the tunnel Finally connect to the OpenSSH server to establish the tunnel by using the following command: ssh sshgateway It is also possible to tell the client to fork into the background after the connection has been successfully established: ssh -f sshgateway true Without the ssh configuration done in step (4), it is also possible to use the following command lines: ssh -fw 0:1 sshgateway true ifconfig tun0 192.168.5.1 192.168.5.2 netmask 255.255.255.252 Using OpenSSH tunnel forwarding is a simple way to establish secure and ad hoc virtual private networks. Possible fields of application could be wireless networks or administrative VPN tunnels. Nevertheless, ssh tunneling requires some packet header overhead and runs on top of TCP. It is still suggested to use the IP Security Protocol (IPSec) for robust and permanent VPN connections and to interconnect corporate networks. Reyk Floeter $OpenBSD: README.tun,v 1.4 2006/03/28 00:12:31 deraadt Exp $ PKp:1]!q!//PROTOCOL.certkeysnu[This document describes a simple public-key certificate authentication system for use by SSH. Background ---------- The SSH protocol currently supports a simple public key authentication mechanism. Unlike other public key implementations, SSH eschews the use of X.509 certificates and uses raw keys. This approach has some benefits relating to simplicity of configuration and minimisation of attack surface, but it does not support the important use-cases of centrally managed, passwordless authentication and centrally certified host keys. These protocol extensions build on the simple public key authentication system already in SSH to allow certificate-based authentication. The certificates used are not traditional X.509 certificates, with numerous options and complex encoding rules, but something rather more minimal: a key, some identity information and usage options that have been signed with some other trusted key. A sshd server may be configured to allow authentication via certified keys, by extending the existing ~/.ssh/authorized_keys mechanism to allow specification of certification authority keys in addition to raw user keys. The ssh client will support automatic verification of acceptance of certified host keys, by adding a similar ability to specify CA keys in ~/.ssh/known_hosts. All certificate types include certification information along with the public key that is used to sign challenges. In OpenSSH, ssh-keygen performs the CA signing operation. Certified keys are represented using new key types: ssh-rsa-cert-v01@openssh.com ssh-dss-cert-v01@openssh.com ecdsa-sha2-nistp256-cert-v01@openssh.com ecdsa-sha2-nistp384-cert-v01@openssh.com ecdsa-sha2-nistp521-cert-v01@openssh.com ssh-ed25519-cert-v01@openssh.com Two additional types exist for RSA certificates to force use of SHA-2 signatures (SHA-256 and SHA-512 respectively): rsa-sha2-256-cert-v01@openssh.com rsa-sha2-512-cert-v01@openssh.com These RSA/SHA-2 types should not appear in keys at rest or transmitted on their wire, but do appear in a SSH_MSG_KEXINIT's host-key algorithms field or in the "public key algorithm name" field of a "publickey" SSH_USERAUTH_REQUEST to indicate that the signature will use the specified algorithm. Protocol extensions ------------------- The SSH wire protocol includes several extensibility mechanisms. These modifications shall take advantage of namespaced public key algorithm names to add support for certificate authentication without breaking the protocol - implementations that do not support the extensions will simply ignore them. Authentication using the new key formats described below proceeds using the existing SSH "publickey" authentication method described in RFC4252 section 7. New public key formats ---------------------- The certificate key types take a similar high-level format (note: data types and encoding are as per RFC4251 section 5). The serialised wire encoding of these certificates is also used for storing them on disk. #define SSH_CERT_TYPE_USER 1 #define SSH_CERT_TYPE_HOST 2 RSA certificate string "ssh-rsa-cert-v01@openssh.com" string nonce mpint e mpint n uint64 serial uint32 type string key id string valid principals uint64 valid after uint64 valid before string critical options string extensions string reserved string signature key string signature DSA certificate string "ssh-dss-cert-v01@openssh.com" string nonce mpint p mpint q mpint g mpint y uint64 serial uint32 type string key id string valid principals uint64 valid after uint64 valid before string critical options string extensions string reserved string signature key string signature ECDSA certificate string "ecdsa-sha2-nistp256-cert-v01@openssh.com" | "ecdsa-sha2-nistp384-cert-v01@openssh.com" | "ecdsa-sha2-nistp521-cert-v01@openssh.com" string nonce string curve string public_key uint64 serial uint32 type string key id string valid principals uint64 valid after uint64 valid before string critical options string extensions string reserved string signature key string signature ED25519 certificate string "ssh-ed25519-cert-v01@openssh.com" string nonce string pk uint64 serial uint32 type string key id string valid principals uint64 valid after uint64 valid before string critical options string extensions string reserved string signature key string signature The nonce field is a CA-provided random bitstring of arbitrary length (but typically 16 or 32 bytes) included to make attacks that depend on inducing collisions in the signature hash infeasible. e and n are the RSA exponent and public modulus respectively. p, q, g, y are the DSA parameters as described in FIPS-186-2. curve and public key are respectively the ECDSA "[identifier]" and "Q" defined in section 3.1 of RFC5656. pk is the encoded Ed25519 public key as defined by draft-josefsson-eddsa-ed25519-03. serial is an optional certificate serial number set by the CA to provide an abbreviated way to refer to certificates from that CA. If a CA does not wish to number its certificates it must set this field to zero. type specifies whether this certificate is for identification of a user or a host using a SSH_CERT_TYPE_... value. key id is a free-form text field that is filled in by the CA at the time of signing; the intention is that the contents of this field are used to identify the identity principal in log messages. "valid principals" is a string containing zero or more principals as strings packed inside it. These principals list the names for which this certificate is valid; hostnames for SSH_CERT_TYPE_HOST certificates and usernames for SSH_CERT_TYPE_USER certificates. As a special case, a zero-length "valid principals" field means the certificate is valid for any principal of the specified type. "valid after" and "valid before" specify a validity period for the certificate. Each represents a time in seconds since 1970-01-01 00:00:00. A certificate is considered valid if: valid after <= current time < valid before critical options is a set of zero or more key options encoded as below. All such options are "critical" in the sense that an implementation must refuse to authorise a key that has an unrecognised option. extensions is a set of zero or more optional extensions. These extensions are not critical, and an implementation that encounters one that it does not recognise may safely ignore it. Generally, critical options are used to control features that restrict access where extensions are used to enable features that grant access. This ensures that certificates containing unknown restrictions do not inadvertently grant access while allowing new protocol features to be enabled via extensions without breaking certificates' backwards compatibility. The reserved field is currently unused and is ignored in this version of the protocol. The signature key field contains the CA key used to sign the certificate. The valid key types for CA keys are ssh-rsa, ssh-dss, ssh-ed25519 and the ECDSA types ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521. "Chained" certificates, where the signature key type is a certificate type itself are NOT supported. Note that it is possible for a RSA certificate key to be signed by a Ed25519 or ECDSA CA key and vice-versa. signature is computed over all preceding fields from the initial string up to, and including the signature key. Signatures are computed and encoded according to the rules defined for the CA's public key algorithm (RFC4253 section 6.6 for ssh-rsa and ssh-dss, RFC5656 for the ECDSA types), and draft-josefsson-eddsa-ed25519-03 for Ed25519. Critical options ---------------- The critical options section of the certificate specifies zero or more options on the certificates validity. The format of this field is a sequence of zero or more tuples: string name string data Options must be lexically ordered by "name" if they appear in the sequence. Each named option may only appear once in a certificate. The name field identifies the option and the data field encodes option-specific information (see below). All options are "critical", if an implementation does not recognise a option then the validating party should refuse to accept the certificate. Custom options should append the originating author or organisation's domain name to the option name, e.g. "my-option@example.com". No critical options are defined for host certificates at present. The supported user certificate options and the contents and structure of their data fields are: Name Format Description ----------------------------------------------------------------------------- force-command string Specifies a command that is executed (replacing any the user specified on the ssh command-line) whenever this key is used for authentication. source-address string Comma-separated list of source addresses from which this certificate is accepted for authentication. Addresses are specified in CIDR format (nn.nn.nn.nn/nn or hhhh::hhhh/nn). If this option is not present then certificates may be presented from any source address. Extensions ---------- The extensions section of the certificate specifies zero or more non-critical certificate extensions. The encoding and ordering of extensions in this field is identical to that of the critical options, as is the requirement that each name appear only once. If an implementation does not recognise an extension, then it should ignore it. Custom options should append the originating author or organisation's domain name to the option name, e.g. "my-option@example.com". No extensions are defined for host certificates at present. The supported user certificate extensions and the contents and structure of their data fields are: Name Format Description ----------------------------------------------------------------------------- permit-X11-forwarding empty Flag indicating that X11 forwarding should be permitted. X11 forwarding will be refused if this option is absent. permit-agent-forwarding empty Flag indicating that agent forwarding should be allowed. Agent forwarding must not be permitted unless this option is present. permit-port-forwarding empty Flag indicating that port-forwarding should be allowed. If this option is not present then no port forwarding will be allowed. permit-pty empty Flag indicating that PTY allocation should be permitted. In the absence of this option PTY allocation will be disabled. permit-user-rc empty Flag indicating that execution of ~/.ssh/rc should be permitted. Execution of this script will not be permitted if this option is not present. $OpenBSD: PROTOCOL.certkeys,v 1.16 2018/10/26 01:23:03 djm Exp $ PKp:1]{RU  README.privsepnu[Privilege separation, or privsep, is method in OpenSSH by which operations that require root privilege are performed by a separate privileged monitor process. Its purpose is to prevent privilege escalation by containing corruption to an unprivileged process. More information is available at: http://www.citi.umich.edu/u/provos/ssh/privsep.html Privilege separation is now enabled by default; see the UsePrivilegeSeparation option in sshd_config(5). When privsep is enabled, during the pre-authentication phase sshd will chroot(2) to "/var/empty" and change its privileges to the "sshd" user and its primary group. sshd is a pseudo-account that should not be used by other daemons, and must be locked and should contain a "nologin" or invalid shell. You should do something like the following to prepare the privsep preauth environment: # mkdir /var/empty # chown root:sys /var/empty # chmod 755 /var/empty # groupadd sshd # useradd -g sshd -c 'sshd privsep' -d /var/empty -s /bin/false sshd /var/empty should not contain any files. configure supports the following options to change the default privsep user and chroot directory: --with-privsep-path=xxx Path for privilege separation chroot --with-privsep-user=user Specify non-privileged user for privilege separation PAM-enabled OpenSSH is known to function with privsep on AIX, FreeBSD, HP-UX (including Trusted Mode), Linux, NetBSD and Solaris. On Cygwin, Tru64 Unix and OpenServer only the pre-authentication part of privsep is supported. Post-authentication privsep is disabled automatically (so you won't see the additional process mentioned below). Note that for a normal interactive login with a shell, enabling privsep will require 1 additional process per login session. Given the following process listing (from HP-UX): UID PID PPID C STIME TTY TIME COMMAND root 1005 1 0 10:45:17 ? 0:08 /opt/openssh/sbin/sshd -u0 root 6917 1005 0 15:19:16 ? 0:00 sshd: stevesk [priv] stevesk 6919 6917 0 15:19:17 ? 0:03 sshd: stevesk@2 stevesk 6921 6919 0 15:19:17 pts/2 0:00 -bash process 1005 is the sshd process listening for new connections. process 6917 is the privileged monitor process, 6919 is the user owned sshd process and 6921 is the shell process. PKp:1]ؽ9?M?MPROTOCOLnu[This documents OpenSSH's deviations and extensions to the published SSH protocol. Note that OpenSSH's sftp and sftp-server implement revision 3 of the SSH filexfer protocol described in: https://www.openssh.com/txt/draft-ietf-secsh-filexfer-02.txt Newer versions of the draft will not be supported, though some features are individually implemented as extensions described below. The protocol used by OpenSSH's ssh-agent is described in the file PROTOCOL.agent 1. Transport protocol changes 1.1. transport: Protocol 2 MAC algorithm "umac-64@openssh.com" This is a new transport-layer MAC method using the UMAC algorithm (rfc4418). This method is identical to the "umac-64" method documented in: https://www.openssh.com/txt/draft-miller-secsh-umac-01.txt 1.2. transport: Protocol 2 compression algorithm "zlib@openssh.com" This transport-layer compression method uses the zlib compression algorithm (identical to the "zlib" method in rfc4253), but delays the start of compression until after authentication has completed. This avoids exposing compression code to attacks from unauthenticated users. The method is documented in: https://www.openssh.com/txt/draft-miller-secsh-compression-delayed-00.txt 1.3. transport: New public key algorithms "ssh-rsa-cert-v01@openssh.com", "ssh-dsa-cert-v01@openssh.com", "ecdsa-sha2-nistp256-cert-v01@openssh.com", "ecdsa-sha2-nistp384-cert-v01@openssh.com" and "ecdsa-sha2-nistp521-cert-v01@openssh.com" OpenSSH introduces new public key algorithms to support certificate authentication for users and host keys. These methods are documented in the file PROTOCOL.certkeys 1.4. transport: Elliptic Curve cryptography OpenSSH supports ECC key exchange and public key authentication as specified in RFC5656. Only the ecdsa-sha2-nistp256, ecdsa-sha2-nistp384 and ecdsa-sha2-nistp521 curves over GF(p) are supported. Elliptic curve points encoded using point compression are NOT accepted or generated. 1.5 transport: Protocol 2 Encrypt-then-MAC MAC algorithms OpenSSH supports MAC algorithms, whose names contain "-etm", that perform the calculations in a different order to that defined in RFC 4253. These variants use the so-called "encrypt then MAC" ordering, calculating the MAC over the packet ciphertext rather than the plaintext. This ordering closes a security flaw in the SSH transport protocol, where decryption of unauthenticated ciphertext provided a "decryption oracle" that could, in conjunction with cipher flaws, reveal session plaintext. Specifically, the "-etm" MAC algorithms modify the transport protocol to calculate the MAC over the packet ciphertext and to send the packet length unencrypted. This is necessary for the transport to obtain the length of the packet and location of the MAC tag so that it may be verified without decrypting unauthenticated data. As such, the MAC covers: mac = MAC(key, sequence_number || packet_length || encrypted_packet) where "packet_length" is encoded as a uint32 and "encrypted_packet" contains: byte padding_length byte[n1] payload; n1 = packet_length - padding_length - 1 byte[n2] random padding; n2 = padding_length 1.6 transport: AES-GCM OpenSSH supports the AES-GCM algorithm as specified in RFC 5647. Because of problems with the specification of the key exchange the behaviour of OpenSSH differs from the RFC as follows: AES-GCM is only negotiated as the cipher algorithms "aes128-gcm@openssh.com" or "aes256-gcm@openssh.com" and never as an MAC algorithm. Additionally, if AES-GCM is selected as the cipher the exchanged MAC algorithms are ignored and there doesn't have to be a matching MAC. 1.7 transport: chacha20-poly1305@openssh.com authenticated encryption OpenSSH supports authenticated encryption using ChaCha20 and Poly1305 as described in PROTOCOL.chacha20poly1305. 1.8 transport: curve25519-sha256@libssh.org key exchange algorithm OpenSSH supports the use of ECDH in Curve25519 for key exchange as described at: http://git.libssh.org/users/aris/libssh.git/plain/doc/curve25519-sha256@libssh.org.txt?h=curve25519 1.9 transport: strict key exchange extension OpenSSH supports a number of transport-layer hardening measures under a "strict KEX" feature. This feature is signalled similarly to the RFC8308 ext-info feature: by including a additional algorithm in the initiial SSH2_MSG_KEXINIT kex_algorithms field. The client may append "kex-strict-c-v00@openssh.com" to its kex_algorithms and the server may append "kex-strict-s-v00@openssh.com". These pseudo-algorithms are only valid in the initial SSH2_MSG_KEXINIT and MUST be ignored if they are present in subsequent SSH2_MSG_KEXINIT packets. When an endpoint that supports this extension observes this algorithm name in a peer's KEXINIT packet, it MUST make the following changes to the the protocol: a) During initial KEX, terminate the connection if any unexpected or out-of-sequence packet is received. This includes terminating the connection if the first packet received is not SSH2_MSG_KEXINIT. Unexpected packets for the purpose of strict KEX include messages that are otherwise valid at any time during the connection such as SSH2_MSG_DEBUG and SSH2_MSG_IGNORE. b) After sending or receiving a SSH2_MSG_NEWKEYS message, reset the packet sequence number to zero. This behaviour persists for the duration of the connection (i.e. not just the first SSH2_MSG_NEWKEYS). 2. Connection protocol changes 2.1. connection: Channel write close extension "eow@openssh.com" The SSH connection protocol (rfc4254) provides the SSH_MSG_CHANNEL_EOF message to allow an endpoint to signal its peer that it will send no more data over a channel. Unfortunately, there is no symmetric way for an endpoint to request that its peer should cease sending data to it while still keeping the channel open for the endpoint to send data to the peer. This is desirable, since it saves the transmission of data that would otherwise need to be discarded and it allows an endpoint to signal local processes of the condition, e.g. by closing the corresponding file descriptor. OpenSSH implements a channel extension message to perform this signalling: "eow@openssh.com" (End Of Write). This message is sent by an endpoint when the local output of a session channel is closed or experiences a write error. The message is formatted as follows: byte SSH_MSG_CHANNEL_REQUEST uint32 recipient channel string "eow@openssh.com" boolean FALSE On receiving this message, the peer SHOULD cease sending data of the channel and MAY signal the process from which the channel data originates (e.g. by closing its read file descriptor). As with the symmetric SSH_MSG_CHANNEL_EOF message, the channel does remain open after a "eow@openssh.com" has been sent and more data may still be sent in the other direction. This message does not consume window space and may be sent even if no window space is available. NB. due to certain broken SSH implementations aborting upon receipt of this message (in contravention of RFC4254 section 5.4), this message is only sent to OpenSSH peers (identified by banner). Other SSH implementations may be whitelisted to receive this message upon request. 2.2. connection: disallow additional sessions extension "no-more-sessions@openssh.com" Most SSH connections will only ever request a single session, but a attacker may abuse a running ssh client to surreptitiously open additional sessions under their control. OpenSSH provides a global request "no-more-sessions@openssh.com" to mitigate this attack. When an OpenSSH client expects that it will never open another session (i.e. it has been started with connection multiplexing disabled), it will send the following global request: byte SSH_MSG_GLOBAL_REQUEST string "no-more-sessions@openssh.com" char want-reply On receipt of such a message, an OpenSSH server will refuse to open future channels of type "session" and instead immediately abort the connection. Note that this is not a general defence against compromised clients (that is impossible), but it thwarts a simple attack. NB. due to certain broken SSH implementations aborting upon receipt of this message, the no-more-sessions request is only sent to OpenSSH servers (identified by banner). Other SSH implementations may be whitelisted to receive this message upon request. 2.3. connection: Tunnel forward extension "tun@openssh.com" OpenSSH supports layer 2 and layer 3 tunnelling via the "tun@openssh.com" channel type. This channel type supports forwarding of network packets with datagram boundaries intact between endpoints equipped with interfaces like the BSD tun(4) device. Tunnel forwarding channels are requested by the client with the following packet: byte SSH_MSG_CHANNEL_OPEN string "tun@openssh.com" uint32 sender channel uint32 initial window size uint32 maximum packet size uint32 tunnel mode uint32 remote unit number The "tunnel mode" parameter specifies whether the tunnel should forward layer 2 frames or layer 3 packets. It may take one of the following values: SSH_TUNMODE_POINTOPOINT 1 /* layer 3 packets */ SSH_TUNMODE_ETHERNET 2 /* layer 2 frames */ The "tunnel unit number" specifies the remote interface number, or may be 0x7fffffff to allow the server to automatically chose an interface. A server that is not willing to open a client-specified unit should refuse the request with a SSH_MSG_CHANNEL_OPEN_FAILURE error. On successful open, the server should reply with SSH_MSG_CHANNEL_OPEN_SUCCESS. Once established the client and server may exchange packet or frames over the tunnel channel by encapsulating them in SSH protocol strings and sending them as channel data. This ensures that packet boundaries are kept intact. Specifically, packets are transmitted using normal SSH_MSG_CHANNEL_DATA packets: byte SSH_MSG_CHANNEL_DATA uint32 recipient channel string data The contents of the "data" field for layer 3 packets is: uint32 packet length uint32 address family byte[packet length - 4] packet data The "address family" field identifies the type of packet in the message. It may be one of: SSH_TUN_AF_INET 2 /* IPv4 */ SSH_TUN_AF_INET6 24 /* IPv6 */ The "packet data" field consists of the IPv4/IPv6 datagram itself without any link layer header. The contents of the "data" field for layer 2 packets is: uint32 packet length byte[packet length] frame The "frame" field contains an IEEE 802.3 Ethernet frame, including header. 2.4. connection: Unix domain socket forwarding OpenSSH supports local and remote Unix domain socket forwarding using the "streamlocal" extension. Forwarding is initiated as per TCP sockets but with a single path instead of a host and port. Similar to direct-tcpip, direct-streamlocal is sent by the client to request that the server make a connection to a Unix domain socket. byte SSH_MSG_CHANNEL_OPEN string "direct-streamlocal@openssh.com" uint32 sender channel uint32 initial window size uint32 maximum packet size string socket path string reserved uint32 reserved Similar to forwarded-tcpip, forwarded-streamlocal is sent by the server when the client has previously send the server a streamlocal-forward GLOBAL_REQUEST. byte SSH_MSG_CHANNEL_OPEN string "forwarded-streamlocal@openssh.com" uint32 sender channel uint32 initial window size uint32 maximum packet size string socket path string reserved for future use The reserved field is not currently defined and is ignored on the remote end. It is intended to be used in the future to pass information about the socket file, such as ownership and mode. The client currently sends the empty string for this field. Similar to tcpip-forward, streamlocal-forward is sent by the client to request remote forwarding of a Unix domain socket. byte SSH2_MSG_GLOBAL_REQUEST string "streamlocal-forward@openssh.com" boolean TRUE string socket path Similar to cancel-tcpip-forward, cancel-streamlocal-forward is sent by the client cancel the forwarding of a Unix domain socket. byte SSH2_MSG_GLOBAL_REQUEST string "cancel-streamlocal-forward@openssh.com" boolean FALSE string socket path 2.5. connection: hostkey update and rotation "hostkeys-00@openssh.com" and "hostkeys-prove-00@openssh.com" OpenSSH supports a protocol extension allowing a server to inform a client of all its protocol v.2 host keys after user-authentication has completed. byte SSH_MSG_GLOBAL_REQUEST string "hostkeys-00@openssh.com" string[] hostkeys Upon receiving this message, a client should check which of the supplied host keys are present in known_hosts. Note that the server may send key types that the client does not support. The client should disgregard such keys if they are received. If the client identifies any keys that are not present for the host, it should send a "hostkeys-prove@openssh.com" message to request the server prove ownership of the private half of the key. byte SSH_MSG_GLOBAL_REQUEST string "hostkeys-prove-00@openssh.com" char 1 /* want-reply */ string[] hostkeys When a server receives this message, it should generate a signature using each requested key over the following: string "hostkeys-prove-00@openssh.com" string session identifier string hostkey These signatures should be included in the reply, in the order matching the hostkeys in the request: byte SSH_MSG_REQUEST_SUCCESS string[] signatures When the client receives this reply (and not a failure), it should validate the signatures and may update its known_hosts file, adding keys that it has not seen before and deleting keys for the server host that are no longer offered. These extensions let a client learn key types that it had not previously encountered, thereby allowing it to potentially upgrade from weaker key algorithms to better ones. It also supports graceful key rotation: a server may offer multiple keys of the same type for a period (to give clients an opportunity to learn them using this extension) before removing the deprecated key from those offered. 2.6. connection: SIGINFO support for "signal" channel request The SSH channels protocol (RFC4254 section 6.9) supports sending a signal to a session attached to a channel. OpenSSH supports one extension signal "INFO@openssh.com" that allows sending SIGINFO on BSD-derived systems. 3. SFTP protocol changes 3.1. sftp: Reversal of arguments to SSH_FXP_SYMLINK When OpenSSH's sftp-server was implemented, the order of the arguments to the SSH_FXP_SYMLINK method was inadvertently reversed. Unfortunately, the reversal was not noticed until the server was widely deployed. Since fixing this to follow the specification would cause incompatibility, the current order was retained. For correct operation, clients should send SSH_FXP_SYMLINK as follows: uint32 id string targetpath string linkpath 3.2. sftp: Server extension announcement in SSH_FXP_VERSION OpenSSH's sftp-server lists the extensions it supports using the standard extension announcement mechanism in the SSH_FXP_VERSION server hello packet: uint32 3 /* protocol version */ string ext1-name string ext1-version string ext2-name string ext2-version ... string extN-name string extN-version Each extension reports its integer version number as an ASCII encoded string, e.g. "1". The version will be incremented if the extension is ever changed in an incompatible way. The server MAY advertise the same extension with multiple versions (though this is unlikely). Clients MUST check the version number before attempting to use the extension. 3.3. sftp: Extension request "posix-rename@openssh.com" This operation provides a rename operation with POSIX semantics, which are different to those provided by the standard SSH_FXP_RENAME in draft-ietf-secsh-filexfer-02.txt. This request is implemented as a SSH_FXP_EXTENDED request with the following format: uint32 id string "posix-rename@openssh.com" string oldpath string newpath On receiving this request the server will perform the POSIX operation rename(oldpath, newpath) and will respond with a SSH_FXP_STATUS message. This extension is advertised in the SSH_FXP_VERSION hello with version "1". 3.4. sftp: Extension requests "statvfs@openssh.com" and "fstatvfs@openssh.com" These requests correspond to the statvfs and fstatvfs POSIX system interfaces. The "statvfs@openssh.com" request operates on an explicit pathname, and is formatted as follows: uint32 id string "statvfs@openssh.com" string path The "fstatvfs@openssh.com" operates on an open file handle: uint32 id string "fstatvfs@openssh.com" string handle These requests return a SSH_FXP_STATUS reply on failure. On success they return the following SSH_FXP_EXTENDED_REPLY reply: uint32 id uint64 f_bsize /* file system block size */ uint64 f_frsize /* fundamental fs block size */ uint64 f_blocks /* number of blocks (unit f_frsize) */ uint64 f_bfree /* free blocks in file system */ uint64 f_bavail /* free blocks for non-root */ uint64 f_files /* total file inodes */ uint64 f_ffree /* free file inodes */ uint64 f_favail /* free file inodes for to non-root */ uint64 f_fsid /* file system id */ uint64 f_flag /* bit mask of f_flag values */ uint64 f_namemax /* maximum filename length */ The values of the f_flag bitmask are as follows: #define SSH_FXE_STATVFS_ST_RDONLY 0x1 /* read-only */ #define SSH_FXE_STATVFS_ST_NOSUID 0x2 /* no setuid */ Both the "statvfs@openssh.com" and "fstatvfs@openssh.com" extensions are advertised in the SSH_FXP_VERSION hello with version "2". 3.5. sftp: Extension request "hardlink@openssh.com" This request is for creating a hard link to a regular file. This request is implemented as a SSH_FXP_EXTENDED request with the following format: uint32 id string "hardlink@openssh.com" string oldpath string newpath On receiving this request the server will perform the operation link(oldpath, newpath) and will respond with a SSH_FXP_STATUS message. This extension is advertised in the SSH_FXP_VERSION hello with version "1". 3.6. sftp: Extension request "fsync@openssh.com" This request asks the server to call fsync(2) on an open file handle. uint32 id string "fsync@openssh.com" string handle One receiving this request, a server will call fsync(handle_fd) and will respond with a SSH_FXP_STATUS message. This extension is advertised in the SSH_FXP_VERSION hello with version "1". 4. Miscellaneous changes 4.1 Public key format OpenSSH public keys, as generated by ssh-keygen(1) and appearing in authorized_keys files, are formatted as a single line of text consisting of the public key algorithm name followed by a base64-encoded key blob. The public key blob (before base64 encoding) is the same format used for the encoding of public keys sent on the wire: as described in RFC4253 section 6.6 for RSA and DSA keys, RFC5656 section 3.1 for ECDSA keys and the "New public key formats" section of PROTOCOL.certkeys for the OpenSSH certificate formats. 4.2 Private key format OpenSSH private keys, as generated by ssh-keygen(1) use the format described in PROTOCOL.key by default. As a legacy option, PEM format (RFC7468) private keys are also supported for RSA, DSA and ECDSA keys and were the default format before OpenSSH 7.8. 4.3 KRL format OpenSSH supports a compact format for Key Revocation Lists (KRLs). This format is described in the PROTOCOL.krl file. 4.4 Connection multiplexing OpenSSH's connection multiplexing uses messages as described in PROTOCOL.mux over a Unix domain socket for communications between a master instance and later clients. $OpenBSD: PROTOCOL,v 1.36 2018/10/02 12:51:58 djm Exp $ PKp:1]l L READMEnu[See https://www.openssh.com/releasenotes.html#8.0p1 for the release notes. Please read https://www.openssh.com/report.html for bug reporting instructions and note that we do not use Github for bug reporting or patch/pull-request management. This is the port of OpenBSD's excellent OpenSSH[0] to Linux and other Unices. OpenSSH is based on the last free version of Tatu Ylonen's sample implementation with all patent-encumbered algorithms removed (to external libraries), all known security bugs fixed, new features reintroduced and many other clean-ups. OpenSSH has been created by Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt, and Dug Song. It has a homepage at https://www.openssh.com/ This port consists of the re-introduction of autoconf support, PAM support, EGD[1]/PRNGD[2] support and replacements for OpenBSD library functions that are (regrettably) absent from other unices. This port has been best tested on AIX, Cygwin, HP-UX, Linux, MacOS/X, FreeBSD, NetBSD, OpenBSD, OpenServer, Solaris and UnixWare. This version actively tracks changes in the OpenBSD CVS repository. The PAM support is now more functional than the popular packages of commercial ssh-1.2.x. It checks "account" and "session" modules for all logins, not just when using password authentication. OpenSSH depends on Zlib[3], OpenSSL[4], and optionally PAM[5] and libedit[6] There is now several mailing lists for this port of OpenSSH. Please refer to https://www.openssh.com/list.html for details on how to join. Please send bug reports and patches to the mailing list openssh-unix-dev@mindrot.org. The list is open to posting by unsubscribed users. Code contribution are welcomed, but please follow the OpenBSD style guidelines[7]. Please refer to the INSTALL document for information on how to install OpenSSH on your system. Damien Miller Miscellania - This version of OpenSSH is based upon code retrieved from the OpenBSD CVS repository which in turn was based on the last free sample implementation released by Tatu Ylonen. References - [0] https://www.openssh.com/ [1] http://www.lothar.com/tech/crypto/ [2] http://prngd.sourceforge.net/ [3] https://www.zlib.net/ [4] https://www.openssl.org/ [5] https://www.openpam.org https://www.kernel.org/pub/linux/libs/pam/ (PAM also is standard on Solaris and HP-UX 11) [6] https://thrysoee.dk/editline/ (portable version) [7] https://man.openbsd.org/style.9 PKp:1]DF\README.platformnu[This file contains notes about OpenSSH on specific platforms. AIX --- As of OpenSSH 3.8p1, sshd will now honour an accounts password expiry settings, where previously it did not. Because of this, it's possible for sites that have used OpenSSH's sshd exclusively to have accounts which have passwords expired longer than the inactive time (ie the "Weeks between password EXPIRATION and LOCKOUT" setting in SMIT or the maxexpired chuser attribute). Accounts in this state must have their passwords reset manually by the administrator. As a precaution, it is recommended that the administrative passwords be reset before upgrading from OpenSSH <3.8. As of OpenSSH 4.0, configure will attempt to detect if your version and maintenance level of AIX has a working getaddrinfo, and will use it if found. This will enable IPv6 support. If for some reason configure gets it wrong, or if you want to build binaries to work on earlier MLs than the build host then you can add "-DBROKEN_GETADDRINFO" to CFLAGS to force the previous IPv4-only behaviour. IPv6 known to work: 5.1ML7 5.2ML2 5.2ML5 IPv6 known broken: 4.3.3ML11 5.1ML4 If you wish to use dynamic libraries that aren't in the normal system locations (eg IBM's OpenSSL and zlib packages) then you will need to define the environment variable blibpath before running configure, eg blibpath=/lib:/usr/lib:/opt/freeware/lib ./configure \ --with-ssl-dir=/opt/freeware --with-zlib=/opt/freeware If sshd is built with the WITH_AIXAUTHENTICATE option (which is enabled by default) then sshd checks that users are permitted via the loginrestrictions() function, in particular that the user has the "rlogin" attribute set. This check is not done for the root account, instead the PermitRootLogin setting in sshd_config is used. If you are using the IBM compiler you probably want to use CC=xlc rather than the default of cc. Cygwin ------ To build on Cygwin, OpenSSH requires the following packages: gcc, gcc-mingw-core, mingw-runtime, binutils, make, openssl, openssl-devel, zlib, minres, minires-devel. Darwin and MacOS X ------------------ Darwin does not provide a tun(4) driver required for OpenSSH-based virtual private networks. The BSD manpage still exists, but the driver has been removed in recent releases of Darwin and MacOS X. Nevertheless, tunnel support is known to work with Darwin 8 and MacOS X 10.4 in Point-to-Point (Layer 3) and Ethernet (Layer 2) mode using a third party driver. More information is available at: http://www-user.rhrk.uni-kl.de/~nissler/tuntap/ Linux ----- Some Linux distributions (including Red Hat/Fedora/CentOS) include headers and library links in the -devel RPMs rather than the main binary RPMs. If you get an error about headers, or complaining about a missing prerequisite then you may need to install the equivalent development packages. On Redhat based distros these may be openssl-devel, zlib-devel and pam-devel, on Debian based distros these may be libssl-dev, libz-dev and libpam-dev. Solaris ------- If you enable BSM auditing on Solaris, you need to update audit_event(4) for praudit(1m) to give sensible output. The following line needs to be added to /etc/security/audit_event: 32800:AUE_openssh:OpenSSH login:lo The BSM audit event range available for third party TCB applications is 32768 - 65535. Event number 32800 has been chosen for AUE_openssh. There is no official registry of 3rd party event numbers, so if this number is already in use on your system, you may change it at build time by configure'ing --with-cflags=-DAUE_openssh=32801 then rebuilding. Platforms using PAM ------------------- As of OpenSSH 4.3p1, sshd will no longer check /etc/nologin itself when PAM is enabled. To maintain existing behaviour, pam_nologin should be added to sshd's session stack which will prevent users from starting shell sessions. Alternatively, pam_nologin can be added to either the auth or account stacks which will prevent authentication entirely, but will still return the output from pam_nologin to the client. PKp:1]mT( ( TODOnu[Documentation: - Update the docs - Update README - Update INSTALL - Merge INSTALL & README.privsep - Install FAQ? - General FAQ on S/Key, TIS, RSA, RSA2, DSA, etc and suggestions on when it would be best to use them. - Create a Documentation/ directory? Programming: - Grep for 'XXX' comments and fix - Link order is incorrect for some systems using Kerberos 4 and AFS. Result is multiple inclusion of DES symbols. Holger Trapp reports that changing the configure generated link order from: -lresolv -lkrb -lz -lnsl -lutil -lkafs -lkrb -ldes -lcrypto to: -lresolv -lkrb -lz -lnsl -lutil -lcrypto -lkafs -lkrb -ldes fixing the problem. - Write a test program that calls stat() to search for EGD/PRNGd socket rather than use the (non-portable) "test -S". - More platforms for for setproctitle() emulation (testing needed) - Improve PAM ChallengeResponseAuthentication - Informational messages - Use different PAM service name for kbdint vs regular auth (suggest from Solar Designer) - Ability to select which ChallengeResponseAuthentications may be used and order to try them in e.g. "ChallengeResponseAuthentication pam" - Complete Tru64 SIA support - It looks like we could merge it into the password auth code to cut down on diff size. Maybe PAM password auth too? - Finish integrating kernel-level auditing code for IRIX and SOLARIS (Gilbert.r.loomis@saic.com) - 64-bit builds on HP-UX 11.X (stevesk@pobox.com): - utmp/wtmp get corrupted (something in loginrec?) - can't build with PAM (no 64-bit libpam yet) Clean up configure/makefiles: - Clean up configure.ac - There are a few double #defined variables left to do. HAVE_LOGIN is one of them. Consider NOT looking for information in wtmpx or utmpx or any of that stuff if it's not detected from the start - Replace the whole u_intXX_t evilness in acconfig.h with something better??? - Do it in configure.ac - Consider splitting the u_intXX_t test for sys/bitype.h into separate test to allow people to (right/wrongfully) link against Bind directly. - Consider splitting configure.ac into separate files which do logically similar tests. E.g move all the type detection stuff into one file, entropy related stuff into another. Packaging: - HP-UX: Provide DEPOT package scripts. (gilbert.r.loomis@saic.com) PrivSep Issues: - PAM + See above PAM notes - AIX + usrinfo() does not set TTY, but only required for legacy systems. Works with PrivSep. - OSF + SIA is broken - Cygwin + Privsep for Pre-auth only (no fd passing) PKp:1]){zE9 9  ChangeLognu[commit fd0fa130ecf06d7d092932adcd5d77f1549bfc8d Author: Damien Miller Date: Thu Apr 18 08:52:57 2019 +1000 makedepend commit 5de397a876b587ba05a9169237deffdc71f273b0 Author: Damien Miller Date: Fri Apr 5 11:29:51 2019 -0700 second thoughts: leave README in place A number of contrib/* files refer to the existing README so let's leave it in place for release and add the new markdown version in parallel. I'll get rid of README after release. commit 5d3127d9274519b25ed10e320f45045ba8d7f3be Author: Damien Miller Date: Fri Apr 5 11:29:31 2019 -0700 Revert "rewrite README" This reverts commit 9444d82678cb7781820da4d1c23b3c2b9fb1e12f. commit 9444d82678cb7781820da4d1c23b3c2b9fb1e12f Author: Damien Miller Date: Fri Apr 5 11:21:48 2019 -0700 rewrite README Include basic build instructions and comments on commonly-used build- time flags, links to the manual pages and other resources. Now in Markdown format for better viewing on github, etc. commit a924de0c4908902433813ba205bee1446bd1a157 Author: Damien Miller Date: Fri Apr 5 03:41:52 2019 +1100 update versions commit 312dcee739bca5d6878c536537b2a8a497314b75 Author: djm@openbsd.org Date: Wed Apr 3 15:48:45 2019 +0000 upstream: openssh-8.0 OpenBSD-Commit-ID: 5aafdf218679dab982fea20771afd643be9a127b commit 885bc114692046d55e2a170b932bdc0092fa3456 Author: Damien Miller Date: Thu Apr 4 02:47:40 2019 +1100 session: Do not use removed API from Jakub Jelen commit 9d7b2882b0c9a5e9bf8312ce4075bf178e2b98be Author: djm@openbsd.org Date: Fri Mar 29 11:31:40 2019 +0000 upstream: when logging/fataling on error, include a bit more detail than just the function name and the error message OpenBSD-Commit-ID: dd72d7eba2215fcb89be516c378f633ea5bcca9f commit 79a87d32783d6c9db40af8f35e091d9d30365ae7 Author: Darren Tucker Date: Wed Apr 3 06:27:45 2019 +1100 Remove "struct ssh" from sys_auth_record_login. It's not needed, and is not available from the call site in loginrec.c Should only affect AIX, spotted by Kevin Brott. commit 138c0d52cdc90f9895333b82fc57d81cce7a3d90 Author: Darren Tucker Date: Tue Apr 2 18:21:35 2019 +1100 Adapt custom_failed_login to new prototype. Spotted by Kevin Brott. commit a0ca4009ab2f0b1007ec8ab6864dbf9b760a8ed5 Author: Darren Tucker Date: Mon Apr 1 20:07:23 2019 +1100 Add includes.h for compat layer. Should fix build on AIX 7.2. commit 00991151786ce9b1d577bdad1f83a81d19c8236d Author: Tim Rice Date: Sun Mar 31 22:14:22 2019 -0700 Stop USL compilers for erroring with "integral constant expression expected" commit 43f47ebbdd4037b569c23b8f4f7981f53b567f1d Author: Tim Rice Date: Sun Mar 31 19:22:19 2019 -0700 Only use O_NOFOLLOW in fchownat and fchmodat if defined commit 342d6e51589b184c337cccfc4c788b60ff8b3765 Author: Jakub Jelen Date: Fri Mar 29 12:29:41 2019 +0100 Adjust softhsm2 path on Fedora Linux for regress The SoftHSM lives in Fedora in /usr/lib64/pkcs11/libsofthsm2.so commit f5abb05f8c7358dacdcb866fe2813f6d8efd5830 Author: Darren Tucker Date: Thu Mar 28 09:26:14 2019 +1100 Only use O_NOFOLLOW in utimensat if defined. Fixes build on systems that don't have it (Solaris <=9) Found by Tom G. Christensen. commit 786cd4c1837fdc3fe7b4befe54a3f37db7df8715 Author: Corinna Vinschen Date: Wed Mar 27 18:18:21 2019 +0100 drop old Cygwin considerations - Cygwin supports non-DOS characters in filenames - Cygwin does not support Windows XP anymore Signed-off-by: Corinna Vinschen commit 21da87f439b48a85b951ef1518fe85ac0273e719 Author: djm@openbsd.org Date: Wed Mar 27 09:29:14 2019 +0000 upstream: fix interaction between ClientAliveInterval and RekeyLimit that could cause connection to close incorrectly; Report and patch from Jakub Jelen in bz#2757; ok dtucker@ markus@ OpenBSD-Commit-ID: 17229a8a65bd8e6c2080318ec2b7a61e1aede3fb commit 4f0019a9afdb4a94d83b75e82dbbbe0cbe826c56 Author: djm@openbsd.org Date: Mon Mar 25 22:34:52 2019 +0000 upstream: Fix authentication failures when "AuthenticationMethods any" in a Match block overrides a more restrictive global default. Spotted by jmc@, ok markus@ OpenBSD-Commit-ID: a90a4fe2ab81d0eeeb8fdfc21af81f7eabda6666 commit d6e5def308610f194c0ec3ef97a34a3e9630e190 Author: djm@openbsd.org Date: Mon Mar 25 22:33:44 2019 +0000 upstream: whitespace OpenBSD-Commit-ID: 106e853ae8a477e8385bc53824d3884a8159db07 commit 26e0cef07b04479537c971dec898741df1290fe5 Author: dtucker@openbsd.org Date: Mon Mar 25 16:19:44 2019 +0000 upstream: Expand comment to document rationale for default key sizes. "seems worthwhile" deraadt. OpenBSD-Commit-ID: 72e5c0983d7da1fb72f191870f36cb58263a2456 commit f47269ea67eb4ff87454bf0d2a03e55532786482 Author: dtucker@openbsd.org Date: Mon Mar 25 15:49:00 2019 +0000 upstream: Increase the default RSA key size to 3072 bits. Based on the estimates from NIST Special Publication 800-57, 3k bits provides security equivalent to 128 bits which is the smallest symmetric cipher we enable by default. ok markus@ deraadt@ OpenBSD-Commit-ID: 461dd32ebe808f88f4fc3ec74749b0e6bef2276b commit 62949c5b37af28d8490d94866e314a76be683a5e Author: jmc@openbsd.org Date: Fri Mar 22 20:58:34 2019 +0000 upstream: full stop in the wrong place; OpenBSD-Commit-ID: 478a0567c83553a2aebf95d0f1bd67ac1b1253e4 commit 1b1332b5bb975d759a50b37f0e8bc8cfb07a0bb0 Author: jmc@openbsd.org Date: Sat Mar 16 19:14:21 2019 +0000 upstream: benno helped me clean up the tcp forwarding section; OpenBSD-Commit-ID: d4bec27edefde636fb632b7f0b7c656b9c7b7f08 commit 2aee9a49f668092ac5c9d34e904ef7a9722e541d Author: markus@openbsd.org Date: Fri Mar 8 17:24:43 2019 +0000 upstream: fix use-after-free in ssh-pkcs11; found by hshoexer w/AFL OpenBSD-Commit-ID: febce81cca72b71f70513fbee4ff52ca050f675c commit 9edbd7821e6837e98e7e95546cede804dac96754 Author: Darren Tucker Date: Thu Mar 14 10:17:28 2019 +1100 Fix build when configured --without-openssl. ok djm@ commit 825ab32f0d04a791e9d19d743c61ff8ed9b4d8e5 Author: Darren Tucker Date: Thu Mar 14 08:51:17 2019 +1100 On Cygwin run sshd as SYSTEM where possible. Seteuid now creates user token using S4U. We don't create a token from scratch anymore, so we don't need the "Create a process token" privilege. The service can run under SYSTEM again... ...unless Cygwin is running on Windows Vista or Windows 7 in the WOW64 32 bit emulation layer. It turns out that WOW64 on these systems didn't implement MsV1_0 S4U Logon so we still need the fallback to NtCreateToken for these systems. Signed-off-by: Corinna Vinschen commit a212107bfdf4d3e870ab7a443e4d906e5b9578c3 Author: Darren Tucker Date: Wed Mar 13 10:49:16 2019 +1100 Replace alloca with xcalloc. The latter checks for memory exhaustion and integer overflow and may be at a less predictable place. Sanity check by vinschen at redhat.com, ok djm@ commit daa7505aadca68ba1a2c70cbdfce423208eb91ee Author: Darren Tucker Date: Tue Mar 12 09:19:19 2019 +1100 Use Cygwin-specific matching only for users+groups. Patch from vinschen at redhat.com, updated a little by me. commit fd10cf027b56f9aaa80c9e3844626a05066589a4 Author: dtucker@openbsd.org Date: Wed Mar 6 22:14:23 2019 +0000 upstream: Move checks for lists of users or groups into their own function. This is a no-op on OpenBSD but will make things easier in -portable, eg on systems where these checks should be case-insensitive. ok djm@ OpenBSD-Commit-ID: 8bc9c8d98670e23f8eaaaefe29c1f98e7ba0487e commit ab5fee8eb6a011002fd9e32b1597f02aa8804a25 Author: dtucker@openbsd.org Date: Wed Mar 6 21:06:59 2019 +0000 upstream: Reset last-seen time when sending a keepalive. Prevents sending two keepalives successively and prematurely terminating connection when ClientAliveCount=1. While there, collapse two similar tests into one. ok markus@ OpenBSD-Commit-ID: 043670d201dfe222537a2a4bed16ce1087de5ddd commit c13b74530f9f1d9df7aeae012004b31b2de4438e Author: naddy@openbsd.org Date: Tue Mar 5 16:17:12 2019 +0000 upstream: PKCS#11 support is no longer limited to RSA; ok benno@ kn@ OpenBSD-Commit-ID: 1a9bec64d530aed5f434a960e7515a3e80cbc826 commit e9552d6043db7cd170ac6ba1b4d2c7a5eb2c3201 Author: djm@openbsd.org Date: Fri Mar 1 03:29:32 2019 +0000 upstream: in ssh_set_newkeys(), mention the direction that we're keying in debug messages. Previously it would be difficult to tell which direction it was talking about OpenBSD-Commit-ID: c2b71bfcceb2a7389b9d0b497fb2122a406a522d commit 76a24b3fa193a9ca3e47a8779d497cb06500798b Author: djm@openbsd.org Date: Fri Mar 1 02:32:39 2019 +0000 upstream: Fix two race conditions in sshd relating to SIGHUP: 1. Recently-forked child processes will briefly remain listening to listen_socks. If the main server sshd process completes its restart via execv() before these sockets are closed by the child processes then it can fail to listen at the desired addresses/ports and/or fail to restart. 2. When a SIGHUP is received, there may be forked child processes that are awaiting their reexecution state. If the main server sshd process restarts before passing this state, these child processes will yield errors and use a fallback path of reading the current sshd_config from the filesystem rather than use the one that sshd was started with. To fix both of these cases, we reuse the startup_pipes that are shared between the main server sshd and forked children. Previously this was used solely to implement tracking of pre-auth child processes for MaxStartups, but this extends the messaging over these pipes to include a child->parent message that the parent process is safe to restart. This message is sent from the child after it has completed its preliminaries: closing listen_socks and receiving its reexec state. bz#2953, reported by Michal Koutný; ok markus@ dtucker@ OpenBSD-Commit-ID: 7df09eacfa3ce13e9a7b1e9f17276ecc924d65ab commit de817e9dfab99473017d28cdf69e60397d00ea21 Author: djm@openbsd.org Date: Fri Mar 1 02:16:47 2019 +0000 upstream: mention PKCS11Provide=none, reword a little and remove mention of RSA keys only (since we support ECDSA now and might support others in the future). Inspired by Jakub Jelen via bz#2974 OpenBSD-Commit-ID: a92e3686561bf624ccc64ab320c96c9e9a263aa5 commit 95a8058c1a90a27acbb91392ba206854abc85226 Author: djm@openbsd.org Date: Fri Mar 1 02:08:50 2019 +0000 upstream: let PKCS11Provider=none do what users expect print PKCS11Provider instead of obsolete SmartcardDevice in config dump. bz#2974 ok dtucker@ OpenBSD-Commit-ID: c303d6f0230a33aa2dd92dc9b68843d56a64f846 commit 8e7bac35aa576d2fd7560836da83733e864ce649 Author: markus@openbsd.org Date: Wed Feb 27 19:37:01 2019 +0000 upstream: dup stdout/in for proxycommand=-, otherwise stdout might be redirected to /dev/null; ok djm@ OpenBSD-Commit-ID: 97dfce4c47ed4055042de8ebde85b7d88793e595 commit 9b61130fbd95d196bce81ebeca94a4cb7c0d5ba0 Author: djm@openbsd.org Date: Sat Feb 23 08:20:43 2019 +0000 upstream: openssh-7.9 accidentally reused the server's algorithm lists in the client for KEX, ciphers and MACs. The ciphers and MACs were identical between the client and server, but the error accidentially disabled the diffie-hellman-group-exchange-sha1 KEX method. This fixes the client code to use the correct method list, but because nobody complained, it also disables the diffie-hellman-group-exchange-sha1 KEX method. Reported by nuxi AT vault24.org via bz#2697; ok dtucker OpenBSD-Commit-ID: e30c33a23c10fd536fefa120e86af1842e33fd57 commit 37638c752041d591371900df820f070037878a2d Author: Corinna Vinschen Date: Wed Feb 20 13:41:25 2019 +0100 Cygwin: implement case-insensitive Unicode user and group name matching The previous revert enabled case-insensitive user names again. This patch implements the case-insensitive user and group name matching. To allow Unicode chars, implement the matcher using wchar_t chars in Cygwin-specific code. Keep the generic code changes as small as possible. Cygwin: implement case-insensitive Unicode user and group name matching Signed-off-by: Corinna Vinschen commit bed1d43698807a07bb4ddb93a46b0bd84b9970b3 Author: Darren Tucker Date: Fri Feb 22 15:21:21 2019 +1100 Revert unintended parts of previous commit. commit f02afa350afac1b2f2d1413259a27a4ba1e2ca24 Author: Corinna Vinschen Date: Wed Feb 20 13:41:24 2019 +0100 Revert "[auth.c] On Cygwin, refuse usernames that have differences in case" This reverts commit acc9b29486dfd649dfda474e5c1a03b317449f1c. Signed-off-by: Corinna Vinschen commit 4c55b674835478eb80a1a7aeae588aa654e2a433 Author: Corinna Vinschen Date: Sat Feb 16 14:13:43 2019 +0100 Add tags to .gitignore Signed-off-by: Corinna Vinschen commit 625b62634c33eaef4b80d07529954fe5c6435fe5 Author: djm@openbsd.org Date: Fri Feb 22 03:37:11 2019 +0000 upstream: perform removal of agent-forwarding directory in forward setup error path with user's privileged. This is a no-op as this code always runs with user privilege now that we no longer support running sshd with privilege separation disabled, but as long as the privsep skeleton is there we should follow the rules. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bz#2969 with patch from Erik Sjölund OpenBSD-Commit-ID: 2b708401a5a8d6133c865d7698d9852210dca846 commit d9ecfaba0b2f1887d20e4368230632e709ca83be Author: jmc@openbsd.org Date: Mon Feb 18 07:02:34 2019 +0000 upstream: sync the description of ~/.ssh/config with djm's updated description in ssh.1; issue pointed out by andreas kahari ok dtucker djm OpenBSD-Commit-ID: 1b01ef0ae2c6328165150badae317ec92e52b01c commit 38e83e4f219c752ebb1560633b73f06f0392018b Author: djm@openbsd.org Date: Tue Feb 12 23:53:10 2019 +0000 upstream: fix regression in r1.302 reported by naddy@ - only the first public key from the agent was being attempted for use. OpenBSD-Commit-ID: 07116aea521a04888718b2157f1ca723b2f46c8d commit 5c68ea8da790d711e6dd5f4c30d089c54032c59a Author: djm@openbsd.org Date: Mon Feb 11 09:44:42 2019 +0000 upstream: cleanup GSSAPI authentication context after completion of the authmethod. Move function-static GSSAPI state to the client Authctxt structure. Make static a bunch of functions that aren't used outside this file. Based on patch from Markus Schmidt ; ok markus@ OpenBSD-Commit-ID: 497fb792c0ddb4f1ba631b6eed526861f115dbe5 commit a8c807f1956f81a92a758d3d0237d0ff06d0be5d Author: benno@openbsd.org Date: Sun Feb 10 16:35:41 2019 +0000 upstream: ssh-keygen -D pkcs11.so needs to initialize pkcs11 interactive, so it can ask for the smartcards PIN. ok markus@ OpenBSD-Commit-ID: 1be7ccf88f1876e0fc4d7c9b3f96019ac5655bab commit 3d896c157c722bc47adca51a58dca859225b5874 Author: djm@openbsd.org Date: Sun Feb 10 11:15:52 2019 +0000 upstream: when checking that filenames sent by the server side match what the client requested, be prepared to handle shell-style brace alternations, e.g. "{foo,bar}". "looks good to me" millert@ + in snaps for the last week courtesy deraadt@ OpenBSD-Commit-ID: 3b1ce7639b0b25b2248e3a30f561a548f6815f3e commit 318e4f8548a4f5c0c913f61e27d4fc21ffb1eaae Author: djm@openbsd.org Date: Sun Feb 10 11:10:57 2019 +0000 upstream: syslog when connection is dropped for attempting to run a command when ForceCommand=internal-sftp is in effect; bz2960; ok dtucker@ OpenBSD-Commit-ID: 8c87fa66d7fc6c0fffa3a3c28e8ab5e8dde234b8 commit 2ff2e19653b8c0798b8b8eff209651bdb1be2761 Author: Damien Miller Date: Fri Feb 8 14:53:35 2019 +1100 don't set $MAIL if UsePam=yes PAM typically specifies the user environment if it's enabled, so don't second guess. bz#2937; ok dtucker@ commit 03e92dd27d491fe6d1a54e7b2f44ef1b0a916e52 Author: Damien Miller Date: Fri Feb 8 14:50:36 2019 +1100 use same close logic for stderr as stdout Avoids sending SIGPIPE to child processes after their parent exits if they attempt to write to stderr. Analysis and patch from JD Paul; patch reworked by Jakub Jelen and myself. bz#2071; ok dtucker@ commit 8c53d409baeeaf652c0c125a9b164edc9dbeb6de Author: dtucker@openbsd.org Date: Tue Feb 5 11:35:56 2019 +0000 upstream: Adapt code in the non-USE_PIPES codepath to the new packet API. This code is not normally reachable since USE_PIPES is always defined. bz#2961, patch from adrian.fita at gmail com. OpenBSD-Commit-ID: 8d8428d678d1d5eb4bb21921df34e8173e6d238a commit 7a7fdca78de4b4774950be056099e579ef595414 Author: djm@openbsd.org Date: Mon Feb 4 23:37:54 2019 +0000 upstream: fix NULL-deref crash in PKCS#11 code when attempting login to a token requiring a PIN; reported by benno@ fix mostly by markus@ OpenBSD-Commit-ID: 438d0b114b1b4ba25a9869733db1921209aa9a31 commit cac302a4b42a988e54d32eb254b29b79b648dbf5 Author: dtucker@openbsd.org Date: Mon Feb 4 02:39:42 2019 +0000 upstream: Remove obsolete "Protocol" from commented out examples. Patch from samy.mahmoudi at gmail com. OpenBSD-Commit-ID: 16aede33dae299725a03abdac5dcb4d73f5d0cbf commit 483b3b638500fd498b4b529356e5a0e18cf76891 Author: dtucker@openbsd.org Date: Fri Feb 1 03:52:23 2019 +0000 upstream: Save connection timeout and restore for 2nd and subsequent attempts, preventing them from having no timeout. bz#2918, ok djm@ OpenBSD-Commit-ID: 4977f1d0521d9b6bba0c9a20d3d226cefac48292 commit 5f004620fdc1b2108139300ee12f4014530fb559 Author: markus@openbsd.org Date: Wed Jan 30 19:51:15 2019 +0000 upstream: Add authors for public domain sntrup4591761 code; confirmed by Daniel J. Bernstein OpenBSD-Commit-ID: b4621f22b8b8ef13e063c852af5e54dbbfa413c1 commit 2c21b75a7be6ebdcbceaebb43157c48dbb36f3d8 Author: jmc@openbsd.org Date: Sun Jan 27 07:14:11 2019 +0000 upstream: add -T to usage(); OpenBSD-Commit-ID: a7ae14d9436c64e1bd05022329187ea3a0ce1899 commit 19a0f0529d3df04118da829528cac7ceff380b24 Author: dtucker@openbsd.org Date: Mon Jan 28 03:50:39 2019 +0000 upstream: The test sshd_config in in $OBJ. OpenBSD-Regress-ID: 1e5d908a286d8e7de3a15a0020c8857f3a7c9172 commit 8fe25440206319d15b52d12b948a5dfdec14dca3 Author: dtucker@openbsd.org Date: Mon Jan 28 03:28:10 2019 +0000 upstream: Remove leftover debugging. OpenBSD-Regress-ID: 3d86c3d4867e46b35af3fd2ac8c96df0ffdcfeb9 commit e30d32364d12c351eec9e14be6c61116f9d6cc90 Author: dtucker@openbsd.org Date: Mon Jan 28 00:12:36 2019 +0000 upstream: Enable ssh-dss for the agent test. Disable it for the certificate test. OpenBSD-Regress-ID: 388c1e03e1def539d350f139b37d69f12334668d commit ffdde469ed56249f5dc8af98da468dde35531398 Author: dtucker@openbsd.org Date: Mon Jan 28 00:08:26 2019 +0000 upstream: Count the number of key types instead of assuming there are only two. OpenBSD-Regress-ID: 0998702c41235782cf0beee396ec49b5056eaed9 commit 1d05b4adcba08ab068466e5c08dee2f5417ec53a Author: Corinna Vinschen Date: Sat Jan 26 23:42:40 2019 +0100 Cygwin: only tweak sshd_config file if it's new, drop creating sshd user The sshd_config tweaks were executed even if the old file was still in place. Fix that. Also disable sshd user creation. It's not used on Cygwin. commit 89843de0c4c733501f6b4f988098e6e06963df37 Author: Corinna Vinschen Date: Sat Jan 26 23:03:12 2019 +0100 Cygwin: Change service name to cygsshd Microsoft hijacked the sshd service name without asking. commit 2a9b3a2ce411d16cda9c79ab713c55f65b0ec257 Author: dtucker@openbsd.org Date: Sun Jan 27 06:30:53 2019 +0000 upstream: Generate all key supported key types and enable for keyscan test. OpenBSD-Regress-ID: 72f72ff49946c61bc949e1692dd9e3d71370891b commit 391ffc4b9d31fa1f4ad566499fef9176ff8a07dc Author: djm@openbsd.org Date: Sat Jan 26 22:41:28 2019 +0000 upstream: check in scp client that filenames sent during remote->local directory copies satisfy the wildcard specified by the user. This checking provides some protection against a malicious server sending unexpected filenames, but it comes at a risk of rejecting wanted files due to differences between client and server wildcard expansion rules. For this reason, this also adds a new -T flag to disable the check. reported by Harry Sintonen fix approach suggested by markus@; has been in snaps for ~1wk courtesy deraadt@ OpenBSD-Commit-ID: 00f44b50d2be8e321973f3c6d014260f8f7a8eda commit c2c18a39683db382a15b438632afab3f551d50ce Author: djm@openbsd.org Date: Sat Jan 26 22:35:01 2019 +0000 upstream: make ssh-keyscan return a non-zero exit status if it finds no keys. bz#2903 OpenBSD-Commit-ID: 89f1081fb81d950ebb48e6e73d21807b2723d488 commit 05b9a466700b44d49492edc2aa415fc2e8913dfe Author: dtucker@openbsd.org Date: Thu Jan 24 17:00:29 2019 +0000 upstream: Accept the host key fingerprint as a synonym for "yes" when accepting an unknown host key. This allows you to paste a fingerprint obtained out of band into the yes/no prompt and have the client do the comparison for you. ok markus@ djm@ OpenBSD-Commit-ID: 3c47d10b9f43d3d345e044fd9ec09709583a2767 commit bdc6c63c80b55bcbaa66b5fde31c1cb1d09a41eb Author: dtucker@openbsd.org Date: Thu Jan 24 16:52:17 2019 +0000 upstream: Have progressmeter force an update at the beginning and end of each transfer. Fixes the problem recently introduces where very quick transfers do not display the progressmeter at all. Spotted by naddy@ OpenBSD-Commit-ID: 68dc46c259e8fdd4f5db3ec2a130f8e4590a7a9a commit 258e6ca003e47f944688ad8b8de087b58a7d966c Author: dtucker@openbsd.org Date: Thu Jan 24 02:42:23 2019 +0000 upstream: Check for both EAGAIN and EWOULDBLOCK. This is a no-op in OpenBSD (they are the same value) but makes things easier in -portable where they may be distinct values. "sigh ok" deraadt@ (ID sync only, portable already had this change). OpenBSD-Commit-ID: 91f2bc7c0ecec905915ed59fa37feb9cc90e17d7 commit 281ce042579b834cdc1e74314f1fb2eeb75d2612 Author: dtucker@openbsd.org Date: Thu Jan 24 02:34:52 2019 +0000 upstream: Always initialize 2nd arg to hpdelim2. It populates that *ONLY IF* there's a delimiter. If there's not (the common case) it checked uninitialized memory, which usually passed, but if not would cause spurious failures when the uninitialized memory happens to contain "/". ok deraadt. OpenBSD-Commit-ID: 4291611eaf2a53d4c92f4a57c7f267c9f944e0d3 commit d05ea255678d9402beda4416cd0360f3e5dfe938 Author: dtucker@openbsd.org Date: Wed Jan 23 21:50:56 2019 +0000 upstream: Remove support for obsolete host/port syntax. host/port was added in 2001 as an alternative to host:port syntax for the benefit of IPv6 users. These days there are establised standards for this like [::1]:22 and the slash syntax is easily mistaken for CIDR notation, which OpenSSH now supports for some things. Remove the slash notation from ListenAddress and PermitOpen. bz#2335, patch from jjelen at redhat.com, ok markus@ OpenBSD-Commit-ID: fae5f4e23c51a368d6b2d98376069ac2b10ad4b7 commit 177d6c80c557a5e060cd343a0c116a2f1a7f43db Author: dtucker@openbsd.org Date: Wed Jan 23 20:48:52 2019 +0000 upstream: Remove duplicate word. bz#2958, patch from jjelen at redhat.com OpenBSD-Commit-ID: cca3965a8333f2b6aae48b79ec1d72f7a830dd2c commit be3e6cba95dffe5fcf190c713525b48c837e7875 Author: dtucker@openbsd.org Date: Wed Jan 23 09:49:00 2019 +0000 upstream: Remove 3 as a guess for possible generator during moduli generation. It's not mentioned in RFC4419 and it's not possible for Sophie-Germain primes greater than 5. bz#2330, from Christian Wittenhorst , ok djm@ tb@ OpenBSD-Commit-ID: 1467652e6802ad3333b0959282d8d49dfe22c8cd commit 8976f1c4b2721c26e878151f52bdf346dfe2d54c Author: dtucker@openbsd.org Date: Wed Jan 23 08:01:46 2019 +0000 upstream: Sanitize scp filenames via snmprintf. To do this we move the progressmeter formatting outside of signal handler context and have the atomicio callback called for EINTR too. bz#2434 with contributions from djm and jjelen at redhat.com, ok djm@ OpenBSD-Commit-ID: 1af61c1f70e4f3bd8ab140b9f1fa699481db57d8 commit 6249451f381755f792c6b9e2c2f80cdc699c14e2 Author: Darren Tucker Date: Thu Jan 24 10:00:20 2019 +1100 For broken read/readv comparisons, poll(RW). In the cases where we can't compare to read or readv function pointers for some reason we currently ifdef out the poll() used to block while waiting for reads or writes, falling back to busy waiting. This restores the poll() in this case, but has it always check for read or write, removing an inline ifdef in the process. commit 5cb503dff4db251520e8bf7d23b9c97c06eee031 Author: Darren Tucker Date: Thu Jan 24 09:55:16 2019 +1100 Include unistd.h for strmode(). commit f236ca2741f29b5c443c0b2db3aa9afb9ad9befe Author: Darren Tucker Date: Thu Jan 24 09:50:58 2019 +1100 Also undef SIMPLEQ_FOREACH_SAFE. Prevents macro redefinition warning on at least NetBSD 6.1. commit be063945e4e7d46b1734d973bf244c350fae172a Author: djm@openbsd.org Date: Wed Jan 23 04:51:02 2019 +0000 upstream: allow auto-incrementing certificate serial number for certs signed in a single commandline. OpenBSD-Commit-ID: 39881087641efb8cd83c7ec13b9c98280633f45b commit 851f80328931975fe68f71af363c4537cb896da2 Author: djm@openbsd.org Date: Wed Jan 23 04:16:22 2019 +0000 upstream: move a bunch of global flag variables to main(); make the rest static OpenBSD-Commit-ID: fa431d92584e81fe99f95882f4c56b43fe3242dc commit 2265402dc7d701a9aca9f8a7b7b0fd45b65c479f Author: Damien Miller Date: Wed Jan 23 13:03:16 2019 +1100 depend commit 2c223878e53cc46def760add459f5f7c4fb43e35 Author: djm@openbsd.org Date: Wed Jan 23 02:01:10 2019 +0000 upstream: switch mainloop from select(2) to poll(2); ok deraadt@ OpenBSD-Commit-ID: 37645419a330037d297f6f0adc3b3663e7ae7b2e commit bb956eaa94757ad058ff43631c3a7d6c94d38c2f Author: djm@openbsd.org Date: Wed Jan 23 00:30:41 2019 +0000 upstream: pass most arguments to the KEX hash functions as sshbuf rather than pointer+length; ok markus@ OpenBSD-Commit-ID: ef0c89c52ccc89817a13a5205725148a28492bf7 commit d691588b8e29622c66abf8932362b522cf7f4051 Author: djm@openbsd.org Date: Tue Jan 22 22:58:50 2019 +0000 upstream: backoff reading messages from active connections when the input buffer is too full to read one, or if the output buffer is too full to enqueue a response; feedback & ok dtucker@ OpenBSD-Commit-ID: df3c5b6d57c968975875de40d8955cbfed05a6c8 commit f99ef8de967949a1fc25a5c28263ea32736e5943 Author: djm@openbsd.org Date: Tue Jan 22 20:48:01 2019 +0000 upstream: add -m to usage(); reminded by jmc@ OpenBSD-Commit-ID: bca476a5236e8f94210290b3e6a507af0434613e commit 41923ce06ac149453debe472238e0cca7d5a2e5f Author: djm@openbsd.org Date: Tue Jan 22 12:03:58 2019 +0000 upstream: Correct some bugs in PKCS#11 token PIN handling at initial login, the attempt at reading the PIN could be skipped in some cases especially on devices with integrated PIN readers. based on patch from Daniel Kucera in bz#2652; ok markus@ OpenBSD-Commit-ID: fad70a61c60610afe8bb0db538c90e343e75e58e commit 2162171ad517501ba511fa9f8191945d01857bb4 Author: djm@openbsd.org Date: Tue Jan 22 12:00:50 2019 +0000 upstream: Support keys that set the CKA_ALWAYS_AUTHENTICATE by requring a fresh login after the C_SignInit operation. based on patch from Jakub Jelen in bz#2638; ok markus OpenBSD-Commit-ID: a76e66996ba7c0923b46b74d46d499b811786661 commit 7a2cb18a215b2cb335da3dc99489c52a91f4925b Author: djm@openbsd.org Date: Tue Jan 22 11:51:25 2019 +0000 upstream: Mention that configuration for the destination host is not applied to any ProxyJump/-J hosts. This has confused a few people... OpenBSD-Commit-ID: 03f4f641df6ca236c1bfc69836a256b873db868b commit ecd2f33cb772db4fa76776543599f1c1ab6f9fa0 Author: djm@openbsd.org Date: Tue Jan 22 11:40:42 2019 +0000 upstream: Include -m in the synopsis for a few more commands that support it Be more explicit in the description of -m about where it may be used Prompted by Jakub Jelen in bz2904 OpenBSD-Commit-ID: 3b398ac5e05d8a6356710d0ff114536c9d71046c commit ff5d2cf4ca373bb4002eef395ed2cbe2ff0826c1 Author: djm@openbsd.org Date: Tue Jan 22 11:26:16 2019 +0000 upstream: print the full pubkey being attempted at loglevel >= debug2; bz2939 OpenBSD-Commit-ID: ac0fe5ca1429ebf4d460bad602adc96de0d7e290 commit 180b520e2bab33b566b4b0cbac7d5f9940935011 Author: djm@openbsd.org Date: Tue Jan 22 11:19:42 2019 +0000 upstream: clarify: ssh-keygen -e only writes public keys, never private OpenBSD-Commit-ID: 7de7ff6d274d82febf9feb641e2415ffd6a30bfb commit c45616a199c322ca674315de88e788f1d2596e26 Author: djm@openbsd.org Date: Tue Jan 22 11:00:15 2019 +0000 upstream: mention the new vs. old key formats in the introduction and give some hints on how keys may be converted or written in the old format. OpenBSD-Commit-ID: 9c90a9f92eddc249e07fad1204d0e15c8aa13823 commit fd8eb1383a34c986a00ef13d745ae9bd3ea21760 Author: jmc@openbsd.org Date: Tue Jan 22 06:58:31 2019 +0000 upstream: tweak previous; OpenBSD-Commit-ID: d2a80e389da8e7ed71978643d8cbaa8605b597a8 commit 68e924d5473c00057f8532af57741d258c478223 Author: tb@openbsd.org Date: Mon Jan 21 23:55:12 2019 +0000 upstream: Forgot to add -J to the synopsis. OpenBSD-Commit-ID: 26d95e409a0b72526526fc56ca1caca5cc3d3c5e commit 622dedf1a884f2927a9121e672bd9955e12ba108 Author: tb@openbsd.org Date: Mon Jan 21 22:50:42 2019 +0000 upstream: Add a -J option as a shortcut for -o Proxyjump= to scp(1) and sftp(1) to match ssh(1)'s interface. ok djm OpenBSD-Commit-ID: a75bc2d5f329caa7229a7e9fe346c4f41c2663fc commit c882d74652800150d538e22c80dd2bd3cdd5fae2 Author: Darren Tucker Date: Tue Jan 22 20:38:40 2019 +1100 Allow building against OpenSSL dev (3.x) version. commit d5520393572eb24aa0e001a1c61f49b104396e45 Author: Damien Miller Date: Tue Jan 22 10:50:40 2019 +1100 typo commit 2de9cec54230998ab10161576f77860a2559ccb7 Author: Damien Miller Date: Tue Jan 22 10:49:52 2019 +1100 add missing header commit 533cfb01e49a2a30354e191669dc3159e03e99a7 Author: djm@openbsd.org Date: Mon Jan 21 22:18:24 2019 +0000 upstream: switch sntrup implementation source from supercop to libpqcrypto; the latter is almost identical but doesn't rely on signed underflow to implement an optimised integer sort; from markus@ OpenBSD-Commit-ID: cd09bbf0e0fcef1bedca69fdf7990dc360567cf8 commit d50ab3cd6fb859888a26b4d4e333239b4f6bf573 Author: Damien Miller Date: Tue Jan 22 00:02:23 2019 +1100 new files need includes.h commit c7670b091a7174760d619ef6738b4f26b2093301 Author: djm@openbsd.org Date: Mon Jan 21 12:53:35 2019 +0000 upstream: add "-v" flags to ssh-add and ssh-pkcs11-helper to turn up debug verbosity. Make ssh-agent turn on ssh-pkcs11-helper's verbosity when it is run in debug mode ("ssh-agent -d"), so we get to see errors from the PKCS#11 code. ok markus@ OpenBSD-Commit-ID: 0a798643c6a92a508df6bd121253ba1c8bee659d commit 49d8c8e214d39acf752903566b105d06c565442a Author: djm@openbsd.org Date: Mon Jan 21 12:50:12 2019 +0000 upstream: adapt to changes in KEX APIs and file removals OpenBSD-Regress-ID: 54d6857e7c58999c7a6d40942ab0fed3529f43ca commit 35ecc53a83f8e8baab2e37549addfd05c73c30f1 Author: djm@openbsd.org Date: Mon Jan 21 12:35:20 2019 +0000 upstream: adapt to changes in KEX API and file removals OpenBSD-Regress-ID: 92cad022d3b0d11e08f3e0055d6a14b8f994c0d7 commit 7d69aae64c35868cc4f644583ab973113a79480e Author: djm@openbsd.org Date: Mon Jan 21 12:29:35 2019 +0000 upstream: adapt to bignum1 API removal and bignum2 API change OpenBSD-Regress-ID: cea6ff270f3d560de86b355a87a2c95b55a5ca63 commit beab553f0a9578ef9bffe28b2c779725e77b39ec Author: djm@openbsd.org Date: Mon Jan 21 09:13:41 2019 +0000 upstream: remove hack to use non-system libcrypto OpenBSD-Regress-ID: ce72487327eee4dfae1ab0212a1f33871fe0809f commit 4dc06bd57996f1a46b4c3bababe0d09bc89098f7 Author: Damien Miller Date: Mon Jan 21 23:14:04 2019 +1100 depend commit 70edd73edc4df54e5eee50cd27c25427b34612f8 Author: djm@openbsd.org Date: Mon Jan 21 12:08:13 2019 +0000 upstream: fix reversed arguments to kex_load_hostkey(); manifested as errors in cert-hostkey.sh regress failures. OpenBSD-Commit-ID: 12dab63850b844f84d5a67e86d9e21a42fba93ba commit f1185abbf0c9108e639297addc77f8757ee00eb3 Author: djm@openbsd.org Date: Mon Jan 21 11:22:00 2019 +0000 upstream: forgot to cvs add this file in previous series of commits; grrr OpenBSD-Commit-ID: bcff316c3e7da8fd15333e05d244442c3aaa66b0 commit 7bef390b625bdc080f0fd4499ef03cef60fca4fa Author: djm@openbsd.org Date: Mon Jan 21 10:44:21 2019 +0000 upstream: nothing shall escape this purge OpenBSD-Commit-ID: 4795b0ff142b45448f7e15f3c2f77a947191b217 commit aaca72d6f1279b842066e07bff797019efeb2c23 Author: djm@openbsd.org Date: Mon Jan 21 10:40:11 2019 +0000 upstream: rename kex->kem_client_pub -> kex->client_pub now that KEM has been renamed to kexgen from markus@ ok djm@ OpenBSD-Commit-ID: fac6da5dc63530ad0da537db022a9a4cfbe8bed8 commit 70867e1ca2eb08bbd494fe9c568df4fd3b35b867 Author: djm@openbsd.org Date: Mon Jan 21 10:38:54 2019 +0000 upstream: merge kexkem[cs] into kexgen from markus@ ok djm@ OpenBSD-Commit-ID: 87d886b7f1812ff9355fda1435f6ea9b71a0ac89 commit 71e67fff946396caa110a7964da23480757258ff Author: djm@openbsd.org Date: Mon Jan 21 10:35:09 2019 +0000 upstream: pass values used in KEX hash computation as sshbuf rather than pointer+len suggested by me; implemented by markus@ ok me OpenBSD-Commit-ID: 994f33c464f4a9e0f1d21909fa3e379f5a0910f0 commit 4b83e2a2cc0c12e671a77eaba1c1245894f4e884 Author: djm@openbsd.org Date: Mon Jan 21 10:33:49 2019 +0000 upstream: remove kex_derive_keys_bn wrapper; no unused since the DH-like KEX methods have moved to KEM from markus@ ok djm@ OpenBSD-Commit-ID: bde9809103832f349545e4f5bb733d316db9a060 commit 92dda34e373832f34a1944e5d9ebbebb184dedc1 Author: djm@openbsd.org Date: Mon Jan 21 10:29:56 2019 +0000 upstream: use KEM API for vanilla ECDH from markus@ ok djm@ OpenBSD-Commit-ID: 6fbff96339a929835536b5730585d1d6057a352c commit b72357217cbe510a3ae155307a7be6b9181f1d1b Author: Damien Miller Date: Mon Jan 21 23:11:21 2019 +1100 fixup missing ssherr.h commit 9c9c97e14fe190931f341876ad98213e1e1dc19f Author: djm@openbsd.org Date: Mon Jan 21 10:28:01 2019 +0000 upstream: use KEM API for vanilla DH KEX from markus@ ok djm@ OpenBSD-Commit-ID: af56466426b08a8be275412ae2743319e3d277c9 commit 2f6a9ddbbf6ca8623c53c323ff17fb6d68d66970 Author: djm@openbsd.org Date: Mon Jan 21 10:24:09 2019 +0000 upstream: use KEM API for vanilla c25519 KEX OpenBSD-Commit-ID: 38d937b85ff770886379dd66a8f32ab0c1c35c1f commit dfd591618cdf2c96727ac0eb65f89cf54af0d97e Author: djm@openbsd.org Date: Mon Jan 21 10:20:12 2019 +0000 upstream: Add support for a PQC KEX/KEM: sntrup4591761x25519-sha512@tinyssh.org using the Streamlined NTRU Prime 4591^761 implementation from SUPERCOP coupled with X25519 as a stop-loss. Not enabled by default. introduce KEM API; a simplified framework for DH-ish KEX methods. from markus@ feedback & ok djm@ OpenBSD-Commit-ID: d687f76cffd3561dd73eb302d17a1c3bf321d1a7 commit b1b2ff4ed559051d1035419f8f236275fa66d5d6 Author: djm@openbsd.org Date: Mon Jan 21 10:07:22 2019 +0000 upstream: factor out kex_verify_hostkey() - again, duplicated almost exactly across client and server for several KEX methods. from markus@ ok djm@ OpenBSD-Commit-ID: 4e4a16d949dadde002a0aacf6d280a684e20829c commit bb39bafb6dc520cc097780f4611a52da7f19c3e2 Author: djm@openbsd.org Date: Mon Jan 21 10:05:09 2019 +0000 upstream: factor out kex_load_hostkey() - this is duplicated in both the client and server implementations for most KEX methods. from markus@ ok djm@ OpenBSD-Commit-ID: 8232fa7c21fbfbcaf838313b0c166dc6c8762f3c commit dec5e9d33891e3bc3f1395d7db0e56fdc7f86dfc Author: djm@openbsd.org Date: Mon Jan 21 10:03:37 2019 +0000 upstream: factor out kex_dh_compute_key() - it's shared between plain DH KEX and DH GEX in both the client and server implementations from markus@ ok djm@ OpenBSD-Commit-ID: 12186e18791fffcd4642c82e7e0cfdd7ea37e2ec commit e93bd98eab79b9a78f64ee8dd4dffc4d3979c7ae Author: djm@openbsd.org Date: Mon Jan 21 10:00:23 2019 +0000 upstream: factor out DH keygen; it's identical between the client and the server from markus@ ok djm@ OpenBSD-Commit-ID: 2be57f6a0d44f1ab2c8de2b1b5d6f530c387fae9 commit 5ae3f6d314465026d028af82609c1d49ad197655 Author: djm@openbsd.org Date: Mon Jan 21 09:55:52 2019 +0000 upstream: save the derived session id in kex_derive_keys() rather than making each kex method implementation do it. from markus@ ok djm@ OpenBSD-Commit-ID: d61ade9c8d1e13f665f8663c552abff8c8a30673 commit 7be8572b32a15d5c3dba897f252e2e04e991c307 Author: djm@openbsd.org Date: Mon Jan 21 09:54:11 2019 +0000 upstream: Make sshpkt_get_bignum2() allocate the bignum it is parsing rather than make the caller do it. Saves a lot of boilerplate code. from markus@ ok djm@ OpenBSD-Commit-ID: 576bf784f9a240f5a1401f7005364e59aed3bce9 commit 803178bd5da7e72be94ba5b4c4c196d4b542da4d Author: djm@openbsd.org Date: Mon Jan 21 09:52:25 2019 +0000 upstream: remove obsolete (SSH v.1) sshbuf_get/put_bignum1 functions from markus@ ok djm@ OpenBSD-Commit-ID: 0380b1b2d9de063de3c5a097481a622e6a04943e commit f3ebaffd8714be31d4345f90af64992de4b3bba2 Author: djm@openbsd.org Date: Mon Jan 21 09:49:37 2019 +0000 upstream: fix all-zero check in kexc25519_shared_key from markus@ ok djm@ OpenBSD-Commit-ID: 60b1d364e0d9d34d1d1ef1620cb92e36cf06712d commit 9d1a9771d0ad3a83af733bf3d2650b53f43c269f Author: jmc@openbsd.org Date: Mon Jan 21 07:09:10 2019 +0000 upstream: - -T was added to the first synopsis by mistake - since "..." denotes optional, no need to surround it in [] ok djm OpenBSD-Commit-ID: 918f6d8eed4e0d8d9ef5eadae1b8983d796f0e25 commit 2f0bad2bf85391dbb41315ab55032ec522660617 Author: Darren Tucker Date: Mon Jan 21 21:28:27 2019 +1100 Make --with-rpath take a flag instead of yes/no. Linkers need various flags for -rpath and similar, so make --with-rpath take an optional flag argument which is passed to the linker. ok djm@ commit 23490a6c970ea1d03581a3b4208f2eb7a675f453 Author: Damien Miller Date: Mon Jan 21 15:05:43 2019 +1100 fix previous test commit b6dd3277f2c49f9584a2097bc792e8f480397e87 Author: Darren Tucker Date: Mon Jan 21 13:50:17 2019 +1100 Wrap ECC static globals in EC_KEY_METHOD_NEW too. commit b2eb9db35b7191613f2f4b934d57b25938bb34b3 Author: Damien Miller Date: Mon Jan 21 12:53:40 2019 +1100 pass TEST_SSH_SSHPKCS11HELPER to regress tests commit ba58a529f45b3dae2db68607d8c54ae96e90e705 Author: Damien Miller Date: Mon Jan 21 12:31:29 2019 +1100 make agent-pkcs11 search harder for softhsm2.so commit 662be40c62339ab645113c930ce689466f028938 Author: djm@openbsd.org Date: Mon Jan 21 02:05:38 2019 +0000 upstream: always print the caller's error message in ossl_error(), even when there are no libcrypto errors to report. OpenBSD-Commit-ID: 09ebaa8f706e0eccedd209775baa1eee2ada806a commit ce46c3a077dfb4c531ccffcfff03f37775725b75 Author: djm@openbsd.org Date: Mon Jan 21 02:01:03 2019 +0000 upstream: get the ex_data (pkcs11_key object) back from the keys at the index at which it was inserted, rather than assuming index 0 OpenBSD-Commit-ID: 1f3a6ce0346c8014e895e50423bef16401510aa8 commit 0a5f2ea35626022299ece3c8817a1abe8cf37b3e Author: djm@openbsd.org Date: Mon Jan 21 01:05:00 2019 +0000 upstream: GSSAPI code got missed when converting to new packet API OpenBSD-Commit-ID: 37e4f06ab4a0f4214430ff462ba91acba28b7851 commit 2efcf812b4c1555ca3aff744820a3b3bccd68298 Author: Damien Miller Date: Mon Jan 21 11:57:21 2019 +1100 Fix -Wunused when compiling PKCS#11 without ECDSA commit 3c0c657ed7cd335fc05c0852d88232ca7e92a5d9 Author: djm@openbsd.org Date: Sun Jan 20 23:26:44 2019 +0000 upstream: allow override of ssh-pkcs11-helper binary via $TEST_SSH_SSHPKCS11HELPER from markus@ OpenBSD-Regress-ID: 7382a3d76746f5a792d106912a5819fd5e49e469 commit 760ae37b4505453c6fa4faf1aa39a8671ab053af Author: djm@openbsd.org Date: Sun Jan 20 23:25:25 2019 +0000 upstream: adapt agent-pkcs11.sh test to softhsm2 and add support for ECDSA keys work by markus@, ok djm@ OpenBSD-Regress-ID: 1ebc2be0e88eff1b6d8be2f9c00cdc60723509fe commit b2ce8b31a1f974a13e6d12e0a0c132b50bc45115 Author: djm@openbsd.org Date: Sun Jan 20 23:24:19 2019 +0000 upstream: add "extra:" target to run some extra tests that are not enabled by default (currently includes agent-pkcs11.sh); from markus@ OpenBSD-Regress-ID: 9a969e1adcd117fea174d368dcb9c61eb50a2a3c commit 632976418d60b7193597bbc6ac7ca33981a41aab Author: djm@openbsd.org Date: Mon Jan 21 00:47:34 2019 +0000 upstream: use ECDSA_SIG_set0() instead of poking signature values into structure directly; the latter works on LibreSSL but not on OpenSSL. From portable. OpenBSD-Commit-ID: 5b22a1919d9cee907d3f8a029167f70a481891c6 commit 5de6ac2bad11175135d9b819b3546db0ca0b4878 Author: Damien Miller Date: Mon Jan 21 11:44:19 2019 +1100 remove HAVE_DLOPEN that snuck in portable doesn't use this commit e2cb445d786f7572da2af93e3433308eaed1093a Author: Damien Miller Date: Mon Jan 21 11:32:28 2019 +1100 conditionalise ECDSA PKCS#11 support Require EC_KEY_METHOD support in libcrypto, evidenced by presence of EC_KEY_METHOD_new() function. commit fcb1b0937182d0137a3c357c89735d0dc5869d54 Author: djm@openbsd.org Date: Sun Jan 20 23:12:35 2019 +0000 upstream: we use singleton pkcs#11 RSA_METHOD and EC_KEY_METHOD now, so there is no need to keep a copy of each in the pkcs11_key object. work by markus@, ok djm@ OpenBSD-Commit-ID: 43b4856516e45c0595f17a8e95b2daee05f12faa commit 6529409e85890cd6df7e5e81d04e393b1d2e4b0b Author: djm@openbsd.org Date: Sun Jan 20 23:11:11 2019 +0000 upstream: KNF previous; from markus@ OpenBSD-Commit-ID: 3dfe35e25b310c3968b1e4e53a0cb1d03bda5395 commit 58622a8c82f4e2aad630580543f51ba537c1f39e Author: djm@openbsd.org Date: Sun Jan 20 23:10:33 2019 +0000 upstream: use OpenSSL's RSA reference counting hooks to implicitly clean up pkcs11_key objects when their owning RSA object's reference count drops to zero. Simplifies the cleanup path and makes it more like ECDSA's work by markus@, ok djm@ OpenBSD-Commit-ID: 74b9c98f405cd78f7148e9e4a4982336cd3df25c commit f118542fc82a3b3ab0360955b33bc5a271ea709f Author: djm@openbsd.org Date: Sun Jan 20 23:08:24 2019 +0000 upstream: make the PKCS#11 RSA code more like the new PKCS#11 ECDSA code: use a single custom RSA_METHOD instead of a method per key suggested by me, but markus@ did all the work. ok djm@ OpenBSD-Commit-ID: 8aafcebe923dc742fc5537a995cee549d07e4b2e commit 445cfce49dfc904c6b8ab25afa2f43130296c1a5 Author: djm@openbsd.org Date: Sun Jan 20 23:05:52 2019 +0000 upstream: fix leak of ECDSA pkcs11_key objects work by markus, ok djm@ OpenBSD-Commit-ID: 9fc0c4f1d640aaa5f19b8d70f37ea19b8ad284a1 commit 8a2467583f0b5760787273796ec929190c3f16ee Author: djm@openbsd.org Date: Sun Jan 20 23:03:26 2019 +0000 upstream: use EVP_PKEY_get0_EC_KEY() instead of direct access of EC_KEY internals as that won't work on OpenSSL work by markus@, feedback and ok djm@ OpenBSD-Commit-ID: 4a99cdb89fbd6f5155ef8c521c99dc66e2612700 commit 24757c1ae309324e98d50e5935478655be04e549 Author: djm@openbsd.org Date: Sun Jan 20 23:01:59 2019 +0000 upstream: cleanup PKCS#11 ECDSA pubkey loading: the returned object should never have a DER header work by markus; feedback and ok djm@ OpenBSD-Commit-ID: b617fa585eddbbf0b1245b58b7a3c4b8d613db17 commit 749aef30321595435ddacef2f31d7a8f2b289309 Author: djm@openbsd.org Date: Sun Jan 20 23:00:12 2019 +0000 upstream: cleanup unnecessary code in ECDSA pkcs#11 signature work by markus@, feedback and ok djm@ OpenBSD-Commit-ID: affa5ca7d58d59fbd16169f77771dcdbd2b0306d commit 0c50992af49b562970dd0ba3f8f151f1119e260e Author: djm@openbsd.org Date: Sun Jan 20 22:57:45 2019 +0000 upstream: cleanup pkcs#11 client code: use sshkey_new in instead of stack- allocating a sshkey work by markus@, ok djm@ OpenBSD-Commit-ID: a048eb6ec8aa7fa97330af927022c0da77521f91 commit 854bd8674ee5074a239f7cadf757d55454802e41 Author: djm@openbsd.org Date: Sun Jan 20 22:54:30 2019 +0000 upstream: allow override of the pkcs#11 helper binary via $SSH_PKCS11_HELPER; needed for regress tests. work by markus@, ok me OpenBSD-Commit-ID: f78d8185500bd7c37aeaf7bd27336db62f0f7a83 commit 93f02107f44d63a016d8c23ebd2ca9205c495c48 Author: djm@openbsd.org Date: Sun Jan 20 22:51:37 2019 +0000 upstream: add support for ECDSA keys in PKCS#11 tokens Work by markus@ and Pedro Martelletto, feedback and ok me@ OpenBSD-Commit-ID: a37d651e221341376636056512bddfc16efb4424 commit aa22c20e0c36c2fc610cfcc793b0d14079c38814 Author: djm@openbsd.org Date: Sun Jan 20 22:03:29 2019 +0000 upstream: add option to test whether keys in an agent are usable, by performing a signature and a verification using each key "ssh-add -T pubkey [...]" work by markus@, ok djm@ OpenBSD-Commit-ID: 931b888a600b6a883f65375bd5f73a4776c6d19b commit a36b0b14a12971086034d53c0c3dfbad07665abe Author: tb@openbsd.org Date: Sun Jan 20 02:01:59 2019 +0000 upstream: Fix BN_is_prime_* calls in SSH, the API returns -1 on error. Found thanks to BoringSSL's commit 53409ee3d7595ed37da472bc73b010cd2c8a5ffd by David Benjamin. ok djm, dtucker OpenBSD-Commit-ID: 1ee832be3c44b1337f76b8562ec6d203f3b072f8 commit ec4776bb01dd8d61fddc7d2a31ab10bf3d3d829a Author: dtucker@openbsd.org Date: Sun Jan 20 01:12:40 2019 +0000 upstream: DH-GEX min value is now specified in RFC8270. ok djm@ OpenBSD-Commit-ID: 1229d0feb1d0ecefe05bf67a17578b263e991acc commit c90a7928c4191303e76a8c58b9008d464287ae1b Author: Darren Tucker Date: Mon Jan 21 09:22:36 2019 +1100 Check for cc before gcc. If cc is something other than gcc and is the system compiler prefer using that, unless otherwise told via $CC. ok djm@ commit 9b655dc9c9a353f0a527f0c6c43a5e35653c9503 Author: Damien Miller Date: Sun Jan 20 14:55:27 2019 +1100 last bits of old packet API / active_state global commit 3f0786bbe73609ac96e5a0d91425ee21129f8e04 Author: Damien Miller Date: Sun Jan 20 10:22:18 2019 +1100 remove PAM dependencies on old packet API Requires some caching of values, because the PAM code isn't always called with packet context. commit 08f66d9f17e12c1140d1f1cf5c4dce67e915d3cc Author: Damien Miller Date: Sun Jan 20 09:58:45 2019 +1100 remove vestiges of old packet API from loginrec.c commit c327813ea1d740e3e367109c17873815aba1328e Author: Damien Miller Date: Sun Jan 20 09:45:38 2019 +1100 depend commit 135e302cfdbe91817294317c337cc38c3ff01cba Author: djm@openbsd.org Date: Sat Jan 19 22:30:52 2019 +0000 upstream: fix error in refactor: use ssh_packet_disconnect() instead of sshpkt_error(). The first one logs the error and exits (what we want) instead of just logging and blundering on. OpenBSD-Commit-ID: 39f51b43641dce9ce0f408ea6c0e6e077e2e91ae commit 245c6a0b220b58686ee35bc5fc1c359e9be2faaa Author: djm@openbsd.org Date: Sat Jan 19 21:45:31 2019 +0000 upstream: remove last traces of old packet API! with & ok markus@ OpenBSD-Commit-ID: 9bd10437026423eb8245636ad34797a20fbafd7d commit 04c091fc199f17dacf8921df0a06634b454e2722 Author: djm@openbsd.org Date: Sat Jan 19 21:43:56 2019 +0000 upstream: remove last references to active_state with & ok markus@ OpenBSD-Commit-ID: 78619a50ea7e4ca2f3b54d4658b3227277490ba2 commit ec00f918b8ad90295044266c433340a8adc93452 Author: djm@openbsd.org Date: Sat Jan 19 21:43:07 2019 +0000 upstream: convert monitor.c to new packet API with & ok markus@ OpenBSD-Commit-ID: 61ecd154bd9804461a0cf5f495a29d919e0014d5 commit 6350e0316981489d4205952d6904d6fedba5bfe0 Author: djm@openbsd.org Date: Sat Jan 19 21:42:30 2019 +0000 upstream: convert sshd.c to new packet API with & ok markus@ OpenBSD-Commit-ID: ea569d3eaf9b5cf1bad52779fbfa5fa0b28af891 commit a5e2ad88acff2b7d131ee6d5dc5d339b0f8c6a6d Author: djm@openbsd.org Date: Sat Jan 19 21:41:53 2019 +0000 upstream: convert session.c to new packet API with & ok markus@ OpenBSD-Commit-ID: fae817207e23099ddd248960c984f7b7f26ea68e commit 3a00a921590d4c4b7e96df11bb10e6f9253ad45e Author: djm@openbsd.org Date: Sat Jan 19 21:41:18 2019 +0000 upstream: convert auth.c to new packet API with & ok markus@ OpenBSD-Commit-ID: 7e10359f614ff522b52a3f05eec576257794e8e4 commit 7ec5cb4d15ed2f2c5c9f5d00e6b361d136fc1e2d Author: djm@openbsd.org Date: Sat Jan 19 21:40:48 2019 +0000 upstream: convert serverloop.c to new packet API with & ok markus@ OpenBSD-Commit-ID: c92dd19b55457541478f95c0d6b318426d86d885 commit 64c9598ac05332d1327cbf55334dee4172d216c4 Author: djm@openbsd.org Date: Sat Jan 19 21:40:21 2019 +0000 upstream: convert the remainder of sshconnect2.c to new packet API with & ok markus@ OpenBSD-Commit-ID: 0986d324f2ceb5e8a12ac21c1bb10b3b4b1e0f71 commit bc5e1169d101d16e3a5962a928db2bc49a8ef5a3 Author: djm@openbsd.org Date: Sat Jan 19 21:39:12 2019 +0000 upstream: convert the remainder of clientloop.c to new packet API with & ok markus@ OpenBSD-Commit-ID: ce2fbbacb86a290f31da1e7bf04cddf2bdae3d1e commit 5ebce136a6105f084db8f0d7ee41981d42daec40 Author: Damien Miller Date: Sun Jan 20 09:44:53 2019 +1100 upstream: convert auth2.c to new packet API OpenBSD-Commit-ID: ed831bb95ad228c6791bc18b60ce7a2edef2c999 commit 172a592a53ebe8649c4ac0d7946e6c08eb151af6 Author: djm@openbsd.org Date: Sat Jan 19 21:37:48 2019 +0000 upstream: convert servconf.c to new packet API with & ok markus@ OpenBSD-Commit-ID: 126553aecca302c9e02fd77e333b9cb217e623b4 commit 8cc7a679d29cf6ecccfa08191e688c7f81ef95c2 Author: djm@openbsd.org Date: Sat Jan 19 21:37:13 2019 +0000 upstream: convert channels.c to new packet API with & ok markus@ OpenBSD-Commit-ID: 0b8279b56113cbd4011fc91315c0796b63dc862c commit 06232038c794c7dfcb087be0ab0b3e65b09fd396 Author: djm@openbsd.org Date: Sat Jan 19 21:36:38 2019 +0000 upstream: convert sshconnect.c to new packet API with & ok markus@ OpenBSD-Commit-ID: 222337cf6c96c347f1022d976fac74b4257c061f commit 25b2ed667216314471bb66752442c55b95792dc3 Author: djm@openbsd.org Date: Sat Jan 19 21:36:06 2019 +0000 upstream: convert ssh.c to new packet API with & ok markus@ OpenBSD-Commit-ID: eb146878b24e85c2a09ee171afa6797c166a2e21 commit e3128b38623eef2fa8d6e7ae934d3bd08c7e973e Author: djm@openbsd.org Date: Sat Jan 19 21:35:25 2019 +0000 upstream: convert mux.c to new packet API with & ok markus@ OpenBSD-Commit-ID: 4e3893937bae66416e984b282d8f0f800aafd802 commit ed1df7226caf3a943a36d580d4d4e9275f8a61ee Author: djm@openbsd.org Date: Sat Jan 19 21:34:45 2019 +0000 upstream: convert sshconnect2.c to new packet API with & ok markus@ OpenBSD-Commit-ID: 1cb869e0d6e03539f943235641ea070cae2ebc58 commit 23f22a4aaa923c61ec49a99ebaa383656e87fa40 Author: djm@openbsd.org Date: Sat Jan 19 21:33:57 2019 +0000 upstream: convert clientloop.c to new packet API with & ok markus@ OpenBSD-Commit-ID: 497b36500191f452a22abf283aa8d4a9abaee7fa commit ad60b1179c9682ca5aef0b346f99ef68cbbbc4e5 Author: djm@openbsd.org Date: Sat Jan 19 21:33:13 2019 +0000 upstream: allow sshpkt_fatal() to take a varargs format; we'll use this to give packet-related fatal error messages more context (esp. the remote endpoint) ok markus@ OpenBSD-Commit-ID: de57211f9543426b515a8a10a4f481666b2b2a50 commit 0fa174ebe129f3d0aeaf4e2d1dd8de745870d0ff Author: djm@openbsd.org Date: Sat Jan 19 21:31:32 2019 +0000 upstream: begin landing remaining refactoring of packet parsing API, started almost exactly six years ago. This change stops including the old packet_* API by default and makes each file that requires the old API include it explicitly. We will commit file-by-file refactoring to remove the old API in consistent steps. with & ok markus@ OpenBSD-Commit-ID: 93c98a6b38f6911fd1ae025a1ec57807fb4d4ef4 commit 4ae7f80dfd02f2bde912a67c9f338f61e90fa79f Author: tb@openbsd.org Date: Sat Jan 19 04:15:56 2019 +0000 upstream: Print an \r in front of the password prompt so parts of a password that was entered too early are likely clobbered by the prompt. Idea from doas. from and ok djm "i like it" deraadt OpenBSD-Commit-ID: 5fb97c68df6d8b09ab37f77bca1d84d799c4084e commit a6258e5dc314c7d504ac9f0fbc3be96475581dbe Author: Darren Tucker Date: Fri Jan 18 11:09:01 2019 +1100 Add minimal fchownat and fchmodat implementations. Fixes builds on at least OS X Lion, NetBSD 6 and Solaris 10. commit 091093d25802b87d3b2b09f2c88d9f33e1ae5562 Author: Darren Tucker Date: Fri Jan 18 12:11:42 2019 +1300 Add a minimal implementation of utimensat(). Some systems (eg older OS X) do not have utimensat, so provide minimal implementation in compat layer. Fixes build on at least El Capitan. commit 609644027dde1f82213699cb6599e584c7efcb75 Author: djm@openbsd.org Date: Tue Jan 1 22:20:16 2019 +0000 upstream: regress bits for banner processing refactor (this test was depending on ssh returning a particular error message for banner parsing failure) reminded by bluhm@ OpenBSD-Regress-ID: f24fc303d40931157431df589b386abf5e1be575 commit f47d72ddad75b93d3cbc781718b0fa9046c03df8 Author: djm@openbsd.org Date: Thu Jan 17 04:45:09 2019 +0000 upstream: tun_fwd_ifnames variable should b =?UTF-8?q?e=20extern;=20from=20Hanno=20B=C3=B6ck?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OpenBSD-Commit-ID: d53dede6e521161bf04d39d09947db6253a38271 commit 943d0965263cae1c080ce5a9d0b5aa341885e55d Author: djm@openbsd.org Date: Thu Jan 17 04:20:53 2019 +0000 upstream: include time.h for time(3)/nanosleep(2); from Ian McKellar OpenBSD-Commit-ID: 6412ccd06a88f65b207a1089345f51fa1244ea51 commit dbb4dec6d5d671b5e9d67ef02162a610ad052068 Author: djm@openbsd.org Date: Thu Jan 17 01:50:24 2019 +0000 upstream: many of the global variables in this file can be made static; patch from Markus Schmidt OpenBSD-Commit-ID: f3db619f67beb53257b21bac0e92b4fb7d5d5737 commit 60d8c84e0887514c99c9ce071965fafaa1c3d34a Author: djm@openbsd.org Date: Wed Jan 16 23:23:45 2019 +0000 upstream: Add "-h" flag to sftp chown/chgrp/chmod commands to request they do not follow symlinks. Requires recently-committed lsetstat@openssh.com extension on the server side. ok markus@ dtucker@ OpenBSD-Commit-ID: f93bb3f6f7eb2fb7ef1e59126e72714f1626d604 commit dbbc7e0eab7262f34b8e0cd6efecd1c77b905ed0 Author: djm@openbsd.org Date: Wed Jan 16 23:22:10 2019 +0000 upstream: add support for a "lsetstat@openssh.com" extension. This replicates the functionality of the existing SSH2_FXP_SETSTAT operation but does not follow symlinks. Based on a patch from Bert Haverkamp in bz#2067 but with more attribute modifications supported. ok markus@ dtucker@ OpenBSD-Commit-ID: f7234f6e90db19655d55d936a115ee4ccb6aaf80 commit 4a526941d328fc3d97068c6a4cbd9b71b70fe5e1 Author: djm@openbsd.org Date: Fri Jan 4 03:27:50 2019 +0000 upstream: eliminate function-static attempt counters for passwd/kbdint authmethods by moving them to the client authctxt; Patch from Markus Schmidt, ok markus@ OpenBSD-Commit-ID: 4df4404a5d5416eb056f68e0e2f4fa91ba3b3f7f commit 8a8183474c41bd6cebaa917346b549af2239ba2f Author: djm@openbsd.org Date: Fri Jan 4 03:23:00 2019 +0000 upstream: fix memory leak of ciphercontext when rekeying; bz#2942 Patch from Markus Schmidt; ok markus@ OpenBSD-Commit-ID: 7877f1b82e249986f1ef98d0ae76ce987d332bdd commit 5bed70afce0907b6217418d0655724c99b683d93 Author: djm@openbsd.org Date: Tue Jan 1 23:10:53 2019 +0000 upstream: static on global vars, const on handler tables that contain function pointers; from Mike Frysinger OpenBSD-Commit-ID: 7ef2305e50d3caa6326286db43cf2cfaf03960e0 commit 007a88b48c97d092ed2f501bbdcb70d9925277be Author: djm@openbsd.org Date: Thu Dec 27 23:02:11 2018 +0000 upstream: Request RSA-SHA2 signatures for rsa-sha2-{256|512}-cert-v01@openssh.com cert algorithms; ok markus@ OpenBSD-Commit-ID: afc6f7ca216ccd821656d1c911d2a3deed685033 commit eb347d086c35428c47fe52b34588cbbc9b49d9a6 Author: djm@openbsd.org Date: Thu Dec 27 03:37:49 2018 +0000 upstream: ssh_packet_set_state() now frees ssh->kex implicitly, so don't do explicit kex_free() beforehand OpenBSD-Regress-ID: f2f73bad47f62a2040ccba0a72cadcb12eda49cf commit bb542f0cf6f7511a22a08c492861e256a82376a9 Author: tedu@openbsd.org Date: Sat Dec 15 00:50:21 2018 +0000 upstream: remove unused and problematic sudo clean. ok espie OpenBSD-Regress-ID: ca90c20a15a85b661e13e98b80c10e65cd662f7b commit 0a843d9a0e805f14653a555f5c7a8ba99d62c12d Author: djm@openbsd.org Date: Thu Dec 27 03:25:24 2018 +0000 upstream: move client/server SSH-* banners to buffers under ssh->kex and factor out the banner exchange. This eliminates some common code from the client and server. Also be more strict about handling \r characters - these should only be accepted immediately before \n (pointed out by Jann Horn). Inspired by a patch from Markus Schmidt. (lots of) feedback and ok markus@ OpenBSD-Commit-ID: 1cc7885487a6754f63641d7d3279b0941890275b commit 434b587afe41c19391821e7392005068fda76248 Author: dtucker@openbsd.org Date: Fri Dec 7 04:36:09 2018 +0000 upstream: Fix calculation of initial bandwidth limits. Account for written bytes before the initial timer check so that the first buffer written is accounted. Set the threshold after which the timer is checked such that the limit starts being computed as soon as possible, ie after the second buffer is written. This prevents an initial burst of traffic and provides a more accurate bandwidth limit. bz#2927, ok djm. OpenBSD-Commit-ID: ff3ef76e4e43040ec198c2718d5682c36b255cb6 commit a6a0788cbbe8dfce2819ee43b09c80725742e21c Author: djm@openbsd.org Date: Fri Dec 7 03:39:40 2018 +0000 upstream: only consider the ext-info-c extension during the initial KEX. It shouldn't be sent in subsequent ones, but if it is present we should ignore it. This prevents sshd from sending a SSH_MSG_EXT_INFO for REKEX for buggy these clients. Reported by Jakub Jelen via bz2929; ok dtucker@ OpenBSD-Commit-ID: 91564118547f7807030ec537480303e2371902f9 commit 63bba57a32c5bb6158d57cf4c47022daf89c14a0 Author: djm@openbsd.org Date: Fri Dec 7 03:33:18 2018 +0000 upstream: fix option letter pasto in previous OpenBSD-Commit-ID: e26c8bf2f2a808f3c47960e1e490d2990167ec39 commit 737e4edd82406595815efadc28ed5161b8b0c01a Author: djm@openbsd.org Date: Fri Dec 7 03:32:26 2018 +0000 upstream: mention that the ssh-keygen -F (find host in authorized_keys) and -R (remove host from authorized_keys) options may accept either a bare hostname or a [hostname]:port combo. bz#2935 OpenBSD-Commit-ID: 5535cf4ce78375968b0d2cd7aa316fa3eb176780 commit 8a22ffaa13391cfe5b40316d938fe0fb931e9296 Author: Damien Miller Date: Fri Dec 7 15:41:16 2018 +1100 expose $SSH_CONNECTION in the PAM environment This makes the connection 4-tuple available to PAM modules that wish to use it in decision-making. bz#2741 commit a784fa8c7a7b084d63bae82ccfea902131bb45c5 Author: Kevin Adler Date: Wed Dec 12 22:12:45 2018 -0600 Don't pass loginmsg by address now that it's an sshbuf* In 120a1ec74, loginmsg was changed from the legacy Buffer type to struct sshbuf*, but it missed changing calls to sys_auth_allowed_user and sys_auth_record_login which passed loginmsg by address. Now that it's a pointer, just pass it directly. This only affects AIX, unless there are out of tree users. commit 285310b897969a63ef224d39e7cc2b7316d86940 Author: djm@openbsd.org Date: Fri Dec 7 02:31:20 2018 +0000 upstream: no need to allocate channels_pre/channels_post in channel_init_channels() as we do it anyway in channel_handler_init() that we call at the end of the function. Fix from Markus Schmidt via bz#2938 OpenBSD-Commit-ID: 74893638af49e3734f1e33a54af1b7ea533373ed commit 87d6cf1cbc91df6815db8fe0acc7c910bc3d18e4 Author: djm@openbsd.org Date: Fri Nov 30 02:24:52 2018 +0000 upstream: don't attempt to connect to empty SSH_AUTH_SOCK; bz#293 OpenBSD-Commit-ID: 0e8fc8f19f14b21adef7109e0faa583d87c0e929 commit 91b19198c3f604f5eef2c56dbe36f29478243141 Author: djm@openbsd.org Date: Wed Nov 28 06:00:38 2018 +0000 upstream: don't truncate user or host name in "user@host's OpenBSD-Commit-ID: e6ca01a8d58004b7f2cac0b1b7ce8f87e425e360 commit dd0cf6318d9b4b3533bda1e3bc021b2cd7246b7a Author: jmc@openbsd.org Date: Fri Nov 23 06:58:28 2018 +0000 upstream: tweak previous; OpenBSD-Commit-ID: 08f096922eb00c98251501c193ff9e83fbb5de4f commit 8a85f5458d1c802471ca899c97f89946f6666e61 Author: Darren Tucker Date: Sun Nov 25 21:44:05 2018 +1100 Include stdio.h for FILE if needed. commit 16fb23f25454991272bfe4598cc05d20fcd25116 Author: Darren Tucker Date: Sun Nov 25 14:05:57 2018 +1100 Reverse order of OpenSSL init functions. Try the new init function (OPENSSL_init_crypto) before falling back to the old one (OpenSSL_add_all_algorithms). commit 98f878d2272bf8dff21f2a0265d963c29e33fed2 Author: Darren Tucker Date: Sun Nov 25 14:05:08 2018 +1100 Improve OpenSSL_add_all_algorithms check. OpenSSL_add_all_algorithms() may be a macro so check for that too. commit 9e34e0c59ab04514f9de9934a772283f7f372afe Author: djm@openbsd.org Date: Fri Nov 23 05:08:07 2018 +0000 upstream: add a ssh_config "Match final" predicate Matches in same pass as "Match canonical" but doesn't require hostname canonicalisation be enabled. bz#2906 ok markus OpenBSD-Commit-ID: fba1dfe9f6e0cabcd0e2b3be13f7a434199beffa commit 4da58d58736b065b1182b563d10ad6765d811c6d Author: dtucker@openbsd.org Date: Fri Nov 23 02:53:57 2018 +0000 upstream: Remove now-unneeded ifdef SIGINFO around handler since it is now always used for SIGUSR1 even when SIGINFO is not defined. This will make things simpler in -portable. OpenBSD-Regress-ID: 4ff0265b335820b0646d37beb93f036ded0dc43f commit c721d5877509875c8515df0215fa1dab862013bc Author: Darren Tucker Date: Fri Nov 23 14:11:20 2018 +1100 Move RANDOM_SEED_SIZE outside ifdef. RANDOM_SEED_SIZE is used by both the OpenSSL and non-OpenSSL code This fixes the build with configureed --without-openssl. commit deb51552c3ce7ce72c8d0232e4f36f2e7c118c7d Author: Darren Tucker Date: Thu Nov 22 19:59:28 2018 +1100 Resync with OpenBSD by pulling in an ifdef SIGINFO. commit 28c7b2cd050f4416bfcf3869a20e3ea138aa52fe Author: Damien Miller Date: Fri Nov 23 10:45:20 2018 +1100 fix configure test for OpenSSL version square brackets in case statements may be eaten by autoconf. Report and fix from Filipp Gunbin; tweaked by naddy@ commit 42c5ec4b97b6a1bae70f323952d0646af16ce710 Author: Damien Miller Date: Fri Nov 23 10:40:06 2018 +1100 refactor libcrypto initialisation Don't call OpenSSL_add_all_algorithms() unless OpenSSL actually supports it. Move all libcrypto initialisation to a single function, and call that from seed_rng() that is called early in each tool's main(). Prompted by patch from Rosen Penev commit 5b60b6c02009547a3e2a99d4886965de2a4719da Author: dtucker@openbsd.org Date: Thu Nov 22 08:59:11 2018 +0000 upstream: Output info on SIGUSR1 as well as SIGINFO to resync with portable. (ID sync only). OpenBSD-Regress-ID: 699d153e2de22dce51a1b270c40a98472d1a1b16 commit e4ae345dc75b34fd870c2e8690d831d2c1088eb7 Author: dtucker@openbsd.org Date: Thu Nov 22 08:48:32 2018 +0000 upstream: Append pid to temp files in /var/run and set a cleanup trap for them. This allows multiple instances of tests to run without colliding. OpenBSD-Regress-ID: 57add105ecdfc54752d8003acdd99eb68c3e0b4c commit f72d0f52effca5aa20a193217346615ecd3eed53 Author: dtucker@openbsd.org Date: Wed Oct 31 11:09:27 2018 +0000 upstream: UsePrivilegeSeparation no is deprecated test "yes" and "sandbox". OpenBSD-Regress-ID: 80e685ed8990766527dc629b1affc09a75bfe2da commit 35d0e5fefc419bddcbe09d7fc163d8cd3417125b Author: djm@openbsd.org Date: Wed Oct 17 23:28:05 2018 +0000 upstream: add some knobs: UNITTEST_FAST?= no # Skip slow tests (e.g. less intensive fuzzing). UNITTEST_SLOW?= no # Include slower tests (e.g. more intensive fuzzing). UNITTEST_VERBOSE?= no # Verbose test output (inc. per-test names). useful if you want to run the tests as a smoke test to exercise the functionality without waiting for all the fuzzers to run. OpenBSD-Regress-ID: e04d82ebec86068198cd903acf1c67563c57315e commit c1941293d9422a14dda372b4c21895e72aa7a063 Author: Darren Tucker Date: Thu Nov 22 15:52:26 2018 +1100 Resync Makefile.inc with upstream. It's unused in -portable, but having it out of sync makes other syncs fail to apply. commit 928f1231f65f88cd4c73e6e0edd63d2cf6295d77 Author: djm@openbsd.org Date: Mon Nov 19 04:12:32 2018 +0000 upstream: silence (to log level debug2) failure messages when loading the default hostkeys. Hostkeys explicitly specified in the configuration or on the command-line are still reported as errors, and failure to load at least one host key remains a fatal error. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Based on patch from Dag-Erling Smørgrav via https://github.com/openssh/openssh-portable/pull/103 ok markus@ OpenBSD-Commit-ID: ffc2e35a75d1008effaf05a5e27425041c27b684 commit 7fca94edbe8ca9f879da9fdd2afd959c4180f4c7 Author: dtucker@openbsd.org Date: Sun Nov 18 22:43:29 2018 +0000 upstream: Fix inverted logic for redirecting ProxyCommand stderr to /dev/null. Fixes mosh in proxycommand mode that was broken by the previous ProxyCommand change that was reported by matthieu@. ok djm@ danj@ OpenBSD-Commit-ID: c6fc9641bc250221a0a81c6beb2e72d603f8add6 commit ccef7c4faf914993b53035cd2b25ce02ab039c9d Author: djm@openbsd.org Date: Fri Nov 16 06:17:38 2018 +0000 upstream: redirect stderr of ProxyCommands to /dev/null when ssh is started with ControlPersist; based on patch from Steffen Prohaska OpenBSD-Commit-ID: 1bcaa14a03ae80369d31021271ec75dce2597957 commit 15182fd96845a03216d7ac5a2cf31c4e77e406e3 Author: djm@openbsd.org Date: Fri Nov 16 06:10:29 2018 +0000 upstream: make grandparent-parent-child sshbuf chains robust to use-after-free faults if the ancestors are freed before the descendents. Nothing in OpenSSH uses this deallocation pattern. Reported by Jann Horn OpenBSD-Commit-ID: d93501d1d2734245aac802a252b9bb2eccdba0f2 commit 2a35862e664afde774d4a72497d394fe7306ccb5 Author: djm@openbsd.org Date: Fri Nov 16 03:26:01 2018 +0000 upstream: use path_absolute() for pathname checks; from Manoj Ampalam OpenBSD-Commit-ID: 482ce71a5ea5c5f3bc4d00fd719481a6a584d925 commit d0d1dfa55be1c5c0d77ab3096b198a64235f936d Author: Darren Tucker Date: Fri Nov 16 14:11:44 2018 +1100 Test for OPENSSL_init_crypto before using. Check for the presence of OPENSSL_init_crypto and all the flags we want before trying to use it (bz#2931). commit 6010c0303a422a9c5fa8860c061bf7105eb7f8b2 Author: djm@openbsd.org Date: Fri Nov 16 03:03:10 2018 +0000 upstream: disallow empty incoming filename or ones that refer to the current directory; based on report/patch from Harry Sintonen OpenBSD-Commit-ID: f27651b30eaee2df49540ab68d030865c04f6de9 commit aaed635e3a401cfcc4cc97f33788179c458901c3 Author: djm@openbsd.org Date: Fri Nov 16 02:46:20 2018 +0000 upstream: fix bug in client that was keeping a redundant ssh-agent socket around for the life of the connection; bz#2912; reported by Simon Tatham; ok dtucker@ OpenBSD-Commit-ID: 4ded588301183d343dce3e8c5fc1398e35058478 commit e76135e3007f1564427b2956c628923d8dc2f75a Author: djm@openbsd.org Date: Fri Nov 16 02:43:56 2018 +0000 upstream: fix bug in HostbasedAcceptedKeyTypes and PubkeyAcceptedKeyTypes options. If only RSA-SHA2 siganture types were specified, then authentication would always fail for RSA keys as the monitor checks only the base key (not the signature algorithm) type against *AcceptedKeyTypes. bz#2746; reported by Jakub Jelen; ok dtucker OpenBSD-Commit-ID: 117bc3dc54578dbdb515a1d3732988cb5b00461b commit 5c1a63562cac0574c226224075b0829a50b48c9d Author: djm@openbsd.org Date: Fri Nov 16 02:30:20 2018 +0000 upstream: support a prefix of '@' to suppress echo of sftp batch commands; bz#2926; ok dtucker@ OpenBSD-Commit-ID: 9d635636bc84aeae796467e059f7634de990a79d commit 90ef45f7aac33eaf55ec344e101548a01e570f29 Author: schwarze@openbsd.org Date: Tue Nov 13 07:22:45 2018 +0000 upstream: fix markup error (missing blank before delimiter); from Mike Frysinger OpenBSD-Commit-ID: 1bc5392f795ca86318d695e0947eaf71a5a4f6d9 commit 960e7c672dc106f3b759c081de3edb4d1138b36e Author: djm@openbsd.org Date: Fri Nov 9 02:57:58 2018 +0000 upstream: typo in error message; caught by Debian lintian, via Colin Watson OpenBSD-Commit-ID: bff614c7bd1f4ca491a84e9b5999f848d0d66758 commit 81f1620c836e6c79c0823ba44acca605226a80f1 Author: djm@openbsd.org Date: Fri Nov 9 02:56:22 2018 +0000 upstream: correct local variable name; from yawang AT microsoft.com OpenBSD-Commit-ID: a0c228390856a215bb66319c89cb3959d3af8c87 commit 1293740e800fa2e5ccd38842a2e4970c6f3b9831 Author: dtucker@openbsd.org Date: Wed Oct 31 11:20:05 2018 +0000 upstream: Import new moduli. OpenBSD-Commit-ID: c07772f58028fda683ee6abd41c73da3ff70d403 commit 46925ae28e53fc9add336a4fcdb7ed4b86c3591c Author: djm@openbsd.org Date: Fri Oct 26 01:23:03 2018 +0000 upstream: mention ssh-ed25519-cert-v01@openssh.com in list of cert key type at start of doc OpenBSD-Commit-ID: b46b0149256d67f05f2d5d01e160634ed1a67324 commit 8d8340e2c215155637fe19cb1a837f71b2d55f7b Author: Darren Tucker Date: Fri Nov 16 13:32:13 2018 +1100 Remove fallback check for /usr/local/ssl. If configure could not find a working OpenSSL installation it would fall back to checking in /usr/local/ssl. This made sense back when systems did not ship with OpenSSL, but most do and OpenSSL 1.1 doesn't use that as a default any more. The fallback behaviour also meant that if you pointed --with-ssl-dir at a specific directory and it didn't work, it would silently use either the system libs or the ones in /usr/local/ssl. If you want to use /usr/local/ssl you'll need to pass configure --with-ssl-dir=/usr/local/ssl. ok djm@ commit ce93472134fb22eff73edbcd173a21ae38889331 Author: Darren Tucker Date: Fri Nov 16 12:44:01 2018 +1100 Fix check for OpenSSL 1.0.1 exactly. Both INSTALL and configure.ac claim OpenSSL >= 1.0.1 is supported; fix compile-time check for 1.0.1 to match. commit f2970868f86161a22b2c377057fa3891863a692a Author: Darren Tucker Date: Sun Nov 11 15:58:20 2018 +1100 Improve warnings in cygwin service setup. bz#2922, patch from vinschen at redhat.com. commit bd2d54fc1eee84bf87158a1277a50e6c8a303339 Author: Darren Tucker Date: Sun Nov 11 15:54:54 2018 +1100 Remove hardcoded service name in cygwin setup. bz#2922, patch from Christian.Lupien at USherbrooke.ca, sanity check by vinschen at redhat.com. commit d0153c77bf7964e694f1d26c56c41a571b8e9466 Author: Dag-Erling Smørgrav Date: Tue Oct 9 23:03:40 2018 +0200 AC_CHECK_SIZEOF() no longer needs a second argument. commit 9b47b083ca9d866249ada9f02dbd57c87b13806e Author: Manoj Ampalam Date: Thu Nov 8 22:41:59 2018 -0800 Fix error message w/out nistp521. Correct error message when OpenSSL doesn't support certain ECDSA key lengths. commit 624d19ac2d56fa86a22417c35536caceb3be346f Author: Eneas U de Queiroz Date: Tue Oct 9 16:17:42 2018 -0300 fix compilation with openssl built without ECC ECDSA code in openssh-compat.h and libressl-api-compat.c needs to be guarded by OPENSSL_HAS_ECC Signed-off-by: Eneas U de Queiroz commit 1801cd11d99d05a66ab5248c0555f55909a355ce Author: Darren Tucker Date: Thu Nov 8 15:03:11 2018 +1100 Simplify OpenSSL 1.1 function checks. Replace AC_SEARCH_LIBS checks for OpenSSL 1.1 functions with a single AC_CHECK_FUNCS. ok djm@ commit bc32f118d484e4d71d2a0828fd4eab7e4176c9af Author: Darren Tucker Date: Mon Nov 5 17:31:24 2018 +1100 Fix pasto for HAVE_EVP_CIPHER_CTX_SET_IV. Prevents unnecessary redefinition. Patch from mforney at mforney.org. commit 3719df60c66abc4b47200d41f571d67772f293ba Author: Darren Tucker Date: Wed Oct 31 22:21:03 2018 +1100 Import new moduli. commit 595605d4abede475339d6a1f07a8cc674c11d1c3 Author: Darren Tucker Date: Sun Oct 28 15:18:13 2018 +1100 Update check for minimum OpenSSL version. commit 6ab75aba340d827140d7ba719787aabaf39a0355 Author: Darren Tucker Date: Sun Oct 28 15:16:31 2018 +1100 Update required OpenSSL versions to match current. commit c801b0e38eae99427f37869370151b78f8e15c5d Author: Darren Tucker Date: Sun Oct 28 14:34:12 2018 +1100 Use detected version functions in openssl compat. Use detected functions in compat layer instead of guessing based on versions. Really fixes builds with LibreSSL, not just configure. commit 262d81a259d4aa1507c709ec9d5caa21c7740722 Author: Darren Tucker Date: Sat Oct 27 16:45:59 2018 +1100 Check for the existence of openssl version funcs. Check for the existence of openssl version functions and use the ones detected instead of trying to guess based on the int32 version identifier. Fixes builds with LibreSSL. commit 406a24b25d6a2bdd70cacd16de7e899dcb2a8829 Author: Damien Miller Date: Fri Oct 26 13:43:28 2018 +1100 fix builds on OpenSSL <= 1.0.x I thought OpenSSL 1.0.x offered the new-style OpenSSL_version_num() API to obtain version number, but they don't. commit 859754bdeb41373d372e36b5dc89c547453addb3 Author: Damien Miller Date: Tue Oct 23 17:10:41 2018 +1100 remove remaining references to SSLeay Prompted by Rosen Penev commit b9fea45a68946c8dfeace72ad1f6657c18f2a98a Author: Damien Miller Date: Tue Oct 23 17:10:35 2018 +1100 regen depend commit a65784c9f9c5d00cf1a0e235090170abc8d07c73 Author: djm@openbsd.org Date: Tue Oct 23 05:56:35 2018 +0000 upstream: refer to OpenSSL not SSLeay; we're old, but we don't have to act it OpenBSD-Commit-ID: 9ca38d11f8ed19e61a55108d1e892d696cee08ec commit c0a35265907533be10ca151ac797f34ae0d68969 Author: Damien Miller Date: Mon Oct 22 11:22:50 2018 +1100 fix compile for openssl 1.0.x w/ --with-ssl-engine bz#2921, patch from cotequeiroz commit 31b49525168245abe16ad49d7b7f519786b53a38 Author: Darren Tucker Date: Mon Oct 22 20:05:18 2018 +1100 Include openssl compatibility. Patch from rosenp at gmail.com via openssh-unix-dev. commit a4fc253f5f44f0e4c47aafe2a17d2c46481d3c04 Author: djm@openbsd.org Date: Fri Oct 19 03:12:42 2018 +0000 upstream: when printing certificate contents "ssh-keygen -Lf /path/certificate", include the algorithm that the CA used to sign the cert. OpenBSD-Commit-ID: 1ea20b5048a851a7a0758dcb9777a211a2c0dddd commit 83b3d99d2b47321b7ebb8db6f6ea04f3808bc069 Author: florian@openbsd.org Date: Mon Oct 15 11:28:50 2018 +0000 upstream: struct sockaddr_storage is guaranteed to be large enough, no need to check the size. OK kn, deraadt OpenBSD-Commit-ID: 0aa56e92eb49c79f495b31a5093109ec5841f439 commit aede1c34243a6f7feae2fb2cb686ade5f9be6f3d Author: Damien Miller Date: Wed Oct 17 11:01:20 2018 +1100 Require OpenSSL 1.1.x series 1.1.0g or greater Previous versions have a bug with EVP_CipherInit() when passed a NULL EVP_CIPHER, per https://github.com/openssl/openssl/pull/4613 ok dtucker@ commit 08300c211409c212e010fe2e2f2883e573a04ce2 Author: Damien Miller Date: Wed Oct 17 08:12:02 2018 +1100 unbreak compilation with --with-ssl-engine Missing last argument to OPENSSL_init_crypto() commit 1673274aee67ce0eb6f00578b6f3d2bcbd58f937 Author: Darren Tucker Date: Tue Oct 16 14:45:57 2018 +1100 Remove gcc spectre mitigation flags. Current impementions of the gcc spectre mitigation flags cause miscompilations when combined with other flags and do not provide much protection. Found by fweimer at redhat.com, ok djm@ commit 4e23deefd7959ef83c73ed9cce574423438f6133 Author: Damien Miller Date: Tue Oct 16 10:51:52 2018 +1100 Avoid deprecated OPENSSL_config when using 1.1.x OpenSSL 1.1.x soft-deprecated OPENSSL_config in favour of OPENSSL_init_crypto; pointed out by Jakub Jelen commit 797cdd9c8468ed1125ce60d590ae3f1397866af4 Author: Darren Tucker Date: Fri Oct 12 16:58:47 2018 +1100 Don't avoid our *sprintf replacements. Don't let systems with broken printf(3) avoid our replacements via asprintf(3)/vasprintf(3) calling libc internally. From djm@ commit e526127cbd2f8ad88fb41229df0c9b850c722830 Author: Darren Tucker Date: Fri Oct 12 16:43:35 2018 +1100 Check if snprintf understands %zu. If the platforms snprintf and friends don't understand %zu, use the compat replacement. Prevents segfaults on those platforms. commit cf39f875191708c5f2f1a3c1c9019f106e74aea3 Author: Damien Miller Date: Fri Oct 12 09:48:05 2018 +1100 remove stale link, tweak commit a7205e68decf7de2005810853b4ce6b222b65e2a Author: Damien Miller Date: Fri Oct 12 09:47:20 2018 +1100 update version numbers ahead of release commit 1a4a9cf80f5b92b9d1dadd0bfa8867c04d195391 Author: djm@openbsd.org Date: Thu Oct 11 03:48:04 2018 +0000 upstream: don't send new-style rsa-sha2-*-cert-v01@openssh.com names to older OpenSSH that can't handle them. spotted by Adam Eijdenberg; ok dtucker OpenBSD-Commit-ID: 662bbc402e3d7c9b6c322806269698106a6ae631 commit dc8ddcdf1a95e011c263486c25869bb5bf4e30ec Author: Damien Miller Date: Thu Oct 11 13:08:59 2018 +1100 update depends commit 26841ac265603fd2253e6832e03602823dbb4022 Author: Damien Miller Date: Thu Oct 11 13:02:11 2018 +1100 some more duplicated key algorithm lines From Adam Eijdenberg commit 5d9d17603bfbb620195a4581025052832b4c4adc Author: Damien Miller Date: Thu Oct 11 11:56:36 2018 +1100 fix duplicated algorithm specification lines Spotted by Adam Eijdenberg commit ebfafd9c7a5b2a7fb515ee95dbe0e44e11d0a663 Author: djm@openbsd.org Date: Thu Oct 11 00:52:46 2018 +0000 upstream: typo in plain RSA algorithm counterpart names for certificates; spotted by Adam Eijdenberg; ok dtucker@ OpenBSD-Commit-ID: bfcdeb6f4fc9e7607f5096574c8f118f2e709e00 commit c29b111e7d87c2324ff71c80653dd8da168c13b9 Author: Damien Miller Date: Thu Oct 11 11:29:35 2018 +1100 check pw_passwd != NULL here too Again, for systems with broken NIS implementations. Prompted by coolbugcheckers AT gmail.com commit fe8e8f349a553ef4c567acd418aac769a82b7729 Author: Damien Miller Date: Thu Oct 11 11:03:15 2018 +1100 check for NULL return from shadow_pw() probably unreachable on this platform; pointed out by coolbugcheckers AT gmail.com commit acc59cbe7a1fb169e1c3caba65a39bd74d6e030d Author: deraadt@openbsd.org Date: Wed Oct 10 16:43:49 2018 +0000 upstream: introducing openssh 7.9 OpenBSD-Commit-ID: 42d526a9fe01a40dd299ac58014d3349adf40e25 commit 12731158c75c8760a8bea06350eeb3e763fe1a07 Author: Damien Miller Date: Thu Oct 11 10:29:29 2018 +1100 supply callback to PEM_read_bio_PrivateKey OpenSSL 1.1.0i has changed the behaviour of their PEM APIs, so that empty passphrases are interpreted differently. This probabalistically breaks loading some keys, because the PEM format is terrible and doesn't include a proper MAC. Avoid this by providing a basic callback to avoid passing empty passphrases to OpenSSL in cases where one is required. Based on patch from Jakub Jelen in bz#2913; ok dtucker@ commit d1d301a1dd5d6cc3a9ed93ab7ab09dda4cb456e0 Author: Damien Miller Date: Wed Oct 10 14:57:00 2018 +1100 in pick_salt() avoid dereference of NULL passwords Apparently some NIS implementations can leave pw->pw_passwd (or the shadow equivalent) NULL. bz#2909; based on patch from Todd Eigenschink commit edbb6febccee084d212fdc0cb05b40cb1c646ab1 Author: djm@openbsd.org Date: Tue Oct 9 05:42:23 2018 +0000 upstream: Treat all PEM_read_bio_PrivateKey() errors when a passphrase is specified as "incorrect passphrase" instead of trying to choose between that and "invalid format". libcrypto can return ASN1 parsing errors rather than the expected decrypt error in certain infrequent cases when trying to decrypt/parse PEM private keys when supplied with an invalid passphrase. Report and repro recipe from Thomas Deutschmann in bz#2901 ok markus@ OpenBSD-Commit-ID: b1d4cd92395f9743f81c0d23aab2524109580870 commit 2581333d564d8697837729b3d07d45738eaf5a54 Author: naddy@openbsd.org Date: Fri Oct 5 14:26:09 2018 +0000 upstream: Support using service names for port numbers. * Try to resolve a port specification with getservbyname(3) if a numeric conversion fails. * Make the "Port" option in ssh_config handle its argument as a port rather than a plain integer. ok dtucker@ deraadt@ OpenBSD-Commit-ID: e7f03633133205ab3dfbc67f9df7475fabae660d commit e0d6501e86734c48c8c503f81e1c0926e98c5c4c Author: djm@openbsd.org Date: Thu Oct 4 07:47:35 2018 +0000 upstream: when the peer sends a channel-close message, make sure we close the local extended read fd (stderr) along with the regular read fd (stdout). Avoids weird stuck processed in multiplexing mode. Report and analysis by Nelson Elhage and Geoffrey Thomas in bz#2863 ok dtucker@ markus@ OpenBSD-Commit-ID: a48a2467fe938de4de69d2e7193d5fa701f12ae9 commit 6f1aabb128246f445e33b8844fad3de9cb1d18cb Author: djm@openbsd.org Date: Thu Oct 4 01:04:52 2018 +0000 upstream: factor out channel status formatting from channel_open_message() so we can use it in other debug messages OpenBSD-Commit-ID: 9c3903ca28fcabad57f566c9d0045b41ab7d52ba commit f1dd179e122bdfdb7ca3072d9603607740efda05 Author: djm@openbsd.org Date: Thu Oct 4 00:10:11 2018 +0000 upstream: include a little more information about the status and disposition of channel's extended (stderr) fd; makes debugging some things a bit easier. No behaviour change. OpenBSD-Commit-ID: 483eb6467dc7d5dbca8eb109c453e7a43075f7ce commit 2d1428b11c8b6f616f070f2ecedce12328526944 Author: djm@openbsd.org Date: Thu Oct 4 00:04:41 2018 +0000 upstream: explicit_bzero here to be consistent with other kex*.c; report from coolbugcheckers AT gmail.com OpenBSD-Commit-ID: a90f146c5b5f5b1408700395e394f70b440856cb commit 5eff5b858e717e901e6af6596306a114de9f79f2 Author: djm@openbsd.org Date: Wed Oct 3 06:38:35 2018 +0000 upstream: Allow ssh_config IdentityAgent directive to accept environment variable names as well as explicit paths. ok dtucker@ OpenBSD-Commit-ID: 2f0996e103876c53d8c9dd51dcce9889d700767b commit a46ac4d86b25414d78b632e8173578b37e5f8a83 Author: djm@openbsd.org Date: Tue Oct 2 12:51:58 2018 +0000 upstream: mention INFO@openssh.com for sending SIGINFO OpenBSD-Commit-ID: 132471eeb0df658210afd27852fe65131b26e900 commit ff3a411cae0b484274b7900ef52ff4dad3e12876 Author: Damien Miller Date: Tue Oct 2 22:49:40 2018 +1000 only support SIGINFO on systems with SIGINFO commit cd98925c6405e972dc9f211afc7e75e838abe81c Author: djm@openbsd.org Date: Tue Oct 2 12:40:07 2018 +0000 upstream: Add server support for signalling sessions via the SSH channel/ session protocol. Signalling is only supported to sesssions that are not subsystems and were not started with a forced command. Long requested in bz#1424 Based on a patch from markus@ and reworked by dtucker@; ok markus@ dtucker@ OpenBSD-Commit-ID: 4bea826f575862eaac569c4bedd1056a268be1c3 commit dba50258333f2604a87848762af07ba2cc40407a Author: djm@openbsd.org Date: Wed Sep 26 07:32:44 2018 +0000 upstream: remove big ugly TODO comment from start of file. Some of the mentioned tasks are obsolete and, of the remainder, most are already captured in PROTOCOL.mux where they better belong OpenBSD-Commit-ID: 16d9d76dee42a5bb651c9d6740f7f0ef68aeb407 commit 92b61a38ee9b765f5049f03cd1143e13f3878905 Author: djm@openbsd.org Date: Wed Sep 26 07:30:05 2018 +0000 upstream: Document mux proxy mode; added by Markus in openssh-7.4 Also add a little bit of information about the overall packet format OpenBSD-Commit-ID: bdb6f6ea8580ef96792e270cae7857786ad84a95 commit 9d883a1ce4f89b175fd77405ff32674620703fb2 Author: djm@openbsd.org Date: Wed Sep 26 01:48:57 2018 +0000 upstream: s/process_mux_master/mux_master_process/ in mux master function names, Gives better symmetry with the existing mux_client_*() names and makes it more obvious when a message comes from the master vs client (they are interleved in ControlMaster=auto mode). no functional change beyond prefixing a could of log messages with __func__ where they were previously lacking. OpenBSD-Commit-ID: b01f7c3fdf92692e1713a822a89dc499333daf75 commit c2fa53cd6462da82d3a851dc3a4a3f6b920337c8 Author: Darren Tucker Date: Sat Sep 22 14:41:24 2018 +1000 Remove unused variable in _ssh_compat_fflush. commit d1b3540c21212624af907488960d703c7d987b42 Author: Darren Tucker Date: Thu Sep 20 18:08:43 2018 +1000 Import updated moduli. commit b5e412a8993ad17b9e1141c78408df15d3d987e1 Author: djm@openbsd.org Date: Fri Sep 21 12:46:22 2018 +0000 upstream: Allow ssh_config ForwardX11Timeout=0 to disable the timeout and allow X11 connections in untrusted mode indefinitely. ok dtucker@ OpenBSD-Commit-ID: ea1ceed3f540b48e5803f933e59a03b20db10c69 commit cb24d9fcc901429d77211f274031653476864ec6 Author: djm@openbsd.org Date: Fri Sep 21 12:23:17 2018 +0000 upstream: when compiled with GSSAPI support, cache supported method OIDs by calling ssh_gssapi_prepare_supported_oids() regardless of whether GSSAPI authentication is enabled in the main config. This avoids sandbox violations for configurations that enable GSSAPI auth later, e.g. Match user djm GSSAPIAuthentication yes bz#2107; ok dtucker@ OpenBSD-Commit-ID: a5dd42d87c74e27cfb712b15b0f97ab20e0afd1d commit bbc8af72ba68da014d4de6e21a85eb5123384226 Author: djm@openbsd.org Date: Fri Sep 21 12:20:12 2018 +0000 upstream: In sshkey_in_file(), ignore keys that are considered for being too short (i.e. SSH_ERR_KEY_LENGTH). These keys will not be considered to be "in the file". This allows key revocation lists to contain short keys without the entire revocation list being considered invalid. bz#2897; ok dtucker OpenBSD-Commit-ID: d9f3d857d07194a42ad7e62889a74dc3f9d9924b commit 383a33d160cefbfd1b40fef81f72eadbf9303a66 Author: djm@openbsd.org Date: Fri Sep 21 03:11:36 2018 +0000 upstream: Treat connections with ProxyJump specified the same as ones with a ProxyCommand set with regards to hostname canonicalisation (i.e. don't try to canonicalise the hostname unless CanonicalizeHostname is set to 'always'). Patch from Sven Wegener via bz#2896 OpenBSD-Commit-ID: 527ff501cf98bf65fb4b29ed0cb847dda10f4d37 commit 0cbed248ed81584129b67c348dbb801660f25a6a Author: djm@openbsd.org Date: Thu Sep 20 23:40:16 2018 +0000 upstream: actually make CASignatureAlgorithms available as a config option OpenBSD-Commit-ID: 93fa7ff58314ed7b1ab7744090a6a91232e6ae52 commit 62528870c0ec48cd86a37dd7320fb85886c3e6ee Author: dtucker@openbsd.org Date: Thu Sep 20 08:07:03 2018 +0000 upstream: Import updated moduli. OpenBSD-Commit-ID: 04431e8e7872f49a2129bf080a6b73c19d576d40 commit e6933a2ffa0659d57f3c7b7c457b2c62b2a84613 Author: jmc@openbsd.org Date: Thu Sep 20 06:58:48 2018 +0000 upstream: reorder CASignatureAlgorithms, and add them to the various -o lists; ok djm OpenBSD-Commit-ID: ecb88baecc3c54988b4d1654446ea033da359288 commit aa083aa9624ea7b764d5a81c4c676719a1a3e42b Author: djm@openbsd.org Date: Thu Sep 20 03:31:49 2018 +0000 upstream: fix "ssh -Q sig" to show correct signature algorithm list (it was erroneously showing certificate algorithms); prompted by markus@ OpenBSD-Commit-ID: 1cdee002f2f0c21456979deeb887fc889afb154d commit ecac7e1f7add6b28874959a11f2238d149dc2c07 Author: djm@openbsd.org Date: Thu Sep 20 03:30:44 2018 +0000 upstream: add CASignatureAlgorithms option for the client, allowing it to specify which signature algorithms may be used by CAs when signing certificates. Useful if you want to ban RSA/SHA1; ok markus@ OpenBSD-Commit-ID: 9159e5e9f67504829bf53ff222057307a6e3230f commit 86e5737c39153af134158f24d0cab5827cbd5852 Author: djm@openbsd.org Date: Thu Sep 20 03:28:06 2018 +0000 upstream: Add sshd_config CASignatureAlgorithms option to allow control over which signature algorithms a CA may use when signing certificates. In particular, this allows a sshd to ban certificates signed with RSA/SHA1. ok markus@ OpenBSD-Commit-ID: b05c86ef8b52b913ed48d54a9b9c1a7714d96bac commit f80e68ea7d62e2dfafc12f1a60ab544ae4033a0f Author: djm@openbsd.org Date: Wed Sep 19 02:03:02 2018 +0000 upstream: Make "ssh-add -q" do what it says on the tin: silence output from successful operations. Based on patch from Thijs van Dijk; ok dtucker@ deraadt@ OpenBSD-Commit-ID: c4f754ecc055c10af166116ce7515104aa8522e1 commit 5e532320e9e51de720d5f3cc2596e95d29f6e98f Author: millert@openbsd.org Date: Mon Sep 17 15:40:14 2018 +0000 upstream: When choosing a prime from the moduli file, avoid re-using the linenum variable for something that is not a line number to avoid the confusion that resulted in the bug in rev. 1.64. This also lets us pass the actual linenum to parse_prime() so the error messages include the correct line number. OK markus@ some time ago. OpenBSD-Commit-ID: 4d8e5d3e924d6e8eb70053e3defa23c151a00084 commit cce8cbe0ed7d1ba3a575310e0b63c193326ae616 Author: Darren Tucker Date: Sat Sep 15 19:44:06 2018 +1000 Fix openssl-1.1 fallout for --without-openssl. ok djm@ commit 149519b9f201dac755f3cba4789f4d76fecf0ee1 Author: Damien Miller Date: Sat Sep 15 19:37:48 2018 +1000 add futex(2) syscall to seccomp sandbox Apparently needed for some glibc/openssl combinations. Patch from Arkadiusz Miśkiewicz commit 4488ae1a6940af704c4dbf70f55bf2f756a16536 Author: Damien Miller Date: Sat Sep 15 19:36:55 2018 +1000 really add source for authopt_fuzz this time commit 9201784b4a257c8345fbd740bcbdd70054885707 Author: Damien Miller Date: Sat Sep 15 19:35:40 2018 +1000 remove accidentally checked-in authopt_fuzz binary commit beb9e522dc7717df08179f9e59f36b361bfa14ab Author: djm@openbsd.org Date: Fri Sep 14 05:26:27 2018 +0000 upstream: second try, deals properly with missing and private-only Use consistent format in debug log for keys readied, offered and received during public key authentication. This makes it a little easier to see what is going on, as each message now contains (where available) the key filename, its type and fingerprint, and whether the key is hosted in an agent or a token. OpenBSD-Commit-ID: f1c6a8e9cfc4e108c359db77f24f9a40e1e25ea7 commit 6bc5a24ac867bfdc3ed615589d69ac640f51674b Author: Damien Miller Date: Fri Sep 14 15:16:34 2018 +1000 fuzzer harness for authorized_keys option parsing commit 6c8b82fc6929b6a9a3f645151b6ec26c5507d9ef Author: djm@openbsd.org Date: Fri Sep 14 04:44:04 2018 +0000 upstream: revert following; deals badly with agent keys revision 1.285 date: 2018/09/14 04:17:12; author: djm; state: Exp; lines: +47 -26; commitid: lflGFcNb2X2HebaK; Use consistent format in debug log for keys readied, offered and received during public key authentication. This makes it a little easier to see what is going on, as each message now contains the key filename, its type and fingerprint, and whether the key is hosted in an agent or a token. OpenBSD-Commit-ID: e496bd004e452d4b051f33ed9ae6a54ab918f56d commit 6da046f9c3374ce7e269ded15d8ff8bc45017301 Author: djm@openbsd.org Date: Fri Sep 14 04:17:44 2018 +0000 upstream: garbage-collect moribund ssh_new_private() API. OpenBSD-Commit-ID: 7c05bf13b094093dfa01848a9306c82eb6e95f6c commit 1f24ac5fc05252ceb1c1d0e8cab6a283b883c780 Author: djm@openbsd.org Date: Fri Sep 14 04:17:12 2018 +0000 upstream: Use consistent format in debug log for keys readied, offered and received during public key authentication. This makes it a little easier to see what is going on, as each message now contains the key filename, its type and fingerprint, and whether the key is hosted in an agent or a token. OpenBSD-Commit-ID: 2a01d59285a8a7e01185bb0a43316084b4f06a1f commit 488c9325bb7233e975dbfbf89fa055edc3d3eddc Author: millert@openbsd.org Date: Thu Sep 13 15:23:32 2018 +0000 upstream: Fix warnings caused by user_from_uid() and group_from_gid() now returning const char *. OpenBSD-Commit-ID: b5fe571ea77cfa7b9035062829ab05eb87d7cc6f commit 0aa1f230846ebce698e52051a107f3127024a05a Author: Damien Miller Date: Fri Sep 14 10:31:47 2018 +1000 allow SIGUSR1 as synonym for SIGINFO Lets users on those unfortunate operating systems that lack SIGINFO still be able to obtain progress information from unit tests :) commit d64e78526596f098096113fcf148216798c327ff Author: Damien Miller Date: Thu Sep 13 19:05:48 2018 +1000 add compat header commit a3fd8074e2e2f06602e25618721f9556c731312c Author: djm@openbsd.org Date: Thu Sep 13 09:03:20 2018 +0000 upstream: missed a bit of openssl-1.0.x API in this unittest OpenBSD-Regress-ID: a73a54d7f7381856a3f3a2d25947bee7a9a5dbc9 commit 86e0a9f3d249d5580390daf58e015e68b01cef10 Author: djm@openbsd.org Date: Thu Sep 13 05:06:51 2018 +0000 upstream: use only openssl-1.1.x API here too OpenBSD-Regress-ID: ae877064597c349954b1b443769723563cecbc8f commit 48f54b9d12c1c79fba333bc86d455d8f4cda8cfc Author: Damien Miller Date: Thu Sep 13 12:13:50 2018 +1000 adapt -portable to OpenSSL 1.1x API Polyfill missing API with replacement functions extracted from LibreSSL commit 86112951d63d48839f035b5795be62635a463f99 Author: Damien Miller Date: Thu Sep 13 12:12:42 2018 +1000 forgot to stage these test files in commit d70d061 commit 482d23bcacdd3664f21cc82a5135f66fc598275f Author: djm@openbsd.org Date: Thu Sep 13 02:08:33 2018 +0000 upstream: hold our collective noses and use the openssl-1.1.x API in OpenSSH; feedback and ok tb@ jsing@ markus@ OpenBSD-Commit-ID: cacbcac87ce5da0d3ca7ef1b38a6f7fb349e4417 commit d70d061828730a56636ab6f1f24fe4a8ccefcfc1 Author: djm@openbsd.org Date: Wed Sep 12 01:36:45 2018 +0000 upstream: Include certs with multiple RSA signature variants in test data Ensure that cert->signature_key is populated correctly OpenBSD-Regress-ID: 56e68f70fe46cb3a193ca207385bdb301fd6603a commit f803b2682992cfededd40c91818b653b5d923ef5 Author: djm@openbsd.org Date: Wed Sep 12 01:23:48 2018 +0000 upstream: test revocation by explicit hash and by fingerprint OpenBSD-Regress-ID: 079c18a9ab9663f4af419327c759fc1e2bc78fd8 commit 2de78bc7da70e1338b32feeefcc6045cf49efcd4 Author: djm@openbsd.org Date: Wed Sep 12 01:22:43 2018 +0000 upstream: s/sshkey_demote/sshkey_from_private/g OpenBSD-Regress-ID: 782bde7407d94a87aa8d1db7c23750e09d4443c4 commit 41c115a5ea1cb79a6a3182773c58a23f760e8076 Author: Damien Miller Date: Wed Sep 12 16:50:01 2018 +1000 delete the correct thing; kexfuzz binary commit f0fcd7e65087db8c2496f13ed39d772f8e38b088 Author: djm@openbsd.org Date: Wed Sep 12 06:18:59 2018 +0000 upstream: fix edit mistake; spotted by jmc@ OpenBSD-Commit-ID: dd724e1c52c9d6084f4cd260ec7e1b2b138261c6 commit 4cc259bac699f4d2a5c52b92230f9e488c88a223 Author: djm@openbsd.org Date: Wed Sep 12 01:34:02 2018 +0000 upstream: add SSH_ALLOWED_CA_SIGALGS - the default list of signature algorithms that are allowed for CA signatures. Notably excludes ssh-dsa. ok markus@ OpenBSD-Commit-ID: 1628e4181dc8ab71909378eafe5d06159a22deb4 commit ba9e788315b1f6a350f910cb2a9e95b2ce584e89 Author: djm@openbsd.org Date: Wed Sep 12 01:32:54 2018 +0000 upstream: add sshkey_check_cert_sigtype() that checks a cert->signature_type against a supplied whitelist; ok markus OpenBSD-Commit-ID: caadb8073292ed7a9535e5adc067d11d356d9302 commit a70fd4ad7bd9f2ed223ff635a3d41e483057f23b Author: djm@openbsd.org Date: Wed Sep 12 01:31:30 2018 +0000 upstream: add cert->signature_type field and keep it in sync with certificate signature wrt loading and certification operations; ok markus@ OpenBSD-Commit-ID: e8b8b9f76b66707a0cd926109c4383db8f664df3 commit 357128ac48630a9970e3af0e6ff820300a28da47 Author: djm@openbsd.org Date: Wed Sep 12 01:30:10 2018 +0000 upstream: Add "ssh -Q sig" to allow listing supported signature algorithms ok markus@ OpenBSD-Commit-ID: 7a8c6eb6c249dc37823ba5081fce64876d10fe2b commit 9405c6214f667be604a820c6823b27d0ea77937d Author: djm@openbsd.org Date: Wed Sep 12 01:21:34 2018 +0000 upstream: allow key revocation by SHA256 hash and allow ssh-keygen to create KRLs using SHA256/base64 key fingerprints; ok markus@ OpenBSD-Commit-ID: a0590fd34e7f1141f2873ab3acc57442560e6a94 commit 50e2687ee0941c0ea216d6ffea370ffd2c1f14b9 Author: djm@openbsd.org Date: Wed Sep 12 01:19:12 2018 +0000 upstream: log certificate fingerprint in authentication success/failure message (previously we logged only key ID and CA key fingerprint). ok markus@ OpenBSD-Commit-ID: a8ef2d172b7f1ddbcce26d6434b2de6d94f6c05d commit de37ca909487d23e5844aca289b3f5e75d3f1e1f Author: dtucker@openbsd.org Date: Fri Sep 7 04:26:56 2018 +0000 upstream: Add FALLTHROUGH comments where appropriate. Patch from jjelen at redhat via bz#2687. OpenBSD-Commit-ID: c48eb457be697a19d6d2950c6d0879f3ccc851d3 commit 247766cd3111d5d8c6ea39833a3257ca8fb820f2 Author: djm@openbsd.org Date: Fri Sep 7 01:42:54 2018 +0000 upstream: ssh -MM requires confirmation for all operations that change the multiplexing state, not just new sessions. mention that confirmation is checked via ssh-askpass OpenBSD-Commit-ID: 0f1b45551ebb9cc5c9a4fe54ad3b23ce90f1f5c2 commit db8bb80e3ac1bcb3e1305d846cd98c6b869bf03f Author: mestre@openbsd.org Date: Tue Aug 28 12:25:53 2018 +0000 upstream: fix misplaced parenthesis inside if-clause. it's harmless and the only issue is showing an unknown error (since it's not defined) during fatal(), if it ever an error occurs inside that condition. OK deraadt@ markus@ djm@ OpenBSD-Commit-ID: acb0a8e6936bfbe590504752d01d1d251a7101d8 commit 086cc614f550b7d4f100c95e472a6b6b823938ab Author: mestre@openbsd.org Date: Tue Aug 28 12:17:45 2018 +0000 upstream: fix build with DEBUG_PK enabled OK dtucker@ OpenBSD-Commit-ID: ec1568cf27726e9638a0415481c20c406e7b441c commit 2678833013e97f8b18f09779b7f70bcbf5eb2ab2 Author: Darren Tucker Date: Fri Sep 7 14:41:53 2018 +1000 Handle ngroups>_SC_NGROUPS_MAX. Based on github pull request #99 from Darren Maffat at Oracle: Solaris' getgrouplist considers _SC_NGROUPS_MAX more of a guideline and can return a larger number of groups. In this case, retry getgrouplist with a larger array and defer allocating groups_byname. ok djm@ commit 039bf2a81797b8f3af6058d34005a4896a363221 Author: Darren Tucker Date: Fri Sep 7 14:06:57 2018 +1000 Initial len for the fmt=NULL case. Patch from jjelen at redhat via bz#2687. (OpenSSH never calls setproctitle with a null format so len is always initialized). commit ea9c06e11d2e8fb2f4d5e02f8a41e23d2bd31ca9 Author: Darren Tucker Date: Fri Sep 7 14:01:39 2018 +1000 Include stdlib.h. Patch from jjelen at redhat via bz#2687. commit 9617816dbe73ec4d65075f4d897443f63a97c87f Author: Damien Miller Date: Mon Aug 27 13:08:01 2018 +1000 document some more regress control env variables Specifically SKIP_UNIT, USE_VALGRING and LTESTS. Sort the list of environment variables. Based on patch from Jakub Jelen commit 71508e06fab14bc415a79a08f5535ad7bffa93d9 Author: Damien Miller Date: Thu Aug 23 15:41:42 2018 +1000 shorten temporary SSH_REGRESS_TMP path Previous path was exceeding max socket length on at least one platform (OSX) commit 26739cf5bdc9030a583b41ae5261dedd862060f0 Author: Damien Miller Date: Thu Aug 23 13:06:02 2018 +1000 rebuild dependencies commit ff729025c7463cf5d0a8d1ca1823306e48c6d4cf Author: Damien Miller Date: Thu Aug 23 13:03:32 2018 +1000 fix path in distclean target Patch from Jakub Jelen commit 7fef173c28f7462dcd8ee017fdf12b5073f54c02 Author: djm@openbsd.org Date: Thu Aug 23 03:01:08 2018 +0000 upstream: memleak introduced in r1.83; from Colin Watson OpenBSD-Commit-ID: 5c019104c280cbd549a264a7217b67665e5732dc commit b8ae02a2896778b8984c7f51566c7f0f56fa8b56 Author: schwarze@openbsd.org Date: Tue Aug 21 13:56:27 2018 +0000 upstream: AIX reports the CODESET as "ISO8859-1" in the POSIX locale. Treating that as a safe encoding is OK because even when other systems return that string for real ISO8859-1, it is still safe in the sense that it is ASCII-compatible and stateless. Issue reported by Val dot Baranov at duke dot edu. Additional information provided by Michael dot Felt at felt dot demon dot nl. Tested by Michael Felt on AIX 6.1 and by Val Baranov on AIX 7.1. Tweak and OK djm@. OpenBSD-Commit-ID: 36f1210e0b229817d10eb490d6038f507b8256a7 commit bc44ee088ad269d232e514f037c87ada4c2fd3f0 Author: Tim Rice Date: Tue Aug 21 08:57:24 2018 -0700 modified: openbsd-compat/port-uw.c remove obsolete and un-needed include commit 829fc28a9c54e3f812ee7248c7a3e31eeb4f0b3a Author: Damien Miller Date: Mon Aug 20 15:57:29 2018 +1000 Missing unistd.h for regress/mkdtemp.c commit c8313e492355a368a91799131520d92743d8d16c Author: Damien Miller Date: Fri Aug 17 05:45:20 2018 +1000 update version numbers in anticipation of release commit 477b49a34b89f506f4794b35e3c70b3e2e83cd38 Author: Corinna Vinschen Date: Mon Aug 13 17:08:51 2018 +0200 configure: work around GCC shortcoming on Cygwin Cygwin's latest 7.x GCC allows to specify -mfunction-return=thunk as well as -mindirect-branch=thunk on the command line, albeit producing invalid code, leading to an error at link stage. The check in configure.ac only checks if the option is present, but not if it produces valid code. This patch fixes it by special-casing Cygwin. Another solution may be to change these to linker checks. Signed-off-by: Corinna Vinschen commit b0917945efa374be7648d67dbbaaff323ab39edc Author: Corinna Vinschen Date: Mon Aug 13 17:05:05 2018 +0200 cygwin: add missing stdarg.h include Further header file standarization in Cygwin uncovered a lazy indirect include in bsd-cygwin_util.c Signed-off-by: Corinna Vinschen commit c3903c38b0fd168ab3d925c2b129d1a599593426 Author: djm@openbsd.org Date: Mon Aug 13 02:41:05 2018 +0000 upstream: revert compat.[ch] section of the following change. It causes double-free under some circumstances. -- date: 2018/07/31 03:07:24; author: djm; state: Exp; lines: +33 -18; commitid: f7g4UI8eeOXReTPh; fix some memory leaks spotted by Coverity via Jakub Jelen in bz#2366 feedback and ok dtucker@ OpenBSD-Commit-ID: 1e77547f60fdb5e2ffe23e2e4733c54d8d2d1137 commit 1b9dd4aa15208100fbc3650f33ea052255578282 Author: djm@openbsd.org Date: Sun Aug 12 20:19:13 2018 +0000 upstream: better diagnosics on alg list assembly errors; ok deraadt@ markus@ OpenBSD-Commit-ID: 5a557e74b839daf13cc105924d2af06a1560faee commit e36a5f61b0f5bebf6d49c215d228cd99dfe86e28 Author: Damien Miller Date: Sat Aug 11 18:08:45 2018 -0700 Some AIX fixes; report from Michael Felt commit 2f4766ceefe6657c5ad5fe92d13c411872acae0e Author: dtucker@openbsd.org Date: Fri Aug 10 01:35:49 2018 +0000 upstream: The script that cooks up PuTTY format host keys does not understand the new key format so convert back to old format to create the PuTTY key and remove it once done. OpenBSD-Regress-ID: 2a449a18846c3a144bc645135b551ba6177e38d3 commit e1b26ce504662a5d5b991091228984ccfd25f280 Author: djm@openbsd.org Date: Fri Aug 10 00:44:01 2018 +0000 upstream: improve OpenBSD-Commit-ID: 40d839db0977b4e7ac8b647b16d5411d4faf2f60 commit 7c712966a3139622f7fb55045368d05de4e6782c Author: djm@openbsd.org Date: Fri Aug 10 00:42:29 2018 +0000 upstream: Describe pubkey format, prompted by bz#2853 While I'm here, describe and link to the remaining local PROTOCOL.* docs that weren't already mentioned (PROTOCOL.key, PROTOCOL.krl and PROTOCOL.mux) OpenBSD-Commit-ID: 2a900f9b994ba4d53e7aeb467d44d75829fd1231 commit ef100a2c5a8ed83afac0b8f36520815803da227a Author: djm@openbsd.org Date: Fri Aug 10 00:27:15 2018 +0000 upstream: fix numbering OpenBSD-Commit-ID: bc7a1764dff23fa4c5ff0e3379c9c4d5b63c9596 commit ed7bd5d93fe14c7bd90febd29b858ea985d14d45 Author: djm@openbsd.org Date: Wed Aug 8 01:16:01 2018 +0000 upstream: Use new private key format by default. This format is suported by OpenSSH >= 6.5 (released January 2014), so it should be supported by most OpenSSH versions in active use. It is possible to convert new-format private keys to the older format using "ssh-keygen -f /path/key -pm PEM". ok deraadt dtucker OpenBSD-Commit-ID: e3bd4f2509a2103bfa2f710733426af3ad6d8ab8 commit 967226a1bdde59ea137e8f0df871854ff7b91366 Author: djm@openbsd.org Date: Sat Aug 4 00:55:06 2018 +0000 upstream: invalidate dh->priv_key after freeing it in error path; avoids unlikely double-free later. Reported by Viktor Dukhovni via https://github.com/openssh/openssh-portable/pull/96 feedback jsing@ tb@ OpenBSD-Commit-ID: e317eb17c3e05500ae851f279ef6486f0457c805 commit 74287f5df9966a0648b4a68417451dd18f079ab8 Author: djm@openbsd.org Date: Tue Jul 31 03:10:27 2018 +0000 upstream: delay bailout for invalid authentic =?UTF-8?q?ating=20user=20until=20after=20the=20packet=20containing=20the?= =?UTF-8?q?=20request=20has=20been=20fully=20parsed.=20Reported=20by=20Dar?= =?UTF-8?q?iusz=20Tytko=20and=20Micha=C5=82=20Sajdak;=20ok=20deraadt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OpenBSD-Commit-ID: b4891882fbe413f230fe8ac8a37349b03bd0b70d commit 1a66079c0669813306cc69e5776a4acd9fb49015 Author: djm@openbsd.org Date: Tue Jul 31 03:07:24 2018 +0000 upstream: fix some memory leaks spotted by Coverity via Jakub Jelen in bz#2366 feedback and ok dtucker@ OpenBSD-Commit-ID: 8402bbae67d578bedbadb0ce68ff7c5a136ef563 commit 87f08be054b7eeadbb9cdeb3fb4872be79ccf218 Author: Damien Miller Date: Fri Jul 20 13:18:28 2018 +1000 Remove support for S/Key Most people will 1) be using modern multi-factor authentication methods like TOTP/OATH etc and 2) be getting support for multi-factor authentication via PAM or BSD Auth. commit 5d14019ba2ff54acbfd20a6b9b96bb860a8c7c31 Author: markus@openbsd.org Date: Fri Jul 27 12:03:17 2018 +0000 upstream: avoid expensive channel_open_message() calls; ok djm@ OpenBSD-Commit-ID: aea3b5512ad681cd8710367d743e8a753d4425d9 commit e655ee04a3cb7999dbf9641b25192353e2b69418 Author: dtucker@openbsd.org Date: Fri Jul 27 05:34:42 2018 +0000 upstream: Now that ssh can't be setuid, remove the original_real_uid and original_effective_uid globals and replace with calls to plain getuid(). ok djm@ OpenBSD-Commit-ID: 92561c0cd418d34e6841e20ba09160583e27b68c commit 73ddb25bae4c33a0db361ac13f2e3a60d7c6c4a5 Author: dtucker@openbsd.org Date: Fri Jul 27 05:13:02 2018 +0000 upstream: Remove uid checks from low port binds. Now that ssh cannot be setuid and sshd always has privsep on, we can remove the uid checks for low port binds and just let the system do the check. We leave a sanity check for the !privsep case so long as the code is stil there. with & ok djm@ OpenBSD-Commit-ID: 9535cfdbd1cd54486fdbedfaee44ce4367ec7ca0 commit c12033e102760d043bc5c98e6c8180e4d331b0df Author: dtucker@openbsd.org Date: Fri Jul 27 03:55:22 2018 +0000 upstream: ssh(1) no longer supports being setuid root. Remove reference to crc32 which went with protocol 1. Pointed out by deraadt@. OpenBSD-Commit-ID: f8763c25fd96ed91dd1abdab5667fd2e27e377b6 commit 4492e2ec4e1956a277ef507f51d66e5c2aafaaf8 Author: Damien Miller Date: Fri Jul 27 14:15:28 2018 +1000 correct snprintf truncation check in closefrom() Truncation cannot happen unless the system has set PATH_MAX to some nonsensically low value. bz#2862, patch from Daniel Le commit 149cab325a8599a003364ed833f878449c15f259 Author: Darren Tucker Date: Fri Jul 27 13:46:06 2018 +1000 Include stdarg.h in mkdtemp for va_list. commit 6728f31bdfdc864d192773c32465b1860e23f556 Author: deraadt@openbsd.org Date: Wed Jul 25 17:12:35 2018 +0000 upstream: Don't redefine Makefile choices which come correct from bsd.*.mk ok markus OpenBSD-Commit-ID: 814b2f670df75759e1581ecef530980b2b3d7e0f commit 21fd477a855753c1a8e450963669e28e39c3b5d2 Author: deraadt@openbsd.org Date: Wed Jul 25 13:56:23 2018 +0000 upstream: fix indent; Clemens Goessnitzer OpenBSD-Commit-ID: b5149a6d92b264d35f879d24608087b254857a83 commit 8e433c2083db8664c41499ee146448ea7ebe7dbf Author: beck@openbsd.org Date: Wed Jul 25 13:10:56 2018 +0000 upstream: Use the caller provided (copied) pwent struct in load_public_identity_files instead of calling getpwuid() again and discarding the argument. This prevents a client crash where tilde_expand_filename calls getpwuid() again before the pwent pointer is used. Issue noticed and reported by Pierre-Olivier Martel ok djm@ deraadt@ OpenBSD-Commit-ID: a067d74b5b098763736c94cc1368de8ea3f0b157 commit e2127abb105ae72b6fda64fff150e6b24b3f1317 Author: jmc@openbsd.org Date: Mon Jul 23 19:53:55 2018 +0000 upstream: oops, failed to notice that SEE ALSO got messed up; OpenBSD-Commit-ID: 61c1306542cefdc6e59ac331751afe961557427d commit ddf1b797c2d26bbbc9d410aa4f484cbe94673587 Author: kn@openbsd.org Date: Mon Jul 23 19:02:49 2018 +0000 upstream: Point to glob in section 7 for the actual list of special characters instead the C API in section 3. OK millert jmc nicm, "the right idea" deraadt OpenBSD-Commit-ID: a74fd215488c382809e4d041613aeba4a4b1ffc6 commit 01c98d9661d0ed6156e8602b650f72eed9fc4d12 Author: dtucker@openbsd.org Date: Sun Jul 22 12:16:59 2018 +0000 upstream: Switch authorized_keys example from ssh-dss to ssh-rsa since the former is no longer enabled by default. Pointed out by Daniel A. Maierhofer, ok jmc OpenBSD-Commit-ID: 6a196cef53d7524e0c9b58cdbc1b5609debaf8c7 commit 472269f8fe19343971c2d08f504ab5cbb8234b33 Author: djm@openbsd.org Date: Fri Jul 20 05:01:10 2018 +0000 upstream: slightly-clearer description for AuthenticationMethods - the lists have comma-separated elements; bz#2663 from Hans Meier OpenBSD-Commit-ID: 931c983d0fde4764d0942fb2c2b5017635993b5a commit c59aca8adbdf7f5597084ad360a19bedb3f80970 Author: Damien Miller Date: Fri Jul 20 14:53:42 2018 +1000 Create control sockets in clean temp directories Adds a regress/mkdtemp tool and uses it to create empty temp directories for tests needing control sockets. Patch from Colin Watson via bz#2660; ok dtucker commit 6ad8648e83e4f4ace37b742a05c2a6b6b872514e Author: djm@openbsd.org Date: Fri Jul 20 03:46:34 2018 +0000 upstream: remove unused zlib.h OpenBSD-Commit-ID: 8d274a9b467c7958df12668b49144056819f79f1 commit 3ba6e6883527fe517b6e4a824876e2fe62af22fc Author: dtucker@openbsd.org Date: Thu Jul 19 23:03:16 2018 +0000 upstream: Fix typo in comment. From Alexandru Iacob via github. OpenBSD-Commit-ID: eff4ec07c6c8c5483533da43a4dda37d72ef7f1d commit c77bc73c91bc656e343a1961756e09dd1b170820 Author: Darren Tucker Date: Fri Jul 20 13:48:51 2018 +1000 Explicitly include openssl before zlib. Some versions of OpenSSL have "free_func" in their headers, which zlib typedefs. Including openssl after zlib (eg via sshkey.h) results in "syntax error before `free_func'", which this fixes. commit 95d41e90eafcd1286a901e8e361e4a37b98aeb52 Author: dtucker@openbsd.org Date: Thu Jul 19 10:28:47 2018 +0000 upstream: Deprecate UsePrivilegedPort now that support for running ssh(1) setuid has been removed, remove supporting code and clean up references to it in the man pages We have not shipped ssh(1) the setuid bit since 2002. If ayone really needs to make connections from a low port number this can be implemented via a small setuid ProxyCommand. ok markus@ jmc@ djm@ OpenBSD-Commit-ID: d03364610b7123ae4c6792f5274bd147b6de717e commit 258dc8bb07dfb35a46e52b0822a2c5b7027df60a Author: dtucker@openbsd.org Date: Wed Jul 18 11:34:04 2018 +0000 upstream: Remove support for running ssh(1) setuid and fatal if attempted. Do not link uidwap.c into ssh any more. Neuters UsePrivilegedPort, which will be marked as deprecated shortly. ok markus@ djm@ OpenBSD-Commit-ID: c4ba5bf9c096f57a6ed15b713a1d7e9e2e373c42 commit ac590760b251506b0a152551abbf8e8d6dc2f527 Author: dtucker@openbsd.org Date: Mon Jul 16 22:25:01 2018 +0000 upstream: Slot 0 in the hostbased key array was previously RSA1, but that is now gone and the slot is unused so remove it. Remove two now-unused macros, and add an array bounds check to the two remaining ones (array is statically sized, so mostly a safety check on future changes). ok markus@ OpenBSD-Commit-ID: 2e4c0ca6cc1d8daeccead2aa56192a3f9d5e1e7a commit 26efc2f5df0e3bcf6a6bbdd0506fd682d60c2145 Author: dtucker@openbsd.org Date: Mon Jul 16 11:05:41 2018 +0000 upstream: Remove support for loading HostBasedAuthentication keys directly in ssh(1) and always use ssh-keysign. This removes one of the few remaining reasons why ssh(1) might be setuid. ok markus@ OpenBSD-Commit-ID: 97f01e1448707129a20d75f86bad5d27c3cf0b7d commit 3eb7f1038d17af7aea3c2c62d1e30cd545607640 Author: djm@openbsd.org Date: Mon Jul 16 07:06:50 2018 +0000 upstream: keep options.identity_file_userprovided array in sync when we load keys, fixing some spurious error messages; ok markus OpenBSD-Commit-ID: c63e3d5200ee2cf9e35bda98de847302566c6a00 commit 2f131e1b34502aa19f345e89cabf6fa3fc097f09 Author: djm@openbsd.org Date: Mon Jul 16 03:09:59 2018 +0000 upstream: memleak in unittest; found by valgrind OpenBSD-Regress-ID: 168c23b0fb09fc3d0b438628990d3fd9260a8a5e commit de2997a4cf22ca0a524f0e5b451693c583e2fd89 Author: djm@openbsd.org Date: Mon Jul 16 03:09:13 2018 +0000 upstream: memleaks; found by valgrind OpenBSD-Commit-ID: 6c3ba22be53e753c899545f771e8399fc93cd844 commit 61cc0003eb37fa07603c969c12b7c795caa498f3 Author: Darren Tucker Date: Sat Jul 14 16:49:01 2018 +1000 Undef a few new macros in sys-queue.h. Prevents macro redefinition warnings on OSX. commit 30a2c213877a54a44dfdffb6ca8db70be5b457e0 Author: Darren Tucker Date: Fri Jul 13 13:40:20 2018 +1000 Include unistd.h for geteuid declaration. commit 1dd32c23f2a85714dfafe2a9cc516971d187caa4 Author: Darren Tucker Date: Fri Jul 13 13:38:10 2018 +1000 Fallout from buffer conversion in AUDIT_EVENTS. Supply missing "int r" and fix error path for sshbuf_new(). commit 7449c178e943e5c4f6c8416a4e41d93b70c11c9e Author: djm@openbsd.org Date: Fri Jul 13 02:13:50 2018 +0000 upstream: make this use ssh_proxy rather than starting/stopping a daemon for each testcase OpenBSD-Regress-ID: 608b7655ea65b1ba8fff5a13ce9caa60ef0c8166 commit dbab02f9208d9baa134cec1d007054ec82b96ca9 Author: djm@openbsd.org Date: Fri Jul 13 02:13:19 2018 +0000 upstream: fix leaks in unit test; with this, all unit tests are leak free (as far as valgrind can spot anyway) OpenBSD-Regress-ID: b824d8b27998365379963440e5d18b95ca03aa17 commit 2f6accff5085eb79b0dbe262d8b85ed017d1a51c Author: Damien Miller Date: Fri Jul 13 11:39:25 2018 +1000 Enable leak checks for unit tests with valgrind Leave the leak checking on unconditionally when running with valgrind. The unit tests are leak-free and I want them to stay that way. commit e46cfbd9db5e907b821bf4fd0184d4dab99815ee Author: Damien Miller Date: Fri Jul 13 11:38:59 2018 +1000 increase timeout to match cfgmatch.sh lets test pass under valgrind (on my workstation at least) commit 6aa1bf475cf3e7a2149acc5a1e80e904749f064c Author: Damien Miller Date: Thu Jul 12 14:54:18 2018 +1000 rm regress/misc/kexfuzz/*.o in distclean target commit eef1447ddb559c03725a23d4aa6d03f40e8b0049 Author: Damien Miller Date: Thu Jul 12 14:49:26 2018 +1000 repair !WITH_OPENSSL build commit 4d3b2f36fd831941d1627ac587faae37b6d3570f Author: Damien Miller Date: Thu Jul 12 14:49:14 2018 +1000 missing headers commit 3f420a692b293921216549c1099c2e46ff284eae Author: Darren Tucker Date: Thu Jul 12 14:57:46 2018 +1000 Remove key.h from portable files too. Commit 5467fbcb removed key.h so stop including it in portable files too. Fixes builds on lots of platforms. commit e2c4af311543093f16005c10044f7e06af0426f0 Author: djm@openbsd.org Date: Thu Jul 12 04:35:25 2018 +0000 upstream: remove prototype to long-gone function OpenBSD-Commit-ID: 0414642ac7ce01d176b9f359091a66a8bbb640bd commit 394a842e60674bf8ee5130b9f15b01452a0b0285 Author: markus@openbsd.org Date: Wed Jul 11 18:55:11 2018 +0000 upstream: treat ssh_packet_write_wait() errors as fatal; ok djm@ OpenBSD-Commit-ID: f88ba43c9d54ed2d911218aa8d3f6285430629c3 commit 5467fbcb09528ecdcb914f4f2452216c24796790 Author: markus@openbsd.org Date: Wed Jul 11 18:53:29 2018 +0000 upstream: remove legacy key emulation layer; ok djm@ OpenBSD-Commit-ID: 2b1f9619259e222bbd4fe9a8d3a0973eafb9dd8d commit 5dc4c59d5441a19c99e7945779f7ec9051126c25 Author: martijn@openbsd.org Date: Wed Jul 11 08:19:35 2018 +0000 upstream: s/wuth/with/ in comment OpenBSD-Commit-ID: 9de41468afd75f54a7f47809d2ad664aa577902c commit 1c688801e9dd7f9889fb2a29bc2b6fbfbc35a11f Author: Darren Tucker Date: Wed Jul 11 12:12:38 2018 +1000 Include stdlib.h for declaration of free. Fixes build with -Werror on at least Fedora and probably others. commit fccfa239def497615f92ed28acc57cfe63da3666 Author: Damien Miller Date: Wed Jul 11 10:19:56 2018 +1000 VALGRIND_CHECK_LEAKS logic was backwards :( commit 416287d45fcde0a8e66eee8b99aa73bd58607588 Author: Darren Tucker Date: Wed Jul 11 10:10:26 2018 +1000 Fix sshbuf_new error path in skey. commit 7aab109b8b90a353c1af780524f1ac0d3af47bab Author: Darren Tucker Date: Wed Jul 11 10:06:18 2018 +1000 Supply missing third arg in skey. During the change to the new buffer api the third arg to sshbuf_get_cstring was ommitted. Fixes build when configured with skey. commit 380320bb72cc353a901790ab04b6287fd335dc4a Author: Darren Tucker Date: Wed Jul 11 10:03:34 2018 +1000 Supply some more missing "int r" in skey commit d20720d373d8563ee737d1a45dc5e0804d622dbc Author: Damien Miller Date: Wed Jul 11 09:56:36 2018 +1000 disable valgrind memleak checking by default Add VALGRIND_CHECK_LEAKS knob to turn it back on. commit 79c9d35018f3a5e30ae437880b669aa8636cd3cd Author: Darren Tucker Date: Wed Jul 11 09:54:00 2018 +1000 Supply missing "int r" in skey code. commit 984bacfaacbbe31c35191b828fb5b5b2f0362c36 Author: sf@openbsd.org Date: Tue Jul 10 09:36:58 2018 +0000 upstream: re-remove some pre-auth compression bits This time, make sure to not remove things that are necessary for pre-auth compression on the client. Add a comment that pre-auth compression is still supported in the client. ok markus@ OpenBSD-Commit-ID: 282c6fec7201f18a5c333bbb68d9339734d2f784 commit 120a1ec74e8d9d29f4eb9a27972ddd22351ddef9 Author: Damien Miller Date: Tue Jul 10 19:39:52 2018 +1000 Adapt portable to legacy buffer API removal commit 0f3958c1e6ffb8ea4ba27e2a97a00326fce23246 Author: djm@openbsd.org Date: Tue Jul 10 09:13:30 2018 +0000 upstream: kerberos/gssapi fixes for buffer removal OpenBSD-Commit-ID: 1cdf56fec95801e4563c47f21696f04cd8b60c4c commit c74ae8e7c45f325f3387abd48fa7dfef07a08069 Author: djm@openbsd.org Date: Tue Jul 10 06:45:29 2018 +0000 upstream: buffer.[ch] and bufaux.c are no more OpenBSD-Commit-ID: d1a1852284e554f39525eb4d4891b207cfb3d3a0 commit a881e5a133d661eca923fb0633a03152ab2b70b2 Author: djm@openbsd.org Date: Tue Jul 10 06:43:52 2018 +0000 upstream: one mention of Buffer that almost got away :) OpenBSD-Commit-ID: 30d7c27a90b4544ad5dfacf654595710cd499f02 commit 49f47e656b60bcd1d1db98d88105295f4b4e600d Author: markus@openbsd.org Date: Mon Jul 9 21:59:10 2018 +0000 upstream: replace cast with call to sshbuf_mutable_ptr(); ok djm@ OpenBSD-Commit-ID: 4dfe9d29fa93d9231645c89084f7217304f7ba29 commit cb30cd47041edb03476be1c8ef7bc1f4b69d1555 Author: markus@openbsd.org Date: Mon Jul 9 21:56:06 2018 +0000 upstream: remove legacy buffer API emulation layer; ok djm@ OpenBSD-Commit-ID: 2dd5dc17cbc23195be4299fa93be2707a0e08ad9 commit 235c7c4e3bf046982c2d8242f30aacffa01073d1 Author: markus@openbsd.org Date: Mon Jul 9 21:53:45 2018 +0000 upstream: sshd: switch monitor to sshbuf API; lots of help & ok djm@ OpenBSD-Commit-ID: d89bd02d33974fd35ca0b8940d88572227b34a48 commit b8d9214d969775e409e1408ecdf0d58fad99b344 Author: markus@openbsd.org Date: Mon Jul 9 21:37:55 2018 +0000 upstream: sshd: switch GSSAPI to sshbuf API; ok djm@ OpenBSD-Commit-ID: e48449ab4be3f006f7ba33c66241b7d652973e30 commit c7d39ac8dc3587c5f05bdd5bcd098eb5c201c0c8 Author: markus@openbsd.org Date: Mon Jul 9 21:35:50 2018 +0000 upstream: sshd: switch authentication to sshbuf API; ok djm@ OpenBSD-Commit-ID: 880aa06bce4b140781e836bb56bec34873290641 commit c3cb7790e9efb14ba74b2d9f543ad593b3d55b31 Author: markus@openbsd.org Date: Mon Jul 9 21:29:36 2018 +0000 upstream: sshd: switch config to sshbuf API; ok djm@ OpenBSD-Commit-ID: 72b02017bac7feac48c9dceff8355056bea300bd commit 2808d18ca47ad3d251836c555f0e22aaca03d15c Author: markus@openbsd.org Date: Mon Jul 9 21:26:02 2018 +0000 upstream: sshd: switch loginmsg to sshbuf API; ok djm@ OpenBSD-Commit-ID: f3cb4e54bff15c593602d95cc43e32ee1a4bac42 commit 89dd615b8b531979be63f05f9d5624367c9b28e6 Author: markus@openbsd.org Date: Mon Jul 9 21:20:26 2018 +0000 upstream: ttymodes: switch to sshbuf API; ok djm@ OpenBSD-Commit-ID: 5df340c5965e822c9da21e19579d08dea3cbe429 commit f4608a7065480516ab46214f554e5f853fb7870f Author: markus@openbsd.org Date: Mon Jul 9 21:18:10 2018 +0000 upstream: client: switch mux to sshbuf API; with & ok djm@ OpenBSD-Commit-ID: 5948fb98d704f9c4e075b92edda64e0290b5feb2 commit cecee2d607099a7bba0a84803e2325d15be4277b Author: markus@openbsd.org Date: Mon Jul 9 21:03:30 2018 +0000 upstream: client: switch to sshbuf API; ok djm@ OpenBSD-Commit-ID: 60cb0356114acc7625ab85105f6f6a7cd44a8d05 commit ff55f4ad898137d4703e7a2bcc81167dfe8e9324 Author: markus@openbsd.org Date: Mon Jul 9 20:39:28 2018 +0000 upstream: pkcs11: switch to sshbuf API; ok djm@ OpenBSD-Commit-ID: 98cc4e800f1617c51caf59a6cb3006f14492db79 commit 168b46f405d6736960ba7930389eecb9b6710b7e Author: sf@openbsd.org Date: Mon Jul 9 13:37:10 2018 +0000 upstream: Revert previous two commits It turns out we still support pre-auth compression on the client. Therefore revert the previous two commits: date: 2018/07/06 09:06:14; author: sf; commitid: yZVYKIRtUZWD9CmE; Rename COMP_DELAYED to COMP_ZLIB Only delayed compression is supported nowadays. ok markus@ date: 2018/07/06 09:05:01; author: sf; commitid: rEGuT5UgI9f6kddP; Remove leftovers from pre-authentication compression Support for this has been removed in 2016. COMP_DELAYED will be renamed in a later commit. ok markus@ OpenBSD-Commit-ID: cdfef526357e4e1483c86cf599491b2dafb77772 commit ab39267fa1243d02b6c330615539fc4b21e17dc4 Author: sf@openbsd.org Date: Fri Jul 6 09:06:14 2018 +0000 upstream: Rename COMP_DELAYED to COMP_ZLIB Only delayed compression is supported nowadays. ok markus@ OpenBSD-Commit-ID: 5b1dbaf3d9a4085aaa10fec0b7a4364396561821 commit 95db395d2e56a6f868193aead6cadb2493f036c6 Author: sf@openbsd.org Date: Fri Jul 6 09:05:01 2018 +0000 upstream: Remove leftovers from pre-authentication compression Support for this has been removed in 2016. COMP_DELAYED will be renamed in a later commit. ok markus@ OpenBSD-Commit-ID: 6a99616c832627157113fcb0cf5a752daf2e6b58 commit f28a4d5cd24c4aa177e96b4f96957991e552cb70 Author: sf@openbsd.org Date: Fri Jul 6 09:03:02 2018 +0000 upstream: Remove unused ssh_packet_start_compression() ok markus@ OpenBSD-Commit-ID: 9d34cf2f59aca5422021ae2857190578187dc2b4 commit 872517ddbb72deaff31d4760f28f2b0a1c16358f Author: Darren Tucker Date: Fri Jul 6 13:32:02 2018 +1000 Defer setting bufsiz in getdelim. Do not write to bufsiz until we are sure the malloc has succeeded, in case any callers rely on it (which they shouldn't). ok djm@ commit 3deb56f7190a414dc264e21e087a934fa1847283 Author: Darren Tucker Date: Thu Jul 5 13:32:01 2018 +1000 Fix other callers of read_environment_file. read_environment_file recently gained an extra argument Some platform specific code also calls it so add the argument to those too. Fixes build on Solaris and AIX. commit 314908f451e6b2d4ccf6212ad246fa4619c721d3 Author: djm@openbsd.org Date: Wed Jul 4 13:51:45 2018 +0000 upstream: deal with API rename: match_filter_list() => match_filter_blacklist() OpenBSD-Regress-ID: 2da342be913efeb51806351af906fab01ba4367f commit 89f54cdf6b9cf1cf5528fd33897f1443913ddfb4 Author: djm@openbsd.org Date: Wed Jul 4 13:51:12 2018 +0000 upstream: exercise new expansion behaviour of PubkeyAcceptedKeyTypes and, by proxy, test kex_assemble_names() ok markus@ OpenBSD-Regress-ID: 292978902e14d5729aa87e492dd166c842f72736 commit 187633f24c71564e970681c8906df5a6017dcccf Author: djm@openbsd.org Date: Tue Jul 3 13:53:26 2018 +0000 upstream: add a comment that could have saved me 45 minutes of wild goose chasing OpenBSD-Regress-ID: d469b29ffadd3402c090e21b792d627d46fa5297 commit 312d2f2861a2598ed08587cb6c45c0e98a85408f Author: djm@openbsd.org Date: Wed Jul 4 13:49:31 2018 +0000 upstream: repair PubkeyAcceptedKeyTypes (and friends) after RSA signature work - returns ability to add/remove/specify algorithms by wildcard. Algorithm lists are now fully expanded when the server/client configs are finalised, so errors are reported early and the config dumps (e.g. "ssh -G ...") now list the actual algorithms selected. Clarify that, while wildcards are accepted in algorithm lists, they aren't full pattern-lists that support negation. (lots of) feedback, ok markus@ OpenBSD-Commit-ID: a8894c5c81f399a002f02ff4fe6b4fa46b1f3207 commit 303af5803bd74bf05d375c04e1a83b40c30b2be5 Author: djm@openbsd.org Date: Tue Jul 3 11:43:49 2018 +0000 upstream: some magic for RSA-SHA2 checks OpenBSD-Regress-ID: e5a9b11368ff6d86e7b25ad10ebe43359b471cd4 commit 7d68e262944c1fff1574600fe0e5e92ec8b398f5 Author: Damien Miller Date: Tue Jul 3 23:27:11 2018 +1000 depend commit b4d4eda633af433d20232cbf7e855ceac8b83fe5 Author: djm@openbsd.org Date: Tue Jul 3 13:20:25 2018 +0000 upstream: some finesse to fix RSA-SHA2 certificate authentication for certs hosted in ssh-agent OpenBSD-Commit-ID: e5fd5edd726137dda2d020e1cdebc464110a010f commit d78b75df4a57e0f92295f24298e5f2930e71c172 Author: djm@openbsd.org Date: Tue Jul 3 13:07:58 2018 +0000 upstream: check correct variable; unbreak agent keys OpenBSD-Commit-ID: c36981fdf1f3ce04966d3310826a3e1e6233d93e commit 2f30300c5e15929d0e34013f38d73e857f445e12 Author: djm@openbsd.org Date: Tue Jul 3 11:42:12 2018 +0000 upstream: crank version number to 7.8; needed for new compat flag for prior version; part of RSA-SHA2 strictification, ok markus@ OpenBSD-Commit-ID: 84a11fc0efd2674c050712336b5093f5d408e32b commit 4ba0d54794814ec0de1ec87987d0c3b89379b436 Author: djm@openbsd.org Date: Tue Jul 3 11:39:54 2018 +0000 upstream: Improve strictness and control over RSA-SHA2 signature In ssh, when an agent fails to return a RSA-SHA2 signature when requested and falls back to RSA-SHA1 instead, retry the signature to ensure that the public key algorithm sent in the SSH_MSG_USERAUTH matches the one in the signature itself. In sshd, strictly enforce that the public key algorithm sent in the SSH_MSG_USERAUTH message matches what appears in the signature. Make the sshd_config PubkeyAcceptedKeyTypes and HostbasedAcceptedKeyTypes options control accepted signature algorithms (previously they selected supported key types). This allows these options to ban RSA-SHA1 in favour of RSA-SHA2. Add new signature algorithms "rsa-sha2-256-cert-v01@openssh.com" and "rsa-sha2-512-cert-v01@openssh.com" to force use of RSA-SHA2 signatures with certificate keys. feedback and ok markus@ OpenBSD-Commit-ID: c6e9f6d45eed8962ad502d315d7eaef32c419dde commit 95344c257412b51199ead18d54eaed5bafb75617 Author: djm@openbsd.org Date: Tue Jul 3 10:59:35 2018 +0000 upstream: allow sshd_config PermitUserEnvironment to accept a pattern-list of whitelisted environment variable names in addition to yes|no. bz#1800, feedback and ok markus@ OpenBSD-Commit-ID: 77dc2b468e0bf04b53f333434ba257008a1fdf24 commit 6f56fe4b9578b0627667f8bce69d4d938a88324c Author: millert@openbsd.org Date: Tue Jun 26 11:23:59 2018 +0000 upstream: Fix "WARNING: line 6 disappeared in /etc/moduli, giving up" when choosing a prime. An extra increment of linenum snuck in as part of the conversion to getline(). OK djm@ markus@ OpenBSD-Commit-ID: 0019225cb52ed621b71cd9f19ee2e78e57e3dd38 commit 1eee79a11c1b3594f055b01e387c49c9a6e80005 Author: dtucker@openbsd.org Date: Mon Jul 2 14:13:30 2018 +0000 upstream: One ampersand is enough to backgroud an process. OpenBSD doesn't seem to mind, but some platforms in -portable object to the second. OpenBSD-Regress-ID: d6c3e404871764343761dc25c3bbe29c2621ff74 commit 6301e6c787d4e26bfae1119ab4f747bbcaa94e44 Author: Darren Tucker Date: Mon Jul 2 21:16:58 2018 +1000 Add implementation of getline. Add getline for the benefit of platforms that don't have it. Sourced from NetBSD (OpenBSD's implementation is a little too chummy with the internals of FILE). commit 84623e0037628f9992839063151f7a9f5f13099a Author: djm@openbsd.org Date: Tue Jun 26 02:02:36 2018 +0000 upstream: whitespace OpenBSD-Commit-ID: 9276951caf4daf555f6d262e95720e7f79244572 commit 90e51d672711c19a36573be1785caf35019ae7a8 Author: djm@openbsd.org Date: Mon Jun 25 22:28:33 2018 +0000 upstream: fix NULL dereference in open_listen_match_tcpip() OpenBSD-Commit-ID: c968c1d29e392352383c0f9681fcc1e93620c4a9 commit f535ff922a67d9fcc5ee69d060d1b21c8bb01d14 Author: jmc@openbsd.org Date: Tue Jun 19 05:36:57 2018 +0000 upstream: spelling; OpenBSD-Commit-ID: db542918185243bea17202383a581851736553cc commit 80e199d6175904152aafc5c297096c3e18297691 Author: djm@openbsd.org Date: Tue Jun 19 03:02:17 2018 +0000 upstream: test PermitListen with bare port numbers OpenBSD-Regress-ID: 4b50a02dfb0ccaca08247f3877c444126ba901b3 commit 87ddd676da0f3abd08b778b12b53b91b670dc93c Author: djm@openbsd.org Date: Tue Jun 19 02:59:41 2018 +0000 upstream: allow bare port numbers to appear in PermitListen directives, e.g. PermitListen 2222 8080 is equivalent to: PermitListen *:2222 *:8080 Some bonus manpage improvements, mostly from markus@ "looks fine" markus@ OpenBSD-Commit-ID: 6546b0cc5aab7f53d65ad0a348ca0ae591d6dd24 commit 26f96ca10ad0ec5da9b05b99de1e1ccea15a11be Author: djm@openbsd.org Date: Fri Jun 15 07:01:11 2018 +0000 upstream: invalidate supplemental group cache used by temporarily_use_uid() when the target uid differs; could cause failure to read authorized_keys under some configurations. patch by Jakub Jelen via bz2873; ok dtucker, markus OpenBSD-Commit-ID: 48a345f0ee90f6c465a078eb5e89566b23abd8a1 commit 89a85d724765b6b82e0135ee5a1181fdcccea9c6 Author: djm@openbsd.org Date: Sun Jun 10 23:45:41 2018 +0000 upstream: unbreak SendEnv; patch from tb@ OpenBSD-Commit-ID: fc808daced813242563b80976e1478de95940056 commit acf4260f0951f89c64e1ebbc4c92f451768871ad Author: jmc@openbsd.org Date: Sat Jun 9 06:36:31 2018 +0000 upstream: sort previous; OpenBSD-Commit-ID: 27d80d8b8ca99bc33971dee905e8ffd0053ec411 commit 1678d4236451060b735cb242d2e26e1ac99f0947 Author: djm@openbsd.org Date: Sat Jun 9 03:18:11 2018 +0000 upstream: slightly better wording re handing of $TERM, from Jakub Jelen via bz2386 OpenBSD-Commit-ID: 14bea3f069a93c8be66a7b97794255a91fece964 commit 28013759f09ed3ebf7e8335e83a62936bd7a7f47 Author: djm@openbsd.org Date: Sat Jun 9 03:03:10 2018 +0000 upstream: add a SetEnv directive for sshd_config to allow an administrator to explicitly specify environment variables set in sessions started by sshd. These override the default environment and any variables set by user configuration (PermitUserEnvironment, etc), but not the SSH_* variables set by sshd itself. ok markus@ OpenBSD-Commit-ID: b6a96c0001ccd7dd211df6cae9e961c20fd718c0 commit 7082bb58a2eb878d23ec674587c742e5e9673c36 Author: djm@openbsd.org Date: Sat Jun 9 03:01:12 2018 +0000 upstream: add a SetEnv directive to ssh_config that allows setting environment variables for the remote session (subject to the server accepting them) refactor SendEnv to remove the arbitrary limit of variable names. ok markus@ OpenBSD-Commit-ID: cfbb00d9b0e10c1ffff1d83424351fd961d1f2be commit 3b9798bda15bd3f598f5ef07595d64e23504da91 Author: djm@openbsd.org Date: Sat Jun 9 02:58:02 2018 +0000 upstream: reorder child environment preparation so that variables read from ~/.ssh/environment (if enabled) do not override SSH_* variables set by the server. OpenBSD-Commit-ID: 59f9d4c213cdcef2ef21f4b4ae006594dcf2aa7a commit 0368889f82f63c82ff8db9f8c944d89e7c657db4 Author: djm@openbsd.org Date: Fri Jun 8 03:35:36 2018 +0000 upstream: fix incorrect expansion of %i in load_public_identity_files(); reported by Roumen Petrov OpenBSD-Commit-ID: a827289e77149b5e0850d72a350c8b0300e7ef25 commit 027607fc2db6a0475a3380f8d95c635482714cb0 Author: djm@openbsd.org Date: Fri Jun 8 01:55:40 2018 +0000 upstream: fix some over-long lines and __func__ up some debug messages OpenBSD-Commit-ID: c70a60b4c8207d9f242fc2351941ba50916bb267 commit 6ff6fda705bc204456a5fa12518dde6e8790bb02 Author: jmc@openbsd.org Date: Thu Jun 7 11:26:14 2018 +0000 upstream: tweak previous; OpenBSD-Commit-ID: f98f16af10b28e24bcecb806cb71ea994b648fd6 commit f2c06ab8dd90582030991f631a2715216bf45e5a Author: Darren Tucker Date: Fri Jun 8 17:43:36 2018 +1000 Remove ability to override $LD. Since autoconf always uses $CC to link C programs, allowing users to override LD caused mismatches between what LD_LINK_IFELSE thought worked and what ld thought worked. If you do need to do this kind of thing you need to set a compiler flag such as gcc's -fuse-ld in LDFLAGS. commit e1542a80797b4ea40a91d2896efdcc76a57056d2 Author: Darren Tucker Date: Fri Jun 8 13:55:59 2018 +1000 Better detection of unsupported compiler options. Should prevent "unsupported -Wl,-z,retpoline" warnings during linking. ok djm@ commit 57379dbd013ad32ee3f9989bf5f5741065428360 Author: djm@openbsd.org Date: Thu Jun 7 14:29:43 2018 +0000 upstream: test the correct configuration option name OpenBSD-Regress-ID: 492279ea9f65657f97a970e0e7c7fd0b339fee23 commit 6d41815e202fbd6182c79780b6cc90e1ec1c9981 Author: djm@openbsd.org Date: Thu Jun 7 09:26:42 2018 +0000 upstream: some permitlisten fixes from markus@ that I missed in my insomnia-fueled commits last night OpenBSD-Commit-ID: 26f23622e928996086e85b1419cc1c0f136e359c commit 4319f7a868d86d435fa07112fcb6153895d03a7f Author: djm@openbsd.org Date: Thu Jun 7 04:46:34 2018 +0000 upstream: permitlisten/PermitListen unit test from Markus OpenBSD-Regress-ID: ab12eb42f0e14926980441cf7c058a6d1d832ea5 commit fa09076410ffc2d34d454145af23c790d728921e Author: djm@openbsd.org Date: Thu Jun 7 04:31:51 2018 +0000 upstream: fix regression caused by recent permitlisten option commit: authorized_keys lines that contained permitopen/permitlisten were being treated as invalid. OpenBSD-Commit-ID: 7ef41d63a5a477b405d142dc925b67d9e7aaa31b commit 7f90635216851f6cb4bf3999e98b825f85d604f8 Author: markus@openbsd.org Date: Wed Jun 6 18:29:18 2018 +0000 upstream: switch config file parsing to getline(3) as this avoids static limits noted by gerhard@; ok dtucker@, djm@ OpenBSD-Commit-ID: 6d702eabef0fa12e5a1d75c334a8c8b325298b5c commit 392db2bc83215986a91c0b65feb0e40e7619ce7e Author: djm@openbsd.org Date: Wed Jun 6 18:25:33 2018 +0000 upstream: regress test for PermitOpen OpenBSD-Regress-ID: ce8b5f28fc039f09bb297fc4a92319e65982ddaf commit 803d896ef30758135e2f438bdd1a0be27989e018 Author: djm@openbsd.org Date: Wed Jun 6 18:24:15 2018 +0000 upstream: man bits for permitlisten authorized_keys option OpenBSD-Commit-ID: 86910af8f781a4ac5980fea125442eb25466dd78 commit 04df43208b5b460d7360e1598f876b92a32f5922 Author: djm@openbsd.org Date: Wed Jun 6 18:24:00 2018 +0000 upstream: man bits for PermitListen OpenBSD-Commit-ID: 35b200cba4e46a16a4db6a80ef11838ab0fad67c commit 93c06ab6b77514e0447fe4f1d822afcbb2a9be08 Author: djm@openbsd.org Date: Wed Jun 6 18:23:32 2018 +0000 upstream: permitlisten option for authorized_keys; ok markus@ OpenBSD-Commit-ID: 8650883018d7aa893173d703379e4456a222c672 commit 115063a6647007286cc8ca70abfd2a7585f26ccc Author: djm@openbsd.org Date: Wed Jun 6 18:22:41 2018 +0000 upstream: Add a PermitListen directive to control which server-side addresses may be listened on when the client requests remote forwarding (ssh -R). This is the converse of the existing PermitOpen directive and this includes some refactoring to share much of its implementation. feedback and ok markus@ OpenBSD-Commit-ID: 15a931238c61a3f2ac74ea18a98c933e358e277f commit 7703ae5f5d42eb302ded51705166ff6e19c92892 Author: Darren Tucker Date: Wed Jun 6 16:04:29 2018 +1000 Use ssh-keygen -A to generate missing host keys. Instead of testing for each specific key type, use ssh-keygen -A to generate any missing host key types. commit e8d59fef1098e24f408248dc64e5c8efa5d01f3c Author: jmc@openbsd.org Date: Fri Jun 1 06:23:10 2018 +0000 upstream: add missing punctuation after %i in ssh_config.5, and make the grammatical format in sshd_config.5 match that in ssh_config.5; OpenBSD-Commit-ID: e325663b9342f3d556e223e5306e0d5fa1a74fa0 commit a1f737d6a99314e291a87856122cb4dbaf64c641 Author: jmc@openbsd.org Date: Fri Jun 1 05:52:26 2018 +0000 upstream: oops - further adjustment to text neccessary; OpenBSD-Commit-ID: 23585576c807743112ab956be0fb3c786bdef025 commit 294028493471e0bd0c7ffe55dc0c0a67cba6ec41 Author: jmc@openbsd.org Date: Fri Jun 1 05:50:18 2018 +0000 upstream: %U needs to be escaped; tweak text; OpenBSD-Commit-ID: 30887b73ece257273fb619ab6f4e86dc92ddc15e commit e5019da3c5a31e6e729a565f2b886a80c4be96cc Author: dtucker@openbsd.org Date: Fri Jun 1 04:31:48 2018 +0000 upstream: Apply umask to all incoming files and directories not just files. This makes sure it gets applied to directories too, and prevents a race where files get chmodded after creation. bz#2839, ok djm@ OpenBSD-Commit-ID: 3168ee6c7c39093adac4fd71039600cfa296203b commit a1dcafc41c376332493b9385ee39f9754dc145ec Author: djm@openbsd.org Date: Fri Jun 1 03:52:37 2018 +0000 upstream: Adapt to extra default verboisity from ssh-keygen when searching for and hashing known_hosts entries in a single operation (ssh-keygen -HF ...) Patch from Anton Kremenetsky OpenBSD-Regress-ID: 519585a4de35c4611285bd6a7272766c229b19dd commit 76f314c75dffd4a55839d50ee23622edad52c168 Author: djm@openbsd.org Date: Tue May 22 00:22:49 2018 +0000 upstream: Add TEST_SSH_FAIL_FATAL variable, to force all failures to instantly abort the test. Useful in capturing clean logs for individual failure cases. OpenBSD-Regress-ID: feba18cf338c2328b9601bd4093cabdd9baa3af1 commit 065c8c055df8d83ae7c92e5e524a579d87668aab Author: dtucker@openbsd.org Date: Fri May 11 03:51:06 2018 +0000 upstream: Clean up comment. OpenBSD-Regress-ID: 6adb35f384d447e7dcb9f170d4f0d546d3973e10 commit 01b048c8eba3b021701bd0ab26257fc82903cba8 Author: djm@openbsd.org Date: Fri Jun 1 04:21:29 2018 +0000 upstream: whitespace OpenBSD-Commit-ID: e5edb5e843ddc9b73a8e46518899be41d5709add commit 854ae209f992465a276de0b5f10ef770510c2418 Author: djm@openbsd.org Date: Fri Jun 1 04:05:29 2018 +0000 upstream: make ssh_remote_ipaddr() capable of being called after the ssh->state has been torn down; bz#2773 OpenBSD-Commit-ID: 167f12523613ca3d16d7716a690e7afa307dc7eb commit 3e088aaf236ef35beeef3c9be93fd53700df5861 Author: djm@openbsd.org Date: Fri Jun 1 03:51:34 2018 +0000 upstream: return correct exit code when searching for and hashing known_hosts entries in a single operation (ssh-keygen -HF hostname); bz2772 Report and fix from Anton Kremenetsky OpenBSD-Commit-ID: ac10ca13eb9bb0bc50fcd42ad11c56c317437b58 commit 9c935dd9bf05628826ad2495d3e8bdf3d3271c21 Author: djm@openbsd.org Date: Fri Jun 1 03:33:53 2018 +0000 upstream: make UID available as a %-expansion everywhere that the username is available currently. In the client this is via %i, in the server %U (since %i was already used in the client in some places for this, but used for something different in the server); bz#2870, ok dtucker@ OpenBSD-Commit-ID: c7e912b0213713316cb55db194b3a6415b3d4b95 commit d8748b91d1d6c108c0c260ed41fa55f37b9ef34b Author: djm@openbsd.org Date: Fri Jun 1 03:11:49 2018 +0000 upstream: prefer argv0 to "ssh" when re-executing ssh for ProxyJump directive; bz2831, feedback and ok dtucker@ OpenBSD-Commit-ID: 3cec709a131499fbb0c1ea8a0a9e0b0915ce769e commit fbb4b5fd4f8e0bb89732670a01954e18b69e15ba Author: djm@openbsd.org Date: Fri May 25 07:11:01 2018 +0000 upstream: Do not ban PTY allocation when a sshd session is restricted because the user password is expired as it breaks password change dialog. regression in openssh-7.7 reported by Daniel Wagner OpenBSD-Commit-ID: 9fc09c584c6f1964b00595e3abe7f83db4d90d73 commit f6a59a22b0c157c4c4e5fd7232f868138223be64 Author: djm@openbsd.org Date: Fri May 25 04:25:46 2018 +0000 upstream: Fix return value confusion in several functions (readdir, download and fsync). These should return -1 on error, not a sftp status code. patch from Petr Cerny in bz#2871 OpenBSD-Commit-ID: 651aa0220ad23c9167d9297a436162d741f97a09 commit 1da5934b860ac0378d52d3035b22b6670f6a967e Author: dtucker@openbsd.org Date: Fri May 25 03:20:59 2018 +0000 upstream: If select() fails in ssh_packet_read_seqnr go directly to the error path instead of trying to read from the socket on the way out, which resets errno and causes the true error to be misreported. ok djm@ OpenBSD-Commit-ID: 2614edaadbd05a957aa977728aa7a030af7c6f0a commit 4ef75926ef517d539f2c7aac3188b09f315c86a7 Author: Damien Miller Date: Fri May 25 13:36:58 2018 +1000 Permit getuid()/geteuid() syscalls. Requested for Linux/s390; patch from Eduardo Barretto via bz#2752; ok dtucker commit 4b22fd8ecefd059a66140be67f352eb6145a9d88 Author: djm@openbsd.org Date: Tue May 22 00:13:26 2018 +0000 upstream: support ProxyJump=none to disable ProxyJump functionality; bz#2869 ok dtucker@ OpenBSD-Commit-ID: 1c06ee08eb78451b5837fcfd8cbebc5ff3a67a01 commit f41bcd70f55b4f0fc4d8e1039cb361ac922b23fb Author: jmc@openbsd.org Date: Tue May 15 05:40:11 2018 +0000 upstream: correct keyowrd name (permitemptypasswords); from brendan macdonell OpenBSD-Commit-ID: ef1bdbc936b2ea693ee37a4c20a94d4d43f5fda3 commit f18bc97151340127859634d20d79fd39ec8a7f39 Author: djm@openbsd.org Date: Fri May 11 04:01:11 2018 +0000 upstream: Emphasise that -w implicitly sets Tunnel=point-to-point and that users should specify an explicit Tunnel directive if they don't want this. bz#2365. OpenBSD-Commit-ID: 1a8d9c67ae213ead180481900dbbb3e04864560d commit 32e4e94e1511fe0020fbfbb62399d31b2d22a801 Author: Damien Miller Date: Mon May 14 14:40:08 2018 +1000 sync fmt_scaled.c revision 1.17 date: 2018/05/14 04:39:04; author: djm; state: Exp; lines: +5 -2; commitid: 53zY8GjViUBnWo8Z; constrain fractional part to [0-9] (less confusing to static analysis); ok ian@ commit 54268d589e85ecc43d3eba8d83f327bdada9d696 Author: Damien Miller Date: Fri May 11 14:04:40 2018 +1000 fix key-options.sh on platforms without openpty(3) Skip the pty tests if the platform lacks openpty(3) and has to chown(2) the pty device explicitly. This typically requires root permissions that this test lacks. bz#2856 ok dtucker@ commit b2140a739be4c3b43cc1dc08322dca39a1e39d20 Author: djm@openbsd.org Date: Fri May 11 03:38:51 2018 +0000 upstream: implement EMFILE mitigation for ssh-agent: remember the fd rlimit and stop accepting new connections when it is exceeded (with some grace). Accept is resumed when enough connections are closed. bz#2576. feedback deraadt; ok dtucker@ OpenBSD-Commit-ID: 6a85d9cec7b85741961e7116a49f8dae777911ea commit fdba503fdfc647ee8a244002f1581e869c1f3d90 Author: dtucker@openbsd.org Date: Fri May 11 03:22:55 2018 +0000 upstream: Explicit cast when snprintf'ing an uint64. Prevents warnings on platforms where int64 is long not long long. ok djm@ OpenBSD-Commit-ID: 9c5359e2fbfce11dea2d93f7bc257e84419bd001 commit e7751aa4094d51a9bc00778aa8d07e22934c55ee Author: bluhm@openbsd.org Date: Thu Apr 26 14:47:03 2018 +0000 upstream: Since the previous commit, ssh regress test sftp-chroot was failing. The sftp program terminated with the wrong exit code as sftp called fatal() instad of exit(0). So when the sigchld handler waits for the child, remember that it was found. Then don't expect that main() can wait again. OK dtucker@ OpenBSD-Commit-ID: bfafd940c0de5297940c71ddf362053db0232266 commit 7c15301841e2e9d37cae732400de63ae9c0961d6 Author: Darren Tucker Date: Sun Apr 29 17:54:12 2018 +1000 Use includes.h instead of config.h. This ensures it picks up the definition of DEF_WEAK, the lack of which can cause compile errors in some cases (eg modern AIX). From michael at felt.demon.nl. commit cec338967a666b7c8ad8b88175f2faeddf268116 Author: Darren Tucker Date: Thu Apr 19 09:53:14 2018 +1000 Omit 3des-cbc if OpenSSL built without DES. Patch from hongxu.jia at windriver.com, ok djm@ commit a575ddd58835759393d2dddd16ebe5abdb56485e Author: djm@openbsd.org Date: Mon Apr 16 22:50:44 2018 +0000 upstream: Disable SSH2_MSG_DEBUG messages for Twisted Conch clients without version numbers since they choke on them under some circumstances. https://twistedmatrix.com/trac/ticket/9422 via Colin Watson Newer Conch versions have a version number in their ident string and handle debug messages okay. https://twistedmatrix.com/trac/ticket/9424 OpenBSD-Commit-ID: 6cf7be262af0419c58ddae11324d9c0dc1577539 commit 390c7000a8946db565b66eab9e52fb11948711fa Author: djm@openbsd.org Date: Sat Apr 14 21:50:41 2018 +0000 upstream: don't free the %C expansion, it's used later for LocalCommand OpenBSD-Commit-ID: 857b5cb37b2d856bfdfce61289a415257a487fb1 commit 3455f1e7c48e2e549192998d330214975b9b1dc7 Author: djm@openbsd.org Date: Fri Apr 13 05:04:12 2018 +0000 upstream: notify user immediately when underlying ssh process dies; patch from Thomas Kuthan in bz2719; ok dtucker@ OpenBSD-Commit-ID: 78fac88c2f08054d1fc5162c43c24162b131cf78 commit 1c5b4bc827f4abc3e65888cda061ad5edf1b8c7c Author: Darren Tucker Date: Fri Apr 13 16:23:57 2018 +1000 Allow nanosleep in preauth privsep child. The new timing attack mitigation code uses nanosleep in the preauth codepath, allow in systrace andbox too. commit 0e73428038d5ecfa5d2a28cff26661502a7aff4e Author: Darren Tucker Date: Fri Apr 13 16:06:29 2018 +1000 Allow nanosleep in preauth privsep child. The new timing attack mitigation code uses nanosleep in the preauth codepath, allow in sandbox. commit e9d910b0289c820852f7afa67f584cef1c05fe95 Author: dtucker@openbsd.org Date: Fri Apr 13 03:57:26 2018 +0000 upstream: Defend against user enumeration timing attacks. This establishes a minimum time for each failed authentication attempt (5ms) and adds a per-user constant derived from a host secret (0-4ms). Based on work by joona.kannisto at tut.fi, ok markus@ djm@. OpenBSD-Commit-ID: b7845b355bb7381703339c8fb0e57e81a20ae5ca commit d97874cbd909eb706886cd0cdd418f812c119ef9 Author: Darren Tucker Date: Fri Apr 13 13:43:55 2018 +1000 Using "==" in shell tests is not portable. Patch from rsbecker at nexbridge.com. commit cfb1d9bc76734681e3dea532a1504fcd466fbe91 Author: Damien Miller Date: Fri Apr 13 13:38:06 2018 +1000 Fix tunnel forwarding broken in 7.7p1 bz2855, ok dtucker@ commit afa6e79b76fb52a0c09a29688b5c0d125eb08302 Author: Damien Miller Date: Fri Apr 13 13:31:42 2018 +1000 prefer to use getrandom() for PRNG seeding Only applies when built --without-openssl. Thanks Jann Horn for reminder. commit 575fac34a97f69bc217b235f81de9f8f433eceed Author: Darren Tucker Date: Fri Apr 13 13:13:33 2018 +1000 Revert $REGRESSTMP changes. Revert 3fd2d229 and subsequent changes as they turned out to be a portability hassle. commit 10479cc2a4acd6faaf643eb305233b49d70c31c1 Author: Damien Miller Date: Tue Apr 10 10:19:02 2018 +1000 Many typo fixes from Karsten Weiss Spotted using https://github.com/lucasdemarchi/codespell commit 907da2f88519b34189fd03fac96de0c52d448233 Author: djm@openbsd.org Date: Tue Apr 10 00:14:10 2018 +0000 upstream: more typos spotted by Karsten Weiss using codespell OpenBSD-Regress-ID: d906a2aea0663810a658b7d0bc61a1d2907d4d69 commit 37e5f4a7ab9a8026e5fc2f47dafb0f1b123d39e9 Author: djm@openbsd.org Date: Tue Apr 10 00:13:27 2018 +0000 upstream: make this a bit more portable-friendly OpenBSD-Regress-ID: 62f7b9e055e8dfaab92b3825f158beeb4ca3f963 commit 001aa55484852370488786bd40e9fdad4b465811 Author: djm@openbsd.org Date: Tue Apr 10 00:10:49 2018 +0000 upstream: lots of typos in comments/docs. Patch from Karsten Weiss after checking with codespell tool (https://github.com/lucasdemarchi/codespell) OpenBSD-Commit-ID: 373222f12d7ab606598a2d36840c60be93568528 commit 260ede2787fe80b18b8d5920455b4fb268519c7d Author: djm@openbsd.org Date: Mon Apr 9 23:54:49 2018 +0000 upstream: don't kill ssh-agent's listening socket entriely if we fail to accept a connection; bz#2837, patch from Lukas Kuster OpenBSD-Commit-ID: 52413f5069179bebf30d38f524afe1a2133c738f commit ebc8b4656f9b0f834a642a9fb3c9fbca86a61838 Author: tj@openbsd.org Date: Mon Apr 9 20:41:22 2018 +0000 upstream: the UseLogin option was removed, so remove it here too. ok dtucker OpenBSD-Commit-ID: 7080be73a64d68e21f22f5408a67a0ba8b1b6b06 commit 3e36f281851fc8e9c996b33f108b2ae167314fbe Author: jmc@openbsd.org Date: Sun Apr 8 07:36:02 2018 +0000 upstream: tweak previous; OpenBSD-Commit-ID: 2b9c23022ea7b9dddb62864de4e906000f9d7474 commit 8368571efd6693c5c57f850e23a2372acf3f865f Author: jmc@openbsd.org Date: Sat Apr 7 13:50:10 2018 +0000 upstream: tweak previous; OpenBSD-Commit-ID: 38e347b6f8e888f5e0700d01abb1eba7caa154f9 commit 555294a7279914ae6795b71bedf4e6011b7636df Author: djm@openbsd.org Date: Fri Apr 6 13:02:39 2018 +0000 upstream: Allow "SendEnv -PATTERN" to clear environment variables previously labeled for sendind. bz#1285 ok dtucker@ OpenBSD-Commit-ID: f6fec9e3d0f366f15903094fbe1754cb359a0df9 commit 40f5f03544a07ebd2003b443d42e85cb51d94d59 Author: djm@openbsd.org Date: Fri Apr 6 04:15:45 2018 +0000 upstream: relax checking of authorized_keys environment="..." options to allow underscores in variable names (regression introduced in 7.7). bz2851, ok deraadt@ OpenBSD-Commit-ID: 69690ffe0c97ff393f2c76d25b4b3d2ed4e4ac9c commit 30fd7f9af0f553aaa2eeda5a1f53f26cfc222b5e Author: djm@openbsd.org Date: Fri Apr 6 03:51:27 2018 +0000 upstream: add a couple of missed options to the config dump; patch from Jakub Jelen via bz2835 OpenBSD-Commit-ID: 5970adadf6ef206bee0dddfc75d24c2019861446 commit 8d6829be324452d2acd282d5f8ceb0adaa89a4de Author: djm@openbsd.org Date: Fri Apr 6 03:34:27 2018 +0000 upstream: ssh does not accept -oInclude=... on the commandline, the Include keyword is for configuration files only. bz#2840, patch from Jakub Jelen OpenBSD-Commit-ID: 32d052b4a7a7f22df35fe3f71c368c02b02cacb0 commit 00c5222ddc0c8edcaa4ea45ac03befdc8013d137 Author: djm@openbsd.org Date: Thu Apr 5 22:54:28 2018 +0000 upstream: We don't offer CBC cipher by default any more. Spotted by Renaud Allard (via otto@) OpenBSD-Commit-ID: a559b1eef741557dd959ae378b665a2977d92dca commit 5ee8448ad7c306f05a9f56769f95336a8269f379 Author: job@openbsd.org Date: Wed Apr 4 15:12:17 2018 +0000 upstream: Update default IPQoS in ssh(1), sshd(8) to DSCP AF21 for interactive and CS1 for bulk AF21 was selected as this is the highest priority within the low-latency service class (and it is higher than what we have today). SSH is elastic and time-sensitive data, where a user is waiting for a response via the network in order to continue with a task at hand. As such, these flows should be considered foreground traffic, with delays or drops to such traffic directly impacting user-productivity. For bulk SSH traffic, the CS1 "Lower Effort" marker was chosen to enable networks implementing a scavanger/lower-than-best effort class to discriminate scp(1) below normal activities, such as web surfing. In general this type of bulk SSH traffic is a background activity. An advantage of using "AF21" for interactive SSH and "CS1" for bulk SSH is that they are recognisable values on all common platforms (IANA https://www.iana.org/assignments/dscp-registry/dscp-registry.xml), and for AF21 specifically a definition of the intended behavior exists https://tools.ietf.org/html/rfc4594#section-4.7 in addition to the definition of the Assured Forwarding PHB group https://tools.ietf.org/html/rfc2597, and for CS1 (Lower Effort) there is https://tools.ietf.org/html/rfc3662 The first three bits of "AF21" map to the equivalent IEEEE 802.1D PCP, IEEE 802.11e, MPLS EXP/CoS and IP Precedence value of 2 (also known as "Immediate", or "AC_BE"), and CS1's first 3 bits map to IEEEE 802.1D PCP, IEEE 802.11e, MPLS/CoS and IP Precedence value 1 ("Background" or "AC_BK"). OK deraadt@, "no objection" djm@ OpenBSD-Commit-ID: d11d2a4484f461524ef0c20870523dfcdeb52181 commit 424b544fbda963f973da80f884717c3e0a513288 Author: dtucker@openbsd.org Date: Tue Apr 3 02:14:08 2018 +0000 upstream: Import regenerated moduli file. OpenBSD-Commit-ID: 1de0e85522051eb2ffa00437e1885e9d7b3e0c2e commit 323f66ce934df2da551f256f37d69822428e1ca1 Author: dtucker@openbsd.org Date: Fri Apr 6 04:18:35 2018 +0000 upstream: Add test for username options parsing order, prompted by bz#2849. OpenBSD-Regress-ID: 6985cd32f38596882a3ac172ff8c510693b65283 commit e8f474554e3bda102a797a2fbab0594ccc66f097 Author: Damien Miller Date: Fri Apr 6 14:11:44 2018 +1000 Expose SSH_AUTH_INFO_0 to PAM auth modules bz#2408, patch from Radoslaw Ejsmont; ok dtucker@ commit 014ba209cf4c6a159baa30ecebbaddfa97da7100 Author: Darren Tucker Date: Tue Apr 3 12:18:00 2018 +1000 Import regenerated moduli file. commit a0349a1cc4a18967ad1dbff5389bcdf9da098814 Author: Damien Miller Date: Mon Apr 2 15:38:28 2018 +1000 update versions in .spec files commit 816ad38f79792f5617e3913be306ddb27e91091c Author: Damien Miller Date: Mon Apr 2 15:38:20 2018 +1000 update version number commit 2c71ca1dd1efe458cb7dee3f8a1a566f913182c2 Author: Darren Tucker Date: Fri Mar 30 18:23:07 2018 +1100 Disable native strndup and strnlen on AIX. On at least some revisions of AIX, strndup returns unterminated strings under some conditions, apparently because strnlen returns incorrect values in those cases. Disable both on AIX and use the replacements from openbsd-compat. Fixes problem with ECDSA keys there, ok djm. commit 6b5a17bc14e896e3904dc58d889b58934cfacd24 Author: Darren Tucker Date: Mon Mar 26 13:12:44 2018 +1100 Include ssh_api.h for struct ssh. struct ssh is needed by implementations of sys_auth_passwd() that were converted in commit bba02a50. Needed to fix build on AIX, I assume for the other platforms too (although it should be harmless if not needed). commit bc3f80e4d191b8e48650045dfa8a682cd3aabd4d Author: Darren Tucker Date: Mon Mar 26 12:58:09 2018 +1100 Remove UNICOS code missed during removal. Fixes compile error on AIX. commit 9d57762c24882e2f000a21a0ffc8c5908a1fa738 Author: markus@openbsd.org Date: Sat Mar 24 19:29:03 2018 +0000 upstream: openssh-7.7 OpenBSD-Commit-ID: 274e614352460b9802c905f38fb5ea7ed5db3d41 commit 4b7d8acdbbceef247dc035e611e577174ed8a87e Author: Damien Miller Date: Mon Mar 26 09:37:02 2018 +1100 Remove authinfo.sh test dependency on printenv Some platforms lack printenv in the default $PATH. Reported by Tom G. Christensen commit 4afeaf3dcb7dc70efd98fcfcb0ed28a6b40b820e Author: Tim Rice Date: Sun Mar 25 10:00:21 2018 -0700 Use libiaf on all sysv5 systems commit bba02a5094b3db228ceac41cb4bfca165d0735f3 Author: Tim Rice Date: Sun Mar 25 09:17:33 2018 -0700 modified: auth-sia.c modified: openbsd-compat/port-aix.c modified: openbsd-compat/port-uw.c propogate changes to auth-passwd.c in commit 7c856857607112a3dfe6414696bf4c7ab7fb0cb3 to other providers of sys_auth_passwd() commit d7a7a39168bdfe273587bf85d779d60569100a3f Author: markus@openbsd.org Date: Sat Mar 24 19:29:03 2018 +0000 upstream: openssh-7.7 OpenBSD-Commit-ID: 274e614352460b9802c905f38fb5ea7ed5db3d41 commit 9efcaaac314c611c6c0326e8bac5b486c424bbd2 Author: markus@openbsd.org Date: Sat Mar 24 19:28:43 2018 +0000 upstream: fix bogus warning when signing cert keys using agent; from djm; ok deraadt dtucker OpenBSD-Commit-ID: 12e50836ba2040042383a8b71e12d7ea06e9633d commit 393436024d2e4b4c7a01f9cfa5854e7437896d11 Author: Darren Tucker Date: Sun Mar 25 09:40:46 2018 +1100 Replace /dev/stdin with "-". For some reason sftp -b doesn't work with /dev/stdin on Cygwin, as noted and suggested by vinschen at redhat.com. commit b5974de1a1d419e316ffb6524b1b277dda2f3b49 Author: Darren Tucker Date: Fri Mar 23 13:21:14 2018 +1100 Provide $OBJ to paths in PuTTY interop tests. commit dc31e79454e9b9140b33ad380565fdb59b9c4f33 Author: dtucker@openbsd.org Date: Fri Mar 16 09:06:31 2018 +0000 upstream: Tell puttygen to use /dev/urandom instead of /dev/random. On OpenBSD they are both non-blocking, but on many other -portable platforms it blocks, stalling tests. OpenBSD-Regress-ID: 397d0d4c719c353f24d79f5b14775e0cfdf0e1cc commit cb1f94431ef319cd48618b8b771b58739a8210cf Author: markus@openbsd.org Date: Thu Mar 22 07:06:11 2018 +0000 upstream: ssh/xmss: fix build; ok djm@ OpenBSD-Commit-ID: c9374ca41d4497f1c673ab681cc33f6e7c5dd186 commit 27979da9e4074322611355598f69175b9ff10d39 Author: markus@openbsd.org Date: Thu Mar 22 07:05:48 2018 +0000 upstream: ssh/xmss: fix deserialize for certs; ok djm@ OpenBSD-Commit-ID: f44c41636c16ec83502039828beaf521c057dddc commit c6cb2565c9285eb54fa9dfbb3890f5464aff410f Author: Darren Tucker Date: Thu Mar 22 17:00:28 2018 +1100 Save $? before case statement. In some shells (FreeBSD 9, ash) the case statement resets $?, so save for later testing. commit 4c4e7f783b43b264c247233acb887ee10ed4ce4d Author: djm@openbsd.org Date: Wed Mar 14 05:35:40 2018 +0000 upstream: rename recently-added "valid-before" key restriction to "expiry-time" as the former is confusing wrt similar terminology in X.509; pointed out by jsing@ OpenBSD-Regress-ID: ac8b41dbfd90cffd525d58350c327195b0937793 commit 500396b204c58e78ad9d081516a365a9f28dc3fd Author: djm@openbsd.org Date: Mon Mar 12 00:56:03 2018 +0000 upstream: check valid-before option in authorized_keys OpenBSD-Regress-ID: 7e1e4a84f7f099a290e5a4cbf4196f90ff2d7e11 commit a76b5d26c2a51d7dd7a5164e683ab3f4419be215 Author: djm@openbsd.org Date: Mon Mar 12 00:54:04 2018 +0000 upstream: explicitly specify RSA/SHA-2 keytype here too OpenBSD-Regress-ID: 74d7b24e8c72c27af6b481198344eb077e993a62 commit 3a43297ce29d37c64e37c7e21282cb219e28d3d1 Author: djm@openbsd.org Date: Mon Mar 12 00:52:57 2018 +0000 upstream: exlicitly include RSA/SHA-2 keytypes in PubkeyAcceptedKeyTypes here OpenBSD-Regress-ID: 954d19e0032a74e31697fb1dc7e7d3d1b2d65fe9 commit 037fdc1dc2d68e1d43f9c9e2586c02cabc8f7cc8 Author: jmc@openbsd.org Date: Wed Mar 14 06:56:20 2018 +0000 upstream: sort expiry-time; OpenBSD-Commit-ID: 8c7d82ee1e63e26ceb2b3d3a16514019f984f6bf commit abc0fa38c9bc136871f28e452c3465c3051fc785 Author: djm@openbsd.org Date: Wed Mar 14 05:35:40 2018 +0000 upstream: rename recently-added "valid-before" key restriction to "expiry-time" as the former is confusing wrt similar terminology in X.509; pointed out by jsing@ OpenBSD-Commit-ID: 376939466a1f562f3950a22314bc6505733aaae6 commit bf0fbf2b11a44f06a64b620af7d01ff171c28e13 Author: djm@openbsd.org Date: Mon Mar 12 00:52:01 2018 +0000 upstream: add valid-before="[time]" authorized_keys option. A simple way of giving a key an expiry date. ok markus@ OpenBSD-Commit-ID: 1793b4dd5184fa87f42ed33c7b0f4f02bc877947 commit fbd733ab7adc907118a6cf56c08ed90c7000043f Author: Darren Tucker Date: Mon Mar 12 19:17:26 2018 +1100 Add AC_LANG_PROGRAM to AC_COMPILE_IFELSE. The recently added MIPS ABI tests need AC_LANG_PROGRAM to prevent warnings from autoconf. Pointed out by klausz at haus-gisela.de. commit c7c458e8261b04d161763cd333d74e7a5842e917 Author: djm@openbsd.org Date: Wed Mar 7 23:53:08 2018 +0000 upstream: revert recent strdelim() change, it causes problems with some configs. revision 1.124 date: 2018/03/02 03:02:11; author: djm; state: Exp; lines: +19 -8; commitid: nNRsCijZiGG6SUTT; Allow escaped quotes \" and \' in ssh_config and sshd_config quotes option strings. bz#1596 ok markus@ OpenBSD-Commit-ID: 59c40b1b81206d713c06b49d8477402c86babda5 commit 0bcd871ccdf3baf2b642509ba4773d5be067cfa2 Author: jmc@openbsd.org Date: Mon Mar 5 07:03:18 2018 +0000 upstream: move the input format details to -f; remove the output format details and point to sshd(8), where it is documented; ok dtucker OpenBSD-Commit-ID: 95f17e47dae02a6ac7329708c8c893d4cad0004a commit 45011511a09e03493568506ce32f4891a174a3bd Author: Vicente Olivert Riera Date: Tue Jun 20 16:42:28 2017 +0100 configure.ac: properly set seccomp_audit_arch for MIPS64 Currently seccomp_audit_arch is set to AUDIT_ARCH_MIPS64 or AUDIT_ARCH_MIPSEL64 (depending on the endinness) when openssh is built for MIPS64. However, that's only valid for n64 ABI. The right macros for n32 ABI defined in seccomp.h are AUDIT_ARCH_MIPS64N32 and AUDIT_ARCH_MIPSEL64N32, for big and little endian respectively. Because of that an sshd built for MIPS64 n32 rejects connection attempts and the output of strace reveals that the problem is related to seccomp audit: [pid 194] prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, {len=57, filter=0x555d5da0}) = 0 [pid 194] write(7, "\0\0\0]\0\0\0\5\0\0\0Ulist_hostkey_types: "..., 97) = ? [pid 193] <... poll resumed> ) = 2 ([{fd=5, revents=POLLIN|POLLHUP}, {fd=6, revents=POLLHUP}]) [pid 194] +++ killed by SIGSYS +++ This patch fixes that problem by setting the right value to seccomp_audit_arch taking into account the MIPS64 ABI. Signed-off-by: Vicente Olivert Riera commit 580086704c31de91dc7ba040a28e416bf1fefbca Author: Vicente Olivert Riera Date: Tue Jun 20 16:42:11 2017 +0100 configure.ac: detect MIPS ABI Signed-off-by: Vicente Olivert Riera commit cd4e937aa701f70366cd5b5969af525dff6fdf15 Author: Alan Yee Date: Wed Mar 7 15:12:14 2018 -0800 Use https URLs for links that support it. commit c0a0c3fc4a76b682db22146b28ddc46566db1ce9 Author: Darren Tucker Date: Mon Mar 5 20:03:07 2018 +1100 Disable UTMPX on SunOS4. commit 58fd4c5c0140f6636227ca7acbb149ab0c2509b9 Author: Darren Tucker Date: Mon Mar 5 19:28:08 2018 +1100 Check for and work around buggy fflush(NULL). Some really old platforms (eg SunOS4) segfault on fflush(NULL) so check for and work around. With klausz at haus-gisela.de. commit 71e48bc7945f867029e50e06c665c66aed6d3c64 Author: Darren Tucker Date: Mon Mar 5 10:22:32 2018 +1100 Remove extra XMSS #endif Extra #endif breaks compile with -DWITH_XMSS. Pointed out by Jack Schmidt via github. commit 055e09e2212ff52067786bf6d794ca9512ff7f0c Author: dtucker@openbsd.org Date: Sat Mar 3 06:37:53 2018 +0000 upstream: Update RSA minimum modulus size to 1024. sshkey.h rev 1.18 bumped the minimum from 768 to 1024, update man page accordingly. OpenBSD-Commit-ID: 27563ab4e866cd2aac40a5247876f6787c08a338 commit 7e4fadd3248d6bb7d39d6688c76a613d35d2efc1 Author: djm@openbsd.org Date: Sun Mar 4 01:46:48 2018 +0000 upstream: for the pty control tests, just check that the PTY path points to something in /dev (rather than checking the device node itself); makes life easier for portable, where systems with dynamic ptys can delete nodes before we get around to testing their existence. OpenBSD-Regress-ID: b1e455b821e62572bccd98102f8dd9d09bb94994 commit 13ef4cf53f24753fe920832b990b25c9c9cd0530 Author: Darren Tucker Date: Sat Mar 3 16:21:20 2018 +1100 Update PAM password change to new opts API. commit 33561e68e0b27366cb769295a077aabc6a49d2a1 Author: Darren Tucker Date: Sat Mar 3 14:56:09 2018 +1100 Add strndup for platforms that need it. Some platforms don't have strndup, which includes Solaris 10, NetBSD 3 and FreeBSD 6. commit e8a17feba95eef424303fb94441008f6c5347aaf Author: Darren Tucker Date: Sat Mar 3 14:49:07 2018 +1100 Flatten and alphabetize object file lists. This will make maintenance and changes easier. "no objection" tim@ commit de1920d743d295f50e6905e5957c4172c038e8eb Author: djm@openbsd.org Date: Sat Mar 3 03:16:17 2018 +0000 upstream: unit tests for new authorized_keys options API OpenBSD-Regress-ID: 820f9ec9c6301f6ca330ad4052d85f0e67d0bdc1 commit dc3e92df17556dc5b0ab19cee8dcb2a6ba348717 Author: djm@openbsd.org Date: Fri Mar 2 02:53:27 2018 +0000 upstream: fix testing of pty option, include positive test and testing of restrict keyword OpenBSD-Regress-ID: 4268f27c2706a0a95e725d9518c5bcbec9814c6d commit 3d1edd1ebbc0aabea8bbe61903060f37137f7c61 Author: djm@openbsd.org Date: Fri Mar 2 02:51:55 2018 +0000 upstream: better testing for port-forwarding and restrict flags in authorized_keys OpenBSD-Regress-ID: ee771df8955f2735df54746872c6228aff381daa commit 7c856857607112a3dfe6414696bf4c7ab7fb0cb3 Author: djm@openbsd.org Date: Sat Mar 3 03:15:51 2018 +0000 upstream: switch over to the new authorized_keys options API and remove the legacy one. Includes a fairly big refactor of auth2-pubkey.c to retain less state between key file lines. feedback and ok markus@ OpenBSD-Commit-ID: dece6cae0f47751b9892080eb13d6625599573df commit 90c4bec8b5f9ec4c003ae4abdf13fc7766f00c8b Author: djm@openbsd.org Date: Sat Mar 3 03:06:02 2018 +0000 upstream: Introduce a new API for handling authorized_keys options. This API parses options to a dedicated structure rather than the old API's approach of setting global state. It also includes support for merging options, e.g. from authorized_keys, authorized_principals and/or certificates. feedback and ok markus@ OpenBSD-Commit-ID: 98badda102cd575210d7802943e93a34232c80a2 commit 26074380767e639ef89321610e146ae11016b385 Author: djm@openbsd.org Date: Sat Mar 3 03:01:50 2018 +0000 upstream: warn when the agent returns a signature type that was different to what was requested. This might happen when an old/non-OpenSSH agent is asked to make a rsa-sha2-256/512 signature but only supports ssh-rsa. bz#2799 feedback and ok markus@ OpenBSD-Commit-ID: 760c0f9438c5c58abc16b5f98008ff2d95cb13ce commit f493d2b0b66fb003ed29f31dd66ff1aeb64be1fc Author: jmc@openbsd.org Date: Fri Mar 2 21:40:15 2018 +0000 upstream: apply a lick of paint; tweaks/ok dtucker OpenBSD-Commit-ID: 518a6736338045e0037f503c21027d958d05e703 commit 713d9cb510e0e7759398716cbe6dcf43e574be71 Author: djm@openbsd.org Date: Fri Mar 2 03:02:11 2018 +0000 upstream: Allow escaped quotes \" and \' in ssh_config and sshd_config quotes option strings. bz#1596 ok markus@ OpenBSD-Commit-ID: dd3a29fc2dc905e8780198e5a6a30b096de1a1cb commit 94b4e2d29afaaaef89a95289b16c18bf5627f7cd Author: djm@openbsd.org Date: Fri Mar 2 02:08:03 2018 +0000 upstream: refactor sshkey_read() to make it a little more, err, readable. ok markus OpenBSD-Commit-ID: 2e9247b5762fdac3b6335dc606d3822121714c28 commit 5886b92968b360623491699247caddfb77a74d80 Author: markus@openbsd.org Date: Thu Mar 1 20:32:16 2018 +0000 upstream: missing #ifdef for _PATH_HOST_XMSS_KEY_FILE; report by jmc@ OpenBSD-Commit-ID: 9039cb69a3f9886bfef096891a9e7fcbd620280b commit 3b36bed3d26f17f6a2b7e036e01777770fe1bcd4 Author: dtucker@openbsd.org Date: Mon Feb 26 12:14:53 2018 +0000 upstream: Remove unneeded (local) include. ok markus@ OpenBSD-Commit-ID: 132812dd2296b1caa8cb07d2408afc28e4e60f93 commit 27b9f3950e0289e225b57b7b880a8f1859dcd70b Author: dtucker@openbsd.org Date: Mon Feb 26 03:56:44 2018 +0000 upstream: Add $OpenBSD$ markers to xmss files to help keep synced with portable. ok djm@. OpenBSD-Commit-ID: 5233a27aafd1dfadad4b957225f95ae51eb365c1 commit afd830847a82ebbd5aeab05bad6d2c8ce74df1cd Author: dtucker@openbsd.org Date: Mon Feb 26 03:03:05 2018 +0000 upstream: Add newline at end of file to prevent compiler warnings. OpenBSD-Commit-ID: 52f247d4eafe840c7c14c8befa71a760a8eeb063 commit 941e0d3e9bb8d5e4eb70cc694441445faf037c84 Author: Darren Tucker Date: Wed Feb 28 19:59:35 2018 +1100 Add WITH_XMSS, move to prevent conflicts. Add #ifdef WITH_XMSS to ssh-xmss.c, move it in the other files to after includes.h so it's less likely to conflict and will pick up WITH_XMSS if added to config.h. commit a10d8552d0d2438da4ed539275abcbf557d1e7a8 Author: Darren Tucker Date: Tue Feb 27 14:45:17 2018 +1100 Conditionally compile XMSS code. The XMSS code is currently experimental and, unlike the rest of OpenSSH cannot currently be compiled with a c89 compiler. commit 146c3bd28c8dbee9c4b06465d9c9facab96b1e9b Author: Darren Tucker Date: Mon Feb 26 12:51:29 2018 +1100 Check dlopen has RTLD_NOW before enabling pkcs11. commit 1323f120d06a26074c4d154fcbe7f49bcad3d741 Author: Darren Tucker Date: Tue Feb 27 08:41:25 2018 +1100 Check for attributes on prototype args. Some compilers (gcc 2.9.53, 3.0 and probably others, see gcc bug #3481) do not accept __attribute__ on function pointer prototype args. Check for this and hide them if they're not accepted. commit f0b245b0439e600fab782d19e97980e9f2c2533c Author: Darren Tucker Date: Mon Feb 26 11:43:48 2018 +1100 Check if HAVE_DECL_BZERO correctly. commit c7ef4a399155e1621a532cc5e08e6fa773658dd4 Author: Darren Tucker Date: Mon Feb 26 17:42:56 2018 +1100 Wrap in #ifdef HAVE_STDINT_H. commit ac53ce46cf8165cbda7f57ee045f9f32e1e92b31 Author: Darren Tucker Date: Mon Feb 26 16:24:23 2018 +1100 Replace $(CURDIR) with $(PWD). The former doesn't work on Solaris or BSDs. commit 534b2680a15d14e7e60274d5b29b812d44cc5a44 Author: Darren Tucker Date: Mon Feb 26 14:51:59 2018 +1100 Comment out hexdump(). Nothing currently uses them but they cause conflicts on at least FreeBSD, possibly others. ok djm@ commit 5aea4aa522f61bb2f34c3055a7de203909dfae77 Author: Darren Tucker Date: Mon Feb 26 14:39:14 2018 +1100 typo: missing ; commit cd3ab57f9b388f8b1abf601dc4d78ff82d83b75e Author: Darren Tucker Date: Mon Feb 26 14:37:06 2018 +1100 Hook up flock() compat code. Also a couple of minor changes: fail if we can't lock instead of silently succeeding, and apply a couple of minor style fixes. commit b087998d1ba90dd1ddb6bfdb17873dc3e7392798 Author: Darren Tucker Date: Mon Feb 26 14:27:02 2018 +1100 Import flock() compat from NetBSD. From NetBSD's src/trunk/tools/compat/flock.c, no OpenSSH changes yet. commit 89212533dde6798324e835b1499084658df4579e Author: Darren Tucker Date: Mon Feb 26 12:32:14 2018 +1100 Fix breakage when REGRESSTMP not set. BUILDDIR is not set where used for REGRESSTMP, use make's CURDIR instead. Pointed out by djm@. commit f885474137df4b89498c0b8834c2ac72c47aa4bd Author: Damien Miller Date: Mon Feb 26 12:18:14 2018 +1100 XMSS-related files get includes.h commit 612faa34c72e421cdc9e63f624526bae62d557cc Author: Damien Miller Date: Mon Feb 26 12:17:55 2018 +1100 object files end with .o - not .c commit bda709b8e13d3eef19e69c2d1684139e3af728f5 Author: Damien Miller Date: Mon Feb 26 12:17:22 2018 +1100 avoid inclusion of deprecated selinux/flask.h Use string_to_security_class() instead. commit 2e396439365c4ca352cac222717d09b14f8a0dfd Author: Damien Miller Date: Mon Feb 26 11:48:27 2018 +1100 updatedepend commit 1b11ea7c58cd5c59838b5fa574cd456d6047b2d4 Author: markus@openbsd.org Date: Fri Feb 23 15:58:37 2018 +0000 upstream: Add experimental support for PQC XMSS keys (Extended Hash-Based Signatures) The code is not compiled in by default (see WITH_XMSS in Makefile.inc) Joint work with stefan-lukas_gazdag at genua.eu See https://tools.ietf.org/html/draft-irtf-cfrg-xmss-hash-based-signatures-12 ok djm@ OpenBSD-Commit-ID: ef3eccb96762a5d6f135d7daeef608df7776a7ac commit 7d330a1ac02076de98cfc8fda05353d57b603755 Author: jmc@openbsd.org Date: Fri Feb 23 07:38:09 2018 +0000 upstream: some cleanup for BindInterface and ssh-keyscan; OpenBSD-Commit-ID: 1a719ebeae22a166adf05bea5009add7075acc8c commit c7b5a47e3b9db9a0f0198f9c90c705f6307afc2b Author: Darren Tucker Date: Sun Feb 25 23:55:41 2018 +1100 Invert sense of getpgrp test. AC_FUNC_GETPGRP tests if getpgrp(0) works, which it does if it's not declared. Instead, test if the zero-arg version we want to use works. commit b39593a6de5290650a01adf8699c6460570403c2 Author: Darren Tucker Date: Sun Feb 25 13:25:15 2018 +1100 Add no-op getsid implmentation. commit 11057564eb6ab8fd987de50c3d7f394c6f6632b7 Author: Darren Tucker Date: Sun Feb 25 11:22:57 2018 +1100 bsd-statvfs: include sys/vfs.h, check for f_flags. commit e9dede06e5bc582a4aeb5b1cd5a7a640d7de3609 Author: Darren Tucker Date: Sun Feb 25 10:20:31 2018 +1100 Handle calloc(0,x) where different from malloc. Configure assumes that if malloc(0) returns null then calloc(0,n) also does. On some old platforms (SunOS4) malloc behaves as expected (as determined by AC_FUNC_MALLOC) but calloc doesn't. Test for this at configure time and activate the replacement function if found, plus handle this case in rpl_calloc. commit 2eb4041493fd2635ffdc64a852d02b38c4955e0b Author: Darren Tucker Date: Sat Feb 24 21:06:48 2018 +1100 Add prototype for readv if needed. commit 6c8c9a615b6d31db8a87bc25033f053d5b0a831e Author: Darren Tucker Date: Sat Feb 24 20:46:37 2018 +1100 Check for raise and supply if needed. commit a9004425a032d7a7141a5437cfabfd02431e2a74 Author: Darren Tucker Date: Sat Feb 24 20:25:22 2018 +1100 Check for bzero and supply if needed. Since explicit_bzero uses it via an indirect it needs to be a function not just a macro. commit 1a348359e4d2876203b5255941bae348557f4f54 Author: djm@openbsd.org Date: Fri Feb 23 05:14:05 2018 +0000 upstream: Add ssh-keyscan -D option to make it print its results in SSHFP format bz#2821, ok dtucker@ OpenBSD-Commit-ID: 831446b582e0f298ca15c9d99c415c899e392221 commit 3e19fb976a47b44b3d7c4f8355269f7f2c5dd82c Author: dtucker@openbsd.org Date: Fri Feb 23 04:18:46 2018 +0000 upstream: Add missing braces. Caught by the tinderbox's -Werror=misleading-indentation, ok djm@ OpenBSD-Commit-ID: d44656af594c3b2366eb87d6abcef83e1c88a6ca commit b59162da99399d89bd57f71c170c0003c55b1583 Author: Darren Tucker Date: Fri Feb 23 15:20:42 2018 +1100 Check for ifaddrs.h for BindInterface. BindInterface required getifaddr and friends so disable if not available (eg Solaris 10). We should be able to add support for some systems with a bit more work but this gets the building again. commit a8dd6fe0aa10b6866830b4688a73ef966f0aed88 Author: Damien Miller Date: Fri Feb 23 14:19:11 2018 +1100 space before tab in previous commit b5e9263c7704247f9624c8f5c458e9181fcdbc09 Author: dtucker@openbsd.org Date: Fri Feb 9 03:40:22 2018 +0000 upstream: Replace fatal with exit in the case that we do not have $SUDO set. Prevents test failures when neither sudo nor doas are configured. OpenBSD-Regress-ID: 6a0464decc4f8ac7d6eded556a032b0fc521bc7b commit 3e9d3192ad43758ef761c5b0aa3ac5ccf8121ef2 Author: Darren Tucker Date: Fri Feb 23 14:10:53 2018 +1100 Use portable syntax for REGRESSTMP. commit 73282b61187883a2b2bb48e087fdda1d751d6059 Author: djm@openbsd.org Date: Fri Feb 23 03:03:00 2018 +0000 upstream: unbreak interop test after SSHv1 purge; patch from Colin Watson via bz#2823 OpenBSD-Regress-ID: 807d30a597756ed6612bdf46dfebca74f49cb31a commit f8985dde5f46aedade0373365cbf86ed3f1aead2 Author: dtucker@openbsd.org Date: Fri Feb 9 03:42:57 2018 +0000 upstream: Skip sftp-chroot test when SUDO not set instead of fatal(). OpenBSD-Regress-ID: cd4b5f1109b0dc09af4e5ea7d4968c43fbcbde88 commit df88551c02d4e3445c44ff67ba8757cff718609a Author: dtucker@openbsd.org Date: Fri Feb 9 03:40:22 2018 +0000 upstream: Replace fatal with exit in the case that we do not have $SUDO set. Prevents test failures when neither sudo nor doas are configured. OpenBSD-Regress-ID: 6a0464decc4f8ac7d6eded556a032b0fc521bc7b commit 3b252c20b19f093e87363de197f1100b79705dd3 Author: djm@openbsd.org Date: Thu Feb 8 08:46:20 2018 +0000 upstream: some helpers to check verbose/quiet mode OpenBSD-Regress-ID: e736aac39e563f5360a0935080a71d5fdcb976de commit ac2e3026bbee1367e4cda34765d1106099be3287 Author: djm@openbsd.org Date: Fri Feb 23 02:34:33 2018 +0000 upstream: Add BindInterface ssh_config directive and -B command-line argument to ssh(1) that directs it to bind its outgoing connection to the address of the specified network interface. BindInterface prefers to use addresses that aren't loopback or link- local, but will fall back to those if no other addresses of the required family are available on that interface. Based on patch by Mike Manning in bz#2820, ok dtucker@ OpenBSD-Commit-ID: c5064d285c2851f773dd736a2c342aa384fbf713 commit fcdb9d777839a3fa034b3bc3067ba8c1f6886679 Author: djm@openbsd.org Date: Mon Feb 19 00:55:02 2018 +0000 upstream: emphasise that the hostkey rotation may send key types that the client may not support, and that the client should simply disregard such keys (this is what ssh does already). OpenBSD-Commit-ID: 65f8ffbc32ac8d12be8f913d7c0ea55bef8622bf commit ce066f688dc166506c082dac41ca686066e3de5f Author: Darren Tucker Date: Thu Feb 22 20:45:09 2018 +1100 Add headers for sys/audit.h. On some older platforms (at least sunos4, probably others) sys/audit.h requires some other headers. Patch from klausz at haus-gisela.de. commit 3fd2d2291a695c96a54269deae079bacce6e3fb9 Author: Darren Tucker Date: Mon Feb 19 18:37:40 2018 +1100 Add REGRESSTMP make var override. Defaults to original location ($srcdir/regress) but allows overriding if desired, eg a directory in /tmp. commit f8338428588f3ecb5243c86336eccaa28809f97e Author: Darren Tucker Date: Sun Feb 18 15:53:15 2018 +1100 Remove now-unused check for getrusage. getrusage was used in ssh-rand-helper but that's now long gone. Patch from klauszh at haus-gisela.de. commit 8570177195f6a4b3173c0a25484a83641ee3faa6 Author: dtucker@openbsd.org Date: Fri Feb 16 04:43:11 2018 +0000 upstream: Don't send IUTF8 to servers that don't like them. Some SSH servers eg "ConfD" drop the connection if the client sends the new IUTF8 (RFC8160) terminal mode even if it's not set. Add a bug bit for such servers and avoid sending IUTF8 to them. ok djm@ OpenBSD-Commit-ID: 26425855402d870c3c0a90491e72e2a8a342ceda commit f6dc2ba3c9d12be53057b9371f5109ec553a399f Author: Darren Tucker Date: Fri Feb 16 17:32:28 2018 +1100 freezero should check for NULL. commit 680321f3eb46773883111e234b3c262142ff7c5b Author: djm@openbsd.org Date: Fri Feb 16 02:40:45 2018 +0000 upstream: Mention recent DH KEX methods: diffie-hellman-group14-sha256 diffie-hellman-group16-sha512 diffie-hellman-group18-sha512 From Jakub Jelen via bz#2826 OpenBSD-Commit-ID: 51bf769f06e55447f4bfa7306949e62d2401907a commit 88c50a5ae20902715f0fca306bb9c38514f71679 Author: djm@openbsd.org Date: Fri Feb 16 02:32:40 2018 +0000 upstream: stop loading DSA keys by default, remove sshd_config stanza and manpage bits; from Colin Watson via bz#2662, ok dtucker@ OpenBSD-Commit-ID: d33a849f481684ff655c140f5eb1b4acda8c5c09 commit d2b3db2860c962927def39a52f67f1c23f7b201a Author: jsing@openbsd.org Date: Wed Feb 14 16:27:24 2018 +0000 upstream: Ensure that D mod (P-1) and D mod (Q-1) are calculated in constant time. This avoids a potential side channel timing leak. ok djm@ markus@ OpenBSD-Commit-ID: 71ff3c16be03290e63d8edab8fac053d8a82968c commit 4270efad7048535b4f250f493d70f9acfb201593 Author: jsing@openbsd.org Date: Wed Feb 14 16:03:32 2018 +0000 upstream: Some obvious freezero() conversions. This also zeros an ed25519_pk when it was not being zeroed previously. ok djm@ dtucker@ OpenBSD-Commit-ID: 5c196a3c85c23ac0bd9b11bcadaedd90b7a2ce82 commit affa6ba67ffccc30b85d6e98f36eb5afd9386882 Author: Darren Tucker Date: Thu Feb 15 22:32:04 2018 +1100 Remove execute bit from modpipe.c. commit 9879dca438526ae6dfd656fecb26b0558c29c731 Author: Darren Tucker Date: Thu Feb 15 22:26:16 2018 +1100 Update prngd link to point to sourceforge. commit b6973fa5152b1a0bafd2417b7c3ad96f6e87d014 Author: Darren Tucker Date: Thu Feb 15 22:22:38 2018 +1100 Remove references to UNICOS. commit f1ca487940449f0b64f38f1da575078257609966 Author: Darren Tucker Date: Thu Feb 15 22:18:37 2018 +1100 Remove extra newline. commit 6d4e980f3cf27f409489cf89cd46c21501b13731 Author: Darren Tucker Date: Thu Feb 15 22:16:54 2018 +1100 OpenSSH's builtin entropy gathering is long gone. commit 389125b25d1a1d7f22e907463b7e8eca74af79ea Author: Darren Tucker Date: Thu Feb 15 21:43:01 2018 +1100 Replace remaining mysignal() with signal(). These seem to have been missed during the replacement of mysignal with #define signal in commit 5ade9ab. Both include the requisite headers to pick up the #define. commit 265d88d4e61e352de6791733c8b29fa3d7d0c26d Author: Darren Tucker Date: Thu Feb 15 20:06:19 2018 +1100 Remove remaining now-obsolete cvs $Ids. commit 015749e9b1d2f6e14733466d19ba72f014d0845c Author: Darren Tucker Date: Thu Feb 15 17:01:54 2018 +1100 Regenerate dependencies after UNICOS removal. commit ddc0f3814881ea279a6b6d4d98e03afc60ae1ed7 Author: Darren Tucker Date: Tue Feb 13 09:10:46 2018 +1100 Remove UNICOS support. The code required to support it is quite invasive to the mainline code that is synced with upstream and is an ongoing maintenance burden. Both the hardware and software are literal museum pieces these days and we could not find anyone still running OpenSSH on one. commit 174bed686968494723e6db881208cc4dac0d020f Author: Darren Tucker Date: Tue Feb 13 18:12:47 2018 +1100 Retpoline linker flag only needed for linking. commit 075e258c2cc41e1d7f3ea2d292c5342091728d40 Author: Darren Tucker Date: Tue Feb 13 17:36:43 2018 +1100 Default PidFile is sshd.pid not ssh.pid. commit 49f3c0ec47730ea264e2bd1e6ece11167d6384df Author: Darren Tucker Date: Tue Feb 13 16:27:09 2018 +1100 Remove assigned-to-but-never-used variable. 'p' was removed in previous change but I neglected to remove the otherwise-unused assignment to it. commit b8bbff3b3fc823bf80c5ab226c94f13cb887d5b1 Author: djm@openbsd.org Date: Tue Feb 13 03:36:56 2018 +0000 upstream: remove space before tab OpenBSD-Commit-ID: 674edd214d0a7332dd4623c9cf8117301b012890 commit 05046d907c211cb9b4cd21b8eff9e7a46cd6c5ab Author: dtucker@openbsd.org Date: Sun Feb 11 21:16:56 2018 +0000 upstream Don't reset signal handlers inside handlers. The signal handlers from the original ssh1 code on which OpenSSH is based assume unreliable signals and reinstall their handlers. Since OpenBSD (and pretty much every current system) has reliable signals this is not needed. In the unlikely even that -portable is still being used on such systems we will deal with it in the compat layer. ok deraadt@ OpenBSD-Commit-ID: f53a1015cb6908431b92116130d285d71589612c commit 3c51143c639ac686687c7acf9b373b8c08195ffb Author: Darren Tucker Date: Tue Feb 13 09:07:29 2018 +1100 Whitespace sync with upstream. commit 19edfd4af746bedf0df17f01953ba8c6d3186eb7 Author: Darren Tucker Date: Tue Feb 13 08:25:46 2018 +1100 Whitespace sync with upstream. commit fbfa6f980d7460b3e12b0ce88ed3b6018edf4711 Author: Darren Tucker Date: Sun Feb 11 21:25:11 2018 +1300 Move signal compat code into bsd-signal.{c,h} commit 24d2a33bd3bf5170700bfdd8675498aa09a79eab Author: Darren Tucker Date: Sun Feb 11 21:20:39 2018 +1300 Include headers for linux/if.h. Prevents configure-time "present but cannot be compiled" warning. commit bc02181c24fc551aab85eb2cff0f90380928ef43 Author: Darren Tucker Date: Sun Feb 11 19:45:47 2018 +1300 Fix test for -z,retpolineplt linker flag. commit 3377df00ea3fece5293db85fe63baef33bf5152e Author: Darren Tucker Date: Sun Feb 11 09:32:37 2018 +1100 Add checks for Spectre v2 mitigation (retpoline) This adds checks for gcc and clang flags for mitigations for Spectre variant 2, ie "retpoline". It'll automatically enabled if the compiler supports it as part of toolchain hardening flag. ok djm@ commit d9e5cf078ea5380da6df767bb1773802ec557ef0 Author: djm@openbsd.org Date: Sat Feb 10 09:25:34 2018 +0000 upstream commit constify some private key-related functions; based on https://github.com/openssh/openssh-portable/pull/56 by Vincent Brillault OpenBSD-Commit-ID: dcb94a41834a15f4d00275cb5051616fdc4c988c commit a7c38215d564bf98e8e9eb40c1079e3adf686f15 Author: djm@openbsd.org Date: Sat Feb 10 09:03:54 2018 +0000 upstream commit Mention ServerAliveTimeout in context of TCPKeepAlives; prompted by Christoph Anton Mitterer via github OpenBSD-Commit-ID: f0cf1b5bd3f1fbf41d71c88d75d93afc1c880ca2 commit 62562ceae61e4f7cf896566592bb840216e71061 Author: djm@openbsd.org Date: Sat Feb 10 06:54:38 2018 +0000 upstream commit clarify IgnoreUserKnownHosts; based on github PR from Christoph Anton Mitterer. OpenBSD-Commit-ID: 4fff2c17620c342fb2f1f9c2d2e679aab3e589c3 commit 4f011daa4cada6450fa810f7563b8968639bb562 Author: djm@openbsd.org Date: Sat Feb 10 06:40:28 2018 +0000 upstream commit Shorter, more accurate explanation of NoHostAuthenticationForLocalhost without the confusing example. Prompted by Christoph Anton Mitterer via github and bz#2293. OpenBSD-Commit-ID: 19dc96bea25b80d78d416b581fb8506f1e7b76df commit 77e05394af21d3f5faa0c09ed3855e4505a5cf9f Author: djm@openbsd.org Date: Sat Feb 10 06:15:12 2018 +0000 upstream commit Disable RemoteCommand and RequestTTY in the ssh session started by scp. sftp is already doing this. From Camden Narzt via github; ok dtucker OpenBSD-Commit-ID: 59e2611141c0b2ee579c6866e8eb9d7d8217bc6b commit ca613249a00b64b2eea9f52d3834b55c28cf2862 Author: djm@openbsd.org Date: Sat Feb 10 05:48:46 2018 +0000 upstream commit Refuse to create a certificate with an unusable number of principals; Prompted by gdestuynder via github OpenBSD-Commit-ID: 8cfae2451e8f07810e3e2546dfdcce66984cbd29 commit b56ac069d46b6f800de34e1e935f98d050731d14 Author: djm@openbsd.org Date: Sat Feb 10 05:43:26 2018 +0000 upstream commit fatal if we're unable to write all the public key; previously we would silently ignore errors writing the comment and terminating newline. Prompted by github PR from WillerZ; ok dtucker OpenBSD-Commit-ID: 18fbfcfd4e8c6adbc84820039b64d70906e49831 commit cdb10bd431f9f6833475c27e9a82ebb36fdb12db Author: Darren Tucker Date: Sat Feb 10 11:18:38 2018 +1100 Add changelog entry for binary strip change. commit fbddd91897cfaf456bfc2081f39fb4a2208a0ebf Author: Darren Tucker Date: Sat Feb 10 11:14:54 2018 +1100 Remove unused variables. commit 937d96587df99c16c611d828cded292fa474a32b Author: Darren Tucker Date: Sat Feb 10 11:12:45 2018 +1100 Don't strip binaries so debuginfo gets built. Tell install not to strip binaries during package creation so that the debuginfo package can be built. commit eb0865f330f59c889ec92696b97bd397090e720c Author: Darren Tucker Date: Sat Feb 10 10:33:11 2018 +1100 Fix bogus dates in changelog. commit 7fbde1b34c1f6c9ca9e9d10805ba1e5e4538e165 Author: Darren Tucker Date: Sat Feb 10 10:25:15 2018 +1100 Remove SSH1 from description. commit 9c34a76f099c4e0634bf6ecc2f40ce93925402c4 Author: Darren Tucker Date: Sat Feb 10 10:19:16 2018 +1100 Add support for compat-openssl10 build dep. commit 04f4e8193cb5a5a751fcc356bd6656291fec539e Author: Darren Tucker Date: Sat Feb 10 09:57:04 2018 +1100 Add leading zero so it'll work when rhel not set. When rhel is not set it will error out with "bad if". Add leading zero as per https://fedoraproject.org/wiki/Packaging:DistTag so it'll work on non-RHEL. commit 12abd67a6af28476550807a443b38def2076bb92 Author: Darren Tucker Date: Sat Feb 10 09:56:34 2018 +1100 Update openssl-devel dependency. commit b33e7645f8813719d7f9173fef24463c8833ebb3 Author: nkadel Date: Sun Nov 16 18:19:58 2014 -0500 Add mandir with-mandir' for RHEL 5 compatibility. Activate '--mandir' and '--with-mandir' settings in setup for RHEL 5 compatibility. commit 94f8bf360eb0162e39ddf39d69925c2e93511e40 Author: nkadel Date: Sun Nov 16 18:18:51 2014 -0500 Discard 'K5DIR' reporting. It does not work inside 'mock' build environment. commit bb7e54dbaf34b70b3e57acf7982f3a2136c94ee5 Author: nkadel Date: Sun Nov 16 18:17:15 2014 -0500 Add 'dist' to 'rel' for OS specific RPM names. commit 87346f1f57f71150a9b8c7029d8c210e27027716 Author: nkadel Date: Sun Nov 16 14:17:38 2014 -0500 Add openssh-devel >= 0.9.8f for redhat spec file. commit bec1478d710866d3c1b119343a35567a8fc71ec3 Author: nkadel Date: Sun Nov 16 13:10:24 2014 -0500 Enhance BuildRequires for openssh-x11-askpass. commit 3104fcbdd3c70aefcb0cdc3ee24948907db8dc8f Author: nkadel Date: Sun Nov 16 13:04:14 2014 -0500 Always include x11-ssh-askpass SRPM. Always include x11-ssh-askpass tarball in redhat SRPM, even if unused. commit c61d0d038d58eebc365f31830be6e04ce373ad1b Author: Damien Miller Date: Sat Feb 10 09:43:12 2018 +1100 this is long unused; prompted by dtucker@ commit 745771fb788e41bb7cdad34e5555bf82da3af7ed Author: dtucker@openbsd.org Date: Fri Feb 9 02:37:36 2018 +0000 upstream commit Remove unused sKerberosTgtPassing from enum. From calestyo via github pull req #11, ok djm@ OpenBSD-Commit-ID: 1008f8870865a7c4968b7aed402a0a9e3e5b9540 commit 1f385f55332db830b0ae22a7663b98279ca2d657 Author: dtucker@openbsd.org Date: Thu Feb 8 04:12:32 2018 +0000 upstream commit Rename struct umac_ctx to umac128_ctx too. In portable some linkers complain about two symbols with the same name having differing sizes. ok djm@ OpenBSD-Commit-ID: cbebf8bdd3310a9795b4939a1e112cfe24061ca3 commit f1f047fb031c0081dbc8738f05bf5d4cc47acadf Author: dtucker@openbsd.org Date: Wed Feb 7 22:52:45 2018 +0000 upstream commit ssh_free checks for and handles NULL args, remove NULL checks from remaining callers. ok djm@ OpenBSD-Commit-ID: bb926825c53724c069df68a93a2597f9192f7e7b commit aee49b2a89b6b323c80dd3b431bd486e51f94c8c Author: Darren Tucker Date: Thu Feb 8 12:36:22 2018 +1100 Set SO_REUSEADDR in regression test netcat. Sometimes multiplex tests fail on Solaris with "netcat: local_listen: Address already in use" which is likely due to previous invocations leaving the port in TIME_WAIT. Set SO_REUSEADDR (in addition to SO_REUSEPORT which is alread set on platforms that support it). ok djm@ commit 1749991c55bab716877b7c687cbfbf19189ac6f1 Author: jsing@openbsd.org Date: Wed Feb 7 05:17:56 2018 +0000 upstream commit Convert some explicit_bzero()/free() calls to freezero(). ok deraadt@ dtucker@ OpenBSD-Commit-ID: f566ab99149650ebe58b1d4b946ea726c3829609 commit 94ec2b69d403f4318b7a0d9b17f8bc3efbf4d0d2 Author: jsing@openbsd.org Date: Wed Feb 7 05:15:49 2018 +0000 upstream commit Remove some #ifdef notyet code from OpenSSL 0.9.8 days. These functions have never appeared in OpenSSL and are likely never to do so. "kill it with fire" djm@ OpenBSD-Commit-ID: fee9560e283fd836efc2631ef381658cc673d23e commit 7cd31632e3a6607170ed0c9ed413a7ded5b9b377 Author: jsing@openbsd.org Date: Wed Feb 7 02:06:50 2018 +0000 upstream commit Remove all guards for calls to OpenSSL free functions - all of these functions handle NULL, from at least OpenSSL 1.0.1g onwards. Prompted by dtucker@ asking about guards for RSA_free(), when looking at openssh-portable pr#84 on github. ok deraadt@ dtucker@ OpenBSD-Commit-ID: 954f1c51b94297d0ae1f749271e184141e0cadae commit 3c000d57d46882eb736c6563edfc4995915c24a2 Author: Darren Tucker Date: Wed Feb 7 09:19:38 2018 +1100 Remove obsolete "Smartcard support" message The configure checks that populated $SCARD_MSG were removed in commits 7ea845e4 and d8f60022 when the smartcard support was replaced with PKCS#11. commit 3e615090de0ce36a833d811e01c28aec531247c4 Author: dtucker@openbsd.org Date: Tue Feb 6 06:01:54 2018 +0000 upstream commit Replace "trojan horse" with the correct term (MITM). From maikel at predikkta.com via bz#2822, ok markus@ OpenBSD-Commit-ID: e86ac64c512057c89edfadb43302ac0aa81a6c53 commit 3484380110d437c50e17f87d18544286328c75cb Author: tb@openbsd.org Date: Mon Feb 5 05:37:46 2018 +0000 upstream commit Add a couple of non-negativity checks to avoid close(-1). ok djm OpenBSD-Commit-ID: 4701ce0b37161c891c838d0931305f1d37a50880 commit 5069320be93c8b2a6584b9f944c86f60c2b04e48 Author: tb@openbsd.org Date: Mon Feb 5 05:36:49 2018 +0000 upstream commit The file descriptors for socket, stdin, stdout and stderr aren't necessarily distinct, so check if they are the same to avoid closing the same fd several times. ok djm OpenBSD-Commit-ID: 60d71fd22e9a32f5639d4ba6e25a2f417fc36ac1 commit 2b428f90ea1b21d7a7c68ec1ee334253b3f9324d Author: djm@openbsd.org Date: Mon Feb 5 04:02:53 2018 +0000 upstream commit I accidentially a word OpenBSD-Commit-ID: 4547ee713fa941da861e83ae7a3e6432f915e14a commit 130283d5c2545ff017c2162dc1258c5354e29399 Author: djm@openbsd.org Date: Thu Jan 25 03:34:43 2018 +0000 upstream commit certificate options are case-sensitive; fix case on one that had it wrong. move a badly-place sentence to a less bad place OpenBSD-Commit-ID: 231e516bba860699a1eece6d48532d825f5f747b commit 89f09ee68730337015bf0c3f138504494a34e9a6 Author: Damien Miller Date: Wed Jan 24 12:20:44 2018 +1100 crypto_api.h needs includes.h commit c9c1bba06ad1c7cad8548549a68c071bd807af60 Author: stsp@openbsd.org Date: Tue Jan 23 20:00:58 2018 +0000 upstream commit Fix a logic bug in sshd_exchange_identification which prevented clients using major protocol version 2 from connecting to the server. ok millert@ OpenBSD-Commit-ID: 8668dec04586e27f1c0eb039ef1feb93d80a5ee9 commit a60c5dcfa2538ffc94dc5b5adb3db5b6ed905bdb Author: stsp@openbsd.org Date: Tue Jan 23 18:33:49 2018 +0000 upstream commit Add missing braces; fixes 'write: Socket is not connected' error in ssh. ok deraadt@ OpenBSD-Commit-ID: db73a3a9e147722d410866cac34d43ed52e1ad24 commit 20d53ac283e1c60245ea464bdedd015ed9b38f4a Author: Damien Miller Date: Tue Jan 23 16:49:43 2018 +1100 rebuild depends commit 552ea155be44f9c439c1f9f0c38f9e593428f838 Author: Damien Miller Date: Tue Jan 23 16:49:22 2018 +1100 one SSH_BUG_BANNER instance that got away commit 14b5c635d1190633b23ac3372379517fb645b0c2 Author: djm@openbsd.org Date: Tue Jan 23 05:27:21 2018 +0000 upstream commit Drop compatibility hacks for some ancient SSH implementations, including ssh.com <=2.* and OpenSSH <= 3.*. These versions were all released in or before 2001 and predate the final SSH RFCs. The hacks in question aren't necessary for RFC- compliant SSH implementations. ok markus@ OpenBSD-Commit-ID: 4be81c67db57647f907f4e881fb9341448606138 commit 7c77991f5de5d8475cbeb7cbb06d0c7d1611d7bb Author: djm@openbsd.org Date: Tue Jan 23 05:17:04 2018 +0000 upstream commit try harder to preserve errno during ssh_connect_direct() to make the final error message possibly accurate; bz#2814, ok dtucker@ OpenBSD-Commit-ID: 57de882cb47381c319b04499fef845dd0c2b46ca commit 9e9c4a7e57b96ab29fe6d7545ed09d2e5bddbdec Author: djm@openbsd.org Date: Tue Jan 23 05:12:12 2018 +0000 upstream commit unbreak support for clients that advertise a protocol version of "1.99" (indicating both v2 and v1 support). Busted by me during SSHv1 purge in r1.358; bz2810, ok dtucker OpenBSD-Commit-ID: e8f9c2bee11afc16c872bb79d6abe9c555bd0e4b commit fc21ea97968264ad9bb86b13fedaaec8fd3bf97d Author: djm@openbsd.org Date: Tue Jan 23 05:06:25 2018 +0000 upstream commit don't attempt to force hostnames that are addresses to lowercase, but instead canonicalise them through getnameinfo/getaddrinfo to remove ambiguities (e.g. ::0001 => ::1) before they are matched against known_hosts; bz#2763, ok dtucker@ OpenBSD-Commit-ID: ba0863ff087e61e5c65efdbe53be3cb92c9aefa0 commit d6364f6fb1a3d753d7ca9bf15b2adce961324513 Author: djm@openbsd.org Date: Tue Jan 23 05:01:15 2018 +0000 upstream commit avoid modifying pw->pw_passwd; let endpwent() clean up for us, but keep a scrubbed copy; bz2777, ok dtucker@ OpenBSD-Commit-ID: 715afc0f59c6b82c4929a73279199ed241ce0752 commit a69bbb07cd6fb4dfb9bdcacd370ab26d0a2b4215 Author: naddy@openbsd.org Date: Sat Jan 13 00:24:09 2018 +0000 upstream commit clarify authorship; prodded by and ok markus@ OpenBSD-Commit-ID: e1938eee58c89b064befdabe232835fa83bb378c commit 04214b30be3d3e73a01584db4e040d5ccbaaddd4 Author: markus@openbsd.org Date: Mon Jan 8 15:37:21 2018 +0000 upstream commit group shared source files (e.g. SRCS_KEX) and allow compilation w/o OPENSSL ok djm@ OpenBSD-Commit-ID: fa728823ba21c4b45212750e1d3a4b2086fd1a62 commit 25cf9105b849932fc3b141590c009e704f2eeba6 Author: markus@openbsd.org Date: Mon Jan 8 15:21:49 2018 +0000 upstream commit move subprocess() so scp/sftp do not need uidswap.o; ok djm@ OpenBSD-Commit-ID: 6601b8360388542c2e5fef0f4085f8e54750bea8 commit b0d34132b3ca26fe94013f01d7b92101e70b68bb Author: markus@openbsd.org Date: Mon Jan 8 15:18:46 2018 +0000 upstream commit switch ssh-pkcs11-helper to new API; ok djm@ OpenBSD-Commit-ID: e0c0ed2a568e25b1d2024f3e630f3fea837c2a42 commit ec4a9831184c0c6ed5f7f0cfff01ede5455465a3 Author: markus@openbsd.org Date: Mon Jan 8 15:15:36 2018 +0000 upstream commit split client/server kex; only ssh-keygen needs uuencode.o; only scp/sftp use progressmeter.o; ok djm@ OpenBSD-Commit-ID: f2c9feb26963615c4fece921906cf72e248b61ee commit ec77efeea06ac62ee1d76fe0b3225f3000775a9e Author: markus@openbsd.org Date: Mon Jan 8 15:15:17 2018 +0000 upstream commit only ssh-keygen needs uuencode.o; only scp/sftp use progressmeter.o OpenBSD-Commit-ID: a337e886a49f96701ccbc4832bed086a68abfa85 commit 25aae35d3d6ee86a8c4c0b1896acafc1eab30172 Author: markus@openbsd.org Date: Mon Jan 8 15:14:44 2018 +0000 upstream commit uuencode.h is not used OpenBSD-Commit-ID: 238eb4659f3c119904326b9e94a5e507a912796c commit 4f29309c4cb19bcb1774931db84cacc414f17d29 Author: Damien Miller Date: Wed Jan 3 19:50:43 2018 +1100 unbreak fuzz harness commit f6b50bf84dc0b61f22c887c00423e0ea7644e844 Author: djm@openbsd.org Date: Thu Dec 21 05:46:35 2017 +0000 upstream commit another libssh casualty OpenBSD-Regress-ID: 839b970560246de23e7c50215095fb527a5a83ec commit 5fb4fb5a0158318fb8ed7dbb32f3869bbf221f13 Author: djm@openbsd.org Date: Thu Dec 21 03:01:49 2017 +0000 upstream commit missed one (unbreak after ssh/lib removal) OpenBSD-Regress-ID: cfdd132143131769e2d2455e7892b5d55854c322 commit e6c4134165d05447009437a96e7201276688807f Author: djm@openbsd.org Date: Thu Dec 21 00:41:22 2017 +0000 upstream commit unbreak unit tests after removal of src/usr.bin/ssh/lib OpenBSD-Regress-ID: 3a79760494147b20761cbd2bd5c20e86c63dc8f9 commit d45d69f2a937cea215c7f0424e5a4677b6d8c7fe Author: djm@openbsd.org Date: Thu Dec 21 00:00:28 2017 +0000 upstream commit revert stricter key type / signature type checking in userauth path; too much software generates inconsistent messages, so we need a better plan. OpenBSD-Commit-ID: 4a44ddc991c803c4ecc8f1ad40e0ab4d22e1c519 commit c5a6cbdb79752f7e761074abdb487953ea6db671 Author: djm@openbsd.org Date: Tue Dec 19 00:49:30 2017 +0000 upstream commit explicitly test all key types and their certificate counterparts refactor a little OpenBSD-Regress-ID: e9ecd5580821b9ef8b7106919c6980d8e45ca8c4 commit f689adb7a370b5572612d88be9837ca9aea75447 Author: dtucker@openbsd.org Date: Mon Dec 11 11:41:56 2017 +0000 upstream commit use cmp in a loop instead of diff -N to compare directories. The former works on more platforms for Portable. OpenBSD-Regress-ID: c3aa72807f9c488e8829a26ae50fe5bcc5b57099 commit 748dd8e5de332b24c40f4b3bbedb902acb048c98 Author: Damien Miller Date: Tue Dec 19 16:17:59 2017 +1100 remove blocks.c from Makefile commit 278856320520e851063b06cef6ef1c60d4c5d652 Author: djm@openbsd.org Date: Tue Dec 19 00:24:34 2017 +0000 upstream commit include signature type and CA key (if applicable) in some debug messages OpenBSD-Commit-ID: b71615cc20e78cec7105bb6e940c03ce9ae414a5 commit 7860731ef190b52119fa480f8064ab03c44a120a Author: djm@openbsd.org Date: Mon Dec 18 23:16:23 2017 +0000 upstream commit unbreak hostkey rotation; attempting to sign with a desired signature algorithm of kex->hostkey_alg is incorrect when the key type isn't capable of making those signatures. ok markus@ OpenBSD-Commit-ID: 35ae46864e1f5859831ec0d115ee5ea50953a906 commit 966ef478339ad5e631fb684d2a8effe846ce3fd4 Author: djm@openbsd.org Date: Mon Dec 18 23:14:34 2017 +0000 upstream commit log mismatched RSA signature types; ok markus@ OpenBSD-Commit-ID: 381bddfcc1e297a42292222f3bcb5ac2b7ea2418 commit 349ecd4da3a985359694a74635748009be6baca6 Author: djm@openbsd.org Date: Mon Dec 18 23:13:42 2017 +0000 upstream commit pass kex->hostkey_alg and kex->hostkey_nid from pre-auth to post-auth unpriviledged child processes; ok markus@ OpenBSD-Commit-ID: 4a35bc7af0a5f8a232d1361f79f4ebc376137302 commit c9e37a8725c083441dd34a8a53768aa45c3c53fe Author: millert@openbsd.org Date: Mon Dec 18 17:28:54 2017 +0000 upstream commit Add helper function for uri handing in scp where a missing path simply means ".". Also fix exit code and add warnings when an invalid uri is encountered. OK otto@ OpenBSD-Commit-ID: 47dcf872380586dabf7fcc6e7baf5f8ad508ae1a commit 04c7e28f83062dc42f2380d1bb3a6bf0190852c0 Author: djm@openbsd.org Date: Mon Dec 18 02:25:15 2017 +0000 upstream commit pass negotiated signing algorithm though to sshkey_verify() and check that the negotiated algorithm matches the type in the signature (only matters for RSA SHA1/SHA2 sigs). ok markus@ OpenBSD-Commit-ID: 735fb15bf4adc060d3bee9d047a4bcaaa81b1af9 commit 931c78dfd7fe30669681a59e536bbe66535f3ee9 Author: djm@openbsd.org Date: Mon Dec 18 02:22:29 2017 +0000 upstream commit sshkey_sigtype() function to return the type of a signature; ok markus@ OpenBSD-Commit-ID: d3772b065ad6eed97285589bfb544befed9032e8 commit 4cdc5956f2fcc9e9078938db833142dc07d8f523 Author: naddy@openbsd.org Date: Thu Dec 14 21:07:39 2017 +0000 upstream commit Replace ED25519's private SHA-512 implementation with a call to the regular digest code. This speeds up compilation considerably. ok markus@ OpenBSD-Commit-ID: fcce8c3bcfe7389462a28228f63c823e80ade41c commit 012e5cb839faf76549e3b6101b192fe1a74d367e Author: naddy@openbsd.org Date: Tue Dec 12 15:06:12 2017 +0000 upstream commit Create a persistent umac128.c source file: #define the output size and the name of the entry points for UMAC-128 before including umac.c. Idea from FreeBSD. ok dtucker@ OpenBSD-Commit-ID: 463cfacfa07cb8060a4d4961e63dca307bf3f4b1 commit b35addfb4cd3b5cdb56a2a489d38e940ada926c7 Author: Darren Tucker Date: Mon Dec 11 16:23:28 2017 +1100 Update .depend with empty config.h commit 2d96f28246938e0ca474a939d8ac82ecd0de27e3 Author: Darren Tucker Date: Mon Dec 11 16:21:55 2017 +1100 Ensure config.h is always in dependencies. Put an empty config.h into the dependency list to ensure that it's always listed and consistent. commit ac4987a55ee5d4dcc8e87f7ae7c1f87be7257d71 Author: deraadt@openbsd.org Date: Sun Dec 10 19:37:57 2017 +0000 upstream commit ssh/lib hasn't worked towards our code-sharing goals for a quit while, perhaps it is too verbose? Change each */Makefile to specifying exactly what sources that program requires, compiling it seperate. Maybe we'll iterate by sorting those into seperatable chunks, splitting up files which contain common code + server/client specific code, or whatnot. But this isn't one step, or we'd have done it a long time ago.. ok dtucker markus djm OpenBSD-Commit-ID: 5317f294d63a876bfc861e19773b1575f96f027d commit 48c23a39a8f1069a57264dd826f6c90aa12778d5 Author: dtucker@openbsd.org Date: Sun Dec 10 05:55:29 2017 +0000 upstream commit Put remote client info back into the ClientAlive connection termination message. Based in part on diff from lars.nooden at gmail, ok djm OpenBSD-Commit-ID: 80a0f619a29bbf2f32eb5297a69978a0e05d0ee0 commit aabd75ec76575c1b17232e6526a644097cd798e5 Author: deraadt@openbsd.org Date: Fri Dec 8 03:45:52 2017 +0000 upstream commit time_t printing needs %lld and (long long) casts ok djm OpenBSD-Commit-ID: 4a93bc2b0d42a39b8f8de8bb74d07ad2e5e83ef7 commit fd4eeeec16537870bd40d04836c7906ec141c17d Author: djm@openbsd.org Date: Fri Dec 8 02:14:33 2017 +0000 upstream commit fix ordering in previous to ensure errno isn't clobbered before logging. OpenBSD-Commit-ID: e260bc1e145a9690dcb0d5aa9460c7b96a0c8ab2 commit 155072fdb0d938015df828836beb2f18a294ab8a Author: djm@openbsd.org Date: Fri Dec 8 02:13:02 2017 +0000 upstream commit for some reason unix_listener() logged most errors twice with each message containing only some of the useful information; merge these OpenBSD-Commit-ID: 1978a7594a9470c0dddcd719586066311b7c9a4a commit 79c0e1d29959304e5a49af1dbc58b144628c09f3 Author: Darren Tucker Date: Mon Dec 11 14:38:33 2017 +1100 Add autogenerated dependency info to Makefile. Adds a .depend file containing dependency information generated by makedepend, which is appended to the generated Makefile by configure. You can regen the file with "make -f Makefile.in depend" if necessary, but we'll be looking at some way to automatically keep this up to date. "no objection" djm@ commit f001de8fbf7f3faddddd8efd03df18e57601f7eb Author: Darren Tucker Date: Mon Dec 11 13:42:51 2017 +1100 Fix pasto in ldns handling. When ldns-config is not found, configure would check the wrong variable. ok djm@ commit c5bfe83f67cb64e71cf2fe0d1500f6904b0099ee Author: Darren Tucker Date: Sat Dec 9 10:12:23 2017 +1100 Portable switched to git so s/CVS/git/. commit bb82e61a40a4ee52e4eb904caaee2c27b763ab5b Author: Darren Tucker Date: Sat Dec 9 08:06:00 2017 +1100 Remove now-used check for perl. commit e0ce54c0b9ca3a9388f9c50f4fa6cc25c28a3240 Author: djm@openbsd.org Date: Wed Dec 6 05:06:21 2017 +0000 upstream commit don't accept junk after "yes" or "no" responses to hostkey prompts. bz#2803 reported by Maksim Derbasov; ok dtucker@ OpenBSD-Commit-ID: e1b159fb2253be973ce25eb7a7be26e6f967717c commit 609d96b3d58475a15b2eb6b3d463f2c5d8e510c0 Author: dtucker@openbsd.org Date: Tue Dec 5 23:59:47 2017 +0000 upstream commit Replace atoi and strtol conversions for integer arguments to config keywords with a checking wrapper around strtonum. This will prevent and flag invalid and negative arguments to these keywords. ok djm@ OpenBSD-Commit-ID: 99ae3981f3d608a219ccb8d2fff635ae52c17998 commit 168ecec13f9d7cb80c07df3bf7d414f4e4165e84 Author: dtucker@openbsd.org Date: Tue Dec 5 23:56:07 2017 +0000 upstream commit Add missing break for rdomain. Prevents spurious "Deprecated option" warnings. ok djm@ OpenBSD-Commit-ID: ba28a675d39bb04a974586241c3cba71a9c6099a commit 927f8514ceffb1af380a5f63ab4d3f7709b1b198 Author: djm@openbsd.org Date: Tue Dec 5 01:30:19 2017 +0000 upstream commit include the addr:port in bind/listen failure messages OpenBSD-Commit-ID: fdadb69fe1b38692608809cf0376b71c2c28e58e commit a8c89499543e2d889629c4e5e8dcf47a655cf889 Author: dtucker@openbsd.org Date: Wed Nov 29 05:49:54 2017 +0000 upstream commit Import updated moduli. OpenBSD-Commit-ID: 524d210f982af6007aa936ca7f4c977f4d32f38a commit 3dde09ab38c8e1cfc28252be473541a81bc57097 Author: dtucker@openbsd.org Date: Tue Nov 28 21:10:22 2017 +0000 upstream commit Have sftp print a warning about shell cleanliness when decoding the first packet fails, which is usually caused by shells polluting stdout of non-interactive starups. bz#2800, ok markus@ deraadt@. OpenBSD-Commit-ID: 88d6a9bf3470f9324b76ba1cbd53e50120f685b5 commit 6c8a246437f612ada8541076be2414846d767319 Author: Darren Tucker Date: Fri Dec 1 17:11:47 2017 +1100 Replace mkinstalldirs with mkdir -p. Check for MIKDIR_P and use it instead of mkinstalldirs. Should fix "mkdir: cannot create directory:... File exists" during "make install". Patch from eb at emlix.com. commit 3058dd78d2e43ed0f82ad8eab8bb04b043a72023 Author: Darren Tucker Date: Fri Dec 1 17:07:08 2017 +1100 Pull in newer install-sh from autoconf-2.69. Suggested by eb at emlix.com commit 79226e5413c5b0fda3511351a8511ff457e306d8 Author: Darren Tucker Date: Fri Dec 1 16:55:35 2017 +1100 Remove RSA1 host key generation. SSH1 support is now gone, remove SSH1 key generation. Patch from eb at emlix.com. commit 2937dd02c572a12f33d5c334d518f6cbe0b645eb Author: djm@openbsd.org Date: Tue Nov 28 06:09:38 2017 +0000 upstream commit more whitespace errors OpenBSD-Commit-ID: 5e11c125378327b648940b90145e0d98beb05abb commit 7f257bf3fd3a759f31098960cbbd1453fafc4164 Author: djm@openbsd.org@openbsd.org Date: Tue Nov 28 06:04:51 2017 +0000 upstream commit whitespace at EOL OpenBSD-Commit-ID: 76d3965202b22d59c2784a8df3a8bfa5ee67b96a commit 5db6fbf1438b108e5df3e79a1b4de544373bc2d4 Author: dtucker@openbsd.org@openbsd.org Date: Sat Nov 25 06:46:22 2017 +0000 upstream commit Add monotime_ts and monotime_tv that return monotonic timespec and timeval respectively. Replace calls to gettimeofday() in packet timing with monotime_tv so that the callers will work over a clock step. Should prevent integer overflow during clock steps reported by wangle6 at huawei.com. "I like" markus@ OpenBSD-Commit-ID: 74d684264814ff806f197948b87aa732cb1b0b8a commit 2d638e986085bdf1a40310ed6e2307463db96ea0 Author: dtucker@openbsd.org@openbsd.org Date: Sat Nov 25 05:58:47 2017 +0000 upstream commit Remove get_current_time() and replace with calls to monotime_double() which uses CLOCK_MONOTONIC and works over clock steps. "I like" markus@ OpenBSD-Commit-ID: 3ad2f7d2414e2cfcaef99877a7a5b0baf2242952 commit ba460acae48a36ef749cb23068f968f4d5d90a24 Author: Darren Tucker Date: Fri Nov 24 16:24:31 2017 +1100 Include string.h for explicit_bzero. commit a65655fb1a12b77fb22f9e71559b9d73030ec8ff Author: Damien Miller Date: Fri Nov 24 10:23:47 2017 +1100 fix incorrect range of OpenSSL versions supported Pointed out by Solar Designer commit 83a1e5dbec52d05775174f368e0c44b08619a308 Author: djm@openbsd.org@openbsd.org Date: Wed Nov 15 02:10:16 2017 +0000 upstream commit downgrade a couple more request parsing errors from process-fatal to just returning failure, making them consistent with the others that were already like that. OpenBSD-Commit-ID: c111461f7a626690a2d53018ef26557b34652918 commit 93c68a8f3da8e5e6acdc3396f54d73919165e242 Author: djm@openbsd.org@openbsd.org Date: Wed Nov 15 00:13:40 2017 +0000 upstream commit fix regression in 7.6: failure to parse a signature request message shouldn't be fatal to the process, just the request. Reported by Ron Frederick OpenBSD-Commit-ID: e5d01b3819caa1a2ad51fc57d6ded43f48bbcc05 commit 548d3a66feb64c405733932a6b1abeaf7198fa71 Author: djm@openbsd.org@openbsd.org Date: Tue Nov 14 00:45:29 2017 +0000 upstream commit fix problem in configuration parsing when in config dump mode (sshd -T) without providing a full connection specification (sshd -T -C ...) spotted by bluhm@ OpenBSD-Commit-ID: 7125faf5740eaa9d3a2f25400a0bc85e94e28b8f commit 33edb6ebdc2f81ebed1bceadacdfb8910b64fb88 Author: djm@openbsd.org@openbsd.org Date: Fri Nov 3 05:18:44 2017 +0000 upstream commit reuse parse_multistate for parse_flag (yes/no arguments). Saves a few lines of code and makes the parser more consistent wrt case- sensitivity. bz#2664 ok dtucker@ OpenBSD-Commit-ID: b2ad1b6086858d5db71c7b11e5a74dba6d60efef commit d52131a98316e76c0caa348f09bf6f7b9b01a1b9 Author: djm@openbsd.org@openbsd.org Date: Fri Nov 3 05:14:04 2017 +0000 upstream commit allow certificate validity intervals that specify only a start or stop time (we already support specifying both or neither) OpenBSD-Commit-ID: 9be486545603c003030bdb5c467d1318b46b4e42 commit fbe8e7ac94c2fa380421a9205a8bc966549c2f91 Author: djm@openbsd.org@openbsd.org Date: Fri Nov 3 03:46:52 2017 +0000 upstream commit allow "cd" and "lcd" commands with no explicit path argument. lcd will change to the local user's home directory as usual. cd will change to the starting directory for session (because the protocol offers no way to obtain the remote user's home directory). bz#2760 ok dtucker@ OpenBSD-Commit-ID: 15333f5087cee8c1ed1330cac1bd0a3e6a767393 commit 0208a48517b5e8e8b091f32fa4addcd67c31ca9e Author: dtucker@openbsd.org@openbsd.org Date: Fri Nov 3 03:18:53 2017 +0000 upstream commit When doing a config test with sshd -T, only require the attributes that are actually used in Match criteria rather than (an incomplete list of) all criteria. ok djm@, man page help jmc@ OpenBSD-Commit-ID: b4e773c4212d3dea486d0259ae977551aab2c1fc commit c357eed5a52cd2f4ff358b17e30e3f9a800644da Author: djm@openbsd.org@openbsd.org Date: Fri Nov 3 02:32:19 2017 +0000 upstream commit typos in ECDSA certificate names; bz#2787 reported by Mike Gerow OpenBSD-Commit-ID: 824938b6aba1b31321324ba1f56c05f84834b163 commit ecbf005b8fd80b81d0c61dfc1e96fe3da6099395 Author: djm@openbsd.org@openbsd.org Date: Fri Nov 3 02:29:17 2017 +0000 upstream commit Private keys in PEM format have been encrypted by AES-128 for a while (not 3DES). bz#2788 reported by Calum Mackay OpenBSD-Commit-ID: bd33da7acbbb3c882f0a0ee56007a35ce0d8a11a commit 81c9ccdbf6ddbf9bfbd6f1f775a5a7c13e47e185 Author: Darren Tucker Date: Fri Nov 3 14:52:51 2017 +1100 Check for linux/if.h when enabling rdomain. musl libc doesn't seem to have linux/if.h, so check for its presence before enabling rdomain support on Linux. commit fa1b834cce41a1ce3e6a8d57fb67ef18c9dd803f Author: Darren Tucker Date: Fri Nov 3 14:09:45 2017 +1100 Add headers for sys/sysctl.h and net/route.h On at least older OpenBSDs, sys/sysctl.h and net/route.h require sys/types and, in the case of sys/sysctl.h, sys/param.h for MAXLOGNAME. commit 41bff4da21fcd8a7c6a83a7e0f92b018f904f6fb Author: djm@openbsd.org@openbsd.org Date: Fri Nov 3 02:22:41 2017 +0000 upstream commit avoid unused variable warnings for !WITH_OPENSSL; patch from Marcus Folkesson OpenBSD-Commit-ID: c01d27a3f907acdc3dd4ea48170fac3ba236d229 commit 6b373e4635a7470baa94253dd1dc8953663da9e8 Author: Marcus Folkesson Date: Sat Oct 28 19:48:39 2017 +0200 only enable functions in dh.c when openssl is used Signed-off-by: Marcus Folkesson commit 939b30ba23848b572e15bf92f0f1a3d9cf3acc2b Author: djm@openbsd.org@openbsd.org Date: Wed Nov 1 00:04:15 2017 +0000 upstream commit fix broken stdout in ControlPersist mode, introduced by me in r1.467 and reported by Alf Schlichting OpenBSD-Commit-ID: 3750a16e02108fc25f747e4ebcedb7123c1ef509 commit f21455a084f9cc3942cf1bde64055a4916849fed Author: Darren Tucker Date: Tue Oct 31 10:09:33 2017 +1100 Include includes.h for HAVE_GETPAGESIZE. The configure script checks for getpagesize() and sets HAVE_GETPAGESIZE in config.h, but bsd-getpagesize.c forgot to include includes.h (which indirectly includes config.h) so the checks always fails, causing linker issues when linking statically on systems with getpagesize(). Patch from Peter Korsgaard commit f2ad63c0718b93ac1d1e85f53fee33b06eef86b5 Author: djm@openbsd.org@openbsd.org Date: Mon Oct 30 22:01:52 2017 +0000 upstream commit whitespace at EOL OpenBSD-Regress-ID: f4b5df99b28c6f63478deb916c6ed0e794685f07 commit c6415b1f8f1d0c2735564371647fd6a177fb9a3e Author: djm@openbsd.org@openbsd.org Date: Mon Oct 30 21:59:43 2017 +0000 upstream commit whitespace at EOL OpenBSD-Regress-ID: 19b1394393deee4c8a2114a3b7d18189f27a15cd commit e4d4ddbbba0e585ca3ec3a455430750b4622a6d3 Author: millert@openbsd.org@openbsd.org Date: Wed Oct 25 20:08:36 2017 +0000 upstream commit Use printenv to test whether an SSH_USER_AUTH is set instead of using $SSH_USER_AUTH. The latter won't work with csh which treats unknown variables as an error when expanding them. OK markus@ OpenBSD-Regress-ID: f601e878dd8b71aa40381573dde3a8f567e6f2d1 commit 116b1b439413a724ebb3320633a64dd0f3ee1fe7 Author: millert@openbsd.org@openbsd.org Date: Tue Oct 24 19:33:32 2017 +0000 upstream commit Add tests for URI parsing. OK markus@ OpenBSD-Regress-ID: 5d1df19874f3b916d1a2256a905526e17a98bd3b commit dbe0662e9cd482593a4a8bf58c6481bfe8a747a4 Author: djm@openbsd.org@openbsd.org Date: Fri Oct 27 01:57:06 2017 +0000 upstream commit whitespace at EOL OpenBSD-Commit-ID: c95549cf5a07d56ea11aaff818415118720214f6 commit d2135474344335a7c6ee643b6ade6db400fa76ee Author: djm@openbsd.org@openbsd.org Date: Fri Oct 27 01:01:17 2017 +0000 upstream commit whitespace at EOL (lots) OpenBSD-Commit-ID: 757257dd44116794ee1b5a45c6724973de181747 commit b77c29a07f5a02c7c1998701c73d92bde7ae1608 Author: djm@openbsd.org@openbsd.org Date: Fri Oct 27 00:18:41 2017 +0000 upstream commit improve printing of rdomain on accept() a little OpenBSD-Commit-ID: 5da58db2243606899cedaa646c70201b2d12247a commit 68d3bbb2e6dfbf117c46e942142795b2cdd0274b Author: jmc@openbsd.org@openbsd.org Date: Thu Oct 26 06:44:01 2017 +0000 upstream commit mark up the rdomain keyword; OpenBSD-Commit-ID: 1b597d0ad0ad20e94dbd61ca066057e6f6313b8a commit 0b2e2896b9d0d6cfb59e9ec8271085296bd4e99b Author: jmc@openbsd.org@openbsd.org Date: Wed Oct 25 06:19:46 2017 +0000 upstream commit tweak the uri text, specifically removing some markup to make it a bit more readable; issue reported by - and diff ok - millert OpenBSD-Commit-ID: 8b56a20208040b2d0633536fd926e992de37ef3f commit 7530e77bdc9415386d2a8ea3d086e8b611b2ba40 Author: jmc@openbsd.org@openbsd.org Date: Wed Oct 25 06:18:06 2017 +0000 upstream commit simplify macros in previous, and some minor tweaks; OpenBSD-Commit-ID: 6efeca3d8b095b76e21b484607d9cc67ac9a11ca commit eb9c582b710dc48976b48eb2204218f6863bae9a Author: Damien Miller Date: Tue Oct 31 00:46:29 2017 +1100 Switch upstream git repository. Previously portable OpenSSH has synced against a conversion of OpenBSD's CVS repository made using the git cvsimport tool, but this has become increasingly unreliable. As of this commit, portable OpenSSH now tracks a conversion of the OpenBSD CVS upstream made using the excellent cvs2gitdump tool from YASUOKA Masahiko: https://github.com/yasuoka/cvs2gitdump cvs2gitdump is considerably more reliable than gitcvsimport and the old version of cvsps that it uses under the hood, and is the same tool used to export the entire OpenBSD repository to git (so we know it can cope with future growth). These new conversions are mirrored at github, so interested parties can match portable OpenSSH commits to their upstream counterparts. https://github.com/djmdjm/openbsd-openssh-src https://github.com/djmdjm/openbsd-openssh-regress An unfortunate side effect of switching upstreams is that we must have a flag day, across which the upstream commit IDs will be inconsistent. The old commit IDs are recorded with the tags "Upstream-ID" for main directory commits and "Upstream-Regress-ID" for regress commits. To make it clear that the commit IDs do not refer to the same things, the new repository will instead use "OpenBSD-ID" and "OpenBSD-Regress-ID" tags instead. Apart from being a longwinded explanation of what is going on, this commit message also serves to synchronise our tools with the state of the tree, which happens to be: OpenBSD-ID: 9c43a9968c7929613284ea18e9fb92e4e2a8e4c1 OpenBSD-Regress-ID: b33b385719420bf3bc57d664feda6f699c147fef commit 2de5c6b53bf063ac698596ef4e23d8e3099656ea Author: Damien Miller Date: Fri Oct 27 08:42:33 2017 +1100 fix rdomain compilation errors commit 6bd5b569fd6dfd5e8c8af20bbc41e45c2d6462ab Author: Damien Miller Date: Wed Oct 25 14:15:42 2017 +1100 autoconf glue to enable Linux VRF commit 97c5aaf925d61641d599071abb56012cde265978 Author: Damien Miller Date: Wed Oct 25 14:09:56 2017 +1100 basic valid_rdomain() implementation for Linux commit ce1cca39d7935dd394080ce2df62f5ce5b51f485 Author: Damien Miller Date: Wed Oct 25 13:47:59 2017 +1100 implement get/set_rdomain() for Linux Not enabled, pending implementation of valid_rdomain() and autoconf glue commit 6eee79f9b8d4a3b113b698383948a119acb82415 Author: Damien Miller Date: Wed Oct 25 13:22:29 2017 +1100 stubs for rdomain replacement functions commit f5594f939f844bbb688313697d6676238da355b3 Author: Damien Miller Date: Wed Oct 25 13:13:57 2017 +1100 rename port-tun.[ch] => port-net.[ch] Ahead of adding rdomain support commit d685e5a31feea35fb99e1a31a70b3c60a7f2a0eb Author: djm@openbsd.org Date: Wed Oct 25 02:10:39 2017 +0000 upstream commit uninitialised variable in PermitTunnel printing code Upstream-ID: f04dc33e42855704e116b8da61095ecc71bc9e9a commit 43c29bb7cfd46bbbc61e0ffa61a11e74d49a712f Author: Damien Miller Date: Wed Oct 25 13:10:59 2017 +1100 provide hooks and fallbacks for rdomain support commit 3235473bc8e075fad7216b7cd62fcd2b0320ea04 Author: Damien Miller Date: Wed Oct 25 11:25:43 2017 +1100 check for net/route.h and sys/sysctl.h commit 4d5456c7de108e17603a0920c4d15bca87244921 Author: djm@openbsd.org Date: Wed Oct 25 00:21:37 2017 +0000 upstream commit transfer ownership of stdout to the session channel by dup2'ing /dev/null to fd 1. This allows propagation of remote stdout close to the local side; reported by David Newall, ok markus@ Upstream-ID: 8d9ac18a11d89e6b0415f0cbf67b928ac67f0e79 commit 68af80e6fdeaeb79432209db614386ff0f37e75f Author: djm@openbsd.org Date: Wed Oct 25 00:19:47 2017 +0000 upstream commit add a "rdomain" criteria for the sshd_config Match keyword to allow conditional configuration that depends on which rdomain(4) a connection was recevied on. ok markus@ Upstream-ID: 27d8fd5a3f1bae18c9c6e533afdf99bff887a4fb commit 35eb33fb957979e3fcbe6ea0eaee8bf4a217421a Author: djm@openbsd.org Date: Wed Oct 25 00:17:08 2017 +0000 upstream commit add sshd_config RDomain keyword to place sshd and the subsequent user session (including the shell and any TCP/IP forwardings) into the specified rdomain(4) ok markus@ Upstream-ID: be2358e86346b5cacf20d90f59f980b87d1af0f5 commit acf559e1cffbd1d6167cc1742729fc381069f06b Author: djm@openbsd.org Date: Wed Oct 25 00:15:35 2017 +0000 upstream commit Add optional rdomain qualifier to sshd_config's ListenAddress option to allow listening on a different rdomain(4), e.g. ListenAddress 0.0.0.0 rdomain 4 Upstream-ID: 24b6622c376feeed9e9be8b9605e593695ac9091 commit b9903ee8ee8671b447fc260c2bee3761e26c7227 Author: millert@openbsd.org Date: Tue Oct 24 19:41:45 2017 +0000 upstream commit Kill dead store and some spaces vs. tabs indent in parse_user_host_path(). Noticed by markus@ Upstream-ID: 114fec91dadf9af46c7c94fd40fc630ea2de8200 commit 0869627e00f4ee2a038cb62d7bd9ffad405e1800 Author: jmc@openbsd.org Date: Tue Oct 24 06:27:42 2017 +0000 upstream commit tweak previous; ok djm Upstream-ID: 7d913981ab315296be1f759c67b6e17aea38fca9 commit e3fa20e2e58fdc88a0e842358778f2de448b771b Author: Damien Miller Date: Mon Oct 23 16:25:24 2017 +1100 avoid -Wsign-compare warning in argv copying commit b7548b12a6b2b4abf4d057192c353147e0abba08 Author: djm@openbsd.org Date: Mon Oct 23 05:08:00 2017 +0000 upstream commit Expose devices allocated for tun/tap forwarding. At the client, the device may be obtained from a new %T expansion for LocalCommand. At the server, the allocated devices will be listed in a SSH_TUNNEL variable exposed to the environment of any user sessions started after the tunnel forwarding was established. ok markus Upstream-ID: e61e53f8ae80566e9ddc0d67a5df5bdf2f3c9f9e commit 887669ef032d63cf07f53cada216fa8a0c9a7d72 Author: millert@openbsd.org Date: Sat Oct 21 23:06:24 2017 +0000 upstream commit Add URI support to ssh, sftp and scp. For example ssh://user@host or sftp://user@host/path. The connection parameters described in draft-ietf-secsh-scp-sftp-ssh-uri-04 are not implemented since the ssh fingerprint format in the draft uses md5 with no way to specify the hash function type. OK djm@ Upstream-ID: 4ba3768b662d6722de59e6ecb00abf2d4bf9cacc commit d27bff293cfeb2252f4c7a58babe5ad3262c6c98 Author: Damien Miller Date: Fri Oct 20 13:22:00 2017 +1100 Fix missed RCSID merges commit d3b6aeb546242c9e61721225ac4387d416dd3d5e Author: djm@openbsd.org Date: Fri Oct 20 02:13:41 2017 +0000 upstream commit more RCSIDs Upstream-Regress-ID: 1aecbe3f8224793f0ec56741a86d619830eb33be commit b011edbb32e41aaab01386ce4c0efcc9ff681c4a Author: djm@openbsd.org Date: Fri Oct 20 01:56:39 2017 +0000 upstream commit add RCSIDs to these; they make syncing portable a bit easier Upstream-ID: 56cb7021faea599736dd7e7f09c2e714425b1e68 commit 6eb27597781dccaf0ec2b80107a9f0592a0cb464 Author: Damien Miller Date: Fri Oct 20 12:54:15 2017 +1100 upstream commit Apply missing commit 1.11 to kexc25519s.c Upstream-ID: 5f020e23a1ee6c3597af1f91511e68552cdf15e8 commit 6f72280553cb6918859ebcacc717f2d2fafc1a27 Author: Damien Miller Date: Fri Oct 20 12:52:50 2017 +1100 upstream commit Apply missing commit 1.127 to servconf.h Upstream-ID: f14c4bac74a2b7cf1e3cff6bea5c447f192a7d15 commit bb3e16ab25cb911238c2eb7455f9cf490cb143cc Author: jmc@openbsd.org Date: Wed Oct 18 05:36:59 2017 +0000 upstream commit remove unused Pp; Upstream-ID: 8ad26467f1f6a40be887234085a8e01a61a00550 commit 05b69e99570553c8e1eafb895b1fbf1d098d2e14 Author: djm@openbsd.org Date: Wed Oct 18 02:49:44 2017 +0000 upstream commit In the description of pattern-lists, clarify negated matches by explicitly stating that a negated match will never yield a positive result, and that at least one positive term in the pattern-list must match. bz#1918 Upstream-ID: 652d2f9d993f158fc5f83cef4a95cd9d95ae6a14 commit eb80e26a15c10bc65fed8b8cdb476819a713c0fd Author: djm@openbsd.org Date: Fri Oct 13 21:13:54 2017 +0000 upstream commit log debug messages sent to peer; ok deraadt markus Upstream-ID: 3b4fdc0a06ea5083f61d96e20043000f477103d9 commit 071325f458d615d7740da5c1c1d5a8b68a0b4605 Author: jmc@openbsd.org Date: Fri Oct 13 16:50:45 2017 +0000 upstream commit trim permitrootlogin description somewhat, to avoid ambiguity; original diff from walter alejandro iglesias, tweaked by sthen and myself ok sthen schwarze deraadt Upstream-ID: 1749418b2bc073f3fdd25fe21f8263c3637fe5d2 commit 10727487becb897a15f658e0cb2d05466236e622 Author: djm@openbsd.org Date: Fri Oct 13 06:45:18 2017 +0000 upstream commit mention SSH_USER_AUTH in the list of environment variables Upstream-ID: 1083397c3ee54b4933121ab058c70a0fc6383691 commit 224f193d6a4b57e7a0cb2b9ecd3b6c54d721d8c2 Author: djm@openbsd.org Date: Fri Oct 13 06:24:51 2017 +0000 upstream commit BIO_get_mem_data() is supposed to take a char* as pointer argument, so don't pass it a const char* Upstream-ID: 1ccd91eb7f4dd4f0fa812d4f956987cd00b5f6ec commit cfa46825b5ef7097373ed8e31b01a4538a8db565 Author: benno@openbsd.org Date: Mon Oct 9 20:12:51 2017 +0000 upstream commit clarify the order in which config statements are used. ok jmc@ djm@ Upstream-ID: e37e27bb6bbac71315e22cb9690fd8a556a501ed commit dceabc7ad7ebc7769c8214a1647af64c9a1d92e5 Author: djm@openbsd.org Date: Thu Oct 5 15:52:03 2017 +0000 upstream commit replace statically-sized arrays in ServerOptions with dynamic ones managed by xrecallocarray, removing some arbitrary (though large) limits and saving a bit of memory; "much nicer" markus@ Upstream-ID: 1732720b2f478fe929d6687ac7b0a97ff2efe9d2 commit 2b4f3ab050c2aaf6977604dd037041372615178d Author: jmc@openbsd.org Date: Thu Oct 5 12:56:50 2017 +0000 upstream commit %C is hashed; from klemens nanni ok markus Upstream-ID: 6ebed7b2e1b6ee5402a67875d74f5e2859d8f998 commit a66714508b86d6814e9055fefe362d9fe4d49ab3 Author: djm@openbsd.org Date: Wed Oct 4 18:50:23 2017 +0000 upstream commit exercise PermitOpen a little more thoroughly Upstream-Regress-ID: f41592334e227a4c1f9a983044522de4502d5eac commit 609ecc8e57eb88e2eac976bd3cae7f7889aaeff6 Author: dtucker@openbsd.org Date: Tue Sep 26 22:39:25 2017 +0000 upstream commit UsePrivilegeSeparation is gone, stop trying to test it. Upstream-Regress-ID: 796a5057cfd79456a20ea935cc53f6eb80ace191 commit 69bda0228861f3dacd4fb3d28b60ce9d103d254b Author: djm@openbsd.org Date: Wed Oct 4 18:49:30 2017 +0000 upstream commit fix (another) problem in PermitOpen introduced during the channels.c refactor: the third and subsequent arguments to PermitOpen were being silently ignored; ok markus@ Upstream-ID: 067c89f1f53cbc381628012ba776d6861e6782fd commit 66bf74a92131b7effe49fb0eefe5225151869dc5 Author: djm@openbsd.org Date: Mon Oct 2 19:33:20 2017 +0000 upstream commit Fix PermitOpen crash; spotted by benno@, ok dtucker@ deraadt@ Upstream-ID: c2cc84ffac070d2e1ff76182c70ca230a387983c commit d63b38160a59039708fd952adc75a0b3da141560 Author: Damien Miller Date: Sun Oct 1 10:32:25 2017 +1100 update URL again I spotted a typo in the draft so uploaded a new version... commit 6f64f596430cd3576c529f07acaaf2800aa17d58 Author: Damien Miller Date: Sun Oct 1 10:01:56 2017 +1100 sync release notes URL commit 35ff70a04dd71663a5ac1e73b90d16d270a06e0d Author: Damien Miller Date: Sun Oct 1 10:01:25 2017 +1100 sync contrib/ssh-copy-id with upstream commit 290843b8ede85f8b30bf29cd7dceb805c3ea5b66 Author: Damien Miller Date: Sun Oct 1 09:59:19 2017 +1100 update version in RPM spec files commit 4e4e0bb223c5be88d87d5798c75cc6b0d4fef31d Author: Damien Miller Date: Sun Oct 1 09:58:24 2017 +1100 update agent draft URL commit e4a798f001d2ecd8bf025c1d07658079f27cc604 Author: djm@openbsd.org Date: Sat Sep 30 22:26:33 2017 +0000 upstream commit openssh-7.6; ok deraadt@ Upstream-ID: a39c3a5b63a1baae109ae1ae4c7c34c2a59acde0 commit 5fa1407e16e7e5fda9769d53b626ce39d5588d4d Author: jmc@openbsd.org Date: Wed Sep 27 06:45:53 2017 +0000 upstream commit tweak EposeAuthinfo; diff from lars nooden tweaked by sthen; ok djm dtucker Upstream-ID: 8f2ea5d2065184363e8be7a0ba24d98a3b259748 commit bba69c246f0331f657fd6ec97724df99fc1ad174 Author: Damien Miller Date: Thu Sep 28 16:06:21 2017 -0700 don't fatal ./configure for LibreSSL commit 04dc070e8b4507d9d829f910b29be7e3b2414913 Author: Damien Miller Date: Thu Sep 28 14:54:34 2017 -0700 abort in configure when only openssl-1.1.x found We don't support openssl-1.1.x yet (see multiple threads on the openssh-unix-dev@ mailing list for the reason), but previously ./configure would accept it and the compilation would subsequently fail. This makes ./configure display an explicit error message and abort. ok dtucker@ commit 74c1c3660acf996d9dc329e819179418dc115f2c Author: Darren Tucker Date: Wed Sep 27 07:44:41 2017 +1000 Check for and handle calloc(p, 0) = NULL. On some platforms (AIX, maybe others) allocating zero bytes of memory via the various *alloc functions returns NULL, which is permitted by the standards. Autoconf has some macros for detecting this (with the exception of calloc for some reason) so use these and if necessary activate shims for them. ok djm@ commit 6a9481258a77b0b54b2a313d1761c87360c5f1f5 Author: markus@openbsd.org Date: Thu Sep 21 19:18:12 2017 +0000 upstream commit test reverse dynamic forwarding with SOCKS Upstream-Regress-ID: 95cf290470f7e5e2f691e4bc6ba19b91eced2f79 commit 1b9f321605733754df60fac8c1d3283c89b74455 Author: Damien Miller Date: Tue Sep 26 16:55:55 2017 +1000 sync missing changes in dynamic-forward.sh commit 44fc334c7a9ebdd08addb6d5fa005369897fddeb Author: Darren Tucker Date: Mon Sep 25 09:48:10 2017 +1000 Add minimal strsignal for platforms without it. commit 218e6f98df566fb9bd363f6aa47018cb65ede196 Author: djm@openbsd.org Date: Sun Sep 24 13:45:34 2017 +0000 upstream commit fix inverted test on channel open failure path that "upgraded" a transient failure into a fatal error; reported by sthen and also seen by benno@; ok sthen@ Upstream-ID: b58b3fbb79ba224599c6cd6b60c934fc46c68472 commit c704f641f7b8777497dc82e81f2ac89afec7e401 Author: djm@openbsd.org Date: Sun Sep 24 09:50:01 2017 +0000 upstream commit write the correct buffer when tunnel forwarding; doesn't matter on OpenBSD (they are the same) but does matter on portable where we use an output filter to translate os-specific tun/tap headers Upstream-ID: f1ca94eff48404827b12e1d12f6139ee99a72284 commit 55486f5cef117354f0c64f991895835077b7c7f7 Author: djm@openbsd.org Date: Sat Sep 23 22:04:07 2017 +0000 upstream commit fix tunnel forwarding problem introduced in refactor; reported by stsp@ ok markus@ Upstream-ID: 81a731cdae1122c8522134095d1a8b60fa9dcd04 commit 609d7a66ce578abf259da2d5f6f68795c2bda731 Author: markus@openbsd.org Date: Thu Sep 21 19:16:53 2017 +0000 upstream commit Add 'reverse' dynamic forwarding which combines dynamic forwarding (-D) with remote forwarding (-R) where the remote-forwarded port expects SOCKS-requests. The SSH server code is unchanged and the parsing happens at the SSH clients side. Thus the full SOCKS-request is sent over the forwarded channel and the client parses c->output. Parsing happens in channel_before_prepare_select(), _before_ the select bitmask is computed in the pre[] handlers, but after network input processing in the post[] handlers. help and ok djm@ Upstream-ID: aa25a6a3851064f34fe719e0bf15656ad5a64b89 commit 36945fa103176c00b39731e1fc1919a0d0808b81 Author: dtucker@openbsd.org Date: Wed Sep 20 05:19:00 2017 +0000 upstream commit Use strsignal in debug message instead of casting for the benefit of portable where sig_atomic_t might not be int. "much nicer" deraadt@ Upstream-ID: 2dac6c1e40511c700bd90664cd263ed2299dcf79 commit 3e8d185af326bf183b6f78597d5e3d2eeb2dc40e Author: millert@openbsd.org Date: Tue Sep 19 12:10:30 2017 +0000 upstream commit Use explicit_bzero() instead of bzero() before free() to prevent the compiler from optimizing away the bzero() call. OK djm@ Upstream-ID: cdc6197e64c9684c7250e23d60863ee1b53cef1d commit 5b8da1f53854c0923ec6e927e86709e4d72737b6 Author: djm@openbsd.org Date: Tue Sep 19 04:24:22 2017 +0000 upstream commit fix use-after-free in ~^Z escape handler path, introduced in channels.c refactor; spotted by millert@ "makes sense" deraadt@ Upstream-ID: 8fa2cdc65c23ad6420c1e59444b0c955b0589b22 commit a3839d8d2b89ff1a80cadd4dd654336710de2c9e Author: dtucker@openbsd.org Date: Mon Sep 18 12:03:24 2017 +0000 upstream commit Prevent type mismatch warning in debug on platforms where sig_atomic_t != int. ok djm@ Upstream-ID: 306e2375eb0364a4c68e48f091739bea4f4892ed commit 30484e5e5f0b63d2c6ba32c6b85f06b6c6fa55fc Author: dtucker@openbsd.org Date: Mon Sep 18 09:41:52 2017 +0000 upstream commit Add braces missing after channels refactor. ok markus@ Upstream-ID: 72ab325c84e010680dbc88f226e2aa96b11a3980 commit b79569190b9b76dfacc6d996faa482f16e8fc026 Author: Damien Miller Date: Tue Sep 19 12:29:23 2017 +1000 add freezero(3) replacement ok dtucker@ commit 161af8f5ec0961b10cc032efb5cc1b44ced5a92e Author: Damien Miller Date: Tue Sep 19 10:18:56 2017 +1000 move FORTIFY_SOURCE into hardening options group It's still on by default, but now it's possible to turn it off using --without-hardening. This is useful since it's known to cause problems with some -fsanitize options. ok dtucker@ commit 09eacf856e0fe1a6e3fe597ec8032b7046292914 Author: bluhm@openbsd.org Date: Wed Sep 13 14:58:26 2017 +0000 upstream commit Print SKIPPED if sudo and doas configuration is missing. Prevents that running the regression test with wrong environment is reported as failure. Keep the fatal there to avoid interfering with other setups for portable ssh. OK dtucker@ Upstream-Regress-ID: f0dc60023caef496ded341ac5aade2a606fa234e commit cdede10899892f25f1ccdccd7a3fe5e5ef0aa49a Author: dtucker@openbsd.org Date: Mon Aug 7 03:52:55 2017 +0000 upstream commit Remove obsolete privsep=no fallback test. Upstream-Regress-ID: 7d6e1baa1678ac6be50c2a1555662eb1047638df commit ec218c105daa9f5b192f7aa890fdb2d4fdc4e9d8 Author: dtucker@openbsd.org Date: Mon Aug 7 00:53:51 2017 +0000 upstream commit Remove non-privsep test since disabling privsep is now deprecated. Upstream-Regress-ID: 77ad3f3d8d52e87f514a80f285c6c1229b108ce8 commit 239c57d5bc2253e27e3e6ad7ac52ec8c377ee24e Author: dtucker@openbsd.org Date: Fri Jul 28 10:32:08 2017 +0000 upstream commit Don't call fatal from stop_sshd since it calls cleanup which calls stop_sshd which will probably fail in the same way. Instead, just bail. Differentiate between sshd dying without cleanup and not shutting down. Upstream-Regress-ID: f97315f538618b349e2b0bea02d6b0c9196c6bc4 commit aea59a0d9f120f2a87c7f494a0d9c51eaa79b8ba Author: djm@openbsd.org Date: Thu Sep 14 04:32:21 2017 +0000 upstream commit Revert commitid: gJtIN6rRTS3CHy9b. ------------- identify the case where SSHFP records are missing but other DNS RR types are present and display a more useful error message for this case; patch by Thordur Bjornsson; bz#2501; ok dtucker@ ------------- This caused unexpected failures when VerifyHostKeyDNS=yes, SSHFP results are missing but the user already has the key in known_hosts Spotted by dtucker@ Upstream-ID: 97e31742fddaf72046f6ffef091ec0d823299920 commit 871f1e4374420b07550041b329627c474abc3010 Author: Damien Miller Date: Tue Sep 12 18:01:35 2017 +1000 adapt portable to channels API changes commit 4ec0bb9f9ad7b4eb0af110fa8eddf8fa199e46bb Author: djm@openbsd.org Date: Tue Sep 12 07:55:48 2017 +0000 upstream commit unused variable Upstream-ID: 2f9ba09f2708993d35eac5aa71df910dcc52bac1 commit 9145a73ce2ba30c82bbf91d7205bfd112529449f Author: djm@openbsd.org Date: Tue Sep 12 07:32:04 2017 +0000 upstream commit fix tun/tap forwarding case in previous Upstream-ID: 43ebe37a930320e24bca6900dccc39857840bc53 commit 9f53229c2ac97dbc6f5a03657de08a1150a9ac7e Author: djm@openbsd.org Date: Tue Sep 12 06:35:31 2017 +0000 upstream commit Make remote channel ID a u_int Previously we tracked the remote channel IDs in an int, but this is strictly incorrect: the wire protocol uses uint32 and there is nothing in-principle stopping a SSH implementation from sending, say, 0xffff0000. In practice everyone numbers their channels sequentially, so this has never been a problem. ok markus@ Upstream-ID: b9f4cd3dc53155b4a5c995c0adba7da760d03e73 commit dbee4119b502e3f8b6cd3282c69c537fd01d8e16 Author: djm@openbsd.org Date: Tue Sep 12 06:32:07 2017 +0000 upstream commit refactor channels.c Move static state to a "struct ssh_channels" that is allocated at runtime and tracked as a member of struct ssh. Explicitly pass "struct ssh" to all channels functions. Replace use of the legacy packet APIs in channels.c. Rework sshd_config PermitOpen handling: previously the configuration parser would call directly into the channels layer. After the refactor this is not possible, as the channels structures are allocated at connection time and aren't available when the configuration is parsed. The server config parser now tracks PermitOpen itself and explicitly configures the channels code later. ok markus@ Upstream-ID: 11828f161656b965cc306576422613614bea2d8f commit abd59663df37a42152e37980113ccaa405b9a282 Author: djm@openbsd.org Date: Thu Sep 7 23:48:09 2017 +0000 upstream commit typo in comment Upstream-ID: a93b1e6f30f1f9b854b5b964b9fd092d0c422c47 commit 149a8cd24ce9dd47c36f571738681df5f31a326c Author: jmc@openbsd.org Date: Mon Sep 4 06:34:43 2017 +0000 upstream commit tweak previous; Upstream-ID: bb8cc40b61b15f6a13d81da465ac5bfc65cbfc4b commit ec9d22cc251cc5acfe7b2bcef9cc7a1fe0e949d8 Author: Damien Miller Date: Fri Sep 8 12:44:13 2017 +1000 Fuzzer harnesses for sig verify and pubkey parsing These are some basic clang libfuzzer harnesses for signature verification and public key parsing. Some assembly (metaphorical) required. commit de35c382894964a896a63ecd5607d3a3b93af75d Author: Damien Miller Date: Fri Sep 8 12:38:31 2017 +1000 Give configure ability to set CFLAGS/LDFLAGS later Some CFLAGS/LDFLAGS may disrupt the configure script's operation, in particular santization and fuzzer options that break assumptions about memory and file descriptor dispositions. This adds two flags to configure --with-cflags-after and --with-ldflags-after that allow specifying additional compiler and linker options that are added to the resultant Makefiles but not used in the configure run itself. E.g. env CC=clang-3.9 ./configure \ --with-cflags-after=-fsantize=address \ --with-ldflags-after="-g -fsanitize=address" commit 22376d27a349f62c502fec3396dfe0fdcb2a40b7 Author: djm@openbsd.org Date: Sun Sep 3 23:33:13 2017 +0000 upstream commit Expand ssh_config's StrictModes option with two new settings: StrictModes=accept-new will automatically accept hitherto-unseen keys but will refuse connections for changed or invalid hostkeys. StrictModes=off is the same as StrictModes=no Motivation: StrictModes=no combines two behaviours for host key processing: automatically learning new hostkeys and continuing to connect to hosts with invalid/changed hostkeys. The latter behaviour is quite dangerous since it removes most of the protections the SSH protocol is supposed to provide. Quite a few users want to automatically learn hostkeys however, so this makes that feature available with less danger. At some point in the future, StrictModes=no will change to be a synonym for accept-new, with its current behaviour remaining available via StrictModes=off. bz#2400, suggested by Michael Samuel; ok markus Upstream-ID: 0f55502bf75fc93a74fb9853264a8276b9680b64 commit ff3c42384033514e248ba5d7376aa033f4a2b99a Author: jmc@openbsd.org Date: Fri Sep 1 15:41:26 2017 +0000 upstream commit remove blank line; Upstream-ID: 2f46b51a0ddb3730020791719e94d3e418e9f423 commit b828605d51f57851316d7ba402b4ae06cf37c55d Author: djm@openbsd.org Date: Fri Sep 1 05:53:56 2017 +0000 upstream commit identify the case where SSHFP records are missing but other DNS RR types are present and display a more useful error message for this case; patch by Thordur Bjornsson; bz#2501; ok dtucker@ Upstream-ID: 8f7a5a8344f684823d8317a9708b63e75be2c244 commit 8042bad97e2789a50e8f742c3bcd665ebf0add32 Author: djm@openbsd.org Date: Fri Sep 1 05:50:48 2017 +0000 upstream commit document available AuthenticationMethods; bz#2453 ok dtucker@ Upstream-ID: 2c70576f237bb699aff59889dbf2acba4276d3d0 commit 71e5a536ec815d542b199f2ae6d646c0db9f1b58 Author: djm@openbsd.org Date: Wed Aug 30 03:59:08 2017 +0000 upstream commit pass packet state down to some of the channels function (more to come...); ok markus@ Upstream-ID: d8ce7a94f4059d7ac1e01fb0eb01de0c4b36c81b commit 6227fe5b362239c872b91bbdee4bf63cf85aebc5 Author: jmc@openbsd.org Date: Tue Aug 29 13:05:58 2017 +0000 upstream commit sort options; Upstream-ID: cf21d68cf54e81968bca629aaeddc87f0c684f3c commit 530591a5795a02d01c78877d58604723918aac87 Author: dlg@openbsd.org Date: Tue Aug 29 09:42:29 2017 +0000 upstream commit add a -q option to ssh-add to make it quiet on success. if you want to silence ssh-add without this you generally redirect the output to /dev/null, but that can hide error output which you should see. ok djm@ Upstream-ID: 2f31b9b13f99dcf587e9a8ba443458e6c0d8997c commit a54eb27dd64b5eca3ba94e15cec3535124bd5029 Author: dtucker@openbsd.org Date: Sun Aug 27 00:38:41 2017 +0000 upstream commit Increase the buffer sizes for user prompts to ensure that they won't be truncated by snprintf. Based on patch from cjwatson at debian.org via bz#2768, ok djm@ Upstream-ID: 6ffacf1abec8f40b469de5b94bfb29997d96af3e commit dd9d9b3381a4597b840d480b043823112039327e Author: Darren Tucker Date: Mon Aug 28 16:48:27 2017 +1000 Switch Capsicum header to sys/capsicum.h. FreeBSD's was renamed to in 2014 to avoid future conflicts with POSIX capabilities (the last release that didn't have it was 9.3) so switch to that. Patch from des at des.no. commit f5e917ab105af5dd6429348d9bc463e52b263f92 Author: Darren Tucker Date: Sun Aug 27 08:55:40 2017 +1000 Add missing includes for bsd-err.c. Patch from cjwatson at debian.org via bz#2767. commit 878e029797cfc9754771d6f6ea17f8c89e11d225 Author: Damien Miller Date: Fri Aug 25 13:25:01 2017 +1000 Split platform_sys_dir_uid into its own file platform.o is too heavy for libssh.a use; it calls into the server on many platforms. Move just the function needed by misc.c into its own file. commit 07949bfe9133234eddd01715592aa0dde67745f0 Author: Damien Miller Date: Wed Aug 23 20:13:18 2017 +1000 misc.c needs functions from platform.c now commit b074c3c3f820000a21953441cea7699c4b17d72f Author: djm@openbsd.org Date: Fri Aug 18 05:48:04 2017 +0000 upstream commit add a "quiet" flag to exited_cleanly() that supresses errors about exit status (failure due to signal is still reported) Upstream-ID: db85c39c3aa08e6ff67fc1fb4ffa89f807a9d2f0 commit de4ae07f12dabf8815ecede54235fce5d22e3f63 Author: djm@openbsd.org Date: Fri Aug 18 05:36:45 2017 +0000 upstream commit Move several subprocess-related functions from various locations to misc.c. Extend subprocess() to offer a little more control over stdio disposition. feedback & ok dtucker@ Upstream-ID: 3573dd7109d13ef9bd3bed93a3deb170fbfce049 commit 643c2ad82910691b2240551ea8b14472f60b5078 Author: djm@openbsd.org Date: Sat Aug 12 06:46:01 2017 +0000 upstream commit make "--" before the hostname terminate command-line option processing completely; previous behaviour would not prevent further options appearing after the hostname (ssh has a supported options after the hostname for >20 years, so that's too late to change). ok deraadt@ Upstream-ID: ef5ee50571b98ad94dcdf8282204e877ec88ad89 commit 0f3455356bc284d7c6f4d3c1614d31161bd5dcc2 Author: djm@openbsd.org Date: Sat Aug 12 06:42:52 2017 +0000 upstream commit Switch from aes256-cbc to aes256-ctr for encrypting new-style private keys. The latter having the advantage of being supported for no-OpenSSL builds; bz#2754 ok markus@ Upstream-ID: 54179a2afd28f93470471030567ac40431e56909 commit c4972d0a9bd6f898462906b4827e09b7caea2d9b Author: djm@openbsd.org Date: Fri Aug 11 04:47:12 2017 +0000 upstream commit refuse to a private keys when its corresponding .pub key does not match. bz#2737 ok dtucker@ Upstream-ID: 54ff5e2db00037f9db8d61690f26ef8f16e0d913 commit 4b3ecbb663c919132dddb3758e17a23089413519 Author: djm@openbsd.org Date: Fri Aug 11 04:41:08 2017 +0000 upstream commit don't print verbose error message when ssh disconnects under sftp; bz#2750; ok dtucker@ Upstream-ID: 6d83708aed77b933c47cf155a87dc753ec01f370 commit 42a8f8bc288ef8cac504c5c73f09ed610bc74a34 Author: dtucker@openbsd.org Date: Fri Aug 11 04:16:35 2017 +0000 upstream commit Tweak previous keepalive commit: if last_time + keepalive <= now instead of just "<" so client_alive_check will fire if the select happens to return on exact second of the timeout. ok djm@ Upstream-ID: e02756bd6038d11bb8522bfd75a4761c3a684fcc commit b60ff20051ef96dfb207b6bfa45c0ad6c34a542a Author: dtucker@openbsd.org Date: Fri Aug 11 03:58:36 2017 +0000 upstream commit Keep track of the last time we actually heard from the client and use this to also schedule a client_alive_check(). Prevents activity on a forwarded port from indefinitely preventing the select timeout so that client_alive_check() will eventually (although not optimally) be called. Analysis by willchan at google com via bz#2756, feedback & ok djm@ Upstream-ID: c08721e0bbda55c6d18e2760f3fe1b17fb71169e commit 94bc1e7ffba3cbdea8c7dcdab8376bf29283128f Author: Damien Miller Date: Fri Jul 28 14:50:59 2017 +1000 Expose list of completed auth methods to PAM bz#2408; ok dtucker@ commit c78e6eec78c88acf8d51db90ae05a3e39458603d Author: Damien Miller Date: Fri Jul 21 14:38:16 2017 +1000 fix problems in tunnel forwarding portability code This fixes a few problems in the tun forwarding code, mostly to do with host/network byte order confusion. Based on a report and patch by stepe AT centaurus.uberspace.de; bz#2735; ok dtucker@ commit 2985d4062ebf4204bbd373456a810d558698f9f5 Author: dtucker@openbsd.org Date: Tue Jul 25 09:22:25 2017 +0000 upstream commit Make WinSCP patterns for SSH_OLD_DHGEX more specific to exclude WinSCP 5.10.x and up. bz#2748, from martin at winscp.net, ok djm@ Upstream-ID: 6fd7c32e99af3952db007aa180e73142ddbc741a commit 9f0e44e1a0439ff4646495d5735baa61138930a9 Author: djm@openbsd.org Date: Mon Jul 24 04:34:28 2017 +0000 upstream commit g/c unused variable; make a little more portable Upstream-ID: 3f5980481551cb823c6fb2858900f93fa9217dea commit 51676ec61491ec6d7cbd06082034e29b377b3bf6 Author: djm@openbsd.org Date: Sun Jul 23 23:37:02 2017 +0000 upstream commit Allow IPQoS=none in ssh/sshd to not set an explicit ToS/DSCP value and just use the operating system default; ok dtucker@ Upstream-ID: 77906ff8c7b660b02ba7cb1e47b17d66f54f1f7e commit 6c1fbd5a50d8d2415f06c920dd3b1279b741072d Author: Damien Miller Date: Fri Jul 21 14:24:26 2017 +1000 mention libedit commit dc2bd308768386b02c7337120203ca477e67ba62 Author: markus@openbsd.org Date: Wed Jul 19 08:30:41 2017 +0000 upstream commit fix support for unknown key types; ok djm@ Upstream-ID: 53fb29394ed04d616d65b3748dee5aa06b07ab48 commit fd0e8fa5f89d21290b1fb5f9d110ca4f113d81d9 Author: djm@openbsd.org Date: Wed Jul 19 01:15:02 2017 +0000 upstream commit switch from select() to poll() for the ssh-agent mainloop; ok markus Upstream-ID: 4a94888ee67b3fd948fd10693973beb12f802448 commit b1e72df2b813ecc15bd0152167bf4af5f91c36d3 Author: dtucker@openbsd.org Date: Fri Jul 14 03:18:21 2017 +0000 upstream commit Make ""Killed by signal 1" LogLevel verbose so it's not shown at the default level. Prevents it from appearing during ssh -J and equivalent ProxyCommand configs. bz#1906, bz#2744, feedback&ok markus@ Upstream-ID: debfaa7e859b272246c2f2633335d288d2e2ae28 commit 1f3d202770a08ee6752ed2a234b7ca6f180eb498 Author: jmc@openbsd.org Date: Thu Jul 13 19:16:33 2017 +0000 upstream commit man pages with pseudo synopses which list filenames end up creating very ugly output in man -k; after some discussion with ingo, we feel the simplest fix is to remove such SYNOPSIS sections: the info is hardly helpful at page top, is contained already in FILES, and there are sufficiently few that just zapping them is simple; ok schwarze, who also helpfully ran things through a build to check output; Upstream-ID: 3e211b99457e2f4c925c5927d608e6f97431336c commit 7f13a4827fb28957161de4249bd6d71954f1f2ed Author: espie@openbsd.org Date: Mon Jul 10 14:09:59 2017 +0000 upstream commit zap redundant Makefile variables. okay djm@ Upstream-ID: e39b3902fe1d6c4a7ba6a3c58e072219f3c1e604 commit dc44dd3a9e2c9795394e6a7e1e71c929cbc70ce0 Author: jmc@openbsd.org Date: Sat Jul 8 18:32:54 2017 +0000 upstream commit slightly rework previous, to avoid an article issue; Upstream-ID: 15a315f0460ddd3d4e2ade1f16d6c640a8c41b30 commit 853edbe057a84ebd0024c8003e4da21bf2b469f7 Author: djm@openbsd.org Date: Fri Jul 7 03:53:12 2017 +0000 upstream commit When generating all hostkeys (ssh-keygen -A), clobber existing keys if they exist but are zero length. zero-length keys could previously be made if ssh-keygen failed part way through generating them, so avoid that case too. bz#2561 reported by Krzysztof Cieplucha; ok dtucker@ Upstream-ID: f662201c28ab8e1f086b5d43c59cddab5ade4044 commit 43616876ba68a2ffaece6a6c792def4b039f2d6e Author: djm@openbsd.org Date: Sat Jul 1 22:55:44 2017 +0000 upstream commit actually remove these files Upstream-ID: 1bd41cba06a7752de4df304305a8153ebfb6b0ac commit 83fa3a044891887369ce8b487ce88d713a04df48 Author: djm@openbsd.org Date: Sat Jul 1 13:50:45 2017 +0000 upstream commit remove post-SSHv1 removal dead code from rsa.c and merge the remaining bit that it still used into ssh-rsa.c; ok markus Upstream-ID: ac8a048d24dcd89594b0052ea5e3404b473bfa2f commit 738c73dca2c99ee78c531b4cbeefc2008fe438f0 Author: Damien Miller Date: Fri Jul 14 14:26:36 2017 +1000 make explicit_bzero/memset safe for sz=0 commit 8433d51e067e0829f5521c0c646b6fd3fe17e732 Author: Tim Rice Date: Tue Jul 11 18:47:56 2017 -0700 modified: configure.ac UnixWare needs BROKEN_TCGETATTR_ICANON like Solaris Analysis by Robbie Zhang commit ff3507aea9c7d30cd098e7801e156c68faff7cc7 Author: Damien Miller Date: Fri Jul 7 11:21:27 2017 +1000 typo commit d79bceb9311a9c137d268f5bc481705db4151810 Author: dtucker@openbsd.org Date: Fri Jun 30 04:17:23 2017 +0000 upstream commit Only call close once in confree(). ssh_packet_close will close the FD so only explicitly close non-SSH channels. bz#2734, from bagajjal at microsoft.com, ok djm@ Upstream-ID: a81ce0c8b023527167739fccf1732b154718ab02 commit 197dc9728f062e23ce374f44c95a2b5f9ffa4075 Author: Darren Tucker Date: Thu Jun 29 15:40:25 2017 +1000 Update link for my patches. commit a98339edbc1fc21342a390f345179a9c3031bef7 Author: djm@openbsd.org Date: Wed Jun 28 01:09:22 2017 +0000 upstream commit Allow ssh-keygen to use a key held in ssh-agent as a CA when signing certificates. bz#2377 ok markus Upstream-ID: fb42e920b592edcbb5b50465739a867c09329c8f commit c9cdef35524bd59007e17d5bd2502dade69e2dfb Author: djm@openbsd.org Date: Sat Jun 24 06:35:24 2017 +0000 upstream commit regress test for ExposeAuthInfo Upstream-Regress-ID: 190e5b6866376f4061c411ab157ca4d4e7ae86fd commit f17ee61cad25d210edab69d04ed447ad55fe80c1 Author: djm@openbsd.org Date: Sat Jun 24 07:08:57 2017 +0000 upstream commit correct env var name Upstream-ID: 721e761c2b1d6a4dcf700179f16fd53a1dadb313 commit 40962198e3b132cecdb32e9350acd4294e6a1082 Author: jmc@openbsd.org Date: Sat Jun 24 06:57:04 2017 +0000 upstream commit spelling; Upstream-ID: 606f933c8e2d0be902ea663946bc15e3eee40b25 commit 33f86265d7e8a0e88d3a81745d746efbdd397370 Author: djm@openbsd.org Date: Sat Jun 24 06:38:11 2017 +0000 upstream commit don't pass pointer to struct sshcipher between privsep processes, just redo the lookup in each using the already-passed cipher name. bz#2704 based on patch from Brooks Davis; ok markus dtucker Upstream-ID: 2eab434c09bdf549dafd7da3e32a0d2d540adbe0 commit 8f574959272ac7fe9239c4f5d10fd913f8920ab0 Author: djm@openbsd.org Date: Sat Jun 24 06:34:38 2017 +0000 upstream commit refactor authentication logging optionally record successful auth methods and public credentials used in a file accessible to user sessions feedback and ok markus@ Upstream-ID: 090b93036967015717b9a54fd0467875ae9d32fb commit e2004d4bb7eb01c663dd3a3e7eb224f1ccdc9bba Author: jmc@openbsd.org Date: Sat Jun 24 06:28:50 2017 +0000 upstream commit word fix; Upstream-ID: 8539bdaf2366603a34a9b2f034527ca13bb795c5 commit 4540428cd0adf039bcf5a8a27f2d5cdf09191513 Author: djm@openbsd.org Date: Sat Jun 24 05:37:44 2017 +0000 upstream commit switch sshconnect.c from (slightly abused) select() to poll(); ok deraadt@ a while back Upstream-ID: efc1937fc591bbe70ac9e9542bb984f354c8c175 commit 6f8ca3b92540fa1a9b91670edc98d15448e3d765 Author: djm@openbsd.org Date: Sat Jun 24 05:35:05 2017 +0000 upstream commit use HostKeyAlias if specified instead of hostname for matching host certificate principal names; bz#2728; ok dtucker@ Upstream-ID: dc2e11c83ae9201bbe74872a0c895ae9725536dd commit 8904ffce057b80a7472955f1ec00d7d5c250076c Author: djm@openbsd.org Date: Sat Jun 24 05:24:11 2017 +0000 upstream commit no need to call log_init to reinitialise logged PID in child sessions, since we haven't called openlog() in log_init() since 1999; ok markus@ Upstream-ID: 0906e4002af5d83d3d544df75e1187c932a3cf2e commit e238645d789cd7eb47541b66aea2a887ea122c9b Author: mestre@openbsd.org Date: Fri Jun 23 07:24:48 2017 +0000 upstream commit When using the escape sequence &~ the code path is client_loop() -> client_simple_escape_filter() -> process_escapes() -> fork() and the pledge for this path lacks the proc promise and therefore aborts the process. The solution is to just add proc the promise to this specific pledge. Reported by Gregoire Jadi gjadi ! omecha.info Insight with tb@, OK jca@ Upstream-ID: 63c05e30c28209519f476023b65b0b1b0387a05b commit 5abbb31c4e7a6caa922cc1cbb14e87a77f9d19d3 Author: dtucker@openbsd.org Date: Fri Jun 23 03:30:42 2017 +0000 upstream commit Import regenerated moduli. Upstream-ID: b25bf747544265b39af74fe0716dc8d9f5b63b95 commit 849c5468b6d9b4365784c5dd88e3f1fb568ba38f Author: dtucker@openbsd.org Date: Fri Jun 23 03:25:53 2017 +0000 upstream commit Run the screen twice so we end up with more candidate groups. ok djm@ Upstream-ID: b92c93266d8234d493857bb822260dacf4366157 commit 4626e39c7053c6486c1c8b708ec757e464623f5f Author: dtucker@openbsd.org Date: Wed Jun 14 00:31:38 2017 +0000 upstream commit Add user@host prefix to client's "Permisison denied" messages, useful in particular when using "stacked" connections where it's not clear which host is denying. bz#2720, ok djm@ markus@ Upstream-ID: de88e1e9dcb050c98e85377482d1287a9fe0d2be commit c948030d54911b2d3cddb96a7a8e9269e15d11cd Author: djm@openbsd.org Date: Tue Jun 13 12:13:59 2017 +0000 upstream commit Do not require that unknown EXT_INFO extension values not contain \0 characters. This would cause fatal connection errors if an implementation sent e.g. string-encoded sub-values inside a value. Reported by Denis Bider; ok markus@ Upstream-ID: 030e10fdc605563c040244c4b4f1d8ae75811a5c commit 6026f48dfca78b713e4a7f681ffa42a0afe0929e Author: djm@openbsd.org Date: Tue Jun 13 11:22:15 2017 +0000 upstream commit missing prototype. Upstream-ID: f443d2be9910fd2165a0667956d03343c46f66c9 commit bcd1485075aa72ba9418003f5cc27af2b049c51b Author: Damien Miller Date: Sat Jun 10 23:41:25 2017 +1000 portability for sftp globbed ls sort by mtime Include replacement timespeccmp() for systems that lack it. Support time_t struct stat->st_mtime in addition to timespec stat->st_mtim, as well as unsorted fallback. commit 072e172f1d302d2a2c6043ecbfb4004406717b96 Author: djm@openbsd.org Date: Sat Jun 10 06:36:46 2017 +0000 upstream commit print '?' instead of incorrect link count (that the protocol doesn't provide) for remote listings. bz#2710 ok dtucker@ Upstream-ID: c611f98a66302cea452ef10f13fff8cf0385242e commit 72be5b2f8e7dc37235e8c4b8d0bc7b5ee1301505 Author: djm@openbsd.org Date: Sat Jun 10 06:33:34 2017 +0000 upstream commit implement sorting for globbed ls; bz#2649 ok dtucker@ Upstream-ID: ed3110f351cc9703411bf847ba864041fb7216a8 commit 5b2f34a74aa6a524cd57e856b23e1b7b25007721 Author: djm@openbsd.org Date: Fri Jun 9 06:47:13 2017 +0000 upstream commit return failure rather than fatal() for more cases during mux negotiations. Causes the session to fall back to a non-mux connection if they occur. bz#2707 ok dtucker@ Upstream-ID: d2a7892f464d434e1f615334a1c9d0cdb83b29ab commit 7f5637c4a67a49ef256cb4eedf14e8590ac30976 Author: djm@openbsd.org Date: Fri Jun 9 06:43:01 2017 +0000 upstream commit in description of public key authentication, mention that the server will send debug messages to the client for some error conditions after authentication has completed. bz#2709 ok dtucker Upstream-ID: 750127dbd58c5a2672c2d28bc35fe221fcc8d1dd commit 2076e4adb986512ce8c415dd194fd4e52136c4b4 Author: djm@openbsd.org Date: Fri Jun 9 06:40:24 2017 +0000 upstream commit better translate libcrypto errors by looking deeper in the accursed error stack for codes that indicate the wrong passphrase was supplied for a PEM key. bz#2699 ok dtucker@ Upstream-ID: 4da4286326d570f4f0489459bb71f6297e54b681 commit ad0531614cbe8ec424af3c0fa90c34a8e1ebee4c Author: dtucker@openbsd.org Date: Fri Jun 9 04:40:04 2017 +0000 upstream commit Add comments referring to the relevant RFC sections for rekeying behaviour. Upstream-ID: 6fc8e82485757a27633f9175ad00468f49a07d40 commit ce9134260b9b1247e2385a1afed00c26112ba479 Author: Damien Miller Date: Fri Jun 9 14:43:47 2017 +1000 drop two more privileges in the Solaris sandbox Drop PRIV_DAX_ACCESS and PRIV_SYS_IB_INFO. Patch from huieying.lee AT oracle.com via bz#2723 commit e0f609c8a2ab940374689ab8c854199c3c285a76 Author: Darren Tucker Date: Fri Jun 9 13:36:29 2017 +1000 Wrap stdint.h include in #ifdef. commit 1de5e47a85850526a4fdaf77185134046c050f75 Author: djm@openbsd.org Date: Wed Jun 7 01:48:15 2017 +0000 upstream commit unbreak after sshv1 purge Upstream-Regress-ID: 8ea01a92d5f571b9fba88c1463a4254a7552d51b commit 550c053168123fcc0791f9952abad684704b5760 Author: dtucker@openbsd.org Date: Tue Jun 6 09:12:17 2017 +0000 upstream commit Fix compression output stats broken in rev 1.201. Patch originally by Russell Coker via Debian bug #797964 and Christoph Biedl. ok djm@ Upstream-ID: 83a1903b95ec2e4ed100703debb4b4a313b01016 commit 55d06c6e72a9abf1c06a7ac2749ba733134a1f39 Author: djm@openbsd.org Date: Fri Jun 2 06:06:10 2017 +0000 upstream commit rationalise the long list of manual CDIAGFLAGS that we add; most of these were redundant to -Wall -Wextra Upstream-ID: ea80f445e819719ccdcb237022cacfac990fdc5c commit 1527d9f61e6d50f6c2b4a3fa5b45829034b1b0b1 Author: djm@openbsd.org Date: Thu Jun 1 06:59:21 2017 +0000 upstream commit no need to bzero allocated space now that we use use recallocarray; ok deraadt@ Upstream-ID: 53333c62ccf97de60b8cb570608c1ba5ca5803c8 commit cc812baf39b93d5355565da98648d8c31f955990 Author: djm@openbsd.org Date: Thu Jun 1 06:58:25 2017 +0000 upstream commit unconditionally zero init size of buffer; ok markus@ deraadt@ Upstream-ID: 218963e846d8f26763ba25afe79294547b99da29 commit 65eb8fae0d7ba45ef4483a3cf0ae7fd0dbc7c226 Author: Damien Miller Date: Thu Jun 1 16:25:09 2017 +1000 avoid compiler warning commit 2d75d74272dc2a0521fce13cfe6388800c9a2406 Author: djm@openbsd.org Date: Thu Jun 1 06:16:43 2017 +0000 upstream commit some warnings spotted by clang; ok markus@ Upstream-ID: 24381d68ca249c5cee4388ceb0f383fa5b43991b commit 151c6e433a5f5af761c78de87d7b5d30a453cf5e Author: Damien Miller Date: Thu Jun 1 15:25:13 2017 +1000 add recallocarray replacement and dependency recallocarray() needs getpagesize() so add a tiny replacement for that. commit 01e6f78924da308447e71e9a32c8a6104ef4e888 Author: Damien Miller Date: Thu Jun 1 15:16:24 2017 +1000 add *.0 manpage droppings commit 4b2e2d3fd9dccff357e1e26ce9a5f2e103837a36 Author: djm@openbsd.org Date: Thu Jun 1 04:51:58 2017 +0000 upstream commit fix casts re constness Upstream-ID: e38f2bac162b37dbaf784d349c8327a6626fa266 commit 75b8af8de805c0694b37fcf80ce82783b2acc86f Author: markus@openbsd.org Date: Wed May 31 10:54:00 2017 +0000 upstream commit make sure we don't pass a NULL string to vfprintf (triggered by the principals-command regress test); ok bluhm Upstream-ID: eb49854f274ab37a0b57056a6af379a0b7111990 commit 84008608c9ee944d9f72f5100f31ccff743b10f2 Author: markus@openbsd.org Date: Wed May 31 10:04:29 2017 +0000 upstream commit use SO_ZEROIZE for privsep communication (if available) Upstream-ID: abcbb6d2f8039fc4367a6a78096e5d5c39de4a62 commit 9e509d4ec97cb3d71696f1a2f1fdad254cbbce11 Author: deraadt@openbsd.org Date: Wed May 31 09:15:42 2017 +0000 upstream commit Switch to recallocarray() for a few operations. Both growth and shrinkage are handled safely, and there also is no need for preallocation dances. Future changes in this area will be less error prone. Review and one bug found by markus Upstream-ID: 822d664d6a5a1d10eccb23acdd53578a679d5065 commit dc5dc45662773c0f7745c29cf77ae2d52723e55e Author: deraadt@openbsd.org Date: Wed May 31 08:58:52 2017 +0000 upstream commit These shutdown() SHUT_RDWR are not needed before close() ok djm markus claudio Upstream-ID: 36f13ae4ba10f5618cb9347933101eb4a98dbcb5 commit 1e0cdf8efb745d0d1116e1aa22bdc99ee731695e Author: markus@openbsd.org Date: Wed May 31 08:09:45 2017 +0000 upstream commit clear session keys from memory; ok djm@ Upstream-ID: ecd178819868975affd5fd6637458b7c712b6a0f commit 92e9fe633130376a95dd533df6e5e6a578c1e6b8 Author: markus@openbsd.org Date: Wed May 31 07:00:13 2017 +0000 upstream commit remove now obsolete ctx from ssh_dispatch_run; ok djm@ Upstream-ID: 9870aabf7f4d71660c31fda91b942b19a8e68d29 commit 17ad5b346043c5bbc5befa864d0dbeb76be39390 Author: markus@openbsd.org Date: Wed May 31 05:34:14 2017 +0000 upstream commit use the ssh_dispatch_run_fatal variant Upstream-ID: 28c5b364e37c755d1b22652b8cd6735a05c625d8 commit 39896b777320a6574dd06707aebac5fb98e666da Author: djm@openbsd.org Date: Wed May 31 05:08:46 2017 +0000 upstream commit another ctx => ssh conversion (in GSSAPI code) Upstream-ID: 4d6574c3948075c60608d8e045af42fe5b5d8ae0 commit 6116bd4ed354a71a733c8fd0f0467ce612f12911 Author: Damien Miller Date: Wed May 31 14:56:07 2017 +1000 fix conversion of kexc25519s.c to struct ssh too git cvsimport missed this commit for some reason commit d40dbdc85b6fb2fd78485ba02225511b8cbf20d7 Author: djm@openbsd.org Date: Wed May 31 04:29:44 2017 +0000 upstream commit spell out that custom options/extensions should follow the usual SSH naming rules, e.g. "extension@example.com" Upstream-ID: ab326666d2fad40769ec96b5a6de4015ffd97b8d commit 2a108277f976e8d0955c8b29d1dfde04dcbb3d5b Author: djm@openbsd.org Date: Wed May 31 04:17:12 2017 +0000 upstream commit one more void *ctx => struct ssh *ssh conversion Upstream-ID: d299d043471c10214cf52c03daa10f1c232759e2 commit c04e979503e97f52b750d3b98caa6fe004ab2ab9 Author: djm@openbsd.org Date: Wed May 31 00:43:04 2017 +0000 upstream commit fix possible OOB strlen() in SOCKS4A hostname parsing; ok markus@ Upstream-ID: c67297cbeb0e5a19d81752aa18ec44d31270cd11 commit a3bb250c93bfe556838c46ed965066afce61cffa Author: jmc@openbsd.org Date: Tue May 30 19:38:17 2017 +0000 upstream commit tweak previous; Upstream-ID: 66987651046c42d142f7318c9695fb81a6d14031 commit 1112b534a6a7a07190e497e6bf86b0d5c5fb02dc Author: bluhm@openbsd.org Date: Tue May 30 18:58:37 2017 +0000 upstream commit Add RemoteCommand option to specify a command in the ssh config file instead of giving it on the client's command line. This command will be executed on the remote host. The feature allows to automate tasks using ssh config. OK markus@ Upstream-ID: 5d982fc17adea373a9c68cae1021ce0a0904a5ee commit eb272ea4099fd6157846f15c129ac5727933aa69 Author: markus@openbsd.org Date: Tue May 30 14:29:59 2017 +0000 upstream commit switch auth2 to ssh_dispatch API; ok djm@ Upstream-ID: a752ca19e2782900dd83060b5c6344008106215f commit 5a146bbd4fdf5c571f9fb438e5210d28cead76d9 Author: markus@openbsd.org Date: Tue May 30 14:27:22 2017 +0000 upstream commit switch auth2-none.c to modern APIs; ok djm@ Upstream-ID: 07252b58e064d332214bcabbeae8e08c44b2001b commit 60306b2d2f029f91927c6aa7c8e08068519a0fa2 Author: markus@openbsd.org Date: Tue May 30 14:26:49 2017 +0000 upstream commit switch auth2-passwd.c to modern APIs; ok djm@ Upstream-ID: cba0a8b72b4f97adfb7e3b3fd2f8ba3159981fc7 commit eb76698b91338bd798c978d4db2d6af624d185e4 Author: markus@openbsd.org Date: Tue May 30 14:25:42 2017 +0000 upstream commit switch auth2-hostbased.c to modern APIs; ok djm@ Upstream-ID: 146af25c36daeeb83d5dbbb8ca52b5d25de88f4e commit 2ae666a8fc20b3b871b2f1b90ad65cc027336ccd Author: markus@openbsd.org Date: Tue May 30 14:23:52 2017 +0000 upstream commit protocol handlers all get struct ssh passed; ok djm@ Upstream-ID: 0ca9ea2a5d01a6d2ded94c5024456a930c5bfb5d commit 94583beb24a6c5fd19cedb9104ab2d2d5cd052b6 Author: markus@openbsd.org Date: Tue May 30 14:19:15 2017 +0000 upstream commit ssh: pass struct ssh to auth functions, too; ok djm@ Upstream-ID: d13c509cc782f8f19728fbea47ac7cf36f6e85dd commit 5f4082d886c6173b9e90b9768c9a38a3bfd92c2b Author: markus@openbsd.org Date: Tue May 30 14:18:15 2017 +0000 upstream commit sshd: pass struct ssh to auth functions; ok djm@ Upstream-ID: b00a80c3460884ebcdd14ef550154c761aebe488 commit 7da5df11ac788bc1133d8d598d298e33500524cc Author: markus@openbsd.org Date: Tue May 30 14:16:41 2017 +0000 upstream commit remove unused wrapper functions from key.[ch]; ok djm@ Upstream-ID: ea0f4016666a6817fc11f439dd4be06bab69707e commit ff7371afd08ac0bbd957d90451d4dcd0da087ef5 Author: markus@openbsd.org Date: Tue May 30 14:15:17 2017 +0000 upstream commit sshkey_new() might return NULL (pkcs#11 code only); ok djm@ Upstream-ID: de9f2ad4a42c0b430caaa7d08dea7bac943075dd commit beb965bbc5a984fa69fb1e2b45ebe766ae09d1ef Author: markus@openbsd.org Date: Tue May 30 14:13:40 2017 +0000 upstream commit switch sshconnect.c to modern APIs; ok djm@ Upstream-ID: 27be17f84b950d5e139b7a9b281aa487187945ad commit 00ed75c92d1f95fe50032835106c368fa22f0f02 Author: markus@openbsd.org Date: Tue May 30 14:10:53 2017 +0000 upstream commit switch auth2-pubkey.c to modern APIs; with & ok djm@ Upstream-ID: 8f08d4316eb1b0c4ffe4a206c05cdd45ed1daf07 commit 54d90ace1d3535b44d92a8611952dc109a74a031 Author: markus@openbsd.org Date: Tue May 30 08:52:19 2017 +0000 upstream commit switch from Key typedef with struct sshkey; ok djm@ Upstream-ID: 3067d33e04efbe5131ce8f70668c47a58e5b7a1f commit c221219b1fbee47028dcaf66613f4f8d6b7640e9 Author: markus@openbsd.org Date: Tue May 30 08:49:58 2017 +0000 upstream commit remove ssh1 references; ok djm@ Upstream-ID: fc23b7578e7b0a8daaec72946d7f5e58ffff5a3d commit afbfa68fa18081ef05a9cd294958509a5d3cda8b Author: markus@openbsd.org Date: Tue May 30 08:49:32 2017 +0000 upstream commit revise sshkey_load_public(): remove ssh1 related comments, remove extra open()/close() on keyfile, prevent leak of 'pub' if 'keyp' is NULL, replace strlcpy+cat with asprintf; ok djm@ Upstream-ID: 6175e47cab5b4794dcd99c1175549a483ec673ca commit 813f55336a24fdfc45e7ed655fccc7d792e8f859 Author: markus@openbsd.org Date: Fri May 26 20:34:49 2017 +0000 upstream commit sshbuf_consume: reset empty buffer; ok djm@ Upstream-ID: 0d4583ba57f69e369d38bbd7843d85cac37fa821 commit 6cf711752cc2a7ffaad1fb4de18cae65715ed8bb Author: markus@openbsd.org Date: Fri May 26 19:35:50 2017 +0000 upstream commit remove SSH_CHANNEL_XXX_DRAINING (ssh1 only); ok djm@ Upstream-ID: e2e225b6ac67b84dd024f38819afff2554fafe42 commit 364f0d5edea27767fb0f915ea7fc61aded88d3e8 Author: markus@openbsd.org Date: Fri May 26 19:34:12 2017 +0000 upstream commit remove channel_input_close_confirmation (ssh1 only); ok djm@ Upstream-ID: 8e7c8c38f322d255bb0294a5c0ebef53fdf576f1 commit 8ba0fd40082751dbbc23a830433488bbfb1abdca Author: djm@openbsd.org Date: Fri May 26 01:40:07 2017 +0000 upstream commit fix references to obsolete v00 cert format; spotted by Jakub Jelen Upstream-ID: 7600ce193ab8fd19451acfe24fc2eb39d46b2c4f commit dcc714c65cfb81eb6903095b4590719e8690f3da Author: Mike Frysinger Date: Wed May 24 23:21:19 2017 -0400 configure: actually set cache vars when cross-compiling The cross-compiling fallback message says it's assuming the test passed, but it didn't actually set the cache var which causes later tests to fail. commit 947a3e829a5b8832a4768fd764283709a4ca7955 Author: djm@openbsd.org Date: Sat May 20 02:35:47 2017 +0000 upstream commit there's no reason to artificially limit the key path here, just check that it fits PATH_MAX; spotted by Matthew Patton Upstream-ID: 858addaf2009c9cf04d80164a41b2088edb30b58 commit 773224802d7cb250bb8b461546fcce10567b4b2e Author: djm@openbsd.org Date: Fri May 19 21:07:17 2017 +0000 upstream commit Now that we no longer support SSHv1, replace the contents of this file with a pointer to https://tools.ietf.org/html/draft-miller-ssh-agent-00 It's better edited, doesn't need to document stuff we no longer implement and does document stuff that we do implement (RSA SHA256/512 signature flags) Upstream-ID: da8cdc46bbcc266efabd565ddddd0d8e556f846e commit 54cd41a4663fad66406dd3c8fe0e4760ccd8a899 Author: djm@openbsd.org Date: Wed May 17 01:24:17 2017 +0000 upstream commit allow LogLevel in sshd_config Match blocks; ok dtucker bz#2717 Upstream-ID: 662e303be63148f47db1aa78ab81c5c2e732baa8 commit 277abcda3f1b08d2376686f0ef20320160d4c8ab Author: djm@openbsd.org Date: Tue May 16 16:56:15 2017 +0000 upstream commit remove duplicate check; spotted by Jakub Jelen Upstream-ID: 30c2996c1767616a8fdc49d4cee088efac69c3b0 commit adb47ce839c977fa197e770c1be8f852508d65aa Author: djm@openbsd.org Date: Tue May 16 16:54:05 2017 +0000 upstream commit mention that Ed25519 keys are valid as CA keys; spotted by Jakub Jelen Upstream-ID: d3f6db58b30418cb1c3058211b893a1ffed3dfd4 commit 6bdf70f01e700348bb4d8c064c31a0ab90896df6 Author: Damien Miller Date: Tue May 9 14:35:03 2017 +1000 clean up regress files and add a .gitignore commit 7bdb2eeb1d3c26acdc409bd94532eefa252e440b Author: djm@openbsd.org Date: Mon May 8 22:57:38 2017 +0000 upstream commit remove hmac-ripemd160; ok dtucker Upstream-ID: 896e737ea0bad6e23327d1c127e02d5e9e9c654d commit 5f02bb1f99f70bb422be8a5c2b77ef853f1db554 Author: djm@openbsd.org Date: Mon May 8 06:11:06 2017 +0000 upstream commit make requesting bad ECDSA bits yield the same error (SSH_ERR_KEY_LENGTH) as the same mistake for RSA/DSA Upstream-ID: bf40d3fee567c271e33f05ef8e4e0fa0b6f0ece6 commit d757a4b633e8874629a1442c7c2e7b1b55d28c19 Author: djm@openbsd.org Date: Mon May 8 06:08:42 2017 +0000 upstream commit fix for new SSH_ERR_KEY_LENGTH error value Upstream-Regress-ID: c38a6e6174d4c3feca3518df150d4fbae0dca8dc commit 2e58a69508ac49c02d1bb6057300fa6a76db1045 Author: djm@openbsd.org Date: Mon May 8 06:03:39 2017 +0000 upstream commit helps if I commit the correct version of the file. fix missing return statement. Upstream-ID: c86394a3beeb1ec6611e659bfa830254f325546c commit effaf526bfa57c0ac9056ca236becf52385ce8af Author: djm@openbsd.org Date: Mon May 8 01:52:49 2017 +0000 upstream commit remove arcfour, blowfish and CAST here too Upstream-Regress-ID: c613b3bcbef75df1fe84ca4dc2d3ef253dc5e920 commit 7461a5bc571696273252df28a1f1578968cae506 Author: djm@openbsd.org Date: Mon May 8 00:21:36 2017 +0000 upstream commit I was too aggressive with the scalpel in the last commit; unbreak sshd, spotted quickly by naddy@ Upstream-ID: fb7e75d2b2c7e6ca57dee00ca645e322dd49adbf commit bd636f40911094a39c2920bf87d2ec340533c152 Author: djm@openbsd.org Date: Sun May 7 23:15:59 2017 +0000 upstream commit Refuse RSA keys <1024 bits in length. Improve reporting for keys that do not meet this requirement. ok markus@ Upstream-ID: b385e2a7b13b1484792ee681daaf79e1e203df6c commit 70c1218fc45757a030285051eb4d209403f54785 Author: djm@openbsd.org Date: Sun May 7 23:13:42 2017 +0000 upstream commit Don't offer CBC ciphers by default in the client. ok markus@ Upstream-ID: 94c9ce8d0d1a085052e11c7f3307950fdc0901ef commit acaf34fd823235d549c633c0146ee03ac5956e82 Author: djm@openbsd.org Date: Sun May 7 23:12:57 2017 +0000 upstream commit As promised in last release announcement: remove support for Blowfish, RC4 and CAST ciphers. ok markus@ deraadt@ Upstream-ID: 21f8facdba3fd8da248df6417000867cec6ba222 commit 3e371bd2124427403971db853fb2e36ce789b6fd Author: naddy@openbsd.org Date: Fri May 5 10:42:49 2017 +0000 upstream commit more simplification and removal of SSHv1-related code; ok djm@ Upstream-ID: d2f041aa0b79c0ebd98c68a01e5a0bfab2cf3b55 commit 2e9c324b3a7f15c092d118c2ac9490939f6228fd Author: naddy@openbsd.org Date: Fri May 5 10:41:58 2017 +0000 upstream commit remove superfluous protocol 2 mentions; ok jmc@ Upstream-ID: 0aaf7567c9f2e50fac5906b6a500a39c33c4664d commit 744bde79c3361e2153cb395a2ecdcee6c713585d Author: djm@openbsd.org Date: Thu May 4 06:10:57 2017 +0000 upstream commit since a couple of people have asked, leave a comment explaining why we retain SSH v.1 support in the "delete all keys from agent" path. Upstream-ID: 4b42dcfa339813c15fe9248a2c1b7ed41c21bbb4 commit 0c378ff6d98d80bc465a4a6a787670fb9cc701ee Author: djm@openbsd.org Date: Thu May 4 01:33:21 2017 +0000 upstream commit another tentacle: cipher_set_key_string() was only ever used for SSHv1 Upstream-ID: 7fd31eb6c48946f7e7cc12af0699fe8eb637e94a commit 9a82e24b986e3e0dc70849dbb2c19aa6c707b37f Author: naddy@openbsd.org Date: Wed May 3 21:49:18 2017 +0000 upstream commit restore mistakenly deleted description of the ConnectionAttempts option ok markus@ Upstream-ID: 943002b1b7c470caea3253ba7b7348c359de0348 commit 768405fddf64ff83aa6ef701ebb3c1f82d98a2f3 Author: naddy@openbsd.org Date: Wed May 3 21:08:09 2017 +0000 upstream commit remove miscellaneous SSH1 leftovers; ok markus@ Upstream-ID: af23696022ae4d45a1abc2fb8b490d8d9dd63b7c commit 1a1b24f8229bf7a21f89df21987433283265527a Author: jmc@openbsd.org Date: Wed May 3 10:01:44 2017 +0000 upstream commit more protocol 1 bits removed; ok djm Upstream-ID: b5b977eaf756915acb56aef3604a650e27f7c2b9 commit 2b6f799e9b230cf13a7eefc05ecead7d8569d6b5 Author: jmc@openbsd.org Date: Wed May 3 06:32:02 2017 +0000 upstream commit more protocol 1 stuff to go; ok djm Upstream-ID: 307a30441d2edda480fd1661d998d36665671e47 commit f10c0d32cde2084d2a0b19bc47d80cb93e85a093 Author: jmc@openbsd.org Date: Tue May 2 17:04:09 2017 +0000 upstream commit rsa1 is no longer valid; Upstream-ID: 9953d09ed9841c44b7dcf7019fa874783a709d89 commit 42b690b4fd0faef78c4d68225948b6e5c46c5163 Author: jmc@openbsd.org Date: Tue May 2 14:06:37 2017 +0000 upstream commit add PubKeyAcceptedKeyTypes to the -o list: scp(1) has it, so i guess this should too; Upstream-ID: 7fab32e869ca5831d09ab0c40d210b461d527a2c commit d852603214defd93e054de2877b20cc79c19d0c6 Author: jmc@openbsd.org Date: Tue May 2 13:44:51 2017 +0000 upstream commit remove now obsolete protocol1 options from the -o lists; Upstream-ID: 828e478a440bc5f9947672c392420510a362b3dd commit 8b60ce8d8111e604c711c4cdd9579ffe0edced74 Author: jmc@openbsd.org Date: Tue May 2 09:05:58 2017 +0000 upstream commit more -O shuffle; ok djm Upstream-ID: c239991a3a025cdbb030b73e990188dd9bfbeceb commit 3575f0b12afe6b561681582fd3c34067d1196231 Author: djm@openbsd.org Date: Tue May 2 08:54:19 2017 +0000 upstream commit remove -1 / -2 options; pointed out by jmc@ Upstream-ID: 65d2a816000741a95df1c7cfdb5fa8469fcc7daa commit 4f1ca823bad12e4f9614895eefe0d0073b84a28f Author: jmc@openbsd.org Date: Tue May 2 08:06:33 2017 +0000 upstream commit remove options -12 from usage(); Upstream-ID: db7ceef25132e63b50ed05289bf447fece1d1270 commit 6b84897f7fd39956b849eac7810319d8a9958568 Author: jmc@openbsd.org Date: Tue May 2 07:13:31 2017 +0000 upstream commit tidy up -O somewhat; ok djm Upstream-ID: 804405f716bf7ef15c1f36ab48581ca16aeb4d52 commit d1c6b7fdbdfe4a7a37ecd48a97f0796b061c2868 Author: djm@openbsd.org Date: Mon May 1 22:09:48 2017 +0000 upstream commit when freeing a bitmap, zero all it bytes; spotted by Ilya Kaliman Upstream-ID: 834ac024f2c82389d6ea6b1c7d6701b3836e28e4 commit 0f163983016c2988a92e039d18a7569f9ea8e071 Author: djm@openbsd.org Date: Mon May 1 14:08:26 2017 +0000 upstream commit this one I did forget to "cvs rm" Upstream-ID: 5781670c0578fe89663c9085ed3ba477cf7e7913 commit 21ed00a8e26fe8a772bcca782175fafc2b0890ed Author: djm@openbsd.org Date: Mon May 1 09:27:45 2017 +0000 upstream commit don't know why cvs didn't exterminate these the first time around, I use rm -f and everuthing... pointed out by sobrado@ Upstream-ID: a6c44a0c2885330d322ee01fcfd7f6f209b1e15d commit d29ba6f45086703fdcb894532848ada3427dfde6 Author: Darren Tucker Date: Mon May 1 13:53:07 2017 +1000 Define INT32_MAX and INT64_MAX if needed. commit 329037e389f02ec95c8e16bf93ffede94d3d44ce Author: Darren Tucker Date: Mon May 1 13:19:41 2017 +1000 Wrap stdint.h in HAVE_STDINT_H commit f382362e8dfb6b277f16779ab1936399d7f2af78 Author: djm@openbsd.org Date: Mon May 1 02:27:11 2017 +0000 upstream commit remove unused variable Upstream-ID: 66011f00819d0e71b14700449a98414033284516 commit dd369320d2435b630a5974ab270d686dcd92d024 Author: djm@openbsd.org Date: Sun Apr 30 23:34:55 2017 +0000 upstream commit eliminate explicit specification of protocol in tests and loops over protocol. We only support SSHv2 now. Upstream-Regress-ID: 0082838a9b8a382b7ee9cbf0c1b9db727784fadd commit 557f921aad004be15805e09fd9572969eb3d9321 Author: djm@openbsd.org Date: Sun Apr 30 23:33:48 2017 +0000 upstream commit remove SSHv1 support from unit tests Upstream-Regress-ID: 395ca2aa48f1f7d23eefff6cb849ea733ca8bbfe commit e77e1562716fb3da413e4c2397811017b762f5e3 Author: djm@openbsd.org Date: Mon May 1 00:03:18 2017 +0000 upstream commit fixup setting ciphercontext->plaintext (lost in SSHv1 purge), though it isn't really used for much anymore. Upstream-ID: 859b8bce84ff4865b32097db5430349d04b9b747 commit f7849e6c83a4e0f602dea6c834a24091c622d68e Author: Damien Miller Date: Mon May 1 09:55:56 2017 +1000 remove configure --with-ssh1 commit f4a6a88ddb6dba6d2f7bfb9e2c9879fcc9633043 Author: djm@openbsd.org Date: Sun Apr 30 23:29:10 2017 +0000 upstream commit flense SSHv1 support from ssh-agent, considerably simplifying it ok markus Upstream-ID: 71d772cdcefcb29f76e01252e8361e6fc2dfc365 commit 930e8d2827853bc2e196c20c3e000263cc87fb75 Author: djm@openbsd.org Date: Sun Apr 30 23:28:41 2017 +0000 upstream commit obliterate ssh1.h and some dead code that used it ok markus@ Upstream-ID: 1ca9159a9fb95618f9d51e069ac8e1131a087343 commit a3710d5d529a34b8f56aa62db798c70e85d576a0 Author: djm@openbsd.org Date: Sun Apr 30 23:28:12 2017 +0000 upstream commit exterminate the -1 flag from scp ok markus@ Upstream-ID: 26d247f7065da15056b209cef5f594ff591b89db commit aebd0abfaa8a41e75d50f9f7934267b0a2d9acb4 Author: djm@openbsd.org Date: Sun Apr 30 23:26:54 2017 +0000 upstream commit purge the last traces of SSHv1 from the TTY modes handling code ok markus Upstream-ID: 963a19f1e06577377c38a3b7ce468f121b966195 commit dfa641f758d4b8b2608ab1b00abaf88df0a8e36a Author: djm@openbsd.org Date: Sun Apr 30 23:26:16 2017 +0000 upstream commit remove the (in)famous SSHv1 CRC compensation attack detector. Despite your cameo in The Matrix movies, you will not be missed. ok markus Upstream-ID: 44261fce51a56d93cdb2af7b6e184be629f667e0 commit e5d3bd36ef67d82092861f39b5bf422cb12b31a6 Author: djm@openbsd.org Date: Sun Apr 30 23:25:03 2017 +0000 upstream commit undo some local debugging stuff that I committed by accident Upstream-ID: fe5b31f69a60d47171836911f144acff77810217 commit 3d6d09f2e90f4ad650ebda6520bf2da446f37f14 Author: djm@openbsd.org Date: Sun Apr 30 23:23:54 2017 +0000 upstream commit remove SSHv1 support from packet and buffer APIs ok markus@ Upstream-ID: bfc290053d40b806ecac46317d300677d80e1dc9 commit 05164358577c82de18ed7373196bc7dbd8a3f79c Author: djm@openbsd.org Date: Sun Apr 30 23:21:54 2017 +0000 upstream commit remove SSHv1-related buffers from client code Upstream-ID: dca5d01108f891861ceaf7ba1c0f2eb274e0c7dd commit 873d3e7d9a4707d0934fb4c4299354418f91b541 Author: djm@openbsd.org Date: Sun Apr 30 23:18:44 2017 +0000 upstream commit remove KEY_RSA1 ok markus@ Upstream-ID: 7408517b077c892a86b581e19f82a163069bf133 commit 788ac799a6efa40517f2ac0d895a610394298ffc Author: djm@openbsd.org Date: Sun Apr 30 23:18:22 2017 +0000 upstream commit remove SSHv1 configuration options and man pages bits ok markus@ Upstream-ID: 84638c23546c056727b7a7d653c72574e0f19424 commit e6882463a8ae0594aacb6d6575a6318a41973d84 Author: djm@openbsd.org Date: Sun Apr 30 23:17:37 2017 +0000 upstream commit remove SSH1 make flag and associated files ok markus@ Upstream-ID: ba9feacc5787337c413db7cf26ea3d53f854cfef commit cdccebdf85204bf7542b7fcc1aa2ea3f36661833 Author: djm@openbsd.org Date: Sun Apr 30 23:15:04 2017 +0000 upstream commit remove SSHv1 ciphers; ok markus@ Upstream-ID: e5ebc5e540d7f23a8c1266db1839794d4d177890 commit 97f4d3083b036ce3e68d6346a6140a22123d5864 Author: djm@openbsd.org Date: Sun Apr 30 23:13:25 2017 +0000 upstream commit remove compat20/compat13/compat15 variables ok markus@ Upstream-ID: 43802c035ceb3fef6c50c400e4ecabf12354691c commit 99f95ba82673d33215dce17bfa1512b57f54ec09 Author: djm@openbsd.org Date: Sun Apr 30 23:11:45 2017 +0000 upstream commit remove options.protocol and client Protocol configuration knob ok markus@ Upstream-ID: 5a967f5d06e2d004b0235457b6de3a9a314e9366 commit 56912dea6ef63dae4eb1194e5d88973a7c6c5740 Author: djm@openbsd.org Date: Sun Apr 30 23:10:43 2017 +0000 upstream commit unifdef WITH_SSH1 ok markus@ Upstream-ID: 9716e62a883ef8826c57f4d33b4a81a9cc7755c7 commit d4084cd230f7319056559b00db8b99296dad49d5 Author: jmc@openbsd.org Date: Sat Apr 29 06:06:01 2017 +0000 upstream commit tweak previous; Upstream-ID: a3abc6857455299aa42a046d232b7984568bceb9 commit 249516e428e8461b46340a5df5d5ed1fbad2ccce Author: djm@openbsd.org Date: Sat Apr 29 04:12:25 2017 +0000 upstream commit allow ssh-keygen to include arbitrary string or flag certificate extensions and critical options. ok markus@ dtucker@ Upstream-ID: 2cf28dd6c5489eb9fc136e0b667ac3ea10241646 commit 47a287bb6ac936c26b4f3ae63279c02902ded3b9 Author: jmc@openbsd.org Date: Fri Apr 28 06:15:03 2017 +0000 upstream commit sort; Upstream-ID: 7e6b56e52b039cf44d0418e9de9aca20a2d2d15a commit 36465a76a79ad5040800711b41cf5f32249d5120 Author: Darren Tucker Date: Fri Apr 28 14:44:28 2017 +1000 Typo. Upstream-Regress-ID: 1e6b51ddf767cbad0a4e63eb08026c127e654308 commit 9d18cb7bdeb00b20205fd13d412aae8c0e0457ed Author: Darren Tucker Date: Fri Apr 28 14:41:17 2017 +1000 Add 2 regress commits I applied by hand. Upstream-Regress-ID: 30c20180c87cbc99fa1020489fe7fd8245b6420c Upstream-Regress-ID: 1e6b51ddf767cbad0a4e63eb08026c127e654308 commit 9504ea6b27f9f0ece64e88582ebb9235e664a100 Author: Darren Tucker Date: Fri Apr 28 14:33:43 2017 +1000 Merge integrity.sh rev 1.22. Merge missing bits from Colin Watson's patch in bz#2658 which make integrity tests more robust against timeouts. ok djm@ commit 06ec837a34542627e2183a412d6a9d2236f22140 Author: Darren Tucker Date: Fri Apr 28 14:30:03 2017 +1000 Id sync for integrity.sh rev 1.21 which pulls in some shell portability fixes commit e0194b471efe7d3daedc9cc66686cb1ab69d3be8 Author: jsg@openbsd.org Date: Mon Apr 17 11:02:31 2017 +0000 upstream commit Change COMPILER_VERSION tests which limited additional warnings to gcc4 to instead skip them on gcc3 as clang can handle -Wpointer-sign and -Wold-style-definition. Upstream-Regress-ID: e48d7dc13e48d9334b8195ef884dfbc51316012f commit 6830be90e71f46bcd182a9202b151eaf2b299434 Author: djm@openbsd.org Date: Fri Apr 28 03:24:53 2017 +0000 upstream commit include key fingerprint in "Offering public key" debug message Upstream-ID: 964749f820c2ed4cf6a866268b1a05e907315c52 commit 066437187e16dcafcbc19f9402ef0e6575899b1d Author: millert@openbsd.org Date: Fri Apr 28 03:21:12 2017 +0000 upstream commit Avoid relying on implementation-specific behavior when detecting whether the timestamp or file size overflowed. If time_t and off_t are not either 32-bit or 64-bit scp will exit with an error. OK djm@ Upstream-ID: f31caae73ddab6df496b7bbbf7da431e267ad135 commit 68d3a2a059183ebd83b15e54984ffaced04d2742 Author: dtucker@openbsd.org Date: Fri Apr 28 03:20:27 2017 +0000 upstream commit Add SyslogFacility option to ssh(1) matching the equivalent option in sshd(8). bz#2705, patch from erahn at arista.com, ok djm@ Upstream-ID: d5115c2c0193ceb056ed857813b2a7222abda9ed commit e13aad66e73a14b062d13aee4e98f1e21a3f6a14 Author: jsg@openbsd.org Date: Thu Apr 27 13:40:05 2017 +0000 upstream commit remove a static array unused since rev 1.306 spotted by clang ok djm@ Upstream-ID: 249b3eed2446f6074ba2219ccc46919dd235a7b8 commit 91bd2181866659f00714903e78e1c3edd4c45f3d Author: millert@openbsd.org Date: Thu Apr 27 11:53:12 2017 +0000 upstream commit Avoid potential signed int overflow when parsing the file size. Use strtoul() instead of parsing manually. OK djm@ Upstream-ID: 1f82640861c7d905bbb05e7d935d46b0419ced02 commit 17a54a03f5a1d35e33cc24e22cd7a9d0f6865dc4 Author: Darren Tucker Date: Tue Apr 25 08:32:27 2017 +1000 Fix typo in "socketcall". Pointed out by jjelen at redhat.com. commit 8b0eee148f7cf8b248c30d1bae57300f2cc5aafd Author: Darren Tucker Date: Mon Apr 24 19:40:31 2017 +1000 Deny socketcall in seccomp filter on ppc64le. OpenSSL is using socket() calls (in FIPS mode) when handling ECDSA keys in privsep child. The socket() syscall is already denied in the seccomp filter, but in ppc64le kernel, it is implemented using socketcall() syscall, which is not denied yet (only SYS_SHUTDOWN is allowed) and therefore fails hard. Patch from jjelen at redhat.com. commit f8500b2be599053daa05248a86a743232ec6a536 Author: schwarze@openbsd.org Date: Mon Apr 17 14:31:23 2017 +0000 upstream commit Recognize nl_langinfo(CODESET) return values "646" and "" as aliases for "US-ASCII", useful for different versions of NetBSD and Solaris. Found by dtucker@ and by Tom G. Christensen . OK dtucker@ deraadt@ Upstream-ID: 38c2133817cbcae75c88c63599ac54228f0fa384 commit 7480dfedf8c5c93baaabef444b3def9331e86ad5 Author: jsg@openbsd.org Date: Mon Apr 17 11:02:31 2017 +0000 upstream commit Change COMPILER_VERSION tests which limited additional warnings to gcc4 to instead skip them on gcc3 as clang can handle -Wpointer-sign and -Wold-style-definition. Upstream-ID: 5cbe348aa76dc1adf55be6c0e388fafaa945439a PKp:1]PROTOCOL.chacha20poly1305nu[This document describes the chacha20-poly1305@openssh.com authenticated encryption cipher supported by OpenSSH. Background ---------- ChaCha20 is a stream cipher designed by Daniel Bernstein and described in [1]. It operates by permuting 128 fixed bits, 128 or 256 bits of key, a 64 bit nonce and a 64 bit counter into 64 bytes of output. This output is used as a keystream, with any unused bytes simply discarded. Poly1305[2], also by Daniel Bernstein, is a one-time Carter-Wegman MAC that computes a 128 bit integrity tag given a message and a single-use 256 bit secret key. The chacha20-poly1305@openssh.com combines these two primitives into an authenticated encryption mode. The construction used is based on that proposed for TLS by Adam Langley in [3], but differs in the layout of data passed to the MAC and in the addition of encryption of the packet lengths. Negotiation ----------- The chacha20-poly1305@openssh.com offers both encryption and authentication. As such, no separate MAC is required. If the chacha20-poly1305@openssh.com cipher is selected in key exchange, the offered MAC algorithms are ignored and no MAC is required to be negotiated. Detailed Construction --------------------- The chacha20-poly1305@openssh.com cipher requires 512 bits of key material as output from the SSH key exchange. This forms two 256 bit keys (K_1 and K_2), used by two separate instances of chacha20. The first 256 bits consitute K_2 and the second 256 bits become K_1. The instance keyed by K_1 is a stream cipher that is used only to encrypt the 4 byte packet length field. The second instance, keyed by K_2, is used in conjunction with poly1305 to build an AEAD (Authenticated Encryption with Associated Data) that is used to encrypt and authenticate the entire packet. Two separate cipher instances are used here so as to keep the packet lengths confidential but not create an oracle for the packet payload cipher by decrypting and using the packet length prior to checking the MAC. By using an independently-keyed cipher instance to encrypt the length, an active attacker seeking to exploit the packet input handling as a decryption oracle can learn nothing about the payload contents or its MAC (assuming key derivation, ChaCha20 and Poly1305 are secure). The AEAD is constructed as follows: for each packet, generate a Poly1305 key by taking the first 256 bits of ChaCha20 stream output generated using K_2, an IV consisting of the packet sequence number encoded as an uint64 under the SSH wire encoding rules and a ChaCha20 block counter of zero. The K_2 ChaCha20 block counter is then set to the little-endian encoding of 1 (i.e. {1, 0, 0, 0, 0, 0, 0, 0}) and this instance is used for encryption of the packet payload. Packet Handling --------------- When receiving a packet, the length must be decrypted first. When 4 bytes of ciphertext length have been received, they may be decrypted using the K_1 key, a nonce consisting of the packet sequence number encoded as a uint64 under the usual SSH wire encoding and a zero block counter to obtain the plaintext length. Once the entire packet has been received, the MAC MUST be checked before decryption. A per-packet Poly1305 key is generated as described above and the MAC tag calculated using Poly1305 with this key over the ciphertext of the packet length and the payload together. The calculated MAC is then compared in constant time with the one appended to the packet and the packet decrypted using ChaCha20 as described above (with K_2, the packet sequence number as nonce and a starting block counter of 1). To send a packet, first encode the 4 byte length and encrypt it using K_1. Encrypt the packet payload (using K_2) and append it to the encrypted length. Finally, calculate a MAC tag and append it. Rekeying -------- ChaCha20 must never reuse a {key, nonce} for encryption nor may it be used to encrypt more than 2^70 bytes under the same {key, nonce}. The SSH Transport protocol (RFC4253) recommends a far more conservative rekeying every 1GB of data sent or received. If this recommendation is followed, then chacha20-poly1305@openssh.com requires no special handling in this area. References ---------- [1] "ChaCha, a variant of Salsa20", Daniel Bernstein http://cr.yp.to/chacha/chacha-20080128.pdf [2] "The Poly1305-AES message-authentication code", Daniel Bernstein http://cr.yp.to/mac/poly1305-20050329.pdf [3] "ChaCha20 and Poly1305 based Cipher Suites for TLS", Adam Langley http://tools.ietf.org/html/draft-agl-tls-chacha20poly1305-03 $OpenBSD: PROTOCOL.chacha20poly1305,v 1.4 2018/04/10 00:10:49 djm Exp $ PKp:1]$$INSTALLnu[1. Prerequisites ---------------- A C compiler. Any C89 or better compiler should work. Where supported, configure will attempt to enable the compiler's run-time integrity checking options. Some notes about specific compilers: - clang: -ftrapv and -sanitize=integer require the compiler-rt runtime (CC=clang LDFLAGS=--rtlib=compiler-rt ./configure) You will need working installations of Zlib and libcrypto (LibreSSL / OpenSSL) Zlib 1.1.4 or 1.2.1.2 or greater (earlier 1.2.x versions have problems): http://www.gzip.org/zlib/ libcrypto from either of: - LibreSSL (http://www.libressl.org/) - OpenSSL 1.0.x >= 1.0.1 or 1.1.0 >= 1.1.0g (http://www.openssl.org/) LibreSSL/OpenSSL should be compiled as a position-independent library (i.e. with -fPIC) otherwise OpenSSH will not be able to link with it. If you must use a non-position-independent libcrypto, then you may need to configure OpenSSH --without-pie. Note that due to a bug in EVP_CipherInit OpenSSL 1.1 versions prior to 1.1.0g can't be used. The remaining items are optional. NB. If you operating system supports /dev/random, you should configure libcrypto (LibreSSL/OpenSSL) to use it. OpenSSH relies on libcrypto's direct support of /dev/random, or failing that, either prngd or egd PRNGD: If your system lacks kernel-based random collection, the use of Lutz Jaenicke's PRNGd is recommended. http://prngd.sourceforge.net/ EGD: If the kernel lacks /dev/random the Entropy Gathering Daemon (EGD) is supported only if libcrypto supports it. http://egd.sourceforge.net/ PAM: OpenSSH can utilise Pluggable Authentication Modules (PAM) if your system supports it. PAM is standard most Linux distributions, Solaris, HP-UX 11, AIX >= 5.2, FreeBSD and NetBSD. Information about the various PAM implementations are available: Solaris PAM: http://www.sun.com/software/solaris/pam/ Linux PAM: http://www.kernel.org/pub/linux/libs/pam/ OpenPAM: http://www.openpam.org/ If you wish to build the GNOME passphrase requester, you will need the GNOME libraries and headers. GNOME: http://www.gnome.org/ Alternatively, Jim Knoble has written an excellent X11 passphrase requester. This is maintained separately at: http://www.jmknoble.net/software/x11-ssh-askpass/ LibEdit: sftp supports command-line editing via NetBSD's libedit. If your platform has it available natively you can use that, alternatively you might try these multi-platform ports: http://www.thrysoee.dk/editline/ http://sourceforge.net/projects/libedit/ LDNS: LDNS is a DNS BSD-licensed resolver library which supports DNSSEC. http://nlnetlabs.nl/projects/ldns/ Autoconf: If you modify configure.ac or configure doesn't exist (eg if you checked the code out of git yourself) then you will need autoconf-2.69 to rebuild the automatically generated files by running "autoreconf". Earlier versions may also work but this is not guaranteed. http://www.gnu.org/software/autoconf/ Basic Security Module (BSM): Native BSM support is known to exist in Solaris from at least 2.5.1, FreeBSD 6.1 and OS X. Alternatively, you may use the OpenBSM implementation (http://www.openbsm.org). makedepend: https://www.x.org/archive/individual/util/ If you are making significant changes to the code you may need to rebuild the dependency (.depend) file using "make depend", which requires the "makedepend" tool from the X11 distribution. 2. Building / Installation -------------------------- To install OpenSSH with default options: ./configure make make install This will install the OpenSSH binaries in /usr/local/bin, configuration files in /usr/local/etc, the server in /usr/local/sbin, etc. To specify a different installation prefix, use the --prefix option to configure: ./configure --prefix=/opt make make install Will install OpenSSH in /opt/{bin,etc,lib,sbin}. You can also override specific paths, for example: ./configure --prefix=/opt --sysconfdir=/etc/ssh make make install This will install the binaries in /opt/{bin,lib,sbin}, but will place the configuration files in /etc/ssh. If you are using Privilege Separation (which is enabled by default) then you will also need to create the user, group and directory used by sshd for privilege separation. See README.privsep for details. If you are using PAM, you may need to manually install a PAM control file as "/etc/pam.d/sshd" (or wherever your system prefers to keep them). Note that the service name used to start PAM is __progname, which is the basename of the path of your sshd (e.g., the service name for /usr/sbin/osshd will be osshd). If you have renamed your sshd executable, your PAM configuration may need to be modified. A generic PAM configuration is included as "contrib/sshd.pam.generic", you may need to edit it before using it on your system. If you are using a recent version of Red Hat Linux, the config file in contrib/redhat/sshd.pam should be more useful. Failure to install a valid PAM file may result in an inability to use password authentication. On HP-UX 11 and Solaris, the standard /etc/pam.conf configuration will work with sshd (sshd will match the other service name). There are a few other options to the configure script: --with-audit=[module] enable additional auditing via the specified module. Currently, drivers for "debug" (additional info via syslog) and "bsm" (Sun's Basic Security Module) are supported. --with-pam enables PAM support. If PAM support is compiled in, it must also be enabled in sshd_config (refer to the UsePAM directive). --with-prngd-socket=/some/file allows you to enable EGD or PRNGD support and to specify a PRNGd socket. Use this if your Unix lacks /dev/random. --with-prngd-port=portnum allows you to enable EGD or PRNGD support and to specify a EGD localhost TCP port. Use this if your Unix lacks /dev/random. --with-lastlog=FILE will specify the location of the lastlog file. ./configure searches a few locations for lastlog, but may not find it if lastlog is installed in a different place. --without-lastlog will disable lastlog support entirely. --with-osfsia, --without-osfsia will enable or disable OSF1's Security Integration Architecture. The default for OSF1 machines is enable. --with-md5-passwords will enable the use of MD5 passwords. Enable this if your operating system uses MD5 passwords and the system crypt() does not support them directly (see the crypt(3/3c) man page). If enabled, the resulting binary will support both MD5 and traditional crypt passwords. --with-utmpx enables utmpx support. utmpx support is automatic for some platforms. --without-shadow disables shadow password support. --with-ipaddr-display forces the use of a numeric IP address in the $DISPLAY environment variable. Some broken systems need this. --with-default-path=PATH allows you to specify a default $PATH for sessions started by sshd. This replaces the standard path entirely. --with-pid-dir=PATH specifies the directory in which the sshd.pid file is created. --with-xauth=PATH specifies the location of the xauth binary --with-ssl-dir=DIR allows you to specify where your Libre/OpenSSL libraries are installed. --with-ssl-engine enables Libre/OpenSSL's (hardware) ENGINE support --with-4in6 Check for IPv4 in IPv6 mapped addresses and convert them to real (AF_INET) IPv4 addresses. Works around some quirks on Linux. If you need to pass special options to the compiler or linker, you can specify these as environment variables before running ./configure. For example: CC="/usr/foo/cc" CFLAGS="-O" LDFLAGS="-s" LIBS="-lrubbish" ./configure 3. Configuration ---------------- The runtime configuration files are installed by in ${prefix}/etc or whatever you specified as your --sysconfdir (/usr/local/etc by default). The default configuration should be instantly usable, though you should review it to ensure that it matches your security requirements. To generate a host key, run "make host-key". Alternately you can do so manually using the following commands: ssh-keygen -t [type] -f /etc/ssh/ssh_host_key -N "" for each of the types you wish to generate (rsa, dsa or ecdsa) or ssh-keygen -A to generate keys for all supported types. Replacing /etc/ssh with the correct path to the configuration directory. (${prefix}/etc or whatever you specified with --sysconfdir during configuration) If you have configured OpenSSH with EGD support, ensure that EGD is running and has collected some Entropy. For more information on configuration, please refer to the manual pages for sshd, ssh and ssh-agent. 4. (Optional) Send survey ------------------------- $ make survey [check the contents of the file "survey" to ensure there's no information that you consider sensitive] $ make send-survey This will send configuration information for the currently configured host to a survey address. This will help determine which configurations are actually in use, and what valid combinations of configure options exist. The raw data is available only to the OpenSSH developers, however summary data may be published. 5. Problems? ------------ If you experience problems compiling, installing or running OpenSSH. Please refer to the "reporting bugs" section of the webpage at https://www.openssh.com/ PKp:1]WIuuCREDITSnu[Tatu Ylonen - Creator of SSH Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt, and Dug Song - Creators of OpenSSH Ahsan Rashid - UnixWare long passwords Alain St-Denis - Irix fix Alexandre Oliva - AIX fixes Andre Lucas - new login code, many fixes Andreas Steinmetz - Shadow password expiry support Andrew McGill - SCO fixes Andrew Morgan - PAM bugfixes Andrew Stribblehill - Bugfixes Andy Sloane - bugfixes Aran Cox - SCO bugfixes Arkadiusz Miskiewicz - IPv6 compat fixes Ben Lindstrom - NeXT support Ben Taylor - Solaris debugging and fixes Bratislav ILICH - Configure fix Charles Levert - SunOS 4 & bug fixes Chip Salzenberg - Assorted patches Chris Adams - OSF SIA support Chris Saia - SuSE packaging Chris, the Young One - Password auth fixes Christos Zoulas - Autoconf fixes Chun-Chung Chen - RPM fixes Corinna Vinschen - Cygwin support Chad Mynhier - Solaris Process Contract support Dan Brosemer - Autoconf support, build fixes Darren Hall - AIX patches Darren Tucker - AIX BFF package scripts David Agraz - Build fixes David Del Piero - bug fixes David Hesprich - Configure fixes David Rankin - libwrap, AIX, NetBSD fixes Dag-Erling Smrgrav - Challenge-Response PAM code. Dhiraj Gulati - UnixWare long passwords Ed Eden - configure fixes Garrick James - configure fixes Gary E. Miller - SCO support Ged Lodder - HPUX fixes and enhancements Gert Doering - bug and portability fixes HARUYAMA Seigo - Translations & doc fixes Hideaki YOSHIFUJI - IPv6 and bug fixes Hiroshi Takekawa - Configure fixes Holger Trapp - KRB4/AFS config patch IWAMURO Motonori - bugfixes Jani Hakala - Patches Jarno Huuskonen - Bugfixes Jim Knoble - Many patches Jonchen (email unknown) - the original author of PAM support of SSH Juergen Keil - scp bugfixing KAMAHARA Junzo - Configure fixes Kees Cook - scp fixes Kenji Miyake - Configure fixes Kevin Cawlfield - AIX fixes. Kevin O'Connor - RSAless operation Kevin Steves - HP support, bugfixes, improvements Kiyokazu SUTO - Bugfixes Larry Jones - Bugfixes Lutz Jaenicke - Bugfixes Marc G. Fournier - Solaris patches Mark D. Baushke - bug fixes Martin Johansson - Linux fixes Mark D. Roth - Features, bug fixes Mark Miller - Bugfixes Matt Richards - AIX patches Michael Steffens - HP-UX fixes Michael Stone - Irix enhancements Nakaji Hiroyuki - Sony News-OS patch Nalin Dahyabhai - PAM environment patch Nate Itkin - SunOS 4.1.x fixes Niels Kristian Bech Jensen - Assorted patches Pavel Kankovsky - Security fixes Pavel Troller - Bugfixes Pekka Savola - Bugfixes Peter Kocks - Makefile fixes Peter Stuge - mdoc2man.awk script Phil Hands - Debian scripts, assorted patches Phil Karn - Autoconf fixes Philippe WILLEM - Bugfixes Phill Camp - login code fix Rip Loomis - Solaris package support, fixes Robert Dahlem - Reliant Unix fixes Roumen Petrov - Compile & configure fixes SAKAI Kiyotaka - Multiple bugfixes Simon Wilkinson - PAM fixes, Compat with MIT KrbV Solar Designer - many patches and technical assistance Svante Signell - Bugfixes Thomas Neumann - Shadow passwords Tim Rice - Portability & SCO fixes Tobias Oetiker - Bugfixes Tom Bertelson's - AIX auth fixes Tor-Ake Fransson - AIX support Tudor Bosman - MD5 password support Udo Schweigert - ReliantUNIX support Wendy Palm - Cray support. Zack Weinberg - GNOME askpass enhancement Apologies to anyone I have missed. Damien Miller PKp:1]܀GG README.dnsnu[How to verify host keys using OpenSSH and DNS --------------------------------------------- OpenSSH contains support for verifying host keys using DNS as described in draft-ietf-secsh-dns-05.txt. The document contains very brief instructions on how to use this feature. Configuring DNS is out of the scope of this document. (1) Server: Generate and publish the DNS RR To create a DNS resource record (RR) containing a fingerprint of the public host key, use the following command: ssh-keygen -r hostname -f keyfile -g where "hostname" is your fully qualified hostname and "keyfile" is the file containing the public host key file. If you have multiple keys, you should generate one RR for each key. In the example above, ssh-keygen will print the fingerprint in a generic DNS RR format parsable by most modern name server implementations. If your nameserver has support for the SSHFP RR you can omit the -g flag and ssh-keygen will print a standard SSHFP RR. To publish the fingerprint using the DNS you must add the generated RR to your DNS zone file and sign your zone. (2) Client: Enable ssh to verify host keys using DNS To enable the ssh client to verify host keys using DNS, you have to add the following option to the ssh configuration file ($HOME/.ssh/config or /etc/ssh/ssh_config): VerifyHostKeyDNS yes Upon connection the client will try to look up the fingerprint RR using DNS. If the fingerprint received from the DNS server matches the remote host key, the user will be notified. Jakob Schlyter Wesley Griffin $OpenBSD: README.dns,v 1.2 2003/10/14 19:43:23 jakob Exp $ PKp:1]ʺOVERVIEWnu[[Note: This file has not been updated for OpenSSH versions after OpenSSH-1.2 and should be considered OBSOLETE. It has been left in the distribution because some of its information may still be useful to developers.] This document is intended for those who wish to read the ssh source code. This tries to give an overview of the structure of the code. Copyright (c) 1995 Tatu Ylonen Updated 17 Nov 1995. Updated 19 Oct 1999 for OpenSSH-1.2 Updated 20 May 2001 note obsolete for > OpenSSH-1.2 The software consists of ssh (client), sshd (server), scp, sdist, and the auxiliary programs ssh-keygen, ssh-agent, ssh-add, and make-ssh-known-hosts. The main program for each of these is in a .c file with the same name. There are some subsystems/abstractions that are used by a number of these programs. Buffer manipulation routines - These provide an arbitrary size buffer, where data can be appended. Data can be consumed from either end. The code is used heavily throughout ssh. The buffer manipulation functions are in sshbuf*.c (header sshbuf.h). Compression Library - Ssh uses the GNU GZIP compression library (ZLIB). Encryption/Decryption - Ssh contains several encryption algorithms. These are all accessed through the cipher.h interface. The interface code is in cipher.c, and the implementations are either in libc or LibreSSL. Multiple Precision Integer Library - Uses the LibreSSL BIGNUM sublibrary. Random Numbers - Uses arc4random() and such. RSA key generation, encryption, decryption - Ssh uses the RSA routines in libssl. RSA key files - RSA keys are stored in files with a special format. The code to read/write these files is in authfile.c. The files are normally encrypted with a passphrase. The functions to read passphrases are in readpass.c (the same code is used to read passwords). Binary packet protocol - The ssh binary packet protocol is implemented in packet.c. The code in packet.c does not concern itself with packet types or their execution; it contains code to build packets, to receive them and extract data from them, and the code to compress and/or encrypt packets. - The code in packet.c calls the buffer manipulation routines (buffer.c, bufaux.c), compression routines (zlib), and the encryption routines. X11, TCP/IP, and Agent forwarding - Code for various types of channel forwarding is in channels.c. The file defines a generic framework for arbitrary communication channels inside the secure channel, and uses this framework to implement X11 forwarding, TCP/IP forwarding, and authentication agent forwarding. The new, Protocol 1.5, channel close implementation is in nchan.c Authentication agent - Code to communicate with the authentication agent is in authfd.c. Authentication methods - Code for various authentication methods resides in auth-*.c (auth-passwd.c, auth-rh-rsa.c, auth-rhosts.c, auth-rsa.c). This code is linked into the server. The routines also manipulate known hosts files using code in hostfile.c. Code in canohost.c is used to retrieve the canonical host name of the remote host. Code in match.c is used to match host names. - In the client end, authentication code is in sshconnect.c. It reads Passwords/passphrases using code in readpass.c. It reads RSA key files with authfile.c. It communicates the authentication agent using authfd.c. The ssh client - The client main program is in ssh.c. It first parses arguments and reads configuration (readconf.c), then calls ssh_connect (in sshconnect.c) to open a connection to the server (possibly via a proxy), and performs authentication (ssh_login in sshconnect.c). It then makes any pty, forwarding, etc. requests. It may call code in ttymodes.c to encode current tty modes. Finally it calls client_loop in clientloop.c. This does the real work for the session. Pseudo-tty manipulation and tty modes - Code to allocate and use a pseudo tty is in pty.c. Code to encode and set terminal modes is in ttymodes.c. Logging in (updating utmp, lastlog, etc.) - The code to do things that are done when a user logs in are in login.c. This includes things such as updating the utmp, wtmp, and lastlog files. Some of the code is in sshd.c. Writing to the system log and terminal - The programs use the functions fatal(), log(), debug(), error() in many places to write messages to system log or user's terminal. The implementation that logs to system log is in log-server.c; it is used in the server program. The other programs use an implementation that sends output to stderr; it is in log-client.c. The definitions are in ssh.h. The sshd server (daemon) - The sshd daemon starts by processing arguments and reading the configuration file (servconf.c). It then reads the host key, starts listening for connections, and generates the server key. The server key will be regenerated every hour by an alarm. - When the server receives a connection, it forks, disables the regeneration alarm, and starts communicating with the client. They first perform identification string exchange, then negotiate encryption, then perform authentication, preparatory operations, and finally the server enters the normal session mode by calling server_loop in serverloop.c. This does the real work, calling functions in other modules. - The code for the server is in sshd.c. It contains a lot of stuff, including: - server main program - waiting for connections - processing new connection - authentication - preparatory operations - building up the execution environment for the user program - starting the user program. Auxiliary files - There are several other files in the distribution that contain various auxiliary routines: ssh.h the main header file for ssh (various definitions) uidswap.c uid-swapping xmalloc.c "safe" malloc routines $OpenBSD: OVERVIEW,v 1.15 2018/10/23 05:56:35 djm Exp $ PKp:1]`F PROTOCOL.keynu[This document describes the private key format for OpenSSH. 1. Overall format The key consists of a header, a list of public keys, and an encrypted list of matching private keys. #define AUTH_MAGIC "openssh-key-v1" byte[] AUTH_MAGIC string ciphername string kdfname string kdfoptions int number of keys N string publickey1 string publickey2 ... string publickeyN string encrypted, padded list of private keys 2. KDF options for kdfname "bcrypt" The options: string salt uint32 rounds are concatenated and represented as a string. 3. Unencrypted list of N private keys The list of privatekey/comment pairs is padded with the bytes 1, 2, 3, ... until the total length is a multiple of the cipher block size. uint32 checkint uint32 checkint string privatekey1 string comment1 string privatekey2 string comment2 ... string privatekeyN string commentN char 1 char 2 char 3 ... char padlen % 255 Before the key is encrypted, a random integer is assigned to both checkint fields so successful decryption can be quickly checked by verifying that both checkint fields hold the same value. 4. Encryption The KDF is used to derive a key, IV (and other values required by the cipher) from the passphrase. These values are then used to encrypt the unencrypted list of private keys. 5. No encryption For unencrypted keys the cipher "none" and the KDF "none" are used with empty passphrases. The options if the KDF "none" are the empty string. $OpenBSD: PROTOCOL.key,v 1.1 2013/12/06 13:34:54 markus Exp $ PK1]:P*V;V;LICENCEnu[This file is part of the OpenSSH software. The licences which components of this software fall under are as follows. First, we will summarize and say that all components are under a BSD licence, or a licence more free than that. OpenSSH contains no GPL code. 1) * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved * * As far as I am concerned, the code I have written for this software * can be used freely for any purpose. Any derived versions of this * software must be clearly marked as such, and if the derived work is * incompatible with the protocol description in the RFC file, it must be * called by a name other than "ssh" or "Secure Shell". [Tatu continues] * However, I am not implying to give any licenses to any patents or * copyrights held by third parties, and the software includes parts that * are not under my direct control. As far as I know, all included * source code is used in accordance with the relevant license agreements * and can be used freely for any purpose (the GNU license being the most * restrictive); see below for details. [However, none of that term is relevant at this point in time. All of these restrictively licenced software components which he talks about have been removed from OpenSSH, i.e., - RSA is no longer included, found in the OpenSSL library - IDEA is no longer included, its use is deprecated - DES is now external, in the OpenSSL library - GMP is no longer used, and instead we call BN code from OpenSSL - Zlib is now external, in a library - The make-ssh-known-hosts script is no longer included - TSS has been removed - MD5 is now external, in the OpenSSL library - RC4 support has been replaced with ARC4 support from OpenSSL - Blowfish is now external, in the OpenSSL library [The licence continues] Note that any information and cryptographic algorithms used in this software are publicly available on the Internet and at any major bookstore, scientific library, and patent office worldwide. More information can be found e.g. at "http://www.cs.hut.fi/crypto". The legal status of this program is some combination of all these permissions and restrictions. Use only at your own responsibility. You will be responsible for any legal consequences yourself; I am not making any claims whether possessing or using this is legal or not in your country, and I am not taking any responsibility on your behalf. NO WARRANTY BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 3) ssh-keyscan was contributed by David Mazieres under a BSD-style license. * Copyright 1995, 1996 by David Mazieres . * * Modification and redistribution in source and binary forms is * permitted provided that due credit is given to the author and the * OpenBSD project by leaving this copyright notice intact. 4) The Rijndael implementation by Vincent Rijmen, Antoon Bosselaers and Paulo Barreto is in the public domain and distributed with the following license: * @version 3.0 (December 2000) * * Optimised ANSI C code for the Rijndael cipher (now AES) * * @author Vincent Rijmen * @author Antoon Bosselaers * @author Paulo Barreto * * This code is hereby placed in the public domain. * * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 5) One component of the ssh source code is under a 3-clause BSD license, held by the University of California, since we pulled these parts from original Berkeley code. * Copyright (c) 1983, 1990, 1992, 1993, 1995 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. 6) Remaining components of the software are provided under a standard 2-term BSD licence with the following names as copyright holders: Markus Friedl Theo de Raadt Niels Provos Dug Song Aaron Campbell Damien Miller Kevin Steves Daniel Kouril Wesley Griffin Per Allansson Nils Nordman Simon Wilkinson Portable OpenSSH additionally includes code from the following copyright holders, also under the 2-term BSD license: Ben Lindstrom Tim Rice Andre Lucas Chris Adams Corinna Vinschen Cray Inc. Denis Parker Gert Doering Jakob Schlyter Jason Downs Juha Yrjl Michael Stone Networks Associates Technology, Inc. Solar Designer Todd C. Miller Wayne Schroeder William Jones Darren Tucker Sun Microsystems The SCO Group Daniel Walsh Red Hat, Inc Simon Vallet / Genoscope * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 8) Portable OpenSSH contains the following additional licenses: a) md5crypt.c, md5crypt.h * "THE BEER-WARE LICENSE" (Revision 42): * wrote this file. As long as you retain this * notice you can do whatever you want with this stuff. If we meet * some day, and you think this stuff is worth it, you can buy me a * beer in return. Poul-Henning Kamp b) snprintf replacement * Copyright Patrick Powell 1995 * This code is based on code written by Patrick Powell * (papowell@astart.com) It may be used for any purpose as long as this * notice remains intact on all source code distributions c) Compatibility code (openbsd-compat) Apart from the previously mentioned licenses, various pieces of code in the openbsd-compat/ subdirectory are licensed as follows: Some code is licensed under a 3-term BSD license, to the following copyright holders: Todd C. Miller Theo de Raadt Damien Miller Eric P. Allman The Regents of the University of California Constantin S. Svintsoff * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. Some code is licensed under an ISC-style license, to the following copyright holders: Internet Software Consortium. Todd C. Miller Reyk Floeter Chad Mynhier * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE * FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Some code is licensed under a MIT-style license to the following copyright holders: Free Software Foundation, Inc. * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * * "Software"), to deal in the Software without restriction, including * * without limitation the rights to use, copy, modify, merge, publish, * * distribute, distribute with modifications, sublicense, and/or sell * * copies of the Software, and to permit persons to whom the Software is * * furnished to do so, subject to the following conditions: * * * * The above copyright notice and this permission notice shall be included * * in all copies or substantial portions of the Software. * * * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * * * Except as contained in this notice, the name(s) of the above copyright * * holders shall not be used in advertising or otherwise to promote the * * sale, use or other dealings in this Software without prior written * * authorization. * ****************************************************************************/ ------ $OpenBSD: LICENCE,v 1.20 2017/04/30 23:26:16 djm Exp $ PKgx0]~ssh-pkcs11-helpernuȯPKgx0]D" 1ssh-keysignnu7mPKgx0]ʬo T sftp-servernuȯPKgx0]  sshd-keygennuȯPKp:1]w#w#  PROTOCOL.muxnu[PKp:1]qHHO PROTOCOL.cve-2023-48795nu[PKp:1]6 ] TPROTOCOL.krlnu[PKp:1]U>YiPROTOCOL.agentnu[PKp:1]ġ&O sjREADME.tunnu[PKp:1]!q!//}PROTOCOL.certkeysnu[PKp:1]{RU  ϭREADME.privsepnu[PKp:1]ؽ9?M?MPROTOCOLnu[PKp:1]l L READMEnu[PKp:1]DF\PREADME.platformnu[PKp:1]mT( ( ]TODOnu[PKp:1]){zE9 9  (ChangeLognu[PKp:1]+6PROTOCOL.chacha20poly1305nu[PKp:1]$$HINSTALLnu[PKp:1]WIuulCREDITSnu[PKp:1]܀GG README.dnsnu[PKp:1]ʺOVERVIEWnu[PKp:1]`F PROTOCOL.keynu[PK1]:P*V;V;5LICENCEnu[PK