7uorg/freertr/prt/prtTcp  org/freertr/prt/prtGen()V  fwdCoreLorg/freertr/ip/ipFwd;  org/freertr/ip/ipFwdprotoAddM(Lorg/freertr/ip/ipPrt;Lorg/freertr/ip/ipFwdIface;Lorg/freertr/addr/addrIP;)Zfin  org/freertr/util/bitsbit2str((IILjava/lang/String;)Ljava/lang/String;synrst ack"psh$urg&ece(cwr*ns, -.makeConcatWithConstants(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;0org/freertr/enc/encTlv /2 3(IIIIIIIIIIZ)V 567 89org/freertr/pack/packHoldergetByte(I)I /; <=valTypI /? @=valSiz 5B CDgetSkip(I)V /F GHgetBytes (Lorg/freertr/pack/packHolder;)Z 5J KLdataSize()I N OP getTCPoption7(Lorg/freertr/pack/packHolder;)Lorg/freertr/enc/encTlv; RST UVorg/freertr/util/debugger prtTcpTrafZX -Y(I)Ljava/lang/String; [\] ^_org/freertr/util/loggerdebug(Ljava/lang/String;)V /a bcvalDat[B e fgmsbGetW([BI)I 5i j=TCPmss 5l m=TCPwsc o pgmsbGetD 5r s=TCPtsV 5u v=TCPtsE 5x y=TCPaut 5{ |}putByte(II)V 5 DputSkip  msbPutW([BII)V / putThis (Lorg/freertr/pack/packHolder;)V  =org/freertr/cfg/cfgAll tcpSegmentMin = tcpSegmentMax 5 f9 5 =UDPsrc 5 =UDPtrg 5 =TCPflg 5 =UDPsiz   parseTCPports 5 IPsrcLorg/freertr/addr/addrIP;  java/lang/StringvalueOf&(Ljava/lang/Object;)Ljava/lang/String; -&(Ljava/lang/String;)Ljava/lang/String; [ _info V tcpChecksumRx 5 9 pseudoIPsum 5 getIPsum(III)I 5 p9 5 =TCPseq 5 =TCPack 5 =TCPwin 5 =TCPurg  Y decodeFlags -+(IILjava/lang/String;III)Ljava/lang/String;  parseTCPoptions!(Lorg/freertr/pack/packHolder;I)Z 5 D setBytesLeft 5 D unMergeBytes  replaceMSSoption 5 putFill(III)V 5 LheadSize 5 } V tcpChecksumTx 5 putIPsum 5 }lsbPutW 5  merge2beg  org/freertr/addr/addrIPisIPv4()Zorg/freertr/addr/addrIPv4 toIPv4()Lorg/freertr/addr/addrIPv4;  toBuffer([BI)Vorg/freertr/addr/addrIPv6    toIPv6()Lorg/freertr/addr/addrIPv6;   org/freertr/cry/cryHashGenericupdate([B)V  hashOneAddress<(Lorg/freertr/cry/cryHashGeneric;Lorg/freertr/addr/addrIP;)V 5 IPtrg  msbPutDorg/freertr/cry/cryHashHmac org/freertr/cry/cryHashSha1  # G$()[B & '%(Lorg/freertr/cry/cryHashGeneric;[B)V ) *init , D.TCP-AO  1 2$finish4org/freertr/cry/cryHashMd5 3 3) 8 9: hashPseudoHdr@(Lorg/freertr/cry/cryHashGeneric;Lorg/freertr/pack/packHolder;)V 5< =>hashHead%(Lorg/freertr/cry/cryHashGeneric;II)V 5@ A>hashData 3 31 E FGbyteCopy ([BI[BII)V 5I J=IPprtL -M=(IILjava/lang/String;IIILjava/lang/String;)Ljava/lang/String; /O PQputBytes$(Lorg/freertr/pack/packHolder;II[B)V 5S } U VWgetTCPpassword6(Lorg/freertr/pack/packHolder;ILjava/lang/String;[B)[B 5Y Z[putCopy([BIII)V 5] ^(ZZ)V 5` aclear c desetAddr(Lorg/freertr/addr/addrType;)V 5g hVIPdf 5j k=IPfrg 5m n=IPalrt 5p q=IPttl 5s t=IPtos 5v w=IPid y z{createTCPheader5(Lorg/freertr/pack/packHolder;ILjava/lang/String;[B)V } ~ protoPackT(Lorg/freertr/ip/ipFwdIface;Lorg/freertr/addr/addrIP;Lorg/freertr/pack/packHolder;)V  org/freertr/prt/prtGenConnprotoDatLjava/lang/Object;org/freertr/prt/prtTcpConn  lck  =netOut   pipeNetworkLorg/freertr/pipe/pipeSide;  org/freertr/pipe/pipeSidenonDestructiveGet([BII)I  =portLoc  =portRem  =seqLoc  =seqRem  L freeAtServer  = tcpWinScale  =tmstmpTx  =tmstmpRx  getTime()J  ifaceLorg/freertr/ip/ipFwdIface;  org/freertr/ip/ipFwdIfaceaddr  peerAddr  =sendTTL  =sendTOS  VecnTx  VecnRx  VecnRe  =sendDFN  =sendFLW  =keyId  passwdLjava/lang/String;  ctrfKtx  = tcpRangeMin  = tcpRangeMax  random(II)Istart  =sendPRT   =netMax  = tcpTimeSyn  =timeout  = tcpTimeWork  = workInterval  = tcpTimeNow   activWaitJ   V activFrcd   LrandomD  V tcpTimStmp  staTim   getTCPkdfRngM(Lorg/freertr/addr/addrIP;Lorg/freertr/addr/addrIP;IIILjava/lang/String;II)[B  =state  ctrfKrx  ctrfKfx ! "9 regulateMss $ %=segSiz ' (VtcpEcn * +, sendResetBack;(Lorg/freertr/pack/packHolder;Lorg/freertr/ip/ipFwdIface;)V.refuse0close 2 3 pipeClient 5 6setClose 8 9Lready2rx ; <= tcpTimeClose > ?Lready2tx 5A BCpipeSend!(Lorg/freertr/pipe/pipeSide;III)I@  5I J[getCopy L MNbyteComp ([BI[BII)I   S T= tcpTimeLaterXaccepted Z [setReady ] ^= tcpTimeOpen ` ab spoofCheck(I)Zg got reset i j setClosing l mdeleteImmediately p q9 nonBlockSkipuopenedwgot future sequence numberygot data with fin } ~VseenFingot old data again  H send2serverupper don't need dataclosing  = tcpTimeFin   sendMyPacket!(Lorg/freertr/prt/prtGenConn;II)I   error2server\(Lorg/freertr/pack/packHolder;Lorg/freertr/addr/addrIP;Lorg/freertr/util/counter$reasons;I)V  LisClosed  = tcpTimeAlive   flush2net(Lorg/freertr/prt/prtGenConn;)Z   activLast  = tcpTimeMax  V tcpKeepalive  cntrLorg/freertr/util/counter;  org/freertr/util/counterrx  HparseTCPheader   org/freertr/util/counter$reasonsbadHdr"Lorg/freertr/util/counter$reasons;  dropB(Lorg/freertr/pack/packHolder;Lorg/freertr/util/counter$reasons;)V -  connectionSimpleWork;(Lorg/freertr/ip/ipFwdIface;Lorg/freertr/pack/packHolder;)V   reason2string6(Lorg/freertr/util/counter$reasons;)Ljava/lang/String; -:(Ljava/lang/String;IILjava/lang/String;)Ljava/lang/String;  connectionSimpleErrorv(Lorg/freertr/util/counter$reasons;Lorg/freertr/addr/addrIP;Lorg/freertr/ip/ipFwdIface;Lorg/freertr/pack/packHolder;)V  connectionSimpleState=(Lorg/freertr/ip/ipFwdIface;Lorg/freertr/util/state$states;)Vsize ConstantValueprotoNumflagFINflagSYNflagRSTflagPSHflagACKflagURG flagECE@flagCWRflagNS flagSynAck flagFinAck flagRstAck flagPshAck flagSynFinRstflagSynFinRstAck flagSynFin flagSynRst flagFinRst winSizMin winSizMax maxSegMax pshNetOut@(Lorg/freertr/ip/ipFwd;)VCodeLineNumberTable StackMapTableupdateTCPheader%(Lorg/freertr/pack/packHolder;IIIII)Vc java/lang/Objectjava/lang/ThrowabletoString()Ljava/lang/String; getProtoNumtestPortNumbergetRandomPortNumconnectionStart<(Lorg/freertr/prt/prtGenConn;Lorg/freertr/pack/packHolder;)ZconnectionRefuseconnectionClose(Lorg/freertr/prt/prtGenConn;)VconnectionBytes(Lorg/freertr/prt/prtGenConn;)IconnectionSendconnectionRcvd<(Lorg/freertr/prt/prtGenConn;Lorg/freertr/pack/packHolder;)VconnectionErrorx(Lorg/freertr/prt/prtGenConn;Lorg/freertr/pack/packHolder;Lorg/freertr/addr/addrIP;Lorg/freertr/util/counter$reasons;I)VconnectionWorkrecvPack alertPack;(Lorg/freertr/ip/ipFwdIface;Lorg/freertr/pack/packHolder;)Z errorPacksetState SourceFile prtTcp.javaBootstrapMethods*        ,option .got too small from 0got truncated from 2got bad checksum from 4rx  ->   seq= data= ack=6$tx  ->   seq= data= ack= pwd=8tcp on :got missing authentication <"got invalid authentication state >!got invalid authentication size @!got invalid authentication hash Bgot unwanted authentication Dgot both syn fin Fgot unwanted synack H"bad acknowkedge number in synack Jgot far sequence number Lgot far acknowledge number Ngot rst with other controls Pgot future acknowledge number Rnet buffer underflow Tgot data with control flags Vgot data while not open Xgot unwanted syn Zgot fin while not open \got invalid flags ^invalid state ` rec  ->  b   ->  d efg -h$java/lang/invoke/StringConcatFactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; InnerClassesreasonslorg/freertr/util/state$statesnorg/freertr/util/statestatesq%java/lang/invoke/MethodHandles$Lookupsjava/lang/invoke/MethodHandlesLookup!=======================s=#6**+ +* W !*  Yu M! #@%')+*;L OP ^/Y1L*+*4=-+:+>*A +*E+2 $@EJORZ\/! C*I*MM,Q,:WZ,:BDGVg*,`dh*,`3~kr*,`nq*,`ntW**Id,>`wEBR &lnq} /E l*ML+b+:S"0*A*z*~*h+`d+`*h+*+*B ,128=@O[`chk /  "9J;;  c7****** **~ |*Y~    *6 Hz*****I*,**I<**I**********A*d<Q(*****Id*źZ*I=*d>*dr )8:!@"I#X$g%i(r)|*,-./010346789 ._  **~6@*h*~**I6*A**~*d6*td~***** ****9*`*I`6*`6**I6*d*`*`~*#GH IJKL M$N*O0P8Q>RGSQUUV[W`YdZj[o]s^z_abcefghijlmno QB z/+M+N-,M+N-, *, * st uvwxy#z)|.}  9:V*+*++M,,+I+`M,+I+`,*, . %6;IPU 6   YY!"%:(+-"/*+:    /  /  /++0:  Z #(.9?EJQX_gnv} VW[:3Y5:6*7*;**I?,"BC-YY!-%:(/*7***wd;++ /***wd`*wd;**I?0::TT Dj !,5;?ARW_eu{; z{}:*HQ'*****I*,KZ*h#M:`*h*`N*qC*z*z*~M:`*q`*t*`N*k-M:`*kT*`N*z*~,KM:,*z*z*~*`N*w*`N*w*`6*******¶R**ŶR* *~ x**ȶ***˶3**I`6*6**I6*d*~**,**t~**,-T:*dX3**I`6*6**I6*d*~*C  -07=JW^djou$(1:CMakr|      $/59 0&F06/1 5+,f+~5Y\N-_-h-k-t-q-+-+-+ŵ-+µ----+b-+b-f-i-l-o-r-u+~ -Y`+~ -Y`-x* ,-|z' ( *+,-".'/,041<2D3L4R5Y6^7i8t9y:~;<=>?@BCEFG  5 +:5Y\:Y:_I`:+`d>ìX~hk++`Yd>+ d666|t`q+b+bfil+o+ĵrǙJr rr~rʙY@͙Y+f+ӵu~YdhkY`ç :++ݸx* +|RS:J KLM"N&O1PIQNRSTaUgVlXrYxZ[\]^_`acdeghjklmnpq+r1s7t=uFvOwWx_ye{u|}}nS5  N 1T#M55 5,5  % * LbC L" 3 pQ Z+YN-+-++---  - `-,3-++++++-d--++++++,-++++++-d,¸-++++++,-d,q--,h #--#-&,@~--,`,~*,+)  !&-4<AHNW^b(0INXcen) J:g5@Q -Z*,+)  X+MQ /Z+14W+4W+7,,,+:,,2 $7<CJRW .E+1===D,I>,+1@  @ ab8D @ ( +N-Y:+.,w$-6,~-+Eñ-[-++++++,-d-++++++-d,¸,,tA,,,,t~,,++-T:+Fñ,,wtd4`+Gñ:,,wtHK+Oñ,w+Pñ,-d6-,d6,I6d6,~6 - -,q-ǙG-Y,~~-Y,r~-,@~ ~+Qñ --R+Uñ-R+Vñ-,`Q WZ,t--&,@~-,h #------+YW+\ñ_+cñ ~_+dñ ~9 ~+eñQ fZ-+hW+kWñ ~+7+ ~ -Y`+n-R6d+o6  +rñ-Y `-Y d---Y-#`-s -s-4Q tZ----+YW+\Q vZ-Rñ, ~Q xZ6  ~+z ~-Z-+hW+kWñ+{-,-Y`-|ñ+hW+kWñññQ Zñ,A+,Q Zñ-Y`-ñ '-+ñ--ñ ~-|-BQ Z+hW-----Y`+ñ-)--Y`*+W+hW+kWñ-ñ+ñ+ç :  >?  >?XY:;&'qr!"-. /!;"?%G&s')*+,-./0234 67 8/9;:?<B>I?U@YCdDoEuF|GHIKLMNPQRTUVWXZ#[+\7];_E`KaQcXd]fvghijklmnoqrsuvwyz{|~#'/;BLX`chsy $+17:AMT\dinr~ "*.5:BHNSX_glv}    D<? _G "4: 5  5  5  5  5 R 5 & T 5 > $%!$ $#   2- 5  3,,A+,-+M+7>,JE+ ,Q Z+,,,,6,6,,R6,d6,,d66,# ,#66,@6*+6  *+W' !&".#0%6&<(C)K*P+U,\-^/a0h1k3p4x6|789:<=>@ACDFGHJKLMO 0 !  !   AI+MB,*+ ,!,!,e,,Yi, ,,!,,&Ec,Ǚ*+RW*+W&*+W*+W*+W!,ek,c*+W!,eL,D*+W,,#,!+kW++hW+kW&XY Z[\!]"`7a8cDdPeXg]hbiklnprsuwyz{"'*/2>CHF"3   !}?*,,*,Q,,,κZ*+,ı"!8>"#$d3Q!+κZ*+,-ϱ )2)%#*+,ӱ &'(c)c+c-c/c1c3c5c7c9c;c=c?cAcCcEcGcIcKcMcOcQcScUcWcYc[c]c_caij@kmo@prt