ARCBOOTDISK0 P y\NZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ951-001-2.31*ym @'POBITMAP.SYSFLIST.SYSmlist.arcusrsysAAAB!!!IP$( * 0+ P, ""- %?6,.pA6..tY *?q  :P  7 8 8&  7 T^j+++  7sss  0 4Z ... 7+7qqq 7/ 0     ({`>>>  ,Tp+++  $V ,,,  Y~6--- ]c///3հ} bQMMM  "vvv@```  +tsss "0% %  % : ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZlayer_pkgsZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZlayer1 layer2layer3ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZDDCMP ISDN_D SS7_CMPRESN SS7_SUPP X.21ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ>&@JT^hn*> ( 8^ I Y~ j z 8@6@ 6@ @R6@i@ @@ 6@4@k-"@' @0 @46@94@>kE-K@P @Y@]6@b4@gkn-t@y| @@6@@6@@@@@@@@@@ @ @ @ @"@ (@*@,@#@)@$+@) @-@1@5@9@=@A@E@I@M @Q @U@Y(%@!@ 3@!@@6@#@&6@@ @@@@ @$@  @6@@ +&@ 7@7@'@).@6@@@@@@@@/@ 4@6@ @@@@@@@@#3@6@@2@2@2@6@:1@6@@G@G@G@K@O2@.4@@6@7@"@(,@@@4@8@4@@ @  @ @ @ @  ,- @@@@ j  i 0 @!@"@#@$@%@&@'@(@ )@ *@ +@ ,@ -@.@/@0@1@2@3@4@ 5@"6@(7@**8@NVpN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVN^NuNVN^NuNVN^NuNVN^NuNVN^NuNVpN^NuNVpN^NuNVpN^NuNVN^NuNVN^NuNVpN^Nuevar_gd_bcc2_rdfevar_gd_bcc2_rdevar_gd_bcc2_tdfevar_gd_bcc2_tdevar_bd_bcc2_rdfevar_bd_bcc2_rdevar_bd_bcc2_tdfevar_bd_bcc2_tdNV/ / NB @###E$"R i `&iA &iA |&iA &iA &iA iPH &iA B)$RA$n&nN^NuNV"n.f iPHHx2Hx:B`<f iPHHx6Hx>BA/ PNN^NuNVH80&n. .<cBp`BrfHyDEBN&"yA5XOJgHylN///NB`B//NB Jf$HyEBN/Hx/NBHy`"HyEBN/Hx/NBHyN&`Bv L N^NuNVHy^NAhN^NuNVHyNAhN^NuNVHy>NAhN^NuNVHy~NAhN^NuNV/. B. /Hy|NAzN^NuNV/$./HyNBL/N HyNB$.N^NuNVH> ,.2|:<v4|2 BB0@I|fARB|c6 ЀA5RI8<Id/HyxNBLHy@8NB6EBHxNC$ B2|20HRIId/Hx?Bg/NBB/NCL|N^NuNVH 0HyGBN$HyjN/Hx/EBNN*/Hx/N N/Hx/NN/Hx/NNV/Hx/N$N/Hx/NN/Hx/NNl/Hx/N$N/Hx /NN0/Hx /NN~/Hx /N$N/Hx /NN0/Hx /NN/Hx/N$N/Hx/NN\/Hx/NN/Hx/N$N/Hx/NN/Hx/NN/Hx/N$N /Hx/NNn/Hx/NN/Hx/N$N/Hx/NNr/Hx/NN/Hx/N$N:/Hx/NN/Hx/NN/Hx/N"yA$JgHy*`Hy N/Hx/N L N^NuNVH 0HyEBN$Hy7N/Hx/GBNHyN/Hx/N .AN/Hx/N L N^NuNVH 0HyEBN$Hy-N/Hx/GBNHyN/Hx/N .IN/Hx/N L N^NuNVH 0HyEBN$HyEN/Hx/GBNHyN/Hx/N .ON/Hx/N L N^NuNVH 0HyEBN$HySN/Hx/GBNHyN/Hx/N .]N/Hx/N L N^NuNVH 0HyEBN$HyaN/Hx/GBNHy N/Hx/N .kN/Hx/N L N^NuNVH 0HyEBN$HyN/Hx/GBNHyN/Hx/N L N^NuNVH 0Hy"EBN$HygN/Hx/GBNHyN/Hx/N .N/Hx/NHyN/Hx/N L N^NuNVH 0HyEBN$HyN/Hx/GBNHyN/Hx/N L N^NuNVH 0Hy.EBN$HyMN/Hx/GBNHyiN/Hx/N L N^NuNVH 0HyEBN$HyN/Hx/GBNHyN/Hx/N L N^NuNVH 0HyEBN$HyoN/Hx/GBNHyN/Hx/N .yN/Hx/N L N^NuNVH 0HyEBN$Hy;N/Hx/GBNHyN/Hx/N .WN/Hx/N L N^NuNVH 0HyEBN$Hy}N/Hx/GBNHyN/Hx/N .N/Hx/N L N^NuNVH 0HyEBN$HyN/Hx/GBNHyN/Hx/N .N/Hx/N L N^NuNVH 0HyEBN$HyN/Hx/GBNHy N/Hx/N .N/Hx/N L N^NuNVH 0HyEBN$HyN/Hx/GBNHyN/Hx/N L N^NuNVH 0Hy"EBN$HyuN/Hx/GBNHyN/Hx/N .N/Hx/NHyN/Hx/N L N^NuNVH 0HyEBN$HyN/Hx/GBNHy N/Hx/N L N^NuNVH 0Hy.EBN$Hy[N/Hx/GBNHywN/Hx/N L N^NuNVH 0HyEBN$HyN/Hx/GBNHyN/Hx/N L N^NuNVH 0HyEBN$HyN/Hx/GBNHyN/Hx/N .N/Hx/N L N^NuNV/ /HyeEBN$HyN/Hx/NB $.$nN^NuNVH 0HyEBN$HyN/Hx/GBNHy%N/Hx/N .N/Hx/N L N^NuNVH 0HyEBN$HyN/Hx/GBNHy3N/Hx/N .N/Hx/N L N^NuNVH 0HyEBN$HyN/Hx/GBNHy N/Hx/N .N/Hx/N L N^NuNVH 0HyEBN$HyN/Hx/GBNHyN/Hx/N L N^NuNVH00Hy"EBN$HyN/Hx/GBNHyN/Hx/N$&</N/Hx/N/N/Hx/N L N^NuNV/ /HyEBN$HyN/Hx/NB $.$nN^Nu.666Ƅu1t6 F b   r  $ 4 D X h x (8H\l|4D\r $:`p(8Pv:Jb:Jbx*@fv(@Vh*:Rx(@V|DTlj7ESao} %3AO]ky-;IWe"gu .M[iw *Dlx:LVblx&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZn|&@JT^hnZNV WH@N^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVN^NuNVN^NuNVN^NuNVN^NuNVN^NuNVN^NuNVN^NuNVpN^NuNVpN^NuNVpN^NuNVN^NuNVN^NuNV//". n.B0. SvneЀ0;N*8FTf|r/N`/BBN$`N`/N`N @`N @`/N @`/N @`/N @`/BBN`rN H0@`f/N`Z/NJ`P/NR`F/N @`LVZZZZZZZZZZZZZZǼ(@iR&@JT^hv&NVnpCMPRESSqTRANSP z CMPRESSqTRANSP z  @91 )!$0<HT ` @l1Dx @:H\eq,,Layer::P4- ee e&+eeeeeeee,e e e ee ee*e,e, e !  e NeNeNeNeNeNeNeNeNeNeNeNeNeNeNeNeNe  ee eeeeeeeeeeee V  e e "$(e+-079e<ACGeJLN* eeee "$ee)+e.35e8=e?eBFRWeZ_eaedfiekoertwey~eeeeeeeeeee   ee  */#ee eee!RDeeeeee%e*e1e6e=eB#ee eee!Deeeeee%e*e1e6e=eB#ee eee! Deeeeee%e*e1e6e=eBd#ee eee!Deeeeee%e*e1e6e=eB ee  ee  ee  ee  ee  ee  ee  ee +5,e ee$e.`5,e ee$e.5,e ee$e.5,e ee$e.ee"eeeeee e eeeeeeeee"eeeeee e eeeeeeeee"eeeeee e eeeeeeeeeeeeeee e eeeeeeeeeeeee(e(e(e(e(e(e(e(e(e(e(2e(He(Se(be(qe(e(e(e(e(e(e(e(e(e(e(e@x4l b 8eeeeeeeeee(((2j&^ , z  eeeeeeeeee ((($\P z eeeeeeeeee(((N Bz  ^eeeeeeeeee(((N>SS7NV WH@N^NuCOMPRESSTRANSPARENTSelect Main Channel Compression ModeSelect Secondary Channel Compression Mode F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** SS7 Compression Setup **Main Channel Mode:Secondary Channel Mode:CompressTransparentMain_Chan_ModeSecondary_Chan_ModeNV/ //<EDtNXOJWD/<NXOJWDr€/r‚/Nx$.$nN^NuNV/.N0N^NuNVNN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVN^NuNVN^NuNVN^NuNVN^NuNVN^NuNVpN^NuNVpN^NuNVpN^NuNVN^NuNVN^NuNVN^NuNVpN^Nu6?6666LJ66&666606666066&6&666!6&6?66t166.6.6t16:u 666666:u 6666Á?w.66Á?6:u= u66 6t w6666w.666666:u 66 6666:u 6666666:u 66 6uu6u6u666 6626t11669v t669s6t1661661661661661669v t669s6t1661661661661661669v t669s6t1661661661661661669v t669s6t16616616616616666666666666666666G6&6& &>6&6&6G6&6& &>6&6&6G6&6& &>6&6&6G6&6& &>6&6&????flags_d_rdflags_d_rd_maxflags_d_rd_minflags_d_rd_rund_dce_frames_sup_rund_dce_frames_suppressedflags_rdflags_rd_maxflags_rd_minflags_rd_rundce_frames_sup_rundce_frames_suppressedflags_d_tdflags_d_td_maxflags_d_td_minflags_d_td_rund_dte_frames_sup_rund_dte_frames_suppressedflags_tdflags_td_maxflags_td_minflags_td_rundte_frames_sup_rundte_frames_suppresseddce_flagsdte_flagsss7_compression_modeNV/ /$./Hy EBLN/Hy hNHy NABJ9(f0J9(f(J9(f J9(fJ9(fJ9(fJ9(g<(BJ9(f0J9(f(J9(f J9(fJ9(fJ9(fJ9(g<(BJ9(f(J9(f J9(fJ9(fJ9(fJ9(g<(BJ9(f(J9(f J9(fJ9(fJ9(fJ9(g<(N$.$nN^NuNV//. .NB @C("<"QA%,=-"iA "$.&.N^NuNVH 0HyfNB$HyNGfN/Hx/EBNHyN/Hx/N .>N/Hx/NHyN/Hx/N L N^NuNVH 8(nJ,vgJ,wfp`dHyuGBN$/ /N!/,@NBT/Hy/EAN0,\X?BgHy /N/N/Hx/NB LN^NuNVH>0HyEBN y(!@,XOr?J(%gr/Hy /NAHyEN$,<N/GN/Hx/EBN *</N/Hx/N(<>/N/Hx/N &</N/Hx/N/G N/Hx/N.N/Hx/N/N/Hx/N.N/Hx/NNB"@A # L |N^NuNVH <*nJ-vgJ-wfp`HyXGBN$/ /N!/-@NB(@HlHy/NA/-N/Hx/EBN(.N/Hx/N/- N/Hx/N.N/Hx/N/ / N/Hx/N L<N^NuNVH<8&n(. HyIBN&/ /N!//E"4N +wf,HyvN$//N// E fN*// N(`tzx/Hx/EBN/Hx/N/Hx/N LN//HyN/G/ /E/ N$L$$.Hye/ E&FN/Hye/ NL N^NuNV/ / &n . ".J+vgJ+wf7@j7@l7@n7Ap7Ar7At`B/+DEBN7@j/+HN7@l/+LN7@n/+PN7@p/+TN7@r/+XN7@t$n&nN^NuNVH?0&n,. $n*.BCxHnHn?BgN%.  @. P $ gRB.~g$mJg`>~g$~g,`0B0(jB4(p`"B0(lB4(r`B0(nB4(r`B4(t RC|cfL N^NuNVH< "n $n6. gB0Hp @J`0@|f0H0Hpr‚ЀЁ @J0@xzxz8eЀ0;Nr~JW` <`<`<`<`<<LHL^bfuEX$2@N\jx &4BP^lzJv , z    b z        8 ^   h  *.:>JNZ^jnz~ *.NRVZ^bfjnrvz~$(,>BFJNRVZ^bfjn.2>B@PXjrz &.6>FNVbh "8J.8@\p2  x !""L#R#^#n#z###v$$<%x%''''''(( (4(>(L(V(`(j(v(((((ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ(@iR&@JT^hv&NVnp SUPP qTRANSP z  SUPP qTRANSP z  @91 )!$0<HT ` @l1Dx @:H\eq,,Layer::P4- ee e&+eeeeeeee,e e e ee ee*e,e, e !  e ReReReReReReReReReReReReReReReReRe  ee eeeeeeeeeeee V  e e "$(e+-079e<ACGeJLN* eeee "$ee)+e.35e8=e?eBFRWeZ_eaedfiekoertwey~eeeeeeeeeee    ee"  .3#ee eee!VDeeeeee%e*e1e6e=eB#ee eee!Deeeeee%e*e1e6e=eB#ee eee!$Deeeeee%e*e1e6e=eBh#ee eee!Deeeeee%e*e1e6e=eB ee  ee  ee  ee  ee   ee  ee # ee /5,e ee$e.d5,e ee$e.5,e ee$e.5,e ee$e.ee"eeeeee e eeeeeeeee"eeeeee e eeeeeeeee"eeeeee e eeeeeeeeeeeeeee e eeeeeeeeeeeee(e(e(e(e(e(e(e( e(e(#e(6e(Le(We(fe(ue(e(e(e(e(e(e(e(e( e(e(e@x4l b 8eeeeeeeeee(((2j&^ , z  eeeeeeeeee ((($\P z eeeeeeeeee(((N Bz  ^eeeeeeeeee(((N>SS7NV WH@N^NuSUPPRESSTRANSPARENTSelect Main Channel Suppression ModeSelect Secondary Channel Suppression Mode F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** SS7 Suppression Setup **Main Channel Mode:Secondary Channel Mode:SuppressTransparentMain_Chan_ModeSecondary_Chan_ModeNV/ //<EDtNXOJW/<NXOJWr€/r‚/N|$.$nN^NuNV/.N4N^NuNVNN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVN^NuNVN^NuNVN^NuNVN^NuNVN^NuNVpN^NuNVpN^NuNVpN^NuNVN^NuNVN^NuNVN^NuNVpN^Nu6?6666LJ66&666606666066&6&666!6&6?66t166.6.6t16:u 666666:u 6666Á?w.66Á?6:u= u66 6t w6666w.666666:u 66 6666:u 6666666:u 66 6uu6u6u666 6626t11669v t669s6t1661661661661661669v t669s6t1661661661661661669v t669s6t1661661661661661669v t669s6t16616616616616666666666666666666G6&6& &>6&6&6G6&6& &>6&6&6G6&6& &>6&6&6G6&6& &>6&6&????flags_d_rdflags_d_rd_maxflags_d_rd_minflags_d_rd_rund_dce_frames_sup_rund_dce_frames_suppressedflags_rdflags_rd_maxflags_rd_minflags_rd_rundce_frames_sup_rundce_frames_suppressedflags_d_tdflags_d_td_maxflags_d_td_minflags_d_td_rund_dte_frames_sup_rund_dte_frames_suppressedflags_tdflags_td_maxflags_td_minflags_td_rundte_frames_sup_rundte_frames_suppresseddce_flagsdte_flagsss7_compression_modeNV/ /$./Hy EBLN/Hy hNHy NABJ9(f0J9(f(J9(f J9(fJ9(fJ9(fJ9(g<(BJ9(f0J9(f(J9(f J9(fJ9(fJ9(fJ9(g<(BJ9(f(J9(f J9(fJ9(fJ9(fJ9(g<(BJ9(f(J9(f J9(fJ9(fJ9(fJ9(g<(N$.$nN^NuNV//. .NB @C("<"QA%,=-"iA "$.&.N^NuNVH 0HyfNB$HyNGjN/Hx/EBNHyN/Hx/N .>N/Hx/NHyN/Hx/N L N^NuNVH 8(nJ,vgJ,wfp`dHyuGBN$/ /N!/,@NBT/Hy/EAN0,\X?BgHy /N/N/Hx/NB LN^NuNVH>0HyEBN y(!@,XOr?J(%gr/Hy /NAHyEN$,<N/GN/Hx/EBN *</N/Hx/N(<>/N/Hx/N &</N/Hx/N/G N/Hx/N.N/Hx/N/N/Hx/N.N/Hx/NNB"@A #$ L |N^NuNVH <*nJ-vgJ-wfp`HyXGBN$/ /N!/-@NB(@HlHy/NA/-N/Hx/EBN(.N/Hx/N/- N/Hx/N.N/Hx/N/ / N/Hx/N L<N^NuNVH<8&n(. HyIBN&/ /N!//E"8N +wf,HyvN$//N// E jN*// N(`tzx/Hx/EBN/Hx/N/Hx/N LN//HyN/G/ /E/ N$P$$.Hye/ E&JN/Hye/ NL N^NuNV/ / &n . ".J+vgJ+wf7@j7@l7@n7Ap7Ar7At`B/+DEBN7@j/+HN7@l/+LN7@n/+PN7@p/+TN7@r/+XN7@t$n&nN^NuNVH?0&n,. $n*.BCxHnHn?BgN%.  @. P $ gRB.~g$mJg`>~g$~g,`0B0(jB4(p`"B0(lB4(r`B0(nB4(r`B4(t RC|cfL N^NuNVH< "n $n6. gB0Hp @J`0@|f0H0Hpr‚ЀЁ @J0@xzxz8eЀ0;Nr~JW` <`<`<`<`<<LHL^bfuEX$2@N\jx &4BP^lzJv , z    b z        8 ^   h  *.:>JNZ^jnz~ *.NRVZ^bfjnrvz~$(,>BFJNRVZ^bfjn.2>BDT\nv~*2:BJRZfl&<N 2<D`t"6  | !!""P#V#b#r#~###z$$@%|%''''''(($(8(B(P(Z(d(n(z(((((ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ@7L &@JT^hn*01=@.  "  ` 6d 6h 6"467 ` ` d d h h   p p  qq664xx555b545555&5D44 ^ .6p  l $5 5 = =  $5 D4T=4v {  F x6 44r4$$* $v H Z $ $p p  $         $ $ v  {    $ $  X46R $$$""$$ $ $4L $  $4! $)1 $ $:~$ $Z~$ $``$dd$hh$v~$$ $ `` dd $ $ $|  $  $dd0``000 *$$ * $#e e eeee$e e eeeeeee;$ee;$ ee  F$eM$`eeeeeee e eeeeeeeeee e"e$e&e(e*e,e.e0e2e4e6e8e:e<e>e@eBeDeFeHeJeLeNePeReTeVeXeZe\e^$eeeee$eeeeeeeeeeeeeeeeeeeeeee$e$e%ers x%op e!e#C%Z{| x%op e!e#%@ #)2i49j;>%+%e e%e ex%e%e%e&e &8ee#e*e17A&q V&e eh&e ez&eeeeee&Ne&8̜ 8͜ 8͜&8͜ 8͜'eeee ' eee ' J  JJ=J eeJ e%e)J;J }'J|J  |J wJ(J-xJ2J6J;J@ EJH     '''88dž88dž#8Ɉ08ΈJ8/."-(.(/.(0((0(04NVNC yTH HnHnHnHnNER/./.N0/./.NFpN^Nulayer1:layer1_cond_recslayer1:layer1_act_recsNVH 8$.(n &ng4Hyl/EENPOJf(.`Hy/NPOJf(gHy.NHyNLN^Nutop_level:conditionXMTCMPLXMIT_COMPLETENV .". Jf <Jf"<##rN^NuDTEDCERECEIVESTRINGONE_OFGOODBCCGOOD_BCCBAD_BCCPAR_ERRPARITY_ERRORFRM_ERRFRAMING_ERRORABORTEnter Receive Stringtop_level:condition_recstop_level:general_cond_recsWAITEOFWAIT_EOFtop_level:actionENHANCECAPTURENV .". Jf <Jf"<##N^NuSENDCALL_SETUP_SENDCALL_SETUP_SEND_IDLEOUT_SYNCIDLE_LINECALL_SETUPDATA_TRANSFERPROTOCLOUT_SYNIDLE_LNCALL_SUDATA_TXSND_DTASND_CLLSND_IDLEnter Transmit StringNO_BCCNEW_IDLNEW_IDLEEnter New Idle Character StringEnter Idle Character StringTRANSMTTRANSMITBOTHREVERSELOWBLINKHEXONOFFLEADStop_level:general_act_recstop_level:action_recsenter_call_phase(); NV/.N6HyNBXN^Nuenter_data_phase(); NV/.N6HyNBXN^Nu{ static char transmit_string [] = "\%c%c\x%03x" ""; static struct { char *text; unsigned short length; } transmit_list [] = { {&transmit_string[0], %d}, }; x21_transmit_call (sizeof (transmit_list) / sizeof (transmit_list [0]), transmit_list, %d); } NVH?<(n/ NAXOJf4/ N6>,BCEHx%/ HyHNADPO.NE&@(l4|POJcx,*KpfBAN#XO<"g<\f <mt`<^b <qt` <ttBA//ND/HsXNEBp|@cHy{HsXNE VKBCPOTMTLRJJbdEAB?BgHyHrND/ NBXLuЉ66>u16&1䂉.1䂉.RҾZ66dž666666RҾZ66dž6&6&6&6&66=u*66&6 66&6 66t666tt6Ƅdž6u0tt tu666Ƅ6>u 6t6U.&]U.&] U0~  0~  "&:t<tt6wWGG G G Gċ_&&:&t0>tʃ9s"U0"\u"0@  @ U uP uRF &Nv^ QVLt^YZ& & & &&&&F0&&4]enter_call_phaseenter_data_phasex21_transmit_callx21_transmit_call_idlex21_idle_actionx21_sync_idle_actionNV/ /$./Hy EBLN/HyN$.$nN^NuNV/ /$./HyEBLN/HyvN$.$nN^NuNV/ / NB @#7#7|#7E7$HxNB&XOJfHx`HxHy/NA $.&.N^NuNVH00. HyGBN&XOJf*HxHy/EANHx*Hy/NHy`(HxHy/EANHx.Hy/NHyN/Hx/NB( y7PHHx PN/Hx/NB L N^NuNVH 0E7"RA"HyGBN$$RA#XOJg HyN/`BHx/NB L N^NuNV/ /HyEBN$"y7A#XOJg HyJN/`BHx/NB $.$nN^NuNV/"y7AJg0 y7|PH/NB$"y7A PN/Hx/NB`t $.N^NuNV"nA)JgHy|`HynNBN^NuNVpN^NuNV"y7A Hx PNN^NuNV"y7AHx PNN^NuNV"y7AHx PNN^NuNVH08&.HyUEBN$I7|"TA /N/Hx/GBN(TA/N/Hx/N$"y7A0/ PN/Hx/N L N^NuNVH 8HyIBN$G7|"SA /N/Hx/EBN"SA /N/Hx/N$"SA/N/Hx/N&SA /N/Hx/N LN^NuNV/.HyNAN^NuNV/.HyNAN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVN^NuNVN^NuNVpN^NuNVpN^NuNVN^NuNVN^NuNVpN^NuNV//". n.B0. SvneЀ0;N*8FTf|r/N1d`/BBN1`N1`/N),`N1| @`N1 @`/N1 @`/N* @`/N1 @`/BBN1`rN)^H0@`f/N1L`Z/N(`P/N1`F/N1 @`Dr $(,2>FJNTdhlpv&,Rt<^Xbhn*6@Lbn $.>F`l~ Nl| < Z j p   & . 2 L X ^ n z     : F R X \ ` d ~  ( 4 @ J l x ~   8 D J V f l x "28DTZf &2BHTz 06FRXh4:l < f l r x !!F"\"r"|""""""@#z##''''P&Zn|0"0>j JvU04P ))<)L)p)x))))))))))))))))))))* ***"***2*8*@*d*x*****+,+4+D+N+V+d+~+++,,0,j,|,,,,,--,-B-p-----0.h..... /8/H/X//////0 0:0\0l0000V1n1233$3.3:3H3V3d3x333333333334 4<4Z4x444445,5J5h5555556:6X6v66666 7*7ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZLAPDSDLCSNASS7X.25ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ: &@JT^hv]]H06BjnHAI DTE h DCE t  MOD 8 MOD 12824 @9`91lA)xI!QYaiq @y   @ @x,;,1.07127 xy"yz;z{L{|^|}pLayer;;d="?]]]]]^^#^3^@]^T]H^e ^e ^i ^i ^m ^m ^q D ^y^ejF^ijF^m zjF^^y^^y^^yL^^y^T^^y$^^yv ^y^^ ^yz__^^0_______ _ _#_#_(_(b_+_+6_0_0`_6_6_9_9 _=_=_A_A _G x ^yz_K ^y__ "^^ "0__ "__ "__ "_ _ "_#_# "_(_( "b_+_+ "6_0_0 "`_6_6 "_9_9 " _=_= "_A_A _d_d^yj_l_l^y ^yz_K " ^yJ_t.0_y _y __ _ __ _ __ _ ^y ^yJ __ _ __ _ __ _ ^y ^yJ  __ _ __ _ ^y ^yJ   __ _ ^y ^yz_~~ ^yz_ ^yz_____ ^yJz_^y__^y__^y ^y ^yJ_t60_y _y __ _ __ _ __ _ _G x ^y ^yJ __ _ __ _ __ _ _G x ^y ^yJ  __ _ __ _ _G x ^y ^yJ   __ _ _G x ^y ^yJ    _G x ^y ^yz_~~* ^yz`  ^yz```%____ ^yz_&____ ^yJ`6`6^yJ`<`<^yJ`B`B^yJ ^y ^y^ ^ ^ ^ `H ^ `O ^ ^ ^ ^  ^y ^y`W`W^y`\`\^yL`b`j^y`s`{^yj ^y` ^ ` ^  ^y ^y 0^ ^ ` ` ^q " `^&```!`2^#>\````, ``` 0 `!@a a !aa!aa! ` `^ ^ a ` a# `  ` `!@$a+a+$ a1a1$ ` `!@$_ _ ` `_$H `z```_`____ `!@ _&H_ _ ` `z` `__(^^BR__BR@__BRh__8r_ _ 8_#_#8t_(_(8 _+_+8_0_08 _6_68F_9_98_=_=8b_A_AN `!@_t4_4_5N,_6Ha 7a(7_y _y _ _ _ _ _ _ a6 a6 a: a: a> [`> \8 ` `!@ _4_5N,_6Ha 7a(7_ _ _ _ _ _ a6 a6 a: a: a> [`> \8 ` `!@  _5N,_6Ha 7a(7_ _ _ _ a6 a6 a: a: a> [`> \8 ` `!@   _6Ha 7a(7_ _ a6 a6 a: a: a> [`> \8 ` `!@    a 7a(7a6 a6 a: a: a> [`> \8 ` `!@     a(7a: a: a> [`> \8 ` `z_~~+6 `z_-V `z``/T`%/T____ `z`10_10____` ` `zaE2aUaU2a\a\2adad2 `zaiYayayYaaYadadY `!@_t?_@2_@,_AdH_y _y _ _ _ _ _ _  a> [`> \8 ` `!@ _@2_@,_AdH_ _ _ _ _ _  a> [`> \8 ` `!@  _@,_AdH_ _ _ _  a> [`> \8 ` `!@   _AdH_ _  a> [`> \8 ` `z_~~: `z_4`%>4____ `z`Y_Y____` ` `!@_tK_L_Lj,_M6Ha~N$_y _y _ _ _ _ _ _ a6 a6 a> [`> \8 ` `!@ _L_Lj,_M6Ha~N$_ _ _ _ _ _ a6 a6 a> [`> \8 ` `!@  _Lj,_M6Ha~N$_ _ _ _ a6 a6 a> [`> \8 ` `!@   _M6Ha~N$_ _ a6 a6 a> [`> \8 ` `!@    a~N$a6 a6 a> [`> \8 ` `z_~~Dr `z_Fp `z``HL`%HL____ `z`J_J____` ` `zaEYaUaUYa\a\YadadY `z_KOV `!@_tV_y _y _V_ _ _WN,_ _ _XH_ _  a> [`> \8 ` `!@ _V_ _ _WN,_ _ _XH_ _  a> [`> \8 ` `!@  _WN,_ _ _XH_ _  a> [`> \8 ` `!@   _XH_ _  a> [`> \8 ` `z_~~QT `z_S0 `z``T`%T____ `z`Y_Y____` ` `!@      a> [`> \8 ` `!@       `> \8 ` `aZ~ `!@`6`6``<`<``B`B` ` `  `` ` a `  `Illegal SAPI ValueIllegal TEI ValueIllegal Control ByteIllegal Receive CountIllegal Send CountIllegal Bit ValueLAPD_ConditionsLAPD_ActionsLAPD_OSI_ConditionsLAPD_OSI_ActionsDTEDCERCVPROTOCLtop_level:conditionNS_ERRNR_ERRT1_EXPIREDFRAME_SENTWINDOWMORE_TO_RESENDNO_MORE_TO_RESENDtop_level:condition_recstop_level:general_cond_recsINFORNRREJSABMUADISCDMFRMRSABMEUISI0SI1OTHERBCCEnter Frame Control ByteINVALIDUNKNOWNSAPISAPI=TEITEI=CRCR=P/FP/F=Enter Frame SAPI:Enter Frame TEI:Enter Frame CR:C/R=0C/R=1Enter P/F Value:P/F=0P/F=1C/RC/R=Enter SAPI:Enter TEI:LOOPBAKLOOPBACKEnter C/R Value:GDBCCBDBCCABORTT1_EXPFRM_SNTFULLEMPTYNOT_FULNOT_FULLNOT_EMPNOT_EMPTYMORENO_MOREGV_DATAGIVE_DATAtop_level:actionENHANCESUPPRESSRESET_NRRESET_NStop_level:action_recstop_level:general_act_recsREVERSEBLINKLOWRSET_NRRSET_NSFIRSTNEXTNR=NS=STRINGEnter NR Value:ACK_NSLAST_NRAUTOEnter NS Value:RCVD_NRSKIPEnter Transmit StringSUPPRESsend_frame_structure { unsigned char sapi_type; unsigned char tei_type; unsigned char cr_type; unsigned char frame_type; unsigned char NR_type; unsigned char NS_type; unsigned char p_f_type; unsigned char bcc_type; unsigned char sapi_value; unsigned char tei_value; unsigned char cntrl_byte; unsigned char NR_value; unsigned char NS_value; }Do}o} }} R%( R+. R4VeU #'8*1U7;BHLSX8 [a R   R RШ]]]]]] ] ] ] ] ]]]]]]]]] ] ] ]]]]] ]]]]]]] ] ] ] ]]]]]]@]O@]ssnsssT]]]]],]@]S]g]{]]]]]]](H h#,7~ h}a ]!N!N"N]U aaaŹa͹Uҹa}o} o}8]]aaaaa R]] ]  Re}8Ո!N]  &N 'N RUm}G788dž ]e}-8Ј0m}5~Gg}8g}8h}]+-e}/8Ԉ4 R:=A]DF  RUl} m}  Һ R8>]]8]8!]&]*8Ɉ/]5#J88dž ]]%].e}C8ЈFm8ʈ8dž ~]] ] >] %N]]]]#%N1]4]8]<A] %N]]"%N-]2%N:]==8̈8dž N &Ne &Nz&N  &N 8ˆ] ]] ]]] &N 8ˆ] ]]   ] ]] &N8;]]8]]]#]&])],]0]9s]]]] ]]]]"])]0]4]9]=]D]I]M]S]V8Yн Re}8Ո "N( ]]] ]] &   RUm}i88dž8ˆ@]N]S]W]_e}b8Јe~]](NU]] ]l}Ǿ)NU]]] ]]l}]  4]o}o} #N8ф]]#]']+}0$=]]] ]]]]!]%](]+].]2];a ]]lg} 8e]] 8 l}eeee ]]]]=]ee]#],]2];e]e D]]]+]3];]BOM]]]4]:]D]K/]]] ee&e-]]e %N]<8ˆ] ]]]e]#]']+]/88]]]] I8] ]]]!)]+./]1]5]9<]?]D]G]/]] ]]8҄o}o}8%}+X]] ]]8҄o}o}!8'o},o}/#N28ф>]C]G]K]O}T?n}A B;O#n}AB rn}ABn}ABen}] ]]]]#](808dž<d}]8ψ`*N.N/N0N$N&N 'N %N (N 1N,N+N-N)NN7N5N!N =N8N6N@9N:N@o *N1Nz2N"N#N 3N2N"N#N 3N?N }@N }4N ]1N2N 8ˆ88dž *N-/N62N:}H}V8ψYd>N0N3N? M Q \3N_ c     QF+ 5:N>H>T^^~kuǁNjǘN!DZN$ǾN&N'N%N)N(N-"N+-N,8N1EN;PN<~B &+498<DAHNW`8 ckq8"v F]F^&FY*VSFUFYF[FWFTFZF(VF.\F4XF:RFC1[[NWFQFWFUFSFVFUFYF VFZFWF[FXF \F&QFRF]FSF]FTF^FUFVF WF XFYF ZF$[F(\F,]F0^FSRC SAPI TEI C/R TYPE Nr Ns P/F SIZE TIME BCCUNKWN=??DISC DM FRMR INFO REJ RNR RR SABM SABME SI0 SI1 UA UI INVALID FRAME}.}%}|}d||}[|||||||}I} ||}R||||||||}}7|}@||||܂԰2jܢ>        "|D SRC SAPI TEI C/R TYPE Nr Ns P/F SIZE TIME BCC INVALID FRAME܂԰2׸Nܢߐ        P n$(,0LAPDNV f0<`&NB#NB#NB#B@N^NuEnter T1 Timeout: SecondsLOGICAL DTELOGICAL DCESelect Emulate FunctionMOD 8MOD 128Select Frame Sequencing ModulusEnter Window Size (1 To 7) For Outstanding Frame: Enter Window Size (1 To 127) For Outstanding Frame: F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** LAPD Frame Level Setup **secT1 (for INFO frame): Emulate: Mode of operation:Window size: Window size:MOD_8MOD_128LOGICAL_DTELOGICAL_DCEInfo_Frame_Timeout_In_MsEmulate_FunctionMode_Of_OperationMod_8_Window_SizeMod_128_Window_SizeGDBCCBDBCCABORTNVH 0"n y P h"$P i\H$Hy/GENPOJf|`,Hy/NPOJf|`Hy/NJf|L N^NuGDBCCBDBCCABORTrcvd_frame_bcc_typem_frame_bcc_typeNVH08(nG S P fN6$@ S P `$@ l\H$Hy/GENPOJf|`.Hy/NPOJf|`Hy/NPOJf || B9rlrg `&<$`&<8`NB/HxNANDL N^NuLOOPBACKNV|H8(nA"P i h =f"i/) /)E|/ ND y P h"&PHy"/ NEJf|` / NA@LpN^Nurcvd_frame_addr_crm_frame_addr_crNV|H 8(nA"P i h =f"i/) /)G|/ ND y P$P|/ NA@B9rlrg `$<`$<`NB/HxNANDLlN^NuNV y P h" P|CB( B(B(B(||B(B(|B(B(B(N^NuNV/ N6"@E R P ||C R PTHN$nN^NuNV y P h" P|B( B(B(B(||B(B(|B(B(B(N^NuNV/ N6"@E R P || R PTHN$nN^Nul2_enhanceNVBHyHxNAN^NuREVERSEBLINKLOWl2_enhance = %d; NV H08"nA&PB<IE k\H$PHy/ NPOJf`.Hy/ NPOJf`Hy/ NPOJf`BJg +g&@`BJfBBHyE / ND/ NBXL N^Nuframe_sentNV/ "y$QA < QTHB/HxNAND$nN^NuNV y P h" P|B( B(B(B(||B(B(|B(B(B(N^NuNV/ N6"@E R P || R PTHN$nN^Nul2_give_data ()NVBHyxHxNAN^Nul2_give_data(); NVHyNBXN^NuNV y P h" PB(B( B(B(B(||B(B(|B(B(B(N^NuNV/ N6"@E R P |B) R PTHN$nN^Nuinvalid_frameNV/ "y$QA <\ QTHB/HxNAND$nN^NuNV/ /E R PJfN6 R P R P h"$N6"@ R P h" #B"$.$nN^NuNV/ y P hE"`$H"RA"JfB $nN^NuNVHx&NB"@ IBXBB)B)B)B) B)B)B)B) B) B"BN^Nu ( %srcvd_frame_typem_frame_type && (%s == %d)NVH 0$n&n y P/Hy|/ ND gVJ*gPB9rlrg `$<`$<`NB*//Hy/ NEXOHsNDL N^Nurcvd_frame_cntrl_byte_1m_frame_cntrl_byte_1NVH 0$n&n J* gPB9rlrg `$<D`$<\`NB*//Hy/ NEXOHsNDL N^Nurcvd_frame_addr_sapim_frame_addr_sapiNVH 0$n&n J*gPB9rlrg `$<`$<`NB*//Hy/ NEXOHsNDL N^Nurcvd_frame_addr_teim_frame_addr_teiNVH 0$n&n J*gPB9rlrg `$<z`$<`NB*//Hy/ NEXOHsNDL N^Nurcvd_frame_addr_crm_frame_addr_cr && (%s != %d)NVH 0&n$n J+g\B9rlrg `$<`$<#`NJ+f B/Hy` B/Hy3/ NEXOHrNDL N^Nurcvd_frame_pfm_frame_pfNVH 0&n$n J+g\B9rlrg `$<`$<`NJ+f B/Hy` B/Hy3/ NEXOHrNDL N^Nurcvd_frame_nrNVH 0$n&n J*gPB9rm$<T`rNB/HxNAB*//Hy/ NEXOHsNDL N^Nurcvd_frame_nsNVH 0$n&n J*gPB9rm$<`rNB/HxNAB*//Hy/ NEXOHsNDL N^Nurcvd_frame_bcc_typem_frame_bcc_typeNVH 0$n&n J* gPB9rlrg `$<P`$<d`NB*//Hy/ NEXOHsNDL N^NuNV/B9rlrg `$<`$<`NB/HxNAND$.N^NuNVN^NuDTEdte_frameDCEdce_frameRCV0rcvd_frameNVH 0$nNB j\H$PHy/ NEJf|` / NA@LpN^Nurcvd_frame_pfm_frame_pfNV|H 8(nA"P i h =f"i/) /)G|/ ND y P$P|/ NA@B9rlrg `$<`$<`NB/HxNANDLlN^Nu )NV/ /NB$@ y P$/ /NPOJgd/ /N / /N/ /NB/ /Nr./N/ /Nb/ /N/ /Nv./N4POHy/ NE B*,%nXND$.$nN^NuNV/$./NR/N$.N^NuNV y P h" P| B( B(|B(||B(B(|B(B(B(N^NuNV/ N6"@E R P ||  R PTHN$nN^Nuresend_frame ()NVN"@ABHyHxNAN^NuFIRSTresend_frame ( %d, %d); NV / /t"nA Pg Hy< h\H/NEPOJVH4DBNr‚/"@AB/HyBE / ND/ NBX$.$nN^Nul2_resend_edgeNVBHyHxNA y PTHN^Nu( l2_resend_edge != 0 )NV/ /$.NB$@HxHj,Hy NADB%BX$.$nN^Nu( l2_resend_edge == 0 )NV/ /$.NB$@HxHj,Hy^NADB%BX$.$nN^Nureset_nr ()NVBHyHxNAN^Nureset_nr (); NVHyNBXN^Nureset_ns ()NVBHyHxNAN^Nureset_ns (); NVHyNBXN^NuNV y P h" P|B( B(|B(||B(B(|B(B(B(N^NuNV/ N6"@E R P || R PTHN$nN^NuNV y P h" P|B( B(B(B(||B(B(|B(B(B(N^NuNV/ N6"@E R P || R PTHN$nN^NuNV y P h" P|/B( B(B(B(||B(B(|B(B(B(N^NuNV/ N6"@E R P ||/ R PTHN$nN^NuNV y P h" P|oB( B(B(B(||B(B(|B(B(B(N^NuNV/ N6"@E R P ||o R PTHN$nN^NuNV|H8 y P h"&P(nA"P i h =f"i/) /)E|/ ND| / NA@LpN^Nurcvd_frame_addr_sapim_frame_addr_sapiNV|H8(nA"P i h =f"i/) /)G|/ ND y P$P|/ NA@B9rm <`r <B/HxNANDLpN^Nusend_frame ()NV/ NBHyaHxEANBHyHxN$nN^Nuup_dlDL_DATANV . y P P h" Hy Hy/NBdN^Nu{ static struct send_frame_structure transmit_frame = { %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d }; send_frame (%s, &transmit_frame); } NVH t//CCcgcgCCcocol2_give_dataresend_framereset_nrreset_nssend_framel2_current_window_edgel2_lower_window_edgel2_upper_window_edgel2_resend_edgercvd_frame_addr_sapircvd_frame_addr_teircvd_frame_addr_crrcvd_frame_bcc_typercvd_frame_buff_segrcvd_frame_cntrl_byte_1rcvd_frame_nrrcvd_frame_nsrcvd_frame_pfrcvd_frame_sdu_offsetrcvd_frame_sdu_sizercvd_frame_typebcc_errorframe_sentinvalid_framenr_errorns_errorrcvd_framel2_T1NV/. B. /HygNAzN^NuNV/ /<{NDtXOJfHn/<|NC`B9Hn/<}NCPOHnNA2 @ 3/<zNDtPOJf `B9E/ /<yNCHx/ NA#$nN^NuNV/$./HyeNAPOJ9fJ9fJ9fJ9g HyyNB//NC`B9$.N^NuNV/ /$./Hyd@EBLNHyf NA/HyeSNHxB09//NA .HyeaNPOJ9g /Hyeo`/HyeNPOJ9g6/HycNBLHyR NB"BAHAA?BgHyR NAJg/9HyN#NA$.$nN^NuNVH00HygzEBN&tGXOJf J9gHygN$XOJgJ9f HygN`J9g HygNB/Hx/NB`BHx/NB J9g HygNB/Hx/NB`BHx/NB /Hx/NB L N^NuNV//$.HyhdNB&/HyNAP/Hx/NB $.&.N^NuNVH 0tJ9gHygGBN$pXOJ9g HyhNXO/Hx/EBNp J9g Hyh,NXO/Hx/Np J9g Hyh:NXO/Hx/Np J9g HyhHNXO/Hx/NHyhVN/Hx/N L N^NuNVH 8HyhGBN$pXOJg HyhNXO/Hx/EBNpI Jg HycNXO/Hx/NHyorN/Hx/NHyoN/Hx/Np,Jg HyiNXO/Hx/N J9g$HxHyN$EANHxHyN%NHx`"HxHyN$EANHxHyN%NHxHyeN LN^NuNVH00&.HyhGBN$/N./Hx/EBNpJ9g /N0XO/Hx/Np J9g /N&XO/Hx/Np J9gNj/Hx/Np J9gN./Hx/Np J9g HycdNXO/Hx/N L N^NuNVH00&.HyoEBN$HypfN/Hx/EBNN/Hx/N.HyGAPN/Hx/N/HyN/Hx/N$.HyHN/Hx/N/HyhN/Hx/N$.HyN/Hx/N L N^NuNVH00HypEBN&XOJ9gHyp`HyqN/Hx/NB .qBGBN/Hx/EBNHyqnN/Hx/N.qN/Hx/NHyqN$JgRHyrN/Hx/NHyrN/Hx/N.rN/Hx/NHyrN/Hx/N `0BHx/NBHx/NBHx/N BHx/N /Hx/NB L N^NuNVH08Hyi(EBN&HyiN$HxHy/GAN/Hx/IBN.iN$HxHy/NHyjzN/Hx/N.Hx/NHyjN/Hx/NJ9gN`/Hx/NN`N/Hx/NN/Hx/NN/Hx/GBNN/Hx/NHyjEBN/Hx/Nt(Jg HyoN$Hyo.N/Hx/N/Hx /N/.Hy(NAP/Hx /N L N^NuNVH 0HykEBN$HyjN/Hx/GBNHykN/Hx/N .k N/Hx/NHykN/Hx/N L N^NuNVH 0HykEBN$HyjN/Hx/GBNHykN/Hx/N .kN/Hx/N L N^NuNVH 0HylEBN$HyjN/Hx/GBNHykN/Hx/N .k N/Hx/NHyk u& & && &<#t6L DLT\D& u&$&&& &&  uDL uLutLutLru.ŀ..!..u l...Lr.tl:.t.uŀˆ.Ōƚs&d &e&d&e&d &e&d &e&E׉M&&e&mt׉M&&et6;6tD r 6;6tGDDDD>u6;6u6 r6 6<u;u DuD6 u>& u&$&L& && & r;6u16t\&'&t\&>u>u- Ƌ &&66& &&$<t}& &&&"&s$<uur%&r$ Ļ׀rI&>#.+rI&>#> Ļ׀&>8v 8s8vt 8r8v 8t&:&tĀ&:u6d:&t;6tD 9r;u6 9r6;6uD0t+û&u> uMûU &EF&EF&EF &E؉v ׎ ]˸ &E&E&E ˸ &E ˸ &E ˸&u1&&6&&&7RP u&&&6 &&E//CCcgocgoÊ%u$ur<u<u<u&$s&&"/u>uou>u>t&&& &&"r $&$9r&%< t%&ǀ>ע&&"r"rP$&8r#<s+r&&&>ܻ׀&& %Т>uV+vPP u&&& &@&O& G& G&G&G&G &G &GG& GItFItF&"GIt>u#Ixx &PFG!GΉ7p6$<u߻׉dce_abortdce_bad_bccdce_framedce_good_bccdte_abortdte_bad_bccdte_framedte_good_bccl2_real_time_clock_valuem_frame_addrm_frame_addr_sapim_frame_addr_teim_frame_addr_crm_frame_bcc_typem_frame_cntrl_byte_1m_frame_pfm_frame_nrm_frame_nsm_frame_typel2_enhancel2_suppressNVB. /HyxNAzN^NuNV/<{NDtJf `B9N^NuNVH 0$./HytGBLNHyyEANHyyN/Hy{N/Hy|;NL N^NuNV/ /$./Hy|}EBLNHx/</NA /Hy|N$.$nN^NuNVH 0HytEBN$HyzN/Hx/GBNJ9gHyt`HyuN/Hx/N L N^NuNVH00&.Hyu9GBN$/N/Hx/EBN/N/Hx/N .{N/Hx/N L N^NuNVHyuwNBN^NuNVH88(.HyuIBN&N/Hx/EBNG>Jg.HyuN$// NAP/Hx/N/Hx/N$`BHx/N E^JgLHyuGBN$// NAP/Hx/EBNHyuN/Hx/N$.Hx/N`BHx/NB EJgLHyvGBN$// NAP/Hx/EBNHyuN/Hx/N$.Hx/N`BHx/NB EJgLHyv-GBN$// NAP/Hx/EBNHyuN/Hx/N$.Hx/N`BHx/NBPO.uNB/Hx/NB LN^NuNVH88(.HyuIBN&N/Hx/EBNGJg.HyuN$// NAP/Hx/N/Hx/N$`BHx/N EJgLHyuGBN$// NAP/Hx/EBNHyuN/Hx/N$.Hx/N`BHx/NB EJgLHyvGBN$// NAP/Hx/EBNHyuN/Hx/N$.Hx/N`BHx/NB E~JgLHyv-GBN$// NAP/Hx/EBNHyuN/Hx/N$.Hx/N`BHx/NBPO.uNB/Hx/NB LN^NuNVH 0HyvIGBN$HyvN/Hx/EBNN/Hx/N.NDtXOJf*HytN/Hx/NHyuN/Hx/N `BHx/NBHx/NN΢/Hx/EBNN/Hx/NHywNB/Hx/N L N^NuNV/ /HywEBN$HywN/Hx/NB $.$nN^NuNV/ /HywYEBN$HywN/Hx/NB $.$nN^NuNVH 0HyxEBN$HyxN/Hx/GBNHyxN/Hx/N .zN/Hx/N L N^Nu&&u&&> t&?&>&t&&&U&u&> u &&&&&&]l2pp_trbuffl2pp_trbuff_endl2pp_trbuff_ctlNV//". n.B0. SvjeЀ0;N *4>NVl/N`/BBN>`N^`/Nv`NP`Nt`/N0`|NB`r/NL`f/BBN\`TNx`L/NȠHyzNA`6/NHyzrNA` N4`/Nɖ`N`Np$.&.N^Nu&&t Ȁ66>ك&& &G&&t t6>>& u+>)v ك& &I>>Ή%s9u;u&u6)s6>>rw&E ك&M& 6&=u u 6s %ƃՉ6ģģģ@ģ)NVH?0$n*. *** 6*[tJg~΀/NBBXO|cJg.|b$0 <gB/Hx@/Hy}mN"`DJfJf <~8`Jf <~o` <~Jf <~//Hx Hy~ // N٦* L N^NuNV/$. "nA/r?€/NCl $.N^NuNV/$. "nA/r€/NCl $.N^Nu10NV"nA < f <N^NuNVH8 n((g^<f&  x @}x„$0`2Jg<b x @}|$`$<|`$<}|fHy|BCNCl LN^NuNVH0 n$n ((g<g Jg <cB`<Jf2Jg$(Hnvƀ/NCl JB` J B`Jg( J`B L N^NuNVH0 n$n (WDJ(f0Jg"Hnvƀ/NCl JB` J B`Jg J`B L N^NuNV n(J(g <f`(Jg < ` <N^NuNVH8 n&. (((2(Y|cJg|b<g&<`BJfJf <`Jf <` <mJf <6/Hx Hy//Nڌ LN^NuNVH0 n$n ((g<g Jg <cB`<Jf"Jg8(/ vƀ/NCl `(Jg(/ vƀ/NCl` J  B* L N^NuNVH0 n$n (WDJ(f Jg4/ vƀ/NCl `&Jg/ vƀ/NCl` J  B* L N^NuNVH?<(..@H@B@&.$n z.H0@o,BFHFN-F~-HC-IKIG. HH@B@$B"n q/.NH2A/ /B///N"/"nB//NF(ZZMZLZKZJ$Rm L`(08>JRZ`lt| &,8@HNZbjp|  6 < B H n z     $ * 6 > F L X ` h n z    $ , 4 : F N V \ l p x ~  4 J V ^ f l  " * 2 8 j &2:BHjv~06Xdltz0@Fbh"4PV\b"(.>D`f  ,2Bd  BNV^d<LRt:Lr  (.P\dlr8>Z`8HNjp*<X^dj$*6FLRXhn4:l8DJfl&HTZjnrv| &Xz$ 6 B J N X h l p z !!!!4!V!x!!!!!!! """."4"@"f""""""""#2#P#r#########$>$N$T$$$$$$$$% %0%<%B%H%R%^%d%%%%%%%&&"&*&0&b&&&&&&&&&''''*'2':'@'L'T'\'b'n'v'~''''''''''''''''( (( (((.(:(B(J(P(\(d(l(r(~((((((((((())()0)>)J)R)`)l)t))))))))))))* *&*,*H*N*j*p*******+*+H+X+^+++++++++++++,,,$,*,F,L,h,n,,,,,,,,-(-J-h-x-~---------...(.4.<.D.J.f.l......../&/H/f/v/|////////000&020:0B0H0d0j00000001$1B1R1X1t1z111111112222$2@2F2b2t222222 33.343P3V3r3x333333333 44.4T4v44444444 5555B5T5p5v55555555556 6B6N6^6d6j6p666666667*70767<7L7R7^7n7t7777777778888*8:8@8L8\8b8n888888888 99 9.9:9B9J9P9l9r999999999:(:8:J:p:::::::: ;;;,;8;@;H;N;j;p;;;;;;;;<<&<L<n<<<<<<<<<===$=*=F=L=h=n=======>(>F>V>\>x>~>>>>>>>>??"?(?D?V?f?x???????@&@8@T@Z@`@f@@@@@@@@@@@A A&AXAjAAAAAAAAAAABBFBdBzBBBBBBBBBBBBCCCC$C@CFCbChCCCCCCCCC DDDDfDDDDDDDDDDE EE"E.E6E>EDE`EfEEEEEEEEE FFBFdFFFFFFFFFF GG G,G4GFlΉ$,Pr~Ċ΋ "$8@X΍֍\px&2|.Đ ‘Α,8>pڒ<T*Jb @T\ȗҗܗT\nȘИ*xBĚ 2FΛ8@fxМ؜hpjޞ$<BrР(0Vhȡ8T`Pv :LҤVjvʥ&:Fcdcc@dSeaeoeeeeeeeeeeeeeeeee ff*f:fJfZfjfzfffffffffgg&g*g2g6g>gBgJgNgVgZgbgfgP֫ޫ*2:BLRjƬЬڬ,4Zlxޭ>NƮή &L`hԯZl̰԰<Ldzر :Xnв:J|ʳҳ$4RZd´ڴ(8Pfʵܵ(@Vh~̶ 2Djzз 0@rȸ8Hpйzggggggh,h:hHhVhdhhhhBʺʾi(iiizjjjjk k.kNjrz 0FT,`j,hr8Bl,\r$4Lbyrzzz>PZfpzzz{{;|K|X|e|r|}|||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~ ~~~~~ ~$~(~,~0~4~RXht|*n dth|Nb^lrx(.:JP,2:b".fnzV^fnv~,FP`tz ,<BXbt|2:\FNV^nt~,28@HP J6.^&>€Ȁ̀Ҁր܀ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZb m>&@JT^hvv  0ުm8nlmAmPRIMARYmSECNDRYm m MOD 8 mMOD 128mm2n 4nC PT-PT n~ MULTI n`n ,n,n,o:,o{ ,o,o,p>,p) ,p),q)-qB)-q: -q:-r:-rF:-r @9r1r)r!rrrrs @ss%s)s8sNsasvs 5s 4rs $~s #s s s s*6B N Z@f     : Zz:Zz @x;1.07127sstttt%xyt0yzt=0z{tN8{|t`|}tr}~t@~ttttttttu uu'u6uEuTucurLayer;;|H=EZEpEEEE EEE  F F F F F F F 0 FF F FF(FF/F~F6FFAF{FL@FSFTFbFT FFtF FFF}LF3F3FFVFF2FF.FFbFFFFFFzFF0FFz FFFFFFFF|tFFFFyLFFFFJFFxFF$F d FFF}LF3F3FFVFF2FF.FFbFFFFFFzFF0FFz FFFFFFFF|tFFFFyLFFFFJFFxFF$GGF}G G F F PGv4G G G6G G F F Pu u G6G G F FG% F PG:FGKGOFGQGUF F FGW F PGTv4GG G G G F d F F Pu u GG G F d F F Pu u u u F d F FG% FG:GKGOGQGU F PGpGpFwGvGvFwG|G|Fw F FF( F( F/ F/ G F6 G FA FL FL Fm  F FGGGGGGJGG@t F PGrG G F FG%F FG Fe G Fb  F Fu u  FpFo Fo G G F  GFo$RGG||Fm!pG$HNG$HlH!z{8H G| GHH(p GFm Fm HC G HK G  G GH H HS H  GH[H[!HcHc!HiHi! G GHmHm"HsHs" G GG:vuG>PG G G G G Gu u G>PG G G GG:uG G G GFF'}F3F30FF0 FF0FF0FF-FF-~FF->FF-zbFF-FF-yFF-FF-FF-FF-|*FF-FF-yFF-VFF-FF-xvFF5& GG8VuG;PHH?}HPA~G G G G Hx Hx H| H| H DJGx D G Gu u G;PHH?}HPA~G G Hx Hx H| H| H DJGx D G Gu u u u HH?}HPA~Hx Hx H| H| H DJGx D G Gu u u u u u HPA~H| H| H DJGx D G GG9uG]]8]8!]&]*8Ɉ/]5ZJ88dž ]]%].e}C8ЈF<]] o}o}'N8ф"]']+]/]3}88ʈ8dž &N%N  %N]]%]];6)N)N,q<)N)N*)N68̈8dž  *NѺ *N 8ˆ]]] '] ]]%] ]]] ] *NV 8ˆ]]] ] ]]]    ] ]] ] *N  ]*N] *N>]8]NY] ]]]];]O]R8U Re}8Ո$N.] R ]%,  RYm}q8ˆ ]88dž]4]ge}j8Јmf,NYl}-NYl}ٽ8]o} o}'N8ф]#]']+]/}4]]%](N]]] ]]]v ]]g} 8e]] 8 l}eeee ]]]]ξ]ee]e]ee]]]D]]]+]3];]B_M]]]4]:]D]K]]]]ſ-]e"e$)e+-]] e)N <8ˆ] ]]]e]#]']+]/88F   H8+02<   /]] ]]8҄o}o}8%}+a]] ]]8҄o}o}!8']/o}5o}8'N;8фG]L]P]T]X}]F:n}AB7'n}AB$)n}AB&n}ABn}AB n}AB%n}ABBen}] ]]]]#](808dž<d}]8ψ` 9J?JDJEJFJ GJDJEJFJ GJzi{i|iyi BJCJ}zi {i|i}i9J:J8yi  }AJ}i}i"}i)|i~i9J:J8yi  }>@~iG~iN~iU2:J9J;J(J@3J?@JCKJB^B &+498<DAHNW`8 ckq8"vF]F^FY9J:J;JJ ?J @J AJ RJ SJ TJUJBJCJDJEJFJGJHJIJJJKJ LJMJNJ@OJQJ@@PJVSFUFYF[FWFTFZF(VF.\F4XF:RFC1[[BJCJLJ QF$RF(UF,WF0WF7WFDSF[WF_XFcQFgVF}XFSFVFUFHJWFQFWFUFSFVFUFYF VFZFWF[FXF \F&CQFRF]FSF]FTF^FUFVF WF XFSYF ZF[F\F[]F]^FSRC ADDR TYPE Nr Ns P/F SIZE TIME BCCINVALID FRAMEBCN DISC/RD CFGR DM FRMR INFO REJ RNR RR SIM/RIM SNRM SNRME SREJ TEST UA UI UNKWN=??UP XID iiiiiiiniiiiiiiiiiiiwiiiiiiiiiiiiiijiieJӞBJ @ݦt      `Վik SRC ADDR TYPE Nr Ns P/F SIZE TIME BCC INVALID FRAMEJӞ&ֶJ @t       4LSDLCNVNB#bNB#fNB#jpN^NuNV/<~NDtrWH0@ DN^NuEnter Idle Timeout: Seconds PRIMARYSECONDARYSelect Emulate Function MOD 8 MOD 128Select Frame Sequencing ModulusEnter Window Size (1 To 7) For Outstanding Frame: Enter Window Size (1 To 127) For Outstanding Frame: POINT-TO-POINT MULTI-DROP Select Emulation AddressingEnter Controller Address for Drop #0 (hex): Enter Controller Address for Drop #1 (hex): Enter Controller Address for Drop #2 (hex): Enter Controller Address for Drop #3 (hex): Enter Controller Address for Drop #4 (hex): Enter Controller Address for Drop #5 (hex): Enter Controller Address for Drop #6 (hex): Enter Controller Address for Drop #7 (hex): Enter Controller Address for Drop #8 (hex): Enter Controller Address for Drop #9 (hex): Enter Controller Address for Drop #10 (hex): Enter Controller Address for Drop #11 (hex): Enter Controller Address for Drop #12 (hex): Enter Controller Address for Drop #13 (hex): Enter Controller Address for Drop #14 (hex): Enter Controller Address for Drop #15 (hex): F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** SDLC Frame Level Setup **secIdle Timeout: Emulate: Mode of Operation:Window Size: Window Size:Emulation Addressing:234511118901 1145670123DROP ADDR DROP ADDR DROP ADDR DROP ADDRPRIMARYSECONDARYMOD_8MOD_128POINT-TO-POINTMULTI-DROPIdle_TimeoutEmulate_FunctionMode_Of_OperationMod_8_Window_SizeMod_128_Window_SizeEmulation_AddressingCalled_Addr_0Called_Addr_1Called_Addr_2Called_Addr_3Called_Addr_4Called_Addr_5Called_Addr_6Called_Addr_7Called_Addr_8Called_Addr_9Called_Addr_10Called_Addr_11Called_Addr_12Called_Addr_13Called_Addr_14Called_Addr_15LOOPBACKNV|H8(nA"P i h =f"i/) /)G|/ ND yj P h$PHyu/ NE"Jf | B*`| / NA@LpN^Nurcvd_frame_addrm_frame_addrNV|H 8(nA"P i h =f"i/) /)G|/ ND yj P$P|/ NA@ B9nrlrg `$<v`$<v&`NB/HxNANDLlN^NuGDBCCBDBCCABORTNVH 0"n yj P h$P i\H$Hyv/GENPOJf|`,Hyv/NPOJf|`Hyv/NJf|L N^NuGDBCCBDBCCABORTrcvd_frame_bcc_typem_frame_bcc_typeNVH08(nGj S P fN$@ S P `$@ l\H$Hywf/GENPOJf|`.Hywl/NPOJf|`Hywr/NPOJf ||B9nrlrg `&<wx`&<w`NB/HxNANDL N^NuNV yj P h P| | B( B(| |B(B(B(B(N^NuNV/ N"@Ej R P || R PTHN$nN^NuNV yj P h P| | B( B(| |B(B(B(B(N^NuNV/ N"@Ej R P || R PTHN$nN^NuNV yj P h PB( | N^NuNV yj P P|B( NDN^NuNV yj P h P|C B( B( B(| |B(B(B(B(N^NuNV/ N"@Ej R P ||C R PTHN$nN^NuNV yj P h P| | B( B(| |B(B(B(B(N^NuNV/ N"@Ej R P || R PTHN$nN^Nul2_enhanceNVBHyzHxNAN^NuREVERSEBLINKLOWl2_enhance = %d; NV H08"nA&PB<IE k\H$PHy{/ NPOJf`.Hy{/ NPOJf`Hy{"/ NPOJf`BJg +g&@`BJfBBHy{&E / ND/ NBXL N^Nuframe_sentNV/ "yj$QA <{ QTHB/HxNAND$nN^NuNV yj P h P| | B( B(| |B(B(B(B(N^NuNV/ N"@Ej R P || R PTHN$nN^Nul2_give_data ()NVBHy|HxNAN^Nul2_give_data(); NVHy|NBXN^NuNV yj P h PB( B( B( B(| |B(B(B(B(N^NuNV/ N"@Ej R P |B) R PTHN$nN^Nuinvalid_frameNV/ "yj$QA <} QTHB/HxNAND$nN^NuACK_NSLAST_NRAUTONV|H< yj P h&P*nA"P i h =f"i/) /)E|/ NDHy}/ IENJf| `@Hy}/ NPOJf| `(Hy}/ NPOJfB+ `| / NA@L<lN^Nunr_errorNV/ "yj$QA <~ QTHB/HxNAND$nN^NuRCVD_NRSKIPAUTONV|H< yj P h&P*nA"P i h =f"i/) /)E|/ NDHy~/ IENJf|`@Hy~/ NPOJf|`(Hy~/ NPOJfB+`|/ NA@L<lN^Nuns_errorNV/ "yj$QA < QTHB/HxNA$nN^NuNV|H8(nA"P i h =f"i yj P h$P/) /)G|/ ND| / NA@| B* B* B*B* |B*B*B*LpN^Nurcvd_frame_cntrl_byte_1m_frame_cntrl_byte_1NV|H 0$nN&@ yj P $j/* /*E|/ ND| / NA@B9nrlrg `$<~`$<`NB/HxNANDL pN^NuLOOPBACKNV|H8(nA"P i h =f"i/) /)E|/ ND yj P h&PHyF/ NEJf| ` / NA@ LpN^Nurcvd_frame_pfm_frame_pfNV|H 8(nA"P i h =f"i/) /)G|/ ND yj P$P|/ NA@ B9nrlrg `$<`$<`NB/HxNANDLlN^NuNV yj P h P|C | B( B(| |B(B(B(B(N^NuNV/ N"@Ej R P ||C R PTHN$nN^Nu )NV/ /NB$@ yj P$/ /N*POJgN/ /Nv/ /N/ /N/ /N./N/ /N/ /NjHy/ NE B*,%nXND$.$nN^NuNV/$./N/N$.N^NuNV yj P h P| | | B(| |B(B(B(B(N^NuNV/ N"@Ej R P || R PTHN$nN^Nuresend_frame ()resend_frame_multi ()rcvd_frame_addrNV/ N, @B( | B(BHytHxEANBHyHxNBHyHxN$nN^NuFIRSTresend_frame_multi ( %d, %d, rcvd_frame_addr); resend_frame ( %d, %d); resend_frame_multi ( %d, %d, %d); NV / /t"nA Pg Hy h\H/NEPOJVH4DBN$@ * fr‚/B* /Hy`$J*f.NmlJf$r‚/B* /Hy4Hn ND`*B*/r‚/B* /HyMHn NDHn NBX$.$nN^Nul2_resend_edgeNVBHyDHxNA yj PTHN^Nu( l2_resend_edge != 0 )NV/ /$.NB$@HxHj,Hy|NADB%BX$.$nN^Nu( l2_resend_edge == 0 )NV/ /$.NB$@HxHj,HyNADB%BX$.$nN^Nureset_nr ()reset_nr_multi ()rcvd_frame_addrNV/ N, @B( B(BHy HxEANBHy,HxNBHy>HxN$nN^Nureset_nr_multi (rcvd_frame_addr); reset_nr (); reset_nr_multi (%d); NV / N$@ * fHyHn NDPO`J*fdNmlJfZA `B*/HyHn ND Hn NBX$nN^Nureset_ns ()reset_ns_multi ()rcvd_frame_addrNV/ N, @B( B(BHyHxEANBHyHxNBHyHxN$nN^Nureset_ns_multi (rcvd_frame_addr); reset_ns (); reset_ns_multi (%d); NV / N$@ * fHy$Hn NDPO`J*fdNmlJfZA GHIJKLMNOPQRST`B*/HyUHn ND Hn NBX$nN^NuNV yj P h P| | N^NuNV yj P P|| NDN^NuNV yj P h P| | B( B(| |B(B(B(B(N^NuNV/ N"@Ej R P || R PTHN$nN^NuNV yj P h P| | | B(| |B(B(B(B(N^NuNV/ N"@Ej R P || yb R PTHN$nN^NuNV yj P h P| | B( B(| |B(B(B(B(N^NuNV/ N"@Ej R P || R PTHN$nN^NuNV/ /Ej R PJfN R P R P h$N"@ R P h #B$.$nN^NuNV/ yj P hE`$H"RAJfB $nN^NuNVHx$NB"@ IBXBB)B)B)B)B)B)B) BBN^Nu ( %srcvd_frame_typem_frame_type && (%s == %d)NVH 0&n$n yj P/Hy/ ND J+gPB9nrlrg `$<`$<`NB+ //Hy/ NEXOHrNDL N^Nurcvd_frame_cntrl_byte_1m_frame_cntrl_byte_1NVH 0$n&n J* gPB9nrlrg `$<`$<`NB*//Hy/ NEXOHsNDL N^Nurcvd_frame_addrm_frame_addrNVH 0$n&n J*gPB9nrlrg `$<X`$<h`NB* //Hy/ NEXOHsNDL N^Nurcvd_frame_pfm_frame_pf && (%s != %d)NVH 0&n$n J+g\B9nrlrg `$<`$<`NJ+ f B/Hy` B/Hy/ NEXOHrNDL N^Nurcvd_frame_nrNVH 0$n&n J*gPB9nrm$<`rNB/HxNAB* //Hy/ NEXOHsNDL N^Nurcvd_frame_nsNVH 0$n&n J*gPB9nrm$<`rNB/HxNAB*//Hy/ NEXOHsNDL N^Nurcvd_frame_bcc_typem_frame_bcc_typeNVH 0$n&n J*gPB9nrlrg `$<`$<`NB*//Hy/ NEXOHsNDL N^NuNV/B9nrlrg `$<`$<`NB/HxNAND$.N^NuNVN^NuDTEdte_frameDCEdce_frameRCV0rcvd_frameNVH 0$nNB j\H$PHyr/ GENPOJf yj P <v`"Hy/ NPOJf, yj P < B/HxNA< `PHy/ NPOJf.<g( yj P < B/HxNA ` yj P nNDL N^NuNVH 0$nNB j\H$PHyr/ GENPOJgHy/ NPOJf<` Hy/ NPOnNDL N^Nusend_frame ()rcvd_frame_addrNV/ N,BHyHHxEANBHyHxNBHyHxN$nN^Nuup_dlDL_DATANV . yj P P h HyTHyZ/NBdN^Nu{ static struct send_frame_structure transmit_frame = { %d, %d, %d, %d, %d, %d, %d, %d, %d, %d }; transmit_frame.addr_value = rcvd_frame_addr; send_frame (%s, &transmit_frame); } NVH0t  ##CCccl2_give_dataresend_frame_multiresend_framereset_nr_multireset_nrreset_ns_multireset_nssend_framercvd_frame_addrrcvd_frame_bcc_typercvd_frame_buff_segrcvd_frame_cntrl_byte_1rcvd_frame_nrrcvd_frame_nsrcvd_frame_pfrcvd_frame_pathrcvd_frame_path_ptrrcvd_frame_sdu_offsetrcvd_frame_sdu_sizercvd_frame_typesend_frame_path_entryresend_frame_path_entryresend_frame_nr_ptrtemp_varl2_path_tablel2_current_window_edgel2_lower_window_edgel2_upper_window_edgel2_resend_edgebcc_errorframe_sentinvalid_framenr_errorns_errorrcvd_framel2_T1NV/. B. /HySlNAzN^NuNV/ /<{NDtXOJfHn/<|NCZ`B9ZHn/<}NCPOHnNA2 @ 3h/<zNDtPOJfB9X`X/<~NDtXO<fTV`B9TVE/ /<yNCHx/ NA#dN$nN^NuNV/ /CVBAJgBBAkRAAb 9VcHyj/<ENHy/<NHy/<NHy/<N./<NHy/<NHy/<NHy/<N.*/<NHyB/<NHyZ/<NHyr/<N./<NHy/<NHy/<NHy/<N$.$nN^NuNV/ / $n G/ B0. /NCPOJ.g/ NA@H@`B||$n&nN^NuNVHy_NB\N^NuNVHy_NB^N^NuNVHy`0NB`N^NuNV/$./HyQHNAPOJ9bfJ9\fJ9^fJ9`g RHye|NB//NC`B9R$.N^NuNVH><*.BC9Vgr,<BRxKqIpGoEn/HyQ* FN4Hx89h//NA /HyQ/ FNJHSCf/HyOGBLNHyQEAN/HyPNBR4HyS NEVB/Hy]IAN.B"ҁ AA"//NA HyjB"ҁҀ/?Bg/NB/HyQ7N$J9Rg./HyONHyR NB"BAHAA?BgHyR NJ0g/9dHyN'NL<|N^NuNV//$.HyTNB&/Hy0NAP/Hx/NB $.&.N^NuNVH 8HyTEBN$pXOJ0gJ9Xf HyUNXO/Hx/GBNpIR JgHyNNBXO/Hx/NHy[EBN/Hx/NHy\ N/Hx/Np,Jg HyU\NXO/Hx/NHx HyN&EANHx HyN%NJ9ZgHxHyN(NHxHyN)NHx`HxHyN(NHxHyN)NHxHyeN LN^NuNVH 0tJ9RgHyT0GBN$pXOJ9bg HyTrNXO/Hx/EBNp J9\g HyTNXO/Hx/Np J9`g HyTNXO/Hx/Np J9^g HyTNXO/Hx/N L N^NuNVH00HySEBN&tGbXOJf J9\gHySN$XOJgJ9\f HyTN`J9bg HyTNB/Hx/NB`BHx/NB J9\g HyT"NB/Hx/NB`BHx/NB /Hx/NB L N^NuNVH00&.HyUGBN$/N/Hx/EBNpJ9bg /NXO/Hx/Np J9\g /NXO/Hx/Np J9^gNb/Hx/Np J9`gN/Hx/Np J9Rg HyONXO/Hx/N L N^NuNVH00&.Hy\ EBN$Hy\N/Hx/EBNNV/Hx/N.HyGAPN/Hx/N/HypN/Hx/N$.HyN/Hx/N/HyN/Hx/N$.HyN/Hx/N L N^NuNVH00Hy\EBN&XOJ9ZgHy]D`Hy]pN/Hx/NBJ9TgHy]`Hy]NB/Hx/NB .]EBN/Hx/GBNHy^N/Hx/N.^.N/Hx/NHy^xN$J0gZJ9XfRHy^N/Hx/NHy^N/Hx/N.^N/Hx/NHy_ N/Hx/N `6BHx/EBNBHx/NBHx/N BHx/N /Hx/NB L N^NuNVH08HyU|EBN&HyV$N$HxHy/GAN/Hx/IBN.VVN$HxHy/N/Hx/NHyVN/Hx/N,N>/Hx/NN/Hx/NJ9ZgN/Hx/NN`N/Hx/NN/Hx/N.WGBN/Hx/EBNJ0g J9XfHyW:N/Hx /N`BHx /NB /.HyNAP/Hx /NB L N^NuNVH 0HyX$EBN$HyWN/Hx/GBNHyWN/Hx/N .WN/Hx/NHyXN/Hx/N L N^NuNVH 0HyXBEBN$HyWN/Hx/GBNHyWN/Hx/N .XN/Hx/N L N^NuNVH 0HyYEBN$HyWN/Hx/GBNJ9TgHy[`Hy[N/Hx/N .WGBN/Hx/EBNHyWN/Hx/N.WN/Hx/NHyXN/Hx/N L N^NuNVH 0HyYEBN$HyWN/Hx/GBNJ9TgHy[`Hy[N/Hx/N .WGBN/Hx/EBNHyWN/Hx/N.WN/Hx/NHyXN/Hx/N L N^NuNVH00HyX\EBN&HyWN/Hx/GBNJ9TgHy[`Hy[N/Hx/N$<X/GBN/Hx/EBNHyWN/Hx/N.WN/Hx/NHyWN/Hx/N.WN/Hx/NHyZN/Hx/N.N/Hx /NHyZ*N/Hx /N L N^NuNVH00HyXEBN&HyWN/Hx/GBNJ9TgHy[`Hy[N/Hx/N$<X/GBN/Hx/EBNHyWN/Hx/N.WN/Hx/NHyWN/Hx/N.WN/Hx/NHyZN/Hx/N.N/Hx /NHyZ*N/Hx /N L N^NuNVH08HyZbGBN&HyV$N$HxHy/EAN/Hx/IBN.VVN$HxHy/N/Hx/NJ9TgHy[`Hy[N/Hx/NJ9ZgHy[`Hy[NB/Hx/NB .ZGBN/Hx/EBNJ0g J9XfHy[zN/Hx/N`BHx/NB /.HyNAP/Hx/NB L N^NuNV/ /Hy[LEBN$XOJ9TgHy[`Hy[N/Hx/NB .ZNB/Hx/NB $.$nN^NuNV/ /Hy["EBN$XOJ9TgHy[`Hy[N/Hx/NB $.$nN^Nu%ut<uu謶t\uuuu謶tû6<uD $u<ut>& u& & && &<#t&LT\D& u&$&&& && t4>u- uL trDL  tDLutLutL ruoŀoooou loooL rotl:otouŀˆoOŌƚs׊d &׊d&׉MD tD&&e&m&&e&mt׉MD tD&&t׊D td &׊D td &&Ew;w tD ;wrwGWGG G W w ;w tEDDDGD uw;wuGw6 ;wrww 6<uD t#D>Eu w;w tww6 u>&S& u[&$ &&L& &&  ;wrw;w u1w6OtS\&'&[OtS\&[D tGGG&VD tGGGGG_&t4>u-g8t1ۻGGGGGGGW G W Ƌ &&66& &&$<t}& s$<us6d&duDr%&r$ Ļ׀rI&>".+rI&>"> Ļ׀&:dt&\|8v 8s8vt 8r8v8t6&:dtĀd:uVWwO d 8t;w tRSD[G 9rw;WuwZ 9rOwO ;w uGGGD Gw^0t+û&u>t"û4>u-B&E&E&E&E؉^ ׎B˸B&E&E&E&EB˸B&E&E&E&EB˸B&E6G&EB˸B&E6G&EB˸B&E6G&EB˸B&E6G&EB˸&u1&&6&&&7RP u&&&6 &&EÊ%u$ur<u<u<ur<u<u<u&&& &&$s& u >unu >uu>u&&"tur&2w*u!r&Awur&=w>u& r r  Ļ׀& rr6&>"'rr&&" Ļ׀À>uV+vPP u&&& &@&O& G& G&G&G&G &G &GG >t&PFGH!GΉ7p6dce_abortdce_bad_bccdce_framedce_good_bccdte_abortdte_bad_bccdte_framedte_good_bccl2_real_time_clock_valuem_frame_addrm_frame_bcc_typem_frame_cntrl_byte_1m_frame_pfm_frame_typel2_enhancel2_suppressNV/. B. /HydpNAzN^NuNV/<{NDtJf `B9N^NuNVH 0$./HyfLGBLNHydEANHyeLN/HyhVN/HyhNL N^NuNV/ /$./HyhEBLNHx/</NA /HyhN$.$nN^NuNVHya,NBN^NuNVH 0Hy`EBN$Hyg2N/Hx/GBNJ9gHy``Hy`N/Hx/N L N^NuNVH00&.Hy`GBN$/N/Hx/EBN/Nʲ/Hx/N$N"/Hx/NHyg|N/Hx/N L N^NuNVH 0HybGBN$N/Hx/EBNHxNDtJf*Hy`N/Hx/NHy`N/Hx/N `BHx/NBHx/NHycNB/Hx/NB L N^NuNV/ /Hyd@EBN$Hyg*N/Hx/NB $.$nN^NuNVH80(.HyaFEBN&G*XOJg4HyaN$// NAP/Hx/EBN/Hx/N$`BHx/NB EJJg8HyaNB$// NAP/Hx/EBN/Hx/N$`BHx/NB E Jg8HyaNB$// NAP/Hx/EBN/Hx/N$`BHx/NB EJg8HyaNB$// NAP/Hx/EBN/Hx/N$`BHx/NB JJfJ fJgHyaNB/`BHx/NB L N^NuNVH80(.Hyb EBN&GXOJg4HybRN$// NAP/Hx/EBN/Hx/N$`BHx/NB EJg8HybjNB$// NAP/Hx/EBN/Hx/N$`BHx/NB EJg8HybNB$// NAP/Hx/EBN/Hx/N$`BHx/NB EjJg8HybNB$// NAP/Hx/EBN/Hx/N$`BHx/NB JfJfJjgHyaNB/`BHx/NB L N^Nu&&u&&> t&?&>&t&&&U&u&> u &&&&&&]l2pp_trbuffl2pp_trbuff_endl2pp_trbuff_ctlNV//". n.B0. SvjeЀ0;N *4>NVl/N`/BBN`N`/N`N`N`/N`|N`r/N`f/BBNX`TNx`L/NƠHyf,NA`6/NHyeNA` NH`/NǪ`N4`Np$.&.N^Nu//CCcoco  ##CCcc&&t Ȁ66>ك&& &G&&t t6>>& u+>)v ك& &I>>Ή%s9u;u&u6)s6>>rw&E ك&M& 6&=u u 6s %ƃՉ6ģģģ@ģ)NVH?8$n*. ***0@2 0*X8@tJg~(΄/NBBXO> |cJg.|b$0 <gB/Hx@/HyiWNي`DJfJf <j`Jf <j` <kOJf <k"//Hx Hyj// N* LN^NuNV/$. "nA/B/NCl $.N^NuNV/$. "nA/B/NCl $.N^NuNVH8 n((g^<f&  x @j x„$0`2Jg<b x @j$`$<i`$<iifHyiBCNCl LN^NuNVH0 n$n ((g<g Jg <cB`<Jf,JgHnvƀ/NCl JB` J B`Jg( J`B L N^NuNVH0 n$n (WDJ(f0Jg"Hnvƀ/NCl JB` J B`Jg( J`B L N^Nu01NV n(J(g <f`(Jg <H` <FN^NuNVH8 n$. (((0(X|cJg|b<g$<k`BJfJf <l*`Jf <lW` <lJf <l/Hx Hyl//N LN^NuNVH0 n$n ((g<g Jg <cB`<JfJg2/ vƀ/NCl `(Jg(/ vƀ/NCl` J  B* L N^NuNVH0 n$n (WDJ(f Jg4/ vƀ/NCl `&Jg/ vƀ/NCl` J  B* L N^NuNVH?<(..@H@B@&.$n z.H0@o,BFHFN-F~-HC-IKIG. HH@B@$B"n q/.NH2A/ /B///Nي/"nB//Nڮ(ZZMZLZKZJ$Rm LJVbnz *.<@NRdv*<N`048<@DN\`jnx .<JXft 0 6 R X t z     $ 0 8 < F V Z ^ h x |    " & * D f   " . 6 > D P X ` f r z    $ , 2 > F N T ` h p v  ,4<BNV^dpx"*0<DLR^fnt*2:@LT\bnv~  (.:BJP\dlr~ (>JRZ`&,NZbjp*H^z*FLRX~4Fl"4Z|&HZv| &Xv$06RXtz4@FRZ^bht|&.4f"Tv ,>dv  ,48BRVZt  * 0 L R !*!:!@!L!\!b!n!~!!!!!!" ""(".":"`"""""""""""##N#p#########$<$Z$p$|$$$$$$$$% %%%&%.%6%<%H%P%X%^%j%r%z%%%%%%%%%%%%%%%%&&&&$&*&6&>&F&L&X&`&h&n&z&&&&&&&&&&&&&&&&' '''$','4':'F'N'V'\'h'p'x'~'''''''''(((((4(<(J(V(^(l(x(((((((((()")2)D)j))))))))***&*2*:*B*H*d*j*******+$+B+R+X+t+z++++++++++,,0,@,R,x,,,,,,, --4-@-H-P-V-r------ ."...6.D.P.X.`.f......... //B/d///////////0 0<0N0^0p00000011101<1D1R1^1f1n1t111111112.2P2n2~22222222223 3(3.3J3\3l3~33333344>4J4R4Z4`4|44444445,5H5N5T5Z5555555556 66666<6X6^6z6666667$7*7L7X7`7h7n777777778(8J8\8x8~88888888999"9(9.949Z9l9999999999::":2:8:>:D:j:|:::::::::; ;&;6;B;H;N;X;z;;;;;;;;;;;<<F<X<t<z<<<<<<<<<<=$=@=F=R=b=h=n=t======= >>>.>4>:>@>P>V>r>x>>>>>>????"?2?>?D?T?v???????????? @@@B@T@p@v@|@@@@@@@@@@@A ADJDVD\DdDDDDDDDDDDDDD EE,ENEuunvvvvvw2wJwwwwwx0xDxLx|xxxxyTy\yyyyy(z0zVzhzzzz{`{v{{{{|0||||||| }T}\}}}}}8~X~p~~~Ff~€"H\d0BR\fp~҃ڃ:Bhʄބʅ؅\lVh|&,28>DJPV\bhntވtƉ̉҉؉މ 6\Њ؊^f 6Hf<Jdx6Ď(<D\h0<dƐڐ&:Bԑ$:FbntҒޒ 4Bl\|ؔ&DЕ$J\֖6>dʗ֗RZޘ jrڙ8@f$2DPp̛ڛJ^l~ܜ<ܝ֞Ɵ\j :NOOOP*Q/Q7QHQLQTQ\Q`QhQpQtQQQQQQQQQQQQQQQQQQ RR,RDJPXhzȨ֨ި@LV .<Tl(<Ddlث"*\dά .6LTjrƭܭ":`rzʮ&.@Vhد<Rbv~ܰHXpα"2NV^t 2Pfxʳҳڳ&8N`ִ޴2DZlƵ&.DLTrҶ"<l~طSSTT"T0TrTTTTTTTUUyԽ\U|U$VVVVW:WWWWWWWWX$XBX\XXYYZ*ZbZZ[["[L[z[[[[ \ \\\D]p]]]]^.^x^^^^ _L}"+?_____`0`J` *9 %````,aFaaaaaa bRbjbbbbc@dpdtd|ddddddddddddddddd ee,eLe\ej":Rb~,<dv$0v(rz",v&.6|ee f,f0:FPZfp|Lf*g2g|gVhhhhhhhhh ijjjj j$j(j,j0j4j8j)r=>*A01 hnDAPRIMARYSECNDRY   MOD 8 -MOD 1285=2]4 NO  YES ` DCE  DTE   PT-PT  MULTI   ,9,z,, ,=,~,,) ,A),)-)-: -E:-:-:- @9I1Q)&Y!2a>iJqVybn @z   5* 4/ $ 4 #9 "> .C :H  @ F . N n .Nn @xR;1.07127xyyzz{{||}}~%~+5 JXft!Layer;; b0Do}o} }} R%( R+. R4teY #'8*1Y7;BHLSX8 [aڍ R   R R]]]]]] ] ] ] ] ]]]!]]]]]] ] ]]]]]]]]]]  ]]]]]]] ,]]] ] ]]]]]]DDD@] h}a ]#N#N$N]Y m}aaƎaΎa֎Yێa}o} o}8]]aaaaa R]] ] Re}8Ո#N!] !*N +N RYm}R788dž ]e}-8Ј0m}5gg}8g}8h}]+-e}/8Ԉ4 R:]DF RI8V R\Y_l}bm}e>]]8]8!]&]*8Ɉ/]5.J88dž ]]%].e}C8ЈFx<]] o}o}'N8ф"]']+]/]3}88ʈ8dž Ő&N%N ֐ %N]]]]6)N)N,E<)N)N*)N68̈8dž  *N *N 8ˆ]]] '] ]]%] ]]] ] *N* 8ˆ]]] ] ]]]    ] ]] ] *N  ]*N] *N>]8]"Y] ]]]];]O]R8U{ Re}8Ո$N.] R ]%,  RYm}ɓq8ˆ ]88dž]4]ge}j8Јm:Xn,NYl}-NYl}8]o} o}'N8ф]#]']+]/}4]]]N]]] ]]]J ]]Ug} 8e]] 8 l}eeee ]]]]]ee]e]ee]]]D]]]+]3];]B3M]]]4]:]D]K]]]]-]e"e$)e+-Ɩ]] e)Nޖ<8ˆ] ]]]e]#]']+]/88   H8+02<   /]] ]]8҄o}o}8%}+a]] ]]8҄o}o}!8']/o}5o}8'N;8фG]L]P]T]X}]:n}AB7T'n}AB${)n}AB&n}ABn}ABݘn}ABn}ABen}] ]]]]#](808dž<d}]8ψ`|MZMfD Mh:`TMjn|Ml]]]]4]B]P]^]n]]]]]]]]]],]A]V]LzeLoLzLLMM: RRR R R *RR R R *RŮ}"N #Nٮ"N#N$Nڮ$NRR R'N%NRR8 !N }R %N%N%N $NRR R(N&NRR8 !N }LN&NU&N\&Nc2RRRR8!R'R0R R "R+1 4 :R= A N Xb nx    *R  RR(RR!R%'R) . / 0 R5RERS;RZRa d RiRsRRR;RRذ9RRR=RA4RDRH }K*R`*R }R8RR3R5RQF'N(N!N /R RR(RR'R 0RR1R)N$+R,%R=&RE$RP )N*N+N,N-N.N0N 0N 0N0N0N0N0N0N0N0N/N&W*NR+NR )RR* R4+R;R?,RC-RJ.RNRe Ro+Rs,Ry-RR.R,NR)RR R+RR,R-R.RR R+R,R-RR .R-NR)R$R8+R?RC,RG-RN.RRRg+Rk,Rq-RzR~.R.NR)RR)R+RR,R-R.R+R ,R-RR.R"/N)R++R:R>,RB-RI.RM0NT}RRRR RR R R R R 'R(RRRR)RRR RR "RR!R%R#R&RR$R/R RR R R*R 0R1R+R,R-R.R ´9R5R3R2R R 8RR?R7R:RK@;RNO&O42OT<OtIOTO^OjOtPR R/R R RRRRRR&R3RARMR_RmR}R R!R"R#R$R%R&R)R+R,R- R.R0R1B &+498<DAHNW`8 ckq8"vrF]~F^FY|VSFUFYF[FWFTFZF(VF.\F4XF:RFC1[[/R R8R QF$RF(UF,WF0WF7WFDSF[WF_XFcQFgVF}XFSFVFUF9RWFQFWFUFSFVFUFYF VFZFWF[FXF \F&QFRF]FSF]FTF^FUFVF WF XFPYFPZFP[FP\FP]FP^F=eeeeff")rf2>*f?=fSA*>fd fd fh fh fl fl fp : fxfd,<>bfh,<>bfl/J>bffxVϼffxHϼffx`ϼffxȊϼf;ffx2ffxӄ fxff*> fxg g 5ff5؈gg5gg5gg5gg5g"g"5fg&g&5&g*g*5Jg-g-5g0g05ƾg5g55vg8g85tg;g;5g@g@5gEgE5gIgI5gNgN5>gTgT5gYgY5^g]g]5Jgc 9 fxg g 2zff2z؈gg2zgg2zgg2zgg2zg"g"2zfg&g&2z&g*g*2zJg-g-2zg0g02zƾg5g52zvg8g82ztg;g;2zg@g@2zgEgE2zgIgI2zgNgN2z>gTgT2zgYgY2z^g]g]5Jggggfx8gogofxB fx+gw44g{ g{ g4Άg g fx fx+ g4Άg g fx fx(g((3h fx+(g))fxggfxggfx fx fx(g))2z fx+gw8g9Άg{ g{ g g gc 9 fx fx+ g9Άg g gc 9 fx fx+  gc 9 fx fx(g((6 fx(g))7gggg fx+ggfx<ggfx<ggfx< fx fxf f f f g f g f f f f =^ fx fxggf f h0 h8 fp @l hBfEV߮h8hBdɐfBHHhSDԂh\Dt heA|ǘhmhBF hBhvh> hBf f h hS h h\  hB hBhe he h hm  hB?hhA|hhA|hhA| hB hB?hhBhhB hB hB?gwZ,g_g{ g{ g g hB hB? g_g g hB hB?gw[b,g{ g{ hB hBg g HBɤffQ(>ggQ(רggQ(ЄggQ(ggN^g"g"N^g&g&N^g*g*N^g-g-N^g0g0N^vg5g5N^,g8g8N^*g;g;N^hg@g@N^gEgEN^XgIgIN^ŠgNgNN^gTgTN^gYgYN^g]g]U̎ hB?gwX,g[h_ʊha~˘g{ g{ g g h h h h h dg d hB hB? g[h_ʊha~˘g g h h h h h dg d hB hB?  h_ʊha~˘h h h h h dg d hB hB?   ha~˘h h h dg d hB hB?gwZR,g\g{ g{ g g  h dg d hB hB? g\g g  h dg d hB hB?gwYB,g{ g{ g^Nh`ʊg g h h h dg d hB hB? g^Nh`ʊg g h h h dg d hB hB?  h`ʊh h h dg d hB hB(g))U hB?gwY,g{ g{ g]g g  h dg d hB hB? g]g g  h dg d hB hB(hhIg((I hB(hhRg((R hB(hhWfg((Wf hB(hhOg((O hB(hhCg((C hB(hhhBg((hB hB(hhKg))Kgggg hB(hhbJg))bJgggg hB(hhbJg))bJgggg hB(hhT6g))T6gggg hB( g))hBgghBgghB hB(h)()(M i i M iiM iiM hB(h)()(bJi i bJiibJiibJ hB(i )8)8bJi0i0bJi8i8bJiibJ hB?    h dg d hB hB?     g d hB hBi=)Hc| hB?gghBÊgghBÊgghBÊ hB hBIllegal Frame AddressIllegal Control ByteIllegal P/F BitIllegal Receive CountIllegal Send CountSDLC_ConditionsSDLC_ActionsSDLC_OSI_ConditionsSDLC_OSI_ActionsDTEDCERCVPROTOCLtop_level:conditionNS_ERRNR_ERRT1_EXPIREDFRAME_SENTWINDOWMORE_TO_RESENDNO_MORE_TO_RESENDtop_level:condition_recstop_level:general_cond_recsINFORNRREJSREJUIRIMSIMDMUPDISCRDUASNRMFRMRXIDCFGRSNRMETESTBCNOTHERBCCINVALIDUNKNOWNADRADR=P/FP/F=Enter Frame Address:Enter P/F Value:P/F=0P/F=1Enter Frame Control ByteGDBCCBDBCCABORTT1_EXPFRM_SNTFULLEMPTYNOT_FULNOT_FULLNOT_EMPNOT_EMPTYMORENO_MOREGV_DATAGIVE_DATAtop_level:actionRESET_NRRESET_NSENHANCESUPPRESStop_level:action_recstop_level:general_act_recsRSET_NRRSET_NSSUPPRESREVERSEBLINKLOWFIRSTNEXTNR=NS=STRINGLOOPBAKLOOPBACKEnter NR Value:ACK_NSLAST_NRAUTOEnter NS Value:RCVD_NRSKIPEnter Transmit Stringsend_frame_structure { unsigned char addr_type; unsigned char frame_type; unsigned char NR_type; unsigned char NS_type; unsigned char p_f_type; unsigned char bcc_type; unsigned char addr_value; unsigned char cntrl_byte; unsigned char NR_value; unsigned char NS_value; }extern volatile struct { unsigned char flags; unsigned char number; unsigned int c_addr; unsigned int window_start; unsigned int window_end; unsigned int lower_window_edge; unsigned int upper_window_edge; unsigned int current_window_edge; unsigned int resend_edge; unsigned char last_rcvd_nr; unsigned char last_rcvd_ns; unsigned char last_sent_nr; unsigned char last_sent_ns; unsigned char vr; unsigned char vs; unsigned char unack_frame_start; unsigned char spare; } l2_path_table[]; unsigned int _window_empty(addr) unsigned int addr; { unsigned int path,i; path=0; for (i=0;i!=16;i++){ if (l2_path_table[i].c_addr==addr){ path=i; break; } } if (l2_path_table[path].current_window_edge== l2_path_table[path].lower_window_edge) return (0xff); else return (0); } unsigned int _window_full(addr) unsigned int addr; { unsigned int path,i; path=0; for (i=0;i!=16;i++){ if (l2_path_table[i].c_addr==addr){ path=i; break; } } if (l2_path_table[path].current_window_edge== l2_path_table[path].upper_window_edge) return (0xff); else return (0); }  &.CR` l@{&$8Kcr"<Md~,Ia{!O4^mz.Tr(Fe)Qb,FSw8J_t%Gz&4BRiy& B_u&2AWe ?\,V&&&&&&&%6DR_mw+^'nv   !,6;CJS\fy14^ ! #56'7.@7CCDOE\Fipt^ )"6<CKS[c x'@ABCEFGĆHΆIֆJ߆K^# " - > H X fu~12Fpq^# " - > H X fu~12Fpq^#" - > H $ /u~12Fpq; INVALID FRAME BBI=RU CATEGORY=CDI=CEBI=CHAIN=CSI=DR1I=DR2I=EBI=EDI=ERI=FI=FM PROFILE=FM USAGE PRIMARY LU PROTOCOLS FOR FM DATA=FM USAGE SECONDARY LU PROTOCOLS FOR FM DATA=FM USAGE COMMON LU PROTOCOLS=MAX RU FROM SLU= MAX RU FROM PLU=MODIFIER=PDI=PI=PS PROFILE=PS CHARACTERISTICS=QRI=RTI=REQUEST HEADER (RH)RESPONSE HEADER (RH)REQUEST UNIT (RU)RESPONSE UNIT (RU)RU USER DEFINEDSDI=SENSE INFORMATION=SENSE DATA=CATEGORY=TS PROFILE=TS USAGE=USER COUNT=` @ x3oxryxKo*xWx]xmyWy3x.xcx@xRxhy.`  x3oxryxKo*xWx]xmyWy3x.x@xRxhy.xE` x3oxryxKo*xWx]y\yWy3 yyoJyy !"$0&'*+Xy&xvyxxxyxy y7yCTYPE=CF=CSN=CT=DAF=DCF=DCN=DEF=DSAF=EFI=ERN=IERN=LAF=MPF=NP=OAF=OEF=OSAF=SESSION=SNAI=SNF=TRANSMISSION HEADER (TH)TGNFI=TGSI=TGSNF=TPF=VRCWI=VRCWRI=VRN=VRPCI=VRPRQ=VRPRS=VRRWI=VRSI=VRSSN=VRSTI= INVALID FID TYPE =  ~"o*~ }~+~J}FID TYPE=2 L~"o*~ }~+~JFID TYPE=3 ?~"o*~ ~;o:~FID TYPE=4@0 @   # '' ')+-/*~o~~~'~~~~|~~h~~u~~~~~~~5~D~"o*~ ~~0~J}FID TYPE=F/}}}}    !!! ! !!!!!$!)!!!!1!!6!!!!!!!!!!;!!!!!>!B!H FRAME TYPE= P/F=D%%N%($%($%P%,,,,#,+,8,A,I,L,O,R,W,h,n,r,w,|&&&,,,,,BFxPKPKPLPL PL@PLXSDLCNVNB#LnNB#LrNB#LvpN^NuNV/<NDt<WH0@ DN^NuEnter Idle Timeout: Seconds PRIMARYSECONDARYSelect Emulate Function MOD 8 MOD 128Select Frame Sequencing ModulusEnter Window Size (1 To 7) For Outstanding Frame: Enter Window Size (1 To 127) For Outstanding Frame: NO YESUsing LU 6.2?DCEDTESelect Host PortPOINT-TO-POINT MULTI-DROP Select Emulation AddressingEnter Controller Address for Drop #0 (hex): Enter Controller Address for Drop #1 (hex): Enter Controller Address for Drop #2 (hex): Enter Controller Address for Drop #3 (hex): Enter Controller Address for Drop #4 (hex): Enter Controller Address for Drop #5 (hex): Enter Controller Address for Drop #6 (hex): Enter Controller Address for Drop #7 (hex): Enter Controller Address for Drop #8 (hex): Enter Controller Address for Drop #9 (hex): Enter Controller Address for Drop #10 (hex): Enter Controller Address for Drop #11 (hex): Enter Controller Address for Drop #12 (hex): Enter Controller Address for Drop #13 (hex): Enter Controller Address for Drop #14 (hex): Enter Controller Address for Drop #15 (hex): F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** SNA/SDLC Frame Level Setup **secIdle Timeout: Emulate: Mode of Operation:Window Size: Window Size:Host Port: Emulation Addressing:234511118901 1145670123DROP ADDR DROP ADDR DROP ADDR DROP ADDRPRIMARYSECONDARYMOD_8MOD_128NOYESDCEDTEPOINT-TO-POINTMULTI-DROPIdle_TimeoutEmulate_FunctionMode_Of_OperationMod_8_Window_SizeMod_128_Window_SizeLu_62Host_PortEmulation_AddressingCalled_Addr_0Called_Addr_1Called_Addr_2Called_Addr_3Called_Addr_4Called_Addr_5Called_Addr_6Called_Addr_7Called_Addr_8Called_Addr_9Called_Addr_10Called_Addr_11Called_Addr_12Called_Addr_13Called_Addr_14Called_Addr_15 ȉ9u6 t.u uV^ ðu>t  ##CCcc%ut<uu耍t\uuuu耍tû6<uD $u<ut> u& & && &<#tLT\D& u&$&&& && t4>u- uL trDL  tDLutLutL ruoŀoooou loooL rotl:otouŀˆoOŌƚs׊d &׊d&׉MD tD&&e&m&&e&mt׉MD tD&&t׊D td &׊D td &&Ew;w tD ;wrwGWGG G W w ;w tEDDDGD uw;wuGw6 ;wrww 6<uD t#D>Eu w;w tww6 u>S& u[&$ &&L& &&  ;wrw;w u1w6OtS\&'&[OtS\&[D tGGGVD tGGGGG_t4>u-g8t1ۻGGGGGGGW G W Ƌ &&66& &&$<t}& s$<us6d&duDr%&r$ Ļ׀rI&>".+rI&>"> Ļ׀&:dt&\|8v 8s8vt 8r8v8t6&:dtĀd:uVWwO d 8t;w tRSD[G 9rw;WuwZ 9rOwO ;w uGGGD Gw^0t+û&u>t"û4>u-&E&E&E&E؉^ ׎˸&E&E&E&E˸&E&E&E&E˸&E6G&E˸&E6G&E˸&E6G&E˸&E6G&E˸&u1&&6&&&7RP u&&&6 &&El2_give_dataresend_frame_multiresend_framereset_nr_multireset_nrreset_ns_multireset_nssend_framercvd_frame_addrrcvd_frame_bcc_typercvd_frame_buff_segrcvd_frame_cntrl_byte_1rcvd_frame_nrrcvd_frame_nsrcvd_frame_pfrcvd_frame_pathrcvd_frame_path_ptrrcvd_frame_sdu_offsetrcvd_frame_sdu_sizercvd_frame_typesend_frame_path_entryresend_frame_path_entryresend_frame_nr_ptrtemp_varl2_path_tablel2_current_window_edgel2_lower_window_edgel2_upper_window_edgel2_resend_edgebcc_errorframe_sentinvalid_framenr_errorns_errorrcvd_framel2_T1NV/. B. /HyNAzN^NuNV/ /<{NDtXOJfHn/<|NCMd`B9MdHn/<}NCPOHnNA2 @ 3Mr/<zNDtPOJfB9Mb`Mb/<NDtXO<fM^M``B9M^M`E/ /<yNCHx/ NA#MnN$nN^NuNV/ /CM`BAJgBBAMuRAAb 9M`cHyMt/<ENHyM/<NHyM/<NHyM/<N.M/<NHyM/<NHyN/<NHyN/<N.N4/<NHyNL/<NHyNd/<NHyN|/<N.N/<NHyN/<NHyN/<NHyN/<N$.$nN^NuNV/ / $n G/ B0. /NCPOJ.g/ NA@H@`B||$n&nN^NuNVHyNBMfN^NuNVHy:NBMhN^NuNVHynNBMjN^NuNV/$./HyNAPOJ9MlfJ9MffJ9MhfJ9Mjg M\Hy&BNB//NC`B9M\$.N^NuNVH><*.BC9M`gr,<BRxKM{IMzGMyEMx/Hy FN4Hx89Mr//NA /Hy FNJHSCf/Hy GBLNHyEAN/Hy NBR4HyNEM`B/Hy]IAN.B"ҁ AA"//NA HyMtB"ҁҀ/?Bg/NB/Hy N$J9M\g./Hy HNHyR NB"BAHAA?BgHyR NJM:g/9MnHyN'NL<|N^NuNV//$.Hy NB&/HyM:NAP/Hx/NB $.&.N^NuNVH 8Hy 2EBN$pXOJM:gJ9Mbf Hy NNXO/Hx/GBNpIM\ JgHy xNBXO/Hx/NHyEBN/Hx/NHyJN/Hx/Np,Jg Hy NXO/Hx/NHx HyN&EANHx HyN%NJ9MdgHxHyN(NHxHyN)NHx`HxHyN(NHxHyN)NHxHyeN LN^NuNVH 0tJ9M\gHy nGBN$pXOJ9Mlg Hy NXO/Hx/EBNp J9Mfg Hy NXO/Hx/Np J9Mjg Hy NXO/Hx/Np J9Mhg Hy NXO/Hx/N L N^NuNVH00Hy EBN&tGMlXOJf J9MfgHy "N$XOJgJ9Mff Hy RN`J9Mlg Hy DNB/Hx/NB`BHx/NB J9Mfg Hy `NB/Hx/NB`BHx/NB /Hx/NB L N^NuNVH00&.Hy \GBN$/Nr/Hx/EBNpJ9Mlg /NXO/Hx/Np J9Mfg /NXO/Hx/Np J9MhgND/Hx/Np J9MjgN/Hx/Np J9M\g Hy NXO/Hx/N L N^NuNVH00&.Hy^EBN$HyN/Hx/EBNN8/Hx/N.HyMGAPN/Hx/N/HyLzN/Hx/N$.HyLN/Hx/N/HyLN/Hx/N$.HyLN/Hx/N L N^NuNVH00HyEBN&XOJ9MdgHy`HyN/Hx/NBJ9M^gHy`HyNB/Hx/NB .EBN/Hx/GBNHy@N/Hx/N.lN/Hx/NHyN$JM:gZJ9MbfRHyN/Hx/NHyN/Hx/N. N/Hx/NHy^N/Hx/N `6BHx/EBNBHx/NBHx/N BHx/N /Hx/NB L N^NuNVH08Hy EBN&HybN$HxHy/GAN/Hx/IBN.N$HxHy/N/Hx/NHyN/Hx/N,N /Hx/NN/Hx/NJ9MdgN/Hx/NN`N/Hx/NNv/Hx/N.FGBN/Hx/EBNJM:g J9MbfHyxN/Hx /N`BHx /NB /.HyLNAP/Hx /NB L N^NuNVH 0HybEBN$HyN/Hx/GBNHyN/Hx/N .N/Hx/NHyNN/Hx/N L N^NuNVH 0HyEBN$HyN/Hx/GBNHyN/Hx/N .NN/Hx/N L N^NuNVH 0HyEBN$HyN/Hx/GBNJ9M^gHy`HyN/Hx/N .GBN/Hx/EBNHyN/Hx/N. N/Hx/NHyNN/Hx/N L N^NuNVH 0HyEBN$HyN/Hx/GBNJ9M^gHy`HyN/Hx/N .GBN/Hx/EBNHy N/Hx/N. N/Hx/NHyNN/Hx/N L N^NuNVH00HyEBN&HyN/Hx/GBNJ9M^gHy`HyN/Hx/N$<N/GBN/Hx/EBNHyN/Hx/N. N/Hx/NHy N/Hx/N.4N/Hx/NHyNN/Hx/N.N/Hx /NHyhN/Hx /N L N^NuNVH00Hyu 9v莭P莭Xr<u<u<u莭>u 9v莭P莭Xr<u<u<u&&& &&$s& u >unu >uu>u&&"tur&2w*u!r&Awur&=w>u莭莭>u+& r r  Ļ׀& rr6&>"'rr&&" Ļ׀ûO& G& G&G&G&G &G &G6.It$ItM&>u&GJ9v 0&t Ȁt @G&>u َ&Ë66>>&u(> t &ĉ%`&]& t; r2&\߉&\߉ 6>>6>: r3&\߉&\߉ 6>>& t9 r0&\&\6>>6>8r1&\&\6>>& t/r&&\6>>6>.r'&\6>>&\ sێ؎íĉíīثĉíīثīīێ؎t%r6>>6>6>>r6>>6>òu  ##CCccdce_abortdce_bad_bccdce_framedce_good_bccdce_packetdte_abortdte_bad_bccdte_framedte_good_bccdte_packetl2_enhancel2_suppressl2_real_time_clock_valuem_frame_addrm_frame_bcc_typem_frame_cntrl_byte_1m_frame_pfm_frame_typem_packet_bcc_typem_packet_dafm_packet_defm_packet_dsafm_packet_fim_packet_fid_typem_packet_lsidm_packet_lengthm_packet_oafm_packet_oefm_packet_osafm_packet_rrim_packet_rtim_packet_ru_categorym_packet_sdim_packet_sna_segrh_ptrrh_ptr_segru_ptrru_ptr_segth_ptrth_ptr_segNV/. B. /Hy#NAzN^NuNV/<{NDtJf P4`B9P4N^NuNV/ /$./Hy">EBLN/Hy#TN/HyNHy$RNA/Hy(6N .Hy(N$.$nN^NuNV/ /$./Hy(EBLNHx/</NA /Hy(N$.$nN^NuNVHyNBN^NuNVH 0HyVEBN$Hy'N/Hx/GBNJ9P4gHyr`HyN/Hx/N L N^NuNVH0 &.HyNB$/N/Hx/EBN/N>/Hx/N$N/Hx/N/N/Hx/N L N^NuNVH 0HyGBN$N~/Hx/EBNHxNDtJfHyrN/Hx/NHyN/` BHx/NBHx/N L N^NuNVHyNBN^NuNVH80(.HyEBN&GO4XOJg4HyTN$// NAP/Hx/EBN/Hx/N$`BHx/NB EOTJg8HyzNB$// NAP/Hx/EBN/Hx/N$`BHx/NB EOJg8HyNB$// NAP/Hx/EBN/Hx/N$`BHx/NB ENJg8HyNB$// NAP/Hx/EBN/Hx/N$`BHx/NB JOTfJOfJNgHylNB/`BHx/NB L N^NuNVH80(.HyEBN&GOXOJg4Hy2N$// NAP/Hx/EBN/Hx/N$`BHx/NB EOJg8HyJNB$// NAP/Hx/EBN/Hx/N$`BHx/NB EOJg8HyhNB$// NAP/Hx/EBN/Hx/N$`BHx/NB EOJg8HyNB$// NAP/Hx/EBN/Hx/N$`BHx/NB JOfJOfJOgHylNB/`BHx/NB L N^NuNVH08&.Hy^IBN$/HyOtGnN/Hx/EBN/HyPN/Hx/N(. bN/Hx/NHy'\N/Hx/N L N^NuNVH08(nHyEBN&HyN/Hx/GBNtJg$Hy"&N$/. / NAP/Hx/N/Hx/N L N^Nu&&u&&> t&?&>&t&&&U&u&> u &&&&&&]l2pp_trbuffl2pp_trbuff_endl2pp_trbuff_ctlNV//". n.B0. SvjeЀ0;N *4>NVl/N`/BBN`N`/N`N`N`/N`|N`r/N`f/BBN(`TNH`L/NpHy&NA`6/NHy&NA` N(`/N`N`Np$.&.N^Nu66>ك&& &G&&t t6>>& u+>)v ك& &I>>Ή%s9u;u&u6)s6>>rw&E ك&M& 6&=u u 6s %ƃՉ6ģģģ@ģ)LOOPBACKNV|H8(nA"P i h =f"i/) /)G|/ ND yLv P h$PHy"/ NE"Jf | B*`| / NA@LpN^Nurcvd_frame_addrm_frame_addrNV|H 8(nA"P i h =f"i/) /)G|/ ND yLv P$P|/ NA@ B9P6rlrg `$<´`$<`NB/HxNANDLlN^NuGDBCCBDBCCABORTNVH 0"n yLv P h$P i\H$Hyx/GENPOJf|`,Hy~/NPOJf|`HyÄ/NJf|L N^NuGDBCCBDBCCABORTrcvd_frame_bcc_typem_frame_bcc_typeNVH08(nGLv S P fNX$@ S P `$@ l\H$Hy/GENPOJf|`.Hy /NPOJf|`Hy/NPOJf ||B9P6rlrg `&<`&<*`NB/HxNANDL N^NuNV yLv P h P| | B( B(| |B(B(B(B(N^NuNV/ NX"@ELv R P || R PTHNݺ$nN^NuNV yLv P h P| | B( B(| |B(B(B(B(N^NuNV/ NX"@ELv R P || R PTHNݺ$nN^NuNV yLv P h PB( | N^NuNV yLv P P|B( NDN^NuNV yLv P h P|C B( B( B(| |B(B(B(B(N^NuNV/ NX"@ELv R P ||C R PTHNݺ$nN^NuNV yLv P h P| | B( B(| |B(B(B(B(N^NuNV/ NX"@ELv R P || R PTHNݺ$nN^Nul2_enhanceNVBHynjHxNAN^NuREVERSEBLINKLOWl2_enhance = %d; NV H08"nA&PB<IE k\H$PHyDz/ NPOJf`.HyǺ/ NPOJf`Hy/ NPOJf`BJg +g&@`BJfBBHyE / ND/ NBXL N^Nuframe_sentNV/ "yLv$QA <~ QTHB/HxNAND$nN^NuNV yLv P h P| | B( B(| |B(B(B(B(N^NuNV/ NX"@ELv R P || R PTHNݺ$nN^Nul2_give_data ()NVBHyTHxNAN^Nul2_give_data(); NVHy~NBXN^NuNV yLv P h PB( B( B( B(| |B(B(B(B(N^NuNV/ NX"@ELv R P |B) R PTHNݺ$nN^Nuinvalid_frameNV/ "yLv$QA <* QTHB/HxNAND$nN^NuACK_NSLAST_NRAUTONV|H< yLv P h&P*nA"P i h =f"i/) /)E|/ NDHyv/ IENJf| `@Hy}/ NPOJf| `(Hyʅ/ NPOJfB+ `| / NA@L<lN^Nunr_errorNV/ "yLv$QA <> QTHB/HxNAND$nN^NuRCVD_NRSKIPAUTONV|H< yLv P h&P*nA"P i h =f"i/) /)E|/ NDHyˆ/ IENJf|`@Hyˎ/ NPOJf|`(Hy˓/ NPOJfB+`|/ NA@L<lN^Nuns_errorNV/ "yLv$QA <L QTHB/HxNA$nN^NuNV|H8(nA"P i h =f"i yLv P h$P/) /)G|/ ND| / NA@| B* B* B*B* |B*B*B*LpN^Nurcvd_frame_cntrl_byte_1m_frame_cntrl_byte_1NV|H 0$nNX&@ yLv P $j/* /*E|/ ND| / NA@B9P6rlrg `$<`$<4`NB/HxNANDL pN^NuLOOPBACKNV|H8(nA"P i h =f"i/) /)E|/ ND yLv P h&PHy/ NEJf| ` / NA@ LpN^Nurcvd_frame_pfm_frame_pfNV|H 8(nA"P i h =f"i/) /)G|/ ND yLv P$P|/ NA@ B9P6rlrg `$<l`$<z`NB/HxNANDLlN^NuNV yLv P h P|C | B( B(| |B(B(B(B(N^NuNV/ NX"@ELv R P ||C R PTHNݺ$nN^Nu )NV/ /NB$@ yLv P$/ /NPOJgN/ /N/ /Nچ/ /N۬/ /N6./Nܴ/ /NJ/ /NHyϸ/ NE B*,%nXND$.$nN^NuNV/$./N&/Nϼ$.N^NuNV yLv P h P| | | B(| |B(B(B(B(N^NuNV/ NX"@ELv R P || R PTHNݺ$nN^Nuresend_frame ()resend_frame_multi ()rcvd_frame_addrNV/ N @B( | B(BHyHxEANBHy"HxNBHy8HxN$nN^NuFIRSTresend_frame_multi ( %d, %d, rcvd_frame_addr); resend_frame ( %d, %d); resend_frame_multi ( %d, %d, %d); NV / /t"nA Pg Hyќ h\H/NEPOJVH4DBN($@ * fr‚/B* /HyѢ`$J*f.NJf$r‚/B* /HyHn ND`*B*/r‚/B* /HyHn NDHn NBX$.$nN^Nul2_resend_edgeNVBHyHxNA yLv PTHN^Nu( l2_resend_edge != 0 )NV/ /$.NB$@HxHj,HyNADB%BX$.$nN^Nu( l2_resend_edge == 0 )NV/ /$.NB$@HxHj,HylNADB%BX$.$nN^Nureset_nr ()reset_nr_multi ()rcvd_frame_addrNV/ N @B( B(BHyӾHxEANBHyHxNBHyHxN$nN^Nureset_nr_multi (rcvd_frame_addr); reset_nr (); reset_nr_multi (%d); NV / N($@ * fHy:Hn NDPO`J*fdNJfZA ]^_`abcdefghij`B*/HykHn ND Hn NBX$nN^Nureset_ns ()reset_ns_multi ()rcvd_frame_addrNV/ N @B( B(BHyFHxEANBHyRHxNBHydHxN$nN^Nureset_ns_multi (rcvd_frame_addr); reset_ns (); reset_ns_multi (%d); NV / N($@ * fHyHn NDPO`J*fdNJfZA `B*/HyHn ND Hn NBX$nN^NuNV yLv P h P| | N^NuNV yLv P P|| NDN^NuNV yLv P h P| | B( B(| |B(B(B(B(N^NuNV/ NX"@ELv R P || R PTHNݺ$nN^NuNV yLv P h P| | | B(| |B(B(B(B(N^NuNV/ NX"@ELv R P || yLn R PTHNݺ$nN^NuNV yLv P h P| | B( B(| |B(B(B(B(N^NuNV/ NX"@ELv R P || R PTHNݺ$nN^NuNV/ /ELv R PJfNX R P R P h$NX"@ R P h #B$.$nN^NuNV/ yLv P hE`$H"RAJfB $nN^NuNVHx$NB"@ IBXBB)B)B)B)B)B)B) BBN^Nu ( %srcvd_frame_typem_frame_type && (%s == %d)NVH 0&n$n yLv P/Hyٖ/ ND J+gPB9P6rlrg `$<ٜ`$<٬`NB+ //Hyٹ/ NEXOHrNDL N^Nurcvd_frame_cntrl_byte_1m_frame_cntrl_byte_1NVH 0$n&n J* gPB9P6rlrg `$<X`$<p`NB*//Hyٹ/ NEXOHsNDL N^Nurcvd_frame_addrm_frame_addrNVH 0$n&n J*gPB9P6rlrg `$<`$<`NB* //Hyٹ/ NEXOHsNDL N^Nurcvd_frame_pfm_frame_pf && (%s != %d)NVH 0&n$n J+g\B9P6rlrg `$<ۄ`$<ے`NJ+ f B/Hyٹ` B/Hy۝/ NEXOHrNDL N^Nurcvd_frame_nrNVH 0$n&n J*gPB9P6rm$<(`rNB/HxNAB* //Hyٹ/ NEXOHsNDL N^Nurcvd_frame_nsNVH 0$n&n J*gPB9P6rm$<ܦ`rNB/HxNAB*//Hyٹ/ NEXOHsNDL N^Nurcvd_frame_bcc_typem_frame_bcc_typeNVH 0$n&n J*gPB9P6rlrg `$<$`$<8`NB*//Hyٹ/ NEXOHsNDL N^NuNV/B9P6rlrg `$<ٜ`$<٬`NB/HxNAND$.N^NuNVN^NuDTEdte_frameDCEdce_frameRCV0rcvd_frameNVH 0$nNB j\H$PHy/ GENPOJf yLv P <`"Hy/ NPOJf, yLv P <" B/HxNA< `PHy,/ NPOJf.<g( yLv P <2 B/HxNA ` yLv P 0P6NDL N^NuNVH 0$nNB j\H$PHy/ GENPOJgHy/ NPOJf<` Hy,/ NPOP6NDL N^Nusend_frame ()rcvd_frame_addrNV/ NBHyiTHxEANBHyߐHxNBHyߞHxN$nN^Nuup_dlDL_DATANV . yLv P P h HyHy/NBdN^Nu{ static struct send_frame_structure transmit_frame = { %d, %d, %d, %d, %d, %d, %d, %d, %d, %d }; transmit_frame.addr_value = rcvd_frame_addr; send_frame (%s, &transmit_frame); } NVH0LU)CLEANUPINIT-OTHERINIT-SELF(FORMAT 1)TERM-OTHERTERM-SELF(FORMAT 1)BINDFSESSSTUNBINDFSESSENDFORWARDDELIVERNOTIFY (SSCP-->SSCP)DSRLSTINIT-OTHER-CDCDINITTERM-OTHER-CDCDTERMCDSESSSFCDSESSSTCDSESSTFCDSESSENDCDTAKEDCDTAKEDCCDCINITNC-IPL-FINALNC-IPL-INITLUSTAT (DFC)RTR (DFC)NC-ER-INOPNC-ER-TESTNC-ER-TEST-REPLYNC-ER-ACTNC-ER-ACT-REPLYNC-ACTVR (NC)NC-DACTVR (NC)NC-ER-OPACTPUDACTPUACTCDRMDACTCDRMBINDUNBINDNC-IPL-ABORTBISSBIQECQCRELQCANCELCHASESDTCLEARSTSNRQRSHUTD (DFC)SHUTCRSHUTDBIDSIGNC-IPL-TEXT (NC)LSA (NC)ACTLU (SC)DACTLU (SC)CRV (SC)NVH?8(n$. B.,&< ~΁/NBC*0,XOX|'cB@g <Gw`BGwE/ HnHnHn~΁/B8/HlN0.nd4=@/ //.H0@/// N/Hx@/HywN-x`l/ //.H0@/// N/// G/ // N!L$0J.g6/ //./.H0@/// /B.// N~$(/B/N LN^NuNVH?<(n >..B.B6DB.|BCzBn*n-f<f|Gd|`f <f|`BCJ.gh$nVJ@vpxeЀ0;N B`t p Af<6DBC* `|tpAf`<6DBC* `\tf<6DBCp* `BB6DB0A`.tpA*f<6DBC* `tpAB6DB0*ڀ0BC:G=M`FdBB`4FBCzBnB2p"AB2l4FBCBnz`JB0l0B6@Bnz`0B0.Љl$0BC8@=D`Gd $nVJ4F`BB*n*n*n8)n )J)H)E9F9B9C9nL *f. k 1f"/ /. /// N -@ /Hn // ?.Bg/Hx Hy}XHy}/ N-@ 8.Hx/E N"-A "kA gRJgN/Hx/Hy N-x-@ "/|x†//|ܫ/N-@ .Hx/N-@ p @(B@kbN//. HyzN-@ B AP/Hx/HnN`/ /. /// N -@ . L0&n*. $n/.Hx/.N ( B*|gmJg`|g|g`Ey k(AB@(@<f$<s `R<Ag (<Af (Af(AB@(@$<s`$<gfFf(AB@(@$<t/?BgNN$@POg/Hx/Hy}N-x(/// `4 kHyv*` kHyuR` kHywB/NN///N( L |N^NuNVH8 n 8. B4(g&r2|2 ЀЁЀpf<`IJBgJgB0"ҁҀҁ 0LN^NuNV// n"n .@H@B@".Jgt&< H@B@ƒ"Jf $.&.N^NuNVH80"n &n nE(.ؐ DB)0B)\JB0xgN-x&RE`JFg"JDfnd/ Hx/Hy@N-x&RE"n 2D"n$2L10KNV/$.0.|'bHn?BgNCNAPO`A/.Hx//N-x$.N^NuNVH>0$n&n ,. n&CC S(c6(/Hx/.N @ JSgL*<8N-x @2| cr SJAgt H@B@ƅ DfJSf L |N^NuTIME=NVH8 (.&. /.Hx0/.N /Hx/HyE-xN$Hn/N. .Hx //NLN^NuFID TYPE=0 FID TYPE=1 NVH?<,.*.$n .".$. (.$&n,6:A/.(Hx/N -@(B/Hx/Hy~ON-x-@(B.~e Ѐ0;N FxHnBB//+Hn(/ ?Bg//Hyf`$HnBB//+Hn(/ ?Bg//HyrN(`Hn/BB/+Hn(/ ?Bg//Nv$`Hn//+Hn(/ ?Bg//N `Hn/BB/+Hn(/ ?Bg//N\$`hHn/Hn(/ ?Bg//N`H/.(B/N -@(/Hx/Hy~N-x-@(/Hx/HnN-@(,CB0U-@JfD Kt4B2B0Ҁl0/ /.H8@/ Hn(0 H8@/ / Hn?Bg//N` .(L0*.,. (.&n n$.$$n(6.B.#/B(/B(/NL// /Hy}?Bg/HxHy|HyW/N&L |N^NuNV/ $n"n$2. nRH<f`B/. / /.Hy}?Bg/.HxHyHy/. N$$nN^NuNVH>0*.,. (.&n n$.$$n(6.B.#/(AB@(@?Bg(AB@(@?BgNL// /Hy}?Bg/HxHyHy5/N&L |N^NuNVH8 &.(. $.$n . n 2.// /Hy}?Bg/HxHyFHy'/N$LN^NuNVH>6. 4../<NDtgrg `<g` Jf:8`:8BJEg|TDrL|N^Nu NVH?<$.&n(=n$n (nvg"n$JfBB. P, X* VK-MC-I=nR*n *UAbD"n<g/B@/.,N & g///N& .*n ЕBҀ"nBSxeЀ0;N Z0F//// N`$/"EB///N`//// N0&`h///N4& `T*FJf("G"gH/ n*n BHp/// N` / n"n BHp// / N ,&//HyN&\\\\Jx ބ܄ `"n$Rg *n$Jg L0 n$n *.l| |†$BJg.xGHx /NEPORHHx /NEPO$fJgBrA(<<00H@B@ʄ$f`// Hy,N$@ L |N^NuNVH8"n n ". .^$gv(< H@B@„ Sf LN^NuNVH>0 n"n $n(.B@(r@GB@@(B&㣓Jg8<t*< K<0Jg<1 H@B@ȅ$ RIBb L |N^NuNVH<0"n&n $n n)B)$.v sJg(x*<C C H@B@ą$R CJf L (.&. $.*.,./.Hx/E N///N"////N"T(J9PBg////N#J9PDg////N$J9PFg////N$~/B/NL|N^NuADDRESS=NVH8(n". .GP<&9P?/Hx/Hy!E-xN/Hx/HlNLN^NuNVH<0$n(. &n/Hx /.HyN-x&*AP@BgpPFg6  B9PBB9PDz @z…$p`F PBB9PDz @$P`PFPBPD$y UfB *Nf: *Kf2/ E/ NEHnBBNClB9PBB9PD/// NL ,.(. BBnE&y&y&y&Bn/ N, @\H0XOl:EGB.|B.B.e\& B./Hn/N&/NEJ@g0HnHnHnBBHnHnHn?Bg//N) (dL|xN^Nu[B][A]NVH8<$n(n (.B"GPH  @ P"| feR(  @ Pfd e gvG @PHfZ(g><gHn(/NCl| B.BPOrR<c<`0<g<`<fh<gnJ9wg2HnB(/NCl| B.BPOrR<c`(H:@/ NA/ B@NB4VJ `x<f@<fB`HnB(/NCl| B.BPOrR<c`20| f J&&&&`B| f J&&&&` | f J&&&&RJgB " APH Pe fVL<N^NuNVH?<&n*. &.(.,.($n,=n/NE:@/N,-@POJgBB"n ifB".X(A Tf8"A Qf(CB00MA ~Gl2`BJgZ"n4)lBG(nB0,~gTm ~g`2~g~g`"n(n$Jg Hx SNBXO"D28M/ "n/ kN`(FJf*"D2Hx SN(DB0// N-> T"C2 `Hx SN0 "DQR@(C8XO:M/ "n/ kN(nB`L(CTd Hx SNBTXO0"CQ?Bg/ N-8M/ / kNM"C2`L"D2Hx $K ZN:M/ (n/ RNHx SN"DB0(@Hl/ N-"C(D2"F(n`"nJg~(C4B24MҊB0.m"E |f8Hx SN(DB0// N-/ / kN"C2Hx SN(CRT`nd / / kNHx SN"C0R@M2`~(CB04MC ~Gl0Hx SN"DB0// N-/ / kN(D(C8"FB`8 .#f/ / kN> "CQ`Hx [N/ / SN"C0R@M2(FBLBN=`(BHxN3LBR yPf#Pn3PrB0/N=$nN^NuNV/ $n/ N96XOJg B0/N=$nN^NuNV/ $n/ N:RXOJg B0/N=$nN^NuNVH0 $nBBByPRd/ N96XOJg<RByPReJg B0/N=L N^NuNVH0 $nBBByPRd/ N:RXOJg<RByPReJg B0/N=L N^NuNVH <$nHxND(@ L Pt0Px)yP9yPBABPBBl 0$@Pf09PRGXOc, <$r ҌCAJg *B**A:`b/9P/9P/ NGC)Q A 9P c*$ " <CAJg *B**A:` b/ Hy8/96NDL<N^NuNVH8HxND"@IPt I GPx0EP#RAP3P#T3S #R 3P/ Hy8/96NDLN^NuNVH <&n$. $n yRg// NPO*y.I8/ N8XOJfH/ NXOJf>Jf4/ / // /*N/ NJf /9P/9P/ NG `|/ ND yVXOg// NL<N^NuNV n"(f 2( hgp`pN^NuNV/ /$n"yP yP4B2ҹP-A=BpfjVH0@ D$.$nN^NuNVH0<$nBIPf20 @JAgJgSA4`Jg/ GPRB0/NABPOJ9PdfB0/N;XO*yPXP\e2#PnPz3PrP~/9P/9PHyPtNF H:@/ /9P/9PB0*@HmHyPtN?2RB2 Ё倐Ѐ @JgSI4#Pn3Pr<pL< N^NuNVH<<$nB:B4GPRB6 ЃKPTB2o* Ђ倐Ѐ @PfJgRE4`IPf Ё倐Ѐ*<Ѕ @Jg/ /NA.BPOJ9PdgN4B2 Ё倐Ѐ @PfJgRB4#Pn3Pr<pL<N yJgNN^NuNV/ /$n y:gNHnNC,r$XONDHnNDvXOJfHnNF6 y>XOgNBN@$.$nN^NuNVH <&nNB @C*K""'H.'Q&|"yP yP2B0$yPK'M6"yP yP2B0E'JA0'P7k 49Z/IDN$@XOf/<kg*AJg B*B$gT'k"n&)()"$)gn,9*$D/9P/9P/ NF Jf8(k// *FN @POdd p% % % % SJnde越dfc/.// NE'k 7k LBJN\`nr&8J\n: &*48BP^blpz~  " 0 > L Z p t x  H      َ " D R ` n       2 N \ Mē  bFx  4Nb<NhPX`J^@l ^ QZxƘژ :Tn "&26:BJNZ^bj&6FVfv&*26>B*BLfnv~̜0>LZlzĝҝJXftĞ̞֞ܞ &,2:J\".8dlР6Nj &FNhp̢آ >F̣֣.6LTؤBT\d~ʥ"8Jʦ4DX`pxƧΧ*:RhzȨި08@Vt©ҩ2HZҪ0Bfȫޫ&<Nrڬ&.6Tv~N`hpۮ!4E.3VrTlz2Jh^b &">"T##########$ $$$$"$&$.$2$:$>$R$b$r$$$$$$$$$%%"%2%B%R%b%r%%%%%%%%%&&"&:`h2B^fnԸ BT V`L\h V`¼ *@R|B&&&&¿οؿ&,<BPZb'\'6(((((((((())$)4)D)J)N)R)V)Z)^)b)f))))))))) *2*D*P*X*\*f*r*z*~***************+++ +$+(+2+>+T+d+h+l+v+++++++ ,0,<,B,N,V,^,d,p,x,,,,,,,,,,,,,,,,----"-*-0-<-D-L-R-^-f-n-t-----------------....*.2.:.@.L.T.\.b.n.v.~................//>/J/P/\/d/l/r/~////////////////0000(00080>0J0R0Z0`0l0t0|00000000000000001 111&1,181@1H1N1Z1b1j1p1|11111111111111112 222*2.262<2L2P2n222222222233:3\3z333333334(4:4V4\4b4h44444444555"5(585Z5|555555566"6*686D6L6T6Z6v6|666667 7&7H7T7\7d7j777777880868R8d888888889$9@9F9L9R9b9h9999999:: ::":&:.:4:D:H:f:::::::::;;";>;P;v;;;;;;;;;;;;;;;<< <<<$<(<B<`<v<<<<<<<<= =&=0=R=^=d=======><>L>R>n>t>>>>>>>>> ????*?2?6?@?L?T?X?b?n?v?z???????????@:@`@l@r@@@@@@ AAA8A>ApAAAAAAAAAAABDFDLD~DDDDDDDD(EJEVE\EhEpExE~EEEEEEEEEEEEEEEFFFF"F(F4FLDL`LfLLLLLLLM,M2MNMTMpMvMMMMMMMMM N0NRNpNNNNNNNNNNNOO*O0OLO^OnOOOOOOOP*P2P:P@P\PbP~PPPPPPPQ:QPQ\QdQlQrQQQQQQQQQQQRR8RJRZRlRRRRRR SSS,S8S@SHSNSjSpSSSSSSST*THTXT^TzTTTTTTTTTUU$U6U\U~UUUUUUUVV$V,V4V:V\VhVpVxV~VVVVVVVWW8WZWxWWWWWWWWWWXX2XDXTXfXXXXXXXXY YY6YHYdYjYvYYYYYYYYYYZZZ ZFZXZtZzZZZZZZZZZ[[[$[*[0[V[h[[[[[[[[[[ \\\.\4\:\@\P\V\r\x\\\\\\\]] ]]"]>]D]v]]]]]]]]]]] ^^B^T^p^v^^^^^^^^^^_ _<_B_^_d_j_t_________````*`0`<`L`R`^`n`t``````````aaa*a:a@aLaraaaaaaaaaaaab bb>b\blbrbbbbbbbbcc(cNcpccccccccd d&d,dHdZddddddddeee*e.e6eLRX^djpv|"nv 2D06.BJbP\dx\r~ DZp| "(v.6\nFNt"Lht0|6JRxJVjx (HzzN\t$2Jd :^oo"o&o*o.o2o6o:o>oBoFoJoPoVo\obohonotoxo|oooooooooooooooooooooooooooooooooppp ppppp p$p(p,p0p4p8ptDtJtPtVt\tbthtntttztttttttttttttttttttttttu uuuu"u(u.u4u:u@uFuLuRuXu^udujupuvu|uuuuuuuuuuuuuuuuuuuuuuvv vvvv$v*v0v6vwDwJwPwVw\wbwhwnwtwzwwwwwwwwwwwwwwww :P&y*yT  jzrzvzzzzzzzzzzzzz{{x{{{{{{{{{{{{{{|| |b|j|n|z||||||||   : @ D L R V h n z     |||| }`}d}p}|}}}}}}}}H ^ j p      H \ d n       @ F f      Xx $0< 6H^~ 2D$28H6\b&,B (4@$6HX^f|,>DN؀ ,8DP\htȁԁ܁FR^jv.4<@V0@F‚Ƃʂ΂҂ւڂނ t!!!!!!!!!"""0"6"t"z""""""""" ### #Z#`#t###&$,$$$$$%%.%*.6:BFNRV\%r%%%%&0&6&>&F&T&&&'Z''(((((((((((((@)<***@++`hpxȃЃ؃ ,,----V.d148111111111222$262>2H2P2V2\2b2j22222222223(303:33333444$464>4`4f4j4p4t4z444444444455"5,5F5L5R5V5\5b5h5p5v55555555556 626D6d6n66666666687>7F777777777(8<8B8J8~8888889F9z9999999999999999: :6:<:h:v::::::::;";(;.;4;:;N;T;f;l;;;;;;;;;<&<4<@<F<b<j<r<<<<<<<<<$=.=:=====>>4>X>j>>>>>>>>?T?\?b?t????????@.@F@h@@@@@@@@ AFARAAAAAAA BpBvB|BBBBBBBBBBC C^CdCpCCCCCDDDDD.E6E#NAEF(NHL#NORR R R3NT1NY _3Nb #)/N.N0N1N8!.N'$6,N.1NQF*$Y(N8ˆ88dž.N'0N0}D}R8ψUJJ$Jj$J$J$J% J%K % K*%,%6N#%BN$%HN%%NN(%SN)%YN*%jN"%N!%N++6F]+BF^+RFY--VSFUFYF[FWFTFZF(VF.\F4XF:RFC.1[[+N!N-N QF$RF(UF,WF0WF7WFDSF[WF_XFcQFgVF}XFSFVFUF,NWFQFWFUFSFVFUFYF VFZFWF[FXF \F&9/QFRF]FSF]FTF^FUFVF WF XFI/fKYFjKZFnK[FrK\FQ/vK]FS/zK^FSRC TYPE LI BIB BSN FIB FSN TIME BCCINCOMPLETE SUSTATUS=B STATUS=E STATUS=N STATUS=O STATUS=OSSTATUS=POUNKNOW=??%%5000v001(1H6 8r   /V1x SRC TYPE LI BIB BSN FIB FSN TIME BCC INCOMPLETE SU5010v001(1H6 8   9KfIKjIKnIKrIKvJKzJNV f0<`&NB#J.NB#J2NB#J6B@N^NuBIB value out of rangeFIB value out of rangeSS7_ConditionsSS7_ActionsDTEDCEtop_level:condition_recstop_level:general_cond_recstop_level:action_recstop_level:general_act_recsFILL_INMESSAGESTATUSSTATUS=NOEBOSPOBIBBIB=FIBFIB= BCCtop_level:conditionEnter BIB ValueBIB=00BIB=11Enter FIB ValueFIB=0FIB=1GD_BCCBD_BCCABORTENHANCESUPPRESSUPPRESStop_level:actionREVERSEBLINKLOWm_frame_bcc_typeGD_BCCNVH8(nGJ6 S PJfN $@ S P yJ. ` yJ.$P l\H |Hy/NEPOJf| `| BHyHxNANDLN^Num_bibNV|H 8(nA"P i h =f"i/) /)E|/ ND yJ.&P|/ NA@B9J:rlrg` t`$<pB/HxNANDLlN^Nul2_enhanceNV/ / GJ6 S PJfN EJ. R S PC R"EJ. R P JfN R P BHy HxNA$n&nN^NuREVERSEBLINKLOWl2_enhance = %d; NV H80"nA$PB<GE j\H$Hy/NPOJf`.Hy/NPOJf`Hy/NPOJf`BJg *g$@`BJfBCHyE / ND yJ2 P Jg yJ6 PJf / ND`/ NB|L N^Num_fibNV|H 8(nA"P i h =f"i/) /)E|/ ND yJ.&P|/ NA@ B9J:rlrg` t`$<`NB/HxNANDLlN^Nu1m_unit_typeNVN "@ yJ6 P B9J:rlrg `BJ>` #$J> yJ. yJ6 PTH|BHy&HxNANDN^Nu3m_unit_typeNVN "@ yJ6 P B9J:rlrg `BJB` #JB yJ. yJ6 PTH|BHyHxNANDN^Nu(%s )NV/ /NB$@B9J< yJ6 P$(/(Hy4/ ND/ /NZJg,/ /N/ /N6/ /N/ /N Hy8/ NE B*,%nXND$.$nN^NuNV/ /NB$@J< yJ6 P$(/(Hy4/ ND/ /NZJg,/ /N/ /N6/ /N/ /N Hy8/ NE B*,%nXND$.$nN^NuNV/ /NB$@ yJ6 P$(/(Hy4/ ND/ /NZJg,/ /N/ /N6/ /N/ /N Hy8/ NE B*,%nXND$.$nN^NuNVHxNB @BPB(B(B(B(B(B(B N^Num_unit_type && (%s == %s)NV/ n$n J(g 9J>`J(g 9JB` 9JF/Hy>HyJ/ NEXOHrND$nN^Num_bib && (%s == %d)NV/ / n$n J(gDB9J:tltg` r`"<B(//Hy/ NEXOHrND$.$nN^Num_fibNV/ / n$n J(gDB9J:tltg` r`"<0B( //Hy/ NEXOHrND$.$nN^Num_so0NV/ / n$n J(gDB9J:tltg` r`"<B( //Hy/ NEXOHrND$.$nN^Num_frame_bcc_typeNV/ / n$n J(gDB9J:tltg` r`"<B( //Hy/ NEXOHrND$.$nN^NuDTEdte_frameDCEdce_frameRCV0rcvd_frameNVH 0$nNB j\H$PHy/ GENPOJf0 yJ6 P < B/HxNA<B9J<`Hy/ NPOJf0 yJ6 P < B/HxNA<J<`LHy/ NPOJf*<g$ yJ6 P < B/HxNA` yJ6 P J:L N^NuONEOSPOB2m_unit_typem_so0NV|H8$nN &@ yJ6 P yJ. $j j h =f$j/* /*E|/ ND|Hy / IENJfB+ `xHy / NPOJf| `^Hy / NPOJf| `FHy / NPOJf| `.Hy / NPOJf| `Hy / NPOJf| B9J:rlrg `BJF` # JFBHy HxEANBHy HxNNDLpN^Nul2_suppressNV/ / GJ6 S PJfN EJ. R S PC R"EJ. R P JfN R P BHy"HxNA$n&nN^Nul2_suppress = 1; NV / E Hx/ Hy"NAD yJ2 PJg yJ6 PJf / ND`/ NB|$nN^NuÊ%u$u!>u>u<u<u<u&$& $Ģ&&"%?>u>r>>rr&&& && G& G&G&G&G &G &G1ɉGO& G&"G&$GG>|RP u&&& &@&dte_framedte_good_bccdte_bad_bccdte_abortdce_framedce_good_bccdce_bad_bccdce_abortm_unit_typem_bibm_fibm_lim_so0m_frame_bcc_typem_real_time_clock_valuel2_enhancel2_suppressNV/. B. /HyBNAzN^NuNVN^NuNV/ /$./HyiEBLNHx/</NA /HyN$.$nN^NuNVH 0$./Hy "GBLNHyEANHy.N/HyN/Hy'NL N^NuNV/ /Hy EBN$HyN/Hx/NB $.$nN^NuNVHy NBN^NuNVH00&.Hy GBN$/N'/Hx/EBN/N(/Hx/N .N/Hx/N L N^NuNVH88(.Hy $IBN&N*/Hx/EBNGJJg.Hy pN$// NAP/Hx/N/Hx/N$`BHx/N EJJgLHy GBN$// NAP/Hx/EBNHy JN/Hx/N$.Hx/N`BHx/NB EK JgLHy GBN$// NAP/Hx/EBNHy JN/Hx/N$.Hx/N`BHx/NB EK*JgLHy GBN$// NAP/Hx/EBNHy JN/Hx/N$.Hx/N`BHx/NBPO. JNB/Hx/NB LN^NuNVH88(.Hy $IBN&N*/Hx/EBNGJJJg.Hy N$// NAP/Hx/N/Hx/N$`BHx/N EJjJgLHy GBN$// NAP/Hx/EBNHy JN/Hx/N$.Hx/N`BHx/NB EJJgLHy GBN$// NAP/Hx/EBNHy JN/Hx/N$.Hx/N`BHx/NB EJJgLHy GBN$// NAP/Hx/EBNHy JN/Hx/N$.Hx/N`BHx/NBPO. JNB/Hx/NB LN^NuNVH00Hy EBN&HyN/Hx/GBNHyN$HyN/Hx/N$.Hx/NHyN/Hx/N L N^Nul2pp_trbuffl2pp_trbuff_endl2pp_trbuff_ctlNV//". n.B0. SvjeЀ0;N *4>NVl/N-`/BBN-`N-`/N-|`N-@`N-^`/N-h`|N-T`r/N-J`f/BBN%`TN%`L/N&HyNA`6/N%Hy^NA` N&V`/N&`N&`Np$.&.N^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVN^NuNVN^NuNVN^NuNVN^Nu&&t Ȁ66>ك&& &G&&t t6>>& u+>)v ك& &I>>Ή%s9u;u&u6)s6>>rw&E ك&M& 6&=u u 6s %ƃՉ6ģģģ@ģ)NVH? $n(. * 0*<^tJl~΅/NBBXO|bB/Hx@/HyN4V`//Hx HyPHyx/ N2( LN^NuFILL-IN MESSAGE NV//"n)?)r?€f$</`"Jmvmp @0$`$</%fHy,B)/NCl $.&.N^NuNV/$. "nA?/r?€/NCl $.N^NuNV"n n )?<f i`B N^Nu01NV"nA <0Jl <0N^NuNV/$. "nA/r€/NCl $.N^NuNV"nA <0Jl <0N^NuNV/$. "nA/r€/NCl $.N^NuNV/ n$. 0(X|b$<!`/Hx Hy0HyX/N3 $.N^NuNV/ n$n (?<f/ B(/NCl`B $nN^NuNVH?<(..@H@B@&.$n z.H0@o,BFHFN-F~-HC-IKIG. HH@B@$B"n q/.NH2A/ /B///N4V/"nB//N5z(ZZMZLZKZJ$Rm LNDbL<`BN?8`:N?l`2N@`*N@*`"N?`N?`N@8` N@`4|fKXB0$.&.N^NuNV/ E/ HyKPHx NB/ NCP$nN^NuNVHyKJNCPN^NuNV/ E/ HyKZHxNB Jf/ NCP$nN^NuNV/ E/ HyKZHxNBd Jf/ NCP$nN^NuNV/ "9K\KLf29KJyKZgE/ HyKZHxNB/ NCP$nN^NuNV/ E/ HyK`HxNBd Jf/ NCP$nN^NuNVN?lN^NuNVN?8N^NuNVH8HxND$@"yKf yKj2B0&yKvI%L4"yKn yKr2B0%K5AAKZ%P5yK^ Hj /HxNBd/ HyAP/9NDLN^NuNVH8HxND @$yKf"yKj2B0&yKvI!L0$yKn"yKr2B0!KC2!P1h !Q 1h/HyAP/9NDLN^NuNVH <*n(n $nGB/ NAXOJff/ NXOJf\JfRHn/* yN$/ N Jf:/NE// lNHx TN/9Kz/9Kv/ NE`|/ NDL<N^NuNV n"(f 2( hgp`pN^NuNV/ /$n"yKn yKr4B2ҹKv-A=BpfjVH0@ D$.$nN^NuNV/ / n $n. -yKJ=yKN-yKP=yKT-X=P/9Kz/9KvHnNE JfSf$4HH$.$nN^NuNV/ / n $n. -yKJ=yKN-yKP=yKT-X=P/9Kz/9KvHnND JfSf$4HH$.$nN^NuNVH00 n"H#KZ3K^-yKJ=yKN-yKP=yKT-P=QNB$@&"GHj/. yN#K`3Kd$<POeL/9Kz/9KvHnNE Jg"< CAp SJn¶dNDbL N^NuNVJ9KXg /9K\NFN^NuNVH<*. (.&.. g///ND JfSJgJgLD > ,4<BNVdpx*0<LR^nt@LT\b:Plr,l<p 6 < B H X ^ j z     X h n    ( , 0 h x ~  .R 28N`r6H\8@Pdlpv~NTdv&0:DNp~ Phx4L\  " . J R h t *!J!b!z!!!!!!!!!."@"F"\"n"""""g#"    $ J p      BFNRZ^fjrv~.>%%%&$&2&<&F&`&p&&&&&&','B'P''''''((\(f(((())()d)n))))*4*>*h******+^nj,|,,,,,,,,,,,,----&-'7DQ^iv048<@DHLPTX\`dhlpt/////$0>0H0N0V00061@1048<@DHLPT11112233455D6R99999999(:.:\:b:n:~:::::::`;f;n;;;;;<<<<<<<====(=2=V=b=======>>>>>>>>>>>>???*?0?F?P?`?z???????????@@"@0@N@T@`@p@v@@@@@@@@@AA6A ;> ;B  ;J;6}k;:}k;>}k;^;Jhj;e;Jfj;l;Jtj;w;Jd:j;;;Jmm^;;Jmm ;J;; ;Jz;; e;i;i o;; od;; k;; s;; pz;; u;; bn;; b<< d<< q< < i<  ;J;; e;i;i o;; od;; k;; s;; pz;; u;; bn;; b<< d<< q< < i<<;Je<<;JuX ;J:<& f_V<* <* nf <=/=E <; ; =` = =h =&  < <j=p=p=v=v < <j<3 <3 < < =  <Illegal Frame AddressIllegal Frame Control ByteIllegal P/F BitIllegal Receive CountIllegal Send CountX25_ConditionsX25_ActionsX25_OSI_ConditionsX25_OSI_ActionsDTEDCERCVPROTOCLtop_level:conditionNS_ERRNR_ERRT1_EXPIREDFRAME_SENTWINDOWMORE_TO_RESENDNO_MORE_TO_RESENDtop_level:condition_recstop_level:general_cond_recsINFORNRREJSREJSABMUADISCDMFRMRSABMEOTHERBCCINVALIDUNKNOWNADRADR=P/FP/F=CMNDRESPEnter Frame Address:Enter P/F Value:P/F=0P/F=1Enter Frame Control ByteGDBCCBDBCCABORTT1_EXPFRM_SNTFULLEMPTYNOT_FULNOT_FULLNOT_EMPNOT_EMPTYMORENO_MOREGV_DATAGIVE_DATAtop_level:actionENHANCESUPPRESSRESET_NRRESET_NStop_level:action_recstop_level:general_act_recsRSET_NRRSET_NSFIRSTNEXTLOOPBAKLOOPBACKREVERSEBLINKLOWNR=NS=STRINGEnter NR Value:ACK_NSLAST_NRAUTOEnter NS Value:RCVD_NRSKIPEnter Transmit StringSUPPRESsend_frame_structure { unsigned char addr_type; unsigned char frame_type; unsigned char NR_type; unsigned char NS_type; unsigned char p_f_type; unsigned char bcc_type; unsigned char addr_value; unsigned char cntrl_byte; unsigned char NR_value; unsigned char NS_value; }LDo}o} }} R%( R+. R4eU #'8*1U7;BHLSX8 [a R   R R ]]]]]] ] ] ] ] ]]]]]]] ] ]]]]]] ]]]]]]] ] ] ] ]]]]G]G]G@]@]OǼOZOtOO@]]+]@]O]_]s]]]]]]]] <&\/|8ǜC̐ h}a ؐ]ߐ!N!N"N]U aa aaU a}o} o}8]==]BaaaaaB R]] ]X Re}8Ո!N]  (N )N RUm}788dž ]e}-8Ј0m}5̑Gg}8g}8h}]+-e}/8Ԉ4 R:=A]DF  RUl} m}    R83>]]8]8!]&]*8Ɉ/]5qJ88dž ]]%].e}C8ЈF8ʈ8dž ̒$N#N ݒ #N] ] >] 'N]]]]#'N1]4]8]<LA] 'N]]"'N-]2'N:]=8̈8dž  (N (N“(Nݓ (N 8ˆ] ]] ]]] (N7 8ˆ] ]]   ] ]] (Nt;]]8]]]#]&])],]0]9]]]] ]]]]"])]0]4]9]=]D]I]M]S]V8Y  Re}8Ո "N( ]]] ]] &   RUm}Qi88dž8ˆ@]N]S]W]_e}b8Јe]ו]*NU]] ]l}+NU]]] ]]l}$]  +4]o}o} %N8ф]]#]']+}0`=]]] ]]]]!]%](]+].]2]; ]]g} 8zi]] 8 l}{i|i}i~iՖ ]]]]]{i|i]|i]zi)D]]]+]3];]BmM]]]4]:]D]K/]]] }i}i&}i-]]~i 'N]<8ˆ] ]]]yi]#]']+]/88;]]]] I8] ]]]!)]+./]1]5]9<]?]D]G]/]] ]]8҄o}o}8%}+֘X]] ]]8҄o}o}!8'o},o}/%N28ф>]C]G]K]O}T.:n}AB7h#n}AB n}ABn}ABen}] ]]]]#](808dž<d}]8ψ`*24RArKȒWȲanJKJ=JAJ>J@J?JCJB 9J?J#DJEJFJ GJ7DJEJFJ GJKeeee BJCJV}e ejee9J:J8e  }AJeeeee9J:J8e  }eeeš2:J9J;JJ ?J @J AJ RJ SJ TJUJBJCJDJEJFJGJHJIJJJKJ LJMJNJ@OJQJ@@PJVSFUFYF[FWFTFZF(VF.\F4XF:RFCd1[[BJCJLJ QF$RF(UF,WF0WF7WFDSF[WF_XFcQFgVF}XFSFVFUFHJWFQFWFUFSFVFUFYF VFZFWF[FXF \F&QFRF]FSF]FTF^FUFVF WF XFYFZF[F\F]F^FSRC ADDR TYPE Nr Ns P/F SIZE TIME BCCINFO INVALID FRAME RR RNR REJ SREJ DISC UA FRMR DM/SARM SABM SABME UNKWN=??Y_Y_Y)Y2Y_Y_Y_Y_Y_Y_Y_Y_Y;Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_YDYMY_YVY_Y_Y_Y_V"v      XzZ SRC ADDR TYPE Nr Ns P/F SIZE TIME BCC V"vd      \$BdƀƠƸX.25NVNB#NB#NB#pN^NuEnter T1 Timeout: SecondsLOGICAL DTELOGICAL DCESelect Emulate FunctionMOD 8MOD 128Select Frame Sequencing ModulusEnter Window Size (1 To 7) For Outstanding Frame: Enter Window Size (1 To 127) For Outstanding Frame: F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** X.25 Frame Level Setup **secT1 (for INFO frame): Emulate: Mode of operation:Window size: Window size:DTEDCEMOD_8MOD_128Info_Frame_TimeoutEmulate_FunctionMode_Of_OperationMod_8_Window_SizeMod_128_Window_SizeNV|H8(nA"P i h =f"i/) /)G|/ ND y P h$P| / NA@LpN^Nurcvd_frame_addrm_frame_addrNV|H8(nA"P i h =f"i/) /)G|/ ND y P$P|/ NA@ B9rm <_8`r <_HB/HxNANDLpN^NuGDBCCBDBCCABORTNVH 0"n y P h$P i\H$Hy_/GENPOJf|`,Hy_/NPOJf|`Hy_/NJf|L N^NuGDBCCBDBCCABORTrcvd_frame_bcc_typem_frame_bcc_typeNVH08(nG S P fNy$@ S P `$@ l\H$Hy`z/GENPOJf|`.Hy`/NPOJf|`Hy`/NPOJf ||B9rlrg `&<``&<``NB/HxNANDL N^NuNV y P h PB( | N^Nurcvd_frame_addrm_frame_addrNV/ y P$P|/<zNDtXOJf| `| BHyaHxNAND$nN^NuNV y P h P|C B( B( B(| |B(B(B(B(N^NuNV/ Ny"@E R P ||C R PTHN}|$nN^NuNV y P h P| | B( B(| |B(B(B(B(N^NuNV/ Ny"@E R P || R PTHN}|$nN^Nul2_enhanceNVBHyc/ NPOJf|`(HygC/ NPOJfB+`|/ NA@L<lN^Nuns_errorNV/ "y$QA <g QTHB/HxNAND$nN^NuNV|H8(nA"P i h =f"i y P h$P/) /)G|/ ND| / NA@| B* B* B*B* |B*B*B*LpN^Nurcvd_frame_cntrl_byte_1m_frame_cntrl_byte_1NV|H 0$nNy&@ y P $j/* /*E|/ ND| / NA@B9rlrg `$<h`$<h`NB/HxNANDL pN^NuLOOPBACKNV|H8(nA"P i h =f"i/) /)E|/ ND y P h&PHyi/ NEJf| ` / NA@ LpN^Nurcvd_frame_pfm_frame_pfNV|H 8(nA"P i h =f"i/) /)G|/ ND y P$P|/ NA@ B9rlrg `$<j"`$<j0`NB/HxNANDLlN^Nu )NV/ /NB$@ y P$/ /NyPOJgN/ /Nz/ /NzH/ /N{n/ /N{./N|v/ /N} / /N}Hyj/ NE B*,%nXND$.$nN^NuNV/$./N~/Nj$.N^NuNV y P h P| | | B(| |B(B(B(B(N^NuNV/ Ny"@E R P || R PTHN}|$nN^Nuresend_frame ()NVNx"@A BHyl HxEANBHyqHxN$nN^Nuup_dlDL_DATANV . y P P h HyrHyr/NBdN^Nu{ static struct send_frame_structure transmit_frame = { %d, %d, %d, %d, %d, %d, %d, %d, %d, %d }; send_frame (%s, &transmit_frame); } NVH t//CCccCCcocol2_give_dataresend_framereset_nrreset_nssend_framel2_current_window_edgel2_lower_window_edgel2_upper_window_edgel2_resend_edgercvd_frame_addrrcvd_frame_bcc_typercvd_frame_buff_segrcvd_frame_cntrl_byte_1rcvd_frame_nrrcvd_frame_nsrcvd_frame_pfrcvd_frame_sdu_offsetrcvd_frame_sdu_sizercvd_frame_typebcc_errorframe_sentinvalid_framenr_errorns_errorrcvd_framel2_T1NV/. B. /HyCNAzN^NuNV/ /<{NDtXOJfHn/<|NC`B9Hn/<}NCPOHnNA2 @ 3/<zNDtPOJf `B9E/ /<yNCHx/ NA#$nN^NuNV/$./HyANAPOJ9fJ9fJ9fJ9g ǾHyTNB//NC`B9Ǿ$.N^NuNV/ /$./Hy@\EBLNHyBNA/HyA]NHxB09//NA .HyAkNPOJ9g /HyAy`/HyANPOJ9Ǿg6/Hy?NBLHyR NB"BAHAA?BgHyR NAJǜg/9HyN%NA$.$nN^NuNVH00HyCdEBN&tGXOJf J9gHyC|N$XOJgJ9f HyCN`J9g HyCNB/Hx/NB`BHx/NB J9g HyCNB/Hx/NB`BHx/NB /Hx/NB L N^NuNV//$.HyDNNB&/HyǜNAP/Hx/NB $.&.N^NuNVH 0tJ9ǾgHyCGBN$pXOJ9g HyDNXO/Hx/EBNp J9g HyDNXO/Hx/Np J9g HyD$NXO/Hx/Np J9g HyD2NXO/Hx/NHyD@N/Hx/N L N^NuNVH 8HyDGBN$pXOJǜg HyDNXO/Hx/EBNpIǾ Jg Hy?$NXO/Hx/NHyKpN/Hx/NHyKN/Hx/Np,Jg HyDNXO/Hx/N J9gHxHyN#EANHx`HxHyN#EANHxHyN$NJ9g$HxHyN&EANHxHyN'NHx`"HxHyN&EANHxHyN'NHxHyiyN LN^NuNVH00&.HyDGBN$/N|/Hx/EBNpJ9g /N~XO/Hx/Np J9g /NtXO/Hx/Np J9gN/Hx/Np J9gN|/Hx/Np J9Ǿg Hy?NXO/Hx/N L N^NuNVH00&.HyKEBN$HyLdN/Hx/EBNNB/Hx/N.Hy|GAPN/Hx/N/HyN/Hx/N$.HyN/Hx/N/Hy> u& & && &<#t>6L DLT\D& u&$&&& &&  uL trDL tDLutLutL ru.ŀ..!..u l...L r.tl:.t.uŀˆ.Ōƚs׊d &׊d&׊d &׊d &&E׉M&&e&mt׉M&t6;6tD r 6;6tGDDDD>u6;6u6 r6 6<u;u DuD6 u>>& u&$&L& && & r;6u16t\&'&t\&>>>u>u- Ƌ &&66& &&$<t}& s$<uur%&r$ Ļ׀rI&>".+rI&>"> Ļ׀&>8v 8s8vt 8r8v 8t&:&tĀ&:u6d:&t;6tD 9r;u6 9r6;6uD0t+û&u> uMû*&E&E&E&E؉^ ׎*˸*&E&E&E*˸*&E*˸*&E*˸&u1&&6&&&7RP u&&&6 &&Edce_abortdce_bad_bccdce_framedce_good_bccdte_abortdte_bad_bccdte_framedte_good_bccl2_real_time_clock_valuem_frame_addrm_frame_bcc_typem_frame_cntrl_byte_1m_frame_pfm_frame_typel2_enhancel2_suppressNV/. B. /HyONAzN^NuNV/<{NDtJf `B9N^NuNVH 0$./HyUGBLNHyP^EANHyPN/HyWN/HyXNL N^NuNV/ /$./HyXIEBLNHx/</NA /HyXaN$.$nN^NuNVHyQNBN^NuNVH 0HyPEBN$HyVN/Hx/GBNJ9gHyQ`HyQ:N/Hx/N L N^NuNVH00&.HyQZGBN$/N\/Hx/EBN/N/Hx/N$N/Hx/NHyVN/Hx/N L N^NuNVH 0HyS.GBN$N/Hx/EBNHxNDtJf*HyQN/Hx/NHyQ:N/Hx/N `BHx/NBHx/NHyTNB/Hx/NB L N^NuNVH80(.HyQEBN&GXOJg4HyQN$// NAP/Hx/EBN/Hx/N$`BHx/NB E2Jg8HyRNB$// NAP/Hx/EBN/Hx/N$`BHx/NB EJg8HyR:NB$// NAP/Hx/EBN/Hx/N$`BHx/NB EJg8HyRXNB$// NAP/Hx/EBN/Hx/N$`BHx/NB J2fJfJgHyRNB/`BHx/NB L N^NuNVH80(.HyRvEBN&GȒXOJg4HyRN$// NAP/Hx/EBN/Hx/N$`BHx/NB EȲJg8HyRNB$// NAP/Hx/EBN/Hx/N$`BHx/NB ErJg8HyRNB$// NAP/Hx/EBN/Hx/N$`BHx/NB ERJg8HySNB$// NAP/Hx/EBN/Hx/N$`BHx/NB JȲfJrfJRgHyRNB/`BHx/NB L N^NuNVH 0HyThEBN$HyTN/Hx/GBNHyTN/Hx/N .VN/Hx/N L N^NuÊ%u$ur<u<u<ur<u<u<u&&& &&$s& /u>uou>u>u& r r  Ļ׀& rr6&>"'rr&&" Ļ׀À>uV+vPP u&&& &@&O& G& G&G&G&G &G &GG& GItFIt>u"Ixx &PFG!GΉ7p6$<u߻׉&&u&&> t&?&>&t&&&U&u&> u &&&&&&]l2pp_trbuffl2pp_trbuff_endl2pp_trbuff_ctlNV//". n.B0. SvjeЀ0;N *4>NVl/N`/BBNJ`Nj`/N`N\`N`/N<`|NN`r/N`f/BBN`TN `L/N2HyUNA`6/NHyU`NA` N`/N<`N`Np$.&.N^Nu//CCcoco  ##CCcc&&t Ȁ66>ك&& &G&&t t6>>& u+>)v ك& &I>>Ή%s9u;u&u6)s6>>rw&E ك&M& 6&=u u 6s %ƃՉ6ģģģ@ģ)NVH?0$n*. *** 6*[tJg~΀/NBBXO|cJg.|b$0 <gB/Hx@/HyXN`DJfJf <Z`Jf <Z=` <ZJf <Zj//Hx HyY// Nz* L N^NuNV/$. "nA/B/NCl $.N^NuNV/$. "nA/B/NCl $.N^NuNVH8 n((g`<f&  x @Yhx„$0`4Jg<b x"Ҁ$Y`$<Y_`$<XY_fHyYeBCNCl LN^NuNVH0 n$n ((g<g Jg <cB`<Jf2Jg$(Hnvƀ/NCl JB` J B`Jg( J`B L N^NuNVH0 n$n (WDJ(f0Jg"Hnvƀ/NCl JB` J B`Jg J`B L N^Nu01NV nJ(f (` (<f`(Jg <` <N^NuINVALID FRAMENVH8 n&. (((2(Y|cJg|b<g&9[<`BJfJf <[h`Jf <[` <[Jf <[/Hx Hy[@//N` LN^NuNVH0 n$n ((g<g Jg <cB`<Jf"Jg8(/ vƀ/NCl `(Jg(/ vƀ/NCl` J  B* L N^NuNVH0 n$n (WDJ(f Jg4/ vƀ/NCl `&Jg/ vƀ/NCl` J  B* L N^NuNVH?<(..@H@B@&.$n z.H0@o,BFHFN-F~-HC-IKIG. HH@B@$B"n q/.NH2A/ /B///N/"nB//N(ZZMZLZKZJ$Rm L JfgRv l$mHj/, yZN JPO"c$m/9/9/ N*S Jn+J)l 9l t"< 8|x"؍Ap SJn J&Dc$URvlNDbL<N^NuNVHnBHxHxN@*Jg r JfSf$4HH$.$nN^NuNVH00 n"H#3-y=y-y=y-P=QNB$@&"GHj/. yZN#3$<POeL/9/9HnN* Jg"< CAp SJn¶dNDbL N^NuNVJ9g /9N¤N^NuNVH<*. (.&.. g///N> JfSJgJgL J-X-X-X-X-X-P j$(/(GE:N&/N"n*)///N\ <gB j2 <f,`/ /./ N> j fr(gJfb$(/(N&/N///N\Jf: J-X-X-X-X-X-P/ /./ N> <fp`Jf<HHLJRZ`lt|   & , 8 @ H N Z b j p |    & . 6 < H P X ^ n r z   * 6 > F L ~   $ , 4 : F N l  8 Z l &28HTZj2HT\jv~$BRXz0@Fbh DVrx~ "26>DTX`fvz ,2NTp 048<BRVZt*0LRn26@LTXbrvz>JPlr(8>JZ`l <^p|6<n:Xhn:@Jlx~"(4<DJV^flx&DZfn| & B H d v !!6!B!J!X!d!l!z!!!!!!!!!!""0"V"x""""""""###&#.#4#P#V#r###### $$"$>$D$`$f$$$$$$$$$$ %B%`%v%%%%%%%%%%%%& &<&N&^&p&&&&&&''"'*'0'L'R'n't'''''' ((*(2(:(@(\(b(n(v(~(((((((( )) ).):)B)J)P)l)r))))))) *,*J*Z*`*|*********++&+8+^++++++++,,&,.,6,<,^,j,r,z,,,,,,,,--:-\-z----------..4.F.V.h......../(/D/J/P/V/|////////000"0H0Z0|00000000000161H1j1v11111111111$262X2d2t2z2222222223$3F3R3b3h3n3t333333344.444:4@4P4V4b4r4x4444444455 55"5.5>5D5P5`5f5r5555555555 666,626>6d66666666667,7<7N7t777777788*808L8R8n88888888 9*9:9@9P9T9\9b9r9v9~999999999:(:.:J:P:: _____`(`F`^````a&aDaXa`aaa b,bvb~bbbc c0cPcccc dBdNd~ddddeFeZeeeeeeDffffg gRgggghhjhiiTihipiiivjjjjj kk$k.k8kFkPkZkdkkkkl l0lRldllll&m6m|mmm$nFnlnnnnolotoooop&p8ppppp qq:qLqqqqqqr,rDrJrrrVszsssst t0tPtzttttu&uLu`uhuuuuu$v8vDvbvvvvvvv&wwxpxxxxxyyyyyybzvz~zzz{ {${{{{{{||F||||&}:}B}Z}}}}~.~:~B~R~^~~~~~~~~,8$???\@]AkAyAAAAAAAAAAAAAAAAAB$B4BDBTBdBtBBBBBBBBCCCCC C(C,C4C8C@CDCLCPC\Ȃ(6>FNX^v҃܃8@fxJZ҅څ2XltĆ:և"8@V^Ȉ&L^fnΉ܉ ʊ 08H\r֋(>Pvڌ*@fv̍0BXjȎ0FX~:B\dC|CCCCCDD$D2D@DNDDDDLDEEEdFxFFFFGG,G:G~GGGGH$HFHHIXIILJJJJJK,KpKKKdLLLM.MZMMMNNNN4en@OZOtOOOOOOP PPPP"P&P.P2P:P>PFPJP^PnP~PPPPPP"*BP^hr̛ J\tΜ8jz̝֝ *t~ȞО؞&2x̟֟ *t|Πkz,1PQ:QZQQQQRR:RXRvRRRRS.SThTTTT`UpUUp¥Υޥ $,UVVVWXX$X1X>XIXVXaXnXhYlYpYtYxY|YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZ Z6<LX`jx$T\djrجZZZZ<[@[D[H[L[P[T[X[\[`[d[8HT\fr|<P"6dn \2@FLnzȶζ$fr|6X^fX^pv~ȹҹ:BN^pz*2:BJRZbjrʻл$4HNV\jt|¼м,6HPVֽܽ0`fnľʾ־"*2BHRȿ $Tfn V20\6\:\@\D\J\N\T\X\^\b\h\ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZQ.931SS7X.25ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZM(&@JT^hv 0-=<nd= l         !@#.!@#. 3l Oe &%%`$$%'''B'h$X$`  \$$#((#P//#66% = = DlJJO6ccO O hT O  JJO6ccO O O         0:&2& Z 0 0 0  ( 3N4N5N6N7N(&N'N(N)N*N+N,N-N.N/N0N1N2N$N#N"(!N8N9N%N "N:N;NN ?N(>N }?N }@N $N#N(4N5N8@N (%5N4N3N6N8!)4N!N6NR3Nb }e;Nj }QF)3N7N&N 6N7N'N(*N9+N=(NM7NU,N_=Nb-Nf.Nm3Nu0N}1N'*7NN*.N"*9*DN%*]N2*oN&*{N'*N(*N)*N,*N-*N.*N/*N#+N$-VF]-bF^-rFY/VSFUFYF[FWFTFZF(VF.\F4XF:RFC01[[$N#N"N QF$RF(UF,WF0WF7WFDSF[WF_XFcQFgVF}XFSFVFUF!NWFQFWFUFSFVFUFYF VFZFWF[FXF \F&C1QFRF]FSF]FTF^FUFVF WF XFS1^NYFbNZFfN[FjN\F[1nN]F]1rN^FSRC FLG CALL-REF-VAL MSG-TYPE INFO-ELEMENT TIME BCC INVALID PROTOCOL DISCRIMINATOR =  $ 9|2x223@9<822ALERTCALLPROSETUPCONNSETUPACKCONNACKUSERINFOSUSREJRESREJSUSPRESSUSPACKRESACKDETDISCDETACKRELRELCOMCANCFACREGCANCACKCANCREJFACREJREGREJCONCONFACACKINFOREGACKSTATUSUNKWN=??>~>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>$>0>>>>>>>>>>+>7>>1`3x SRC FLG CALL-REF-VAL MSG-TYPE INFO-ELEMENT TIME BCC INVALID9|2x4249<45H22   $ =N^MJNbMhNfMNjMNnMNrMISDNNV f0<`&NB#MNB#MNB#MB@N^NuISDN_ConditionsISDN_ActionsDTEDCEtop_level:condition_recstop_level:general_cond_recstop_level:action_recstop_level:general_act_recsALERTCALLPROCONNCONNACKSETUPSTUPACKRESRESACKRESREJSUSPSUSPACKSUSREJUSRINFODETDETACKDISRELRELCOMCANCCANCACKCANCREJCONCONFACFACACKFACREJINFOREGREGACKREGREJSTATUSC_REF=C_REFORIGtop_level:conditionDESTEnter Call Reference Value StringENHANCESUPPRESSUPPRESStop_level:actionREVERSEBLINKLOWNV/ N"@EM R P ||N" R PTH$nN^NuNV/ N"@EM R P ||N" R PTH$nN^Num_ptr_to_call_refm_call_ref_lenNVH 8(nA"P i h =f"i yM P$P/) /)G / ND||PJ/ NER"tЁB9Ntmp`t <JG\B/HxEANB/ HxNNDLN^Num_call_ref_flagNV"n yM P P|B(B9Nrmp`r <&B/HxNANDN^NuNV"n yM P P||B9Nrmp`r <&B/HxNANDN^NuNV/ N"@EM R P ||hN" R PTH$nN^NuNV/ N"@EM R P ||`N" R PTH$nN^NuNV/ N"@EM R P ||pN" R PTH$nN^NuNV/ N"@EM R P ||N" R PTH$nN^NuNV/ N"@EM R P ||yN" R PTH$nN^NuNV/ N"@EM R P ||N" R PTH$nN^NuNV/ N"@EM R P ||HN" R PTH$nN^NuNV/ N"@EM R P ||@N" R PTH$nN^NuNV/ N"@EM R P ||EN" R PTH$nN^Nul3_enhanceNV/ EM R PJfN R P R P h(JfN R P h( BHy.HxNA$nN^NuREVERSEBLINKLOWl3_enhance = %d; NV H80"nA$PB<GE j\H$Hy/NPOJf`.Hy/NPOJf`Hy/NPOJf`BJg *g$@`BJfBCHyE / ND yM P Jg yM PJf / ND`/ NB|L N^NuNV/ N"@EM R P ||jN" R PTH$nN^NuNV/ N"@EM R P ||bN" R PTH$nN^NuNV/ N"@EM R P ||rN" R PTH$nN^NuNV/ N"@EM R P ||{N" R PTH$nN^NuNVHx,NB @BPB(B(B(B(B(N^Nu ( %sm_message_type && (%s == 0x%x)NVH 0$n&n yM P/Hy/ ND gRJ*gLB9Nrlrg` t`$<`NB*//Hy/ NEXOHsNDL N^Num_call_ref_flagNVH 0$n&n J*gLB9Nrlrg` t`$<`NB*//Hy/ NEXOHsNDL N^Num_ptr_to_call_refm_call_ref_len && (%s[%d] == 0x%s)NVH<<(n*n J,gB9Nrlrg` z`*<`NEB/Hy Hy/ GENXOHuNDHl NJobv<f|0l `H0A0HAhhB.HnS//Hy / NEXOHuNDUJnL< B/HxNA ` yM P !>NNDL N^NuNVH 0$nNB j\H$PHy!/ GENPOJgHy!+/ NPOJf<NNDL N^NuNVB9Nrmp`r <B/HxNANDN^Nu )NV/ /NB$@ yM P$/ /NPOJg/ /N 2/ /NHy"/ NE B*,%nXND$.$nN^NuNV/$./N"(/N"$.N^NuNV/ N"@EM R P ||lN" R PTH$nN^NuNV/ N"@EM R P ||dN" R PTH$nN^NuNV/ N"@EM R P ||tN" R PTH$nN^NuNV/ N"@EM R P ||ZN" R PTH$nN^NuNV/ N"@EM R P ||MN" R PTH$nN^NuNV/ N"@EM R P ||.N" R PTH$nN^NuNV/ N"@EM R P ||&N" R PTH$nN^NuNV/ N"@EM R P ||"N" R PTH$nN^NuNV/ N"@EM R P || N" R PTH$nN^NuNV/ N"@EM R P ||N" R PTH$nN^NuNV/ N"@EM R P ||}N" R PTH$nN^Nul3_suppressNV/ EM R PJfN R P R P h(JfN R P h( BHy&&HxNA$nN^Nul3_suppress = 1; NV / E Hx/ Hy&NAD yM PJg yM PJf / ND`/ NB|$nN^NuNV/ N"@EM R P ||-N" R PTH$nN^NuNV/ N"@EM R P ||!N" R PTH$nN^NuNV/ N"@EM R P ||%N" R PTH$nN^NuNV/ N"@EM R P || N" R PTH$nN^NuEuDuÎ'&&& && G& G&G&G&G &G &G0&&t ȀG"|"O6¿t@&G&&&<up|b&G$0‰~ &G$9|0&A$ע)У=~>udce_packetdte_packetl3_real_time_clock_valuem_packet_bcc_typem_prot_discm_call_ref_lenm_call_ref_flagm_ptr_to_call_refm_message_typem_message_type_definedm_info_element_lenm_ptr_to_info_elementl3_enhancel3_suppressNVB. /Hy jNAzN^NuNVN^NuNVH 0$./Hy GBLN/Hy (N/Hy NHy EANHy>N.HyN/Hy/NL N^NuNV/ /$./HyqEBLNHx/</NA /HyN$.$nN^NuNV/ /Hy EBN$HyN/Hx/NB $.$nN^NuNVHy NBN^NuNVH08&.Hy IBN$/HyNG,N/Hx/EBN/HyN"N/Hx/N(.N/Hx/N L N^NuNVH08(nHy PGBN&Hy N/Hx/EBNHy N/Hx/N$N-B/Hx/Nt Jg$Hy LN$/. / NAP/Hx/N/Hx/N L N^NuNVHy NBN^Nul3pp_trbuffl3pp_trbuff_endl3pp_trbuff_ctlNV//". n.B0. SvjeЀ0;N *4>NVl/N/`/BBN/`N/`/N/`N/``N/~`/N/`|N/t`r/N/j`f/BBN+`TN+.`L/N+6HyNA`6/N+HynNA` N+`/N,2`N,`Np$.&.N^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVN^NuNVN^NuNVN^NuNVN^Nu66>ك&& &G&&t t6>>& u+>)v ك& &I>>Ή%s9u;u&u6)s6>>rw&E ك&M& 6&=u u 6s %ƃՉ6ģģģ@ģ)NVH?0&n(. E++HkN<:vXOJgtā/NBCB2pVXOoB/Hx@/HyN8`8<f//HxHy^Hy'`//HxHy^HyJ/ N6( L N^NuNV/ /$n "nAHy/ NEHj"BBNCl $.$nN^Nu01NV"nA <2tJl <2vN^NuNVH0 $n$. *C BgC<`f L N^NuNVH0 n$n (r0vƀ  @H$// NEPO>f Hj/NCl L N^NuNVH0 $n&. HjN<*W@2AA2|crpC CJAg 0<@f L N^NuNVH8 $n&. **HjN<rāVXOo&<`4<f/Hx HyHy`/HxHyHy;/ N7 LN^NuNVH80 n(. (<c<G$DJg6G/r€/NClTJPOSgt/ /NClTJPOSfB L N^NuNVH80 n(. (<c_`BE&DJgv/ /NClTKSPOfB L N^NuNVH80$n(. HjN<*W@2A4AXO|ctpE&DJBgv/ /NClTKSBPOfB L N^NuNVH80$n(. HjN<*W@2A4AXO|ct|cQB`BBpE&DJBgv/ /NClTKSBPOfB L N^NuNVH?<(..@H@B@&.$n z.H0@o,BFHFN-F~-HC-IKIG. HH@B@$B"n q/.NH2A/ /B///N8/"nB//N9@(ZZMZLZKZJ$Rm L|XOJfBN@$.$nN^NuNVH8$nNB&@BHxHx@Hk/9PN8A|AI "%K"%P"yN^ yNb2B0&yNnI%L4"yNf yNj2B0G%KA0%P5j NDbLN^NuNVH8<*n(M yNb2$ T&yN^B0$yNnG"B": yNj2x؍"yNfB0E&D&E4" P S"AgTH&A ;m&A f 6mg$@AJgB&B$&AgTJ)lt/9Nr/9Nn/ NHd JfgRv l$mHj/, yHN JPO"c$m/9Nr/9Nn/ NIPS Jn+J)l 9l t"< 8|x"؍Ap SJn J&Dc$URvlNDbL<N^NuNVHnBHxHxN@*Jg rFLX`hnz $,4:FNV\hpx~"(JV^fl|"Hfv| 2 B H d j   B R X d t z 4@Zl&.Jhp.6RpxBTtJ\p"*Fdl.F^N f ~ ^!t!!!!!!!!"""F"\"p"""""""#<#D#X#`#|######$$&$B$`$h$$$$$$$%&%.%J%h%p%%%%%%%&:&L&l&&&&&'','J'R'n'''''''( (     P    L j n v z >N +F+V+`+h+v+++++++$,@,R,X,r,,,,,, -H-n~........../ // /&/4/>/F//?LYfq~^bfjnrvzHLPTX\`dhlptx|  $(,048<@DHLPTX\`dhlptx|  $(,048<@D1111222 2J2223"3V3HLPT 333334 44^5b6v6H7\7799 :=TX=f=l=r======">(>4>D>J>>>>>>&?,?4?\?~???~@@@@@@@@@@@@@A(A`AhAtAAAAAPBXB`BhBpBxBBBBBBBBBBB CC&C@CJCZCnCtC|CCCCCCCCCCDD&D6Dnno ANSI o CCITT oo @9o1o)o!ooooo& @2op>J @`V< 0pp`ap#Layer<<=6666666v7 4B7 7 7 7 p4 p4 p4 p4  77 778B 7T7j5T 77"77 P6 P77D66 L7777877(77(,77 7 7 7$T7 7 7wR7 7 7 x7 7 7 x7 7 7 yL7 7 7 7777 7   8 8,, 7'Z7 7 7 (wR7 7 7 x7 7 7 x7 7 8. |y82 82 7 77 L77 L 7  L 8 L 87LL L 7/Zq7 7 7wR7 7 7x7 7 7x7 7 7VyL7 7 8.y82 82 7 77 77 7  8 8,, 87<< 7 6z7 7 7wR7 7 7x7 7 7x7 7 7RyL7 7 7 77"77" 7  " 8" 8,," 7N~7 7 7wR7 7 7x7 7 7x7 7 7yL7 7 7 7777 7   8 8,, 8G8G ~8K8K ~ 7nwR7 7 7x7 7 7\x7 7 7yL7 7 7 7777 7   8 8,, 7|wR7 7 7x7 7 7jx7 7 7 77(77( 7  ( 8( 8O 8m8mz8q8qz8u8uz8y8y{8}8}{:88{X88{v88{88{88{88{88| 88|*88|H88|f88|88|88|88|88|88}88}888}V88}t88}88}88}88}88~ 88~(88~F88~d 888888888888>99b999 9 9 9 999988:99^999 9  9#9# L9'9' L9+9+ L9/9/ L9393 L 9797 LD9;9; Lh9?9? L9C9C L9G9G L9K9K L9O9O L9S9S L@9W9W Ld9[9[ L9_9_ L9c9c L9g9g L9k9k L9o9o L<9s9s L`9w9w L9{9{ L99 L99 L99 L99 L899 L\99 L99 L99 L99 L99 L99 L499 LX99 L|99 L99 L99 L99 L 99 L099 LT99 Lx99 L99 L99 L99 L99 L,99 LP99 Lt99 L99 L99 L99 L99 L(99 LL99 Lp:: L:: L: : L 9#9# q9+9+ r:: r8:: r\9797 r9C9C r99 r:: r:: s:: s4:#:# sX:':' s|88 s88 s99 s99 t 99 t099 tT99 tx99 t99 t:+:+ t:/:/ u:3:3 u,:8:8 uP:=:= ut:A:A u:E:E u:I:I u:M:M v:Q:Q v(:U:U vL:Y:Y vp:]:] v:b:b v:g:g v:k:k w99 w$ 5T:o :o :w : p4 p4  :o5pBp::p 0::5::5::5 : :Illegal SI TypeIllegal OPC TypeIllegal DPC TypeIllegal SLS TypeIllegal CIC Type for ISDNIllegal CIC Type for TUPSS7_ConditionsSS7_ActionsDTEDCEtop_level:condition_recstop_level:general_cond_recstop_level:action_recstop_level:general_act_recsNETMISUPSCCPNTRNTSDUP0DUP1OTHEROTHER=top_level:conditionHEADHEAD=NINI=OPCOPC=DPCDPC=SLSSLS=NI=INI=NEnter OPC ValueEnter DPC ValueEnter SLS ValueCICCIC=Enter CIC ValueLTMLTAEnter Service Indicator valueCOOCOACBDCBAECOECARCTTFCTFPTCPTPATFRTCRTFATCATAARSPRSRRCPRCRLINLUNLIALUALIDLFULLILRIDLCCSSCNSCNPCCCREFRLSDRLCDT1DT2AKUDTUDTSEDEARSCERRITIAMIAISAMSAOGSMCOTCCFGRQACMCHGSECCGCNNCADICFLSSBUNNLOSSSTACBDPNMPREUMANUANCANNCBKCLFRANFOTCCLEAMRLGBLOBLAUBLUBACCRMGBMBAMGUMUAHGBHBAHGUHUAGRSGRASGBSBASGUSUACFMCPMCPACSVCVMCRMCLIINRINFANMUBMRELPAURESCGBCGUCGBACGUACMRCMCRCMFARFAAFRJFADFAICSVRCSVSDRSPAMENHANCESUPPRESSUPPRESStop_level:actionREVERSEBLINKLOW {B|B}B~BB nBoBpBqBrBsBtBuBvBwBxB yB zB lBkBiBBBmB jBBB44}B BHB }B }B lBkBY|B}B8B  }k%}B|B{B~B8!|BiBzBO~BV{Bf }iBn }QF%M{BnBoBpB~B +--/13579;=?ACEGIKMxnBNB{B rBsBuB3vB7wBEyBLЗ>B{B rBsBuB#vB,wB5yB<nBLB{B rBsBuB3vB7xBCyBJdnB    nUB{B rBsBuB3vB7wBExBLyBSØCB{B rBsBuB#vB,wB3xB:yBAB  $Bm=BzOBnXBogBppBq|BtBwBxByBkBlF]F^FYVSFUFYF[FWFTFZF(VF.\F4XF:RFCr1[[lBkBjB QF$RF(UF,WF0WF7WFDSF[WF_XFcQFgVF}XFSFVFUFiBWFQFWFUFSFVFUFYF VFZFWF[FXF \F&QFRF]FSF]FTF^FUFVF WF XFLYFPZFT[FX\F\]F`^F SRC NI P DPC OPC TYPE DATA SLS CIC TIME BCC INVALID ECIS6 RESERVED SPARE NETM=NTR= NTS= SCCP=TUP= ISDN=DUP0 DUP1 UNKWNUNKWNUNKWNUNKWNUNKWNECIS6UNKWNUNKWNUNKWNIAM SAM INR INF COT ACM UNKWNFOT ANM UBM REL UNKWNPAU RES RLSD RLC CCR RSC BLO UBL BLA UBA GRS CGB CGU CGBA CGUA CMR CMC RCM FAR FAA FRJ FAD FAI UNKWNCSVR CSVS DRS PAM GRA UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNCOO ECO RCT TFP RSP LIN UNKWNDLC UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNCOA ECA TFC TCP RSR LUN UNKWNCSS UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNTFR RCP LIA UNKWNCNS UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNTCR RCR LUA UNKWNCNP UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNCBD UNKWNUNKWNTFA UNKWNLID UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNCBA UNKWNUNKWNTCA UNKWNLFU UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNLLI UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNLRI UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNCOO ECO RCT TFP RSP LIN UNKWNDLC UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNCOA ECA TFC TPA RSR LUN UNKWNCSS UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNTFR RCP LIA UNKWNCNS UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNTCR RCR LUA UNKWNCNP UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNCBD UNKWNUNKWNTFA UNKWNLID UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNCBA UNKWNUNKWNTAA UNKWNLFU UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNCR CC CREF RLSD RLC DT1 DT2 AK UDT UDTS ED EA RSR RSC ERR IT UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNANU UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNIAM GSM GRQ ACM SEC ANC RLG MGB CFM UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNIAI UNKWNUNKWNCHG CGC ANN BLO MBA CPM UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSAM COT UNKWNUNKWNNNC CBK BLA MGU CPA UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSAO CCF UNKWNUNKWNADI CLF UBL MUA CSV UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNCFL RAN UBA HGB CVM UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSSB FOT CCR HBA CRM UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNN CCL RSC HGU CLI UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNLOS UNKWNUNKWNHUA UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSST UNKWNUNKWNGRS UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNACB UNKWNUNKWNGRA UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNDPN UNKWNUNKWNSGB UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNMPR UNKWNUNKWNSBA UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSGU UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSUA UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNEUM EAM UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPARELTM UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPARELTA UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPARELTM UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPARELTA UNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNSPAREUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNUNKWNDTH4   I0I1N0N1,Bn SRC NI P DPC OPC TYPE DATA SLS CIC TIME BCC INVALIDDTHrbR   $ JLP0TRXn\Ď`ĦSS7NV f0<`&NB#ļNB#NB#B@N^NuANSICCITTSelect National Format F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** SS7 Packet Level Setup **National Format:ANSICCITTNational_Formatl3_enhanceNV/ / G S PJfNdEļ R S PC R"Eļ R P"JfNd R P" BHyp6HxNA$n&nN^NuREVERSEBLINKLOWl3_enhance = %d; NV H80"nA$PB<GE j\H$Hyp/NPOJf`.Hyp/NPOJf`Hyp/NPOJf`BJg *g$@`BJfBCHypE / ND y P Jg y PJf / ND`/ NB|L N^Num_code_typeNV y P P BHyqHxNANDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P P NDN^NuNV y P P NDN^NuNV y P P NDN^NuNV y P P NDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P P NDN^NuNV y P P!NDN^NuNV y P P"NDN^NuNV y P P#NDN^NuNV y P P%NDN^NuNV y P P&NDN^NuNV y P P'NDN^NuNV y P P(NDN^NuNV y P P)NDN^Num_sio_niNV|/ /$nA"P i h =f"i/) /)Hn|ND y P P| .I|fB(`|B9rlrg` t`$<wHB/HxNAND$.t$nxN^Num_label_opcNV|H 8(nA"P i h =f"i/) /)G|/ ND y P$P|/ NA%@B9rlrg` t`$<wB/HxNANDLlN^Num_label_dpcNV|H 8(nA"P i h =f"i/) /)G|/ ND y P$P|/ NA%@B9rlrg` t`$<xB/HxNANDLlN^Num_label_slsNV|H 8(nA"P i h =f"i/) /)G|/ ND y P$P|/ NA5@B9rlrg` t`$<y@B/HxNANDLlN^Num_cicNV|H 8(nA"P i h =f"i/) /)G|/ ND y P$P|/ NA5@B9rlrg` t`$<yB/HxNANDLlN^Num_code_typeNV y P P BHyzHxNAN^NuNV y P PN^NuNV y P P!N^NuNV y P PQN^NuNV y P PaN^NuNV y P PN^NuNV y P P"N^NuNV y P PN^NuNV y P P#N^NuNV y P PN^NuNV y P P$N^NuNV y P P$N^NuNV y P P4N^NuNV y P PDN^NuNV y P PTN^NuNV y P PdN^NuNV y P PdN^NuNV y P PN^NuNV y P P%N^NuNV y P P5N^NuNV y P PEN^NuNV y P PN^NuNV y P P&N^NuNV y P P6N^NuNV y P PFN^NuNV y P PVN^NuNV y P PfN^NuNV y P PvN^NuNV y P PN^NuNV y P PN^NuNV y P P(N^NuNV y P P8N^NuNV y P PHN^Num_code_typeNV y P P BHy~HxNANDN^NuNV y P PNDN^NuNV y P P!NDN^Nu )NV/ /NB$@ y P$/ /NPOJgD/ /N/ /Nb/ /N/ /NB./N/ /NHy / NE B*,%nXND$.$nN^NuNV/ /NB$@ y P$/ /NPOJgD/ /N/ /Nb/ /N/ /NB./N/ /NHy / NE B*,%nXND$.$nN^Num_code_typeNV y P P BHyHHxNANDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P P NDN^NuNV y P P NDN^NuNV y P P NDN^NuNV y P P NDN^NuNV y P P NDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^Nu0m_sio_siNVNd"@ y P B9rlrg `B` # y PTH||BHyHxNANDN^Nu5NVNd"@ y P B9rlrg `B` #N y PTH||BHyHxNANDN^Nu4NVNd"@ y P B9rlrg `B` # y PTH||BHyHxNANDN^Nu3NVNd"@ y P B9rlrg `B` #B y PTH||BHyHxNANDN^Nu1NVNd"@ y P B9rlrg `B` # y PTH||BHyHxNANDN^Nu2NVNd"@ y P B9rlrg `B` #6 y PTH||BHyHxNANDN^Nu6NVNd"@ y P B9rlrg `B` # y PTH|| BHyHxNANDN^Nu7NVNd"@ y P B9rlrg `B` #* y PTH|| BHyHxNANDN^Nu8NV|/ / $nNd&@ y P B9rlrg `B` #$j j h =f$j/* /*E|/ ND|| / NA@ y PTHBHyHxNAND$nt&nxN^NuNVHx&NB"@ IBXBB)B)B)B)B)B)B) B) B) B) B) B)B)B)B)B"N^Nu ( %sm_sio_si && (%s == %s)NVH 0$n&n y P/Hy/ ND gJ*gJ*g $9`pJ*g$9``J*g$9`RJ*g$9`DJ*g$9`6J*g$9`(J* g$9`J* g$9` J* g$9/HyHy/ NEXOHsNDL N^Num_code_type && (%s == 0x%x)NV/ / n$n J( gDB9tltg` r`"<B(//Hy/ NEXOHrND$.$nN^Num_sio_ni && (%s == %d)NV/ / n$n J( gDB9tltg` r`"<JB(//HyS/ NEXOHrND$.$nN^Num_label_opcNV/ / n$n J(g@B9tltg` r`"</(/Hy/ NEXOHrND$.$nN^Num_label_dpcNV/ / n$n J(g@B9tltg` r`"<6/(/Hy/ NEXOHrND$.$nN^Num_label_slsNV/ / n$n J(gDB9tltg` r`"<B0(//Hy/ NEXOHrND$.$nN^Num_cicNV/ / n$n J(gDB9tltg` r`"<B0(//Hy/ NEXOHrND$.$nN^NuDTEdte_packetDCEdce_packet0NVH 0$nNB j\H$PHy/ GENPOJf. y P < B/HxNA<B9`RHy/ NPOJf0 y P < B/HxNA<` y P L N^Nul3_suppressNV/ / G S PJfNdEļ R S PC R"Eļ R P"JfNd R P" BHydHxNA$n&nN^Nul3_suppress = 1; NV / E Hx/ HyNAD y PJg y PJf / ND`/ NB|$nN^Num_code_typeNV y P P BHyNHxNANDN^NuNV y P PNDN^NuNV y P P!NDN^NuNV y P P1NDN^NuNV y P PANDN^NuNV y P PNDN^NuNV y P P2NDN^NuNV y P PBNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P P$NDN^NuNV y P PNDN^NuNV y P P%NDN^NuNV y P P5NDN^NuNV y P PENDN^NuNV y P PUNDN^NuNV y P PeNDN^NuNV y P PuNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P P&NDN^NuNV y P P6NDN^NuNV y P PFNDN^NuNV y P PVNDN^NuNV y P PfNDN^NuNV y P PvNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P P'NDN^NuNV y P P7NDN^NuNV y P PGNDN^NuNV y P PWNDN^NuNV y P PgNDN^NuNV y P PwNDN^NuNV y P PNDN^NuNV y P P(NDN^NuNV y P P8NDN^NuNV y P PHNDN^NuNV y P PXNDN^NuNV y P PhNDN^NuNV y P PxNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P PNDN^NuNV y P P)NDN^NuNV y P P9NDN^NuNV y P PINDN^NuNV y P PYNDN^NuNV y P PiNDN^NuNV y P PyNDN^NuEuDuÎ&&& && G& G&G&G&G &G &G0&&t Ȁ&GrO6¿t@&G&&&Ā&Ā0&$(.>@wrI&G%?&G%?&G(&G r9&G&G0&G&G0&G$&G>@wrG&G%?&G%?&G&G>@wrP&G%?&G%?&G(&G&G r>&G&G0&G&G0&G&G&G >udce_packetdte_packetl3_real_time_clock_valuem_packet_bcc_typem_sio_nim_sio_prioritym_sio_sim_label_dpcm_label_opcm_label_slsm_cicm_code_typel3_enhancel3_suppressNV/. B. /Hy?NAzN^NuNVN^NuNVH 0$./Hy:GBLN/Hy:N/Hy;@NHy?BEANHy?N.HyAN/HyANL N^NuNV/ /$./HyB%EBLNHx/</NA /HyB=N$.$nN^NuNV/ /Hy;EBN$Hy@rN/Hx/NB $.$nN^NuNVHy;NBN^NuNVH08&.Hy;IBN$/HyGTN/Hx/EBN/HyN/Hx/N(.@N/Hx/N L N^NuNVH08(nHy;GBN&Hy<N/Hx/EBNHyN$/. / NAP/Hx/N/Hx/N L N^NuNV/ /Hy<NB$NL/Hx/EBNN/Hx/NN/N/Hx/IBN/<aGDtN<f/N/`/<aNXOJf BHx/N L N^NuNVH08Hy>MGBN$&<>{/N/Hx/IBN/<aEDtN<f/`/<aNXOJfHy>N/Hx/N L N^Nul3pp_trbuffl3pp_trbuff_endl3pp_trbuff_ctlNV//". n.B0. SvjeЀ0;N *4>NVl/N`/BBN`N `/N`N`N`/N`|N`r/N`f/BBN`TN`L/NHy@RNA`6/NNHy@"NA` N`/N`N`Np$.&.N^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVpN^NuNVN^NuNVN^NuNVN^NuNVN^Nu66>ك&& &G&&t t6>>& u+>)v ك& &I>>Ή%s9u;u&u6)s6>>rw&E ك&M& 6&=u u 6s %ƃՉ6ģģģ@ģ)NVH> $n(. * 6*[tJl|̅/NBBXO|bB/Hx@/HyBN`//Hx HymhHym/ Nh( L|N^NuNV/"nA t‚ ЀЁm$.N^NuNV/ "n $nA00B) $nN^NuNVH 8&n$n +tIBtd@/<aNDtXOJf(B+B+ЁB/ @HpNC`TJ`(<f"+?AB@@/ $?/NCT LN^NuNVH 0$n&n *tBtdB/<aNDtXOJf*B*B*ЁB*/ @HpNC`TK`:<f4*t `BA*IA*t‚A/ $?/NCT L N^NuUNKWNNVH>0$n*. *tĀvƄ ЀЃЀC//NE&EZKPO|eF Ѐ0;Nzzz88888|dV/<aNDtXOJf*B"ҁҀҁIg// `<f*B"ҁҀҁOg// `*B"ҁҀҁOg// `|dV/<aNDtXOJf*B"ҁҀҁUg// `t<ft*B"ҁҀҁUg// `N*B"ҁҀҁUg// `0|dD/<aNDtXOJf HyB/ ` <f *B"ҁҀҁ[g// `*B"ҁҀҁ[g// `HyB/ `|dV/<aNDtXOJf*B"ҁҀҁCg// `<f*B"ҁҀҁCg// ``*B"ҁҀҁCg// `B|dV/<aNDtXOJf*B"ҁҀҁgg// ` <f *B"ҁҀҁgg// `*B"ҁҀҁgg// `|dT/<aNDtXOJf*B"ҁҀҁag// `<f*B"ҁҀҁag// `l*B"ҁҀҁag// `P|dB/<aNDtXOJfHyB`.<f2` |d/<aNDtXOJfHyB`HyB/NEPOHy/ NEPOJf K /BDNCl| |  L |N^NuNVH0 $n$. / NB @B*SB(jr`vlrB(C BJoSJn L N^NuNVH 8$n(n / NB&@* XOgNE<c,/<aNDtJf L+` <f L` L+`B LN^NuNVH 0$n&n / NB* @THgPEptgtf6 K*?R`" KC A`B L N^NuNV//"nA $<BVvveЀ0;N@|dd<c/<aNDtJfp$<B\`f<c/<aNDtJg<fJ$<Bn`B<b$<BzJf2$<Bt`*<c/<aNDtJf$<Bh` <f$<Bb $.&.N^NuNV/ n$. 0(X|b$<nQ`/Hx HynxHyn/NN $.N^NuNVH<0$n(. / NB @B*SB($XOjt`zltB(E&DJov/ /NClTKSPOJnB L *CBC<fTgBTH*E*-T=y4-SI:=TE/ NBXOJ.f.*C-S=TE/ / Hx Nh/ N`2/9`*D/Hn/ NJgHnNXO`NNDbL<B0$.&.N^NuNV/ E/ Hy6Hx Nh/ N$nN^NuNVHy0NN^NuNV/ E/ Hy@HxNh Jf/ N$nN^NuNV/ E/ Hy@HxN Jf/ N$nN^NuNV/ "9B2f290y@gE/ Hy@HxNh/ N$nN^NuNV/ E/ HyFHxN Jf/ N$nN^NuNVNN^NuNVNN^NuNVH8HxND$@"yL yP2B0&y\I%L4"yT yX2B0%K5AA@%P5yD Hj /HxN/ Hy/9mNDLN^NuNVH8HxND @$yL"yP2B0&y\I!L0$yT"yX2B0!KC2!P1h !Q 1h/Hy/9mNDLN^NuNVH <*n(n $nG/ N~XOJff/ NXOJf\JfRHn/* ymN$/ N Jf:/NE// lNHx TN/9`/9\/ N`|/ NDL<N^NuNV n"(f 2( hgp`pN^NuNV/ /$n"yT yX4B2ҹ\-A=BpfjVH0@ D$.$nN^NuNV/ / n $n. -y0=y4-y6=y:-X=P/9`/9\HnN JfSf$4HH$.$nN^NuNV/ / n $n. -y0=y4-y6=y:-X=P/9`/9\HnN, JfSf$4HH$.$nN^NuNVH00 n"H#@3D-y0=y4-y6=y:-P=QNB$@&"GHj/. ymN#F3J$<POeL/9`/9\HnN Jg"< CAp SJn¶dNDbL N^NuNVJ9>g /9BNN^NuNVH<*. (.&.. g///N, JfSJgJgL D J ,8@HNp| <HPX^$*6FLX$\x~4Jlx8DLTZ| &2BHT Xtz$FRZbh&.4f">DJP Tpv ,4<Bdpx@t$*b~:Pr~N &,28p < X ^ j r z !!!!$!*!6!>!F!L!X!`!h!n!z!!!!!!!!!!!!!!!!" """$","4":"F"N"V"\"h"p"x"~"""""""""""""""####"#(#4#<#D#J#V#^#f#l#x################$$$$"$*$2$8$D$L$T$Z$f$n$v$|$$$$$$$$$%%% %&%2%:%B%H%T%\%d%j%v%~%%%%%%%%%%%%%%%%&&& &(&0&6&B&J&R&X&d&l&t&z&&&&&&&&&&&&&&&$'@'F'R'Z'b'h't'|''''''''''''''''( (((&(.(4(@(H(P(V(b(j(r(x(((((((((((((((() )))").)6)>)D)P)X)`)f)r)z))))))))))))))))* ***$*,*2*>*F*N*T*`*h*p*v***************** +++ +,+4+<+B+N+V+^+d+p+x++++++++++++++++,,,,",*,0,<,D,L,R,^,f,n,t,,,,,,,,,,,,,,,,,----*-2-:-@-L-T-\-b-n-v-~----------------. .. .(...:.B.J.P.\.d.l.r.~................////(/0/`/|////////////////0 000&0,080@0H0N0Z0b0j0p0|00000000000000001 111&1.161<1H1P1X1^1j1r1z11111111111111112222$2*262>2F2L2X2`2h2n2z22222222222222223 333$3,343:3F3N3V3\3h3p3x3~3333333333333334444"4(444<4D4J4V4^4f4l4x444444455Z5f5n5r5|55555555566 6&626X6z6Lp^pdpzpppqq0qbqtqqqqqr>rbrrrrrs:s^ssssst6tZt~ttttu2uVuzuuuu v.vRvvvvvvw*wwww:x`xxxxyyyyy&zLzdzzzzz{"{@{^{|{{{{{|0|N|l|||||} }>}\}z}}}}}~.~L~j~~~~~"4DNXbpz  Zr؀ Dhԁ@d܂6V^nЃ؃*JRbv~Ą̄܄>FVjrv|Ѕ2:J^fjp̆4D$4BP^lz&|\tʊ6N^֋ <DPVž *`xލ&Jnڎ"Fj֏BfҐ>bΑ:^ʒ6Z~Ɠ2Vz” .Rvf::@;;;;;<A<<A=o====>M>{>>>>?"?*?.?B?R?b?r????????@Й&4>^Ԛ"8br 0VfМFV"@2@R@&2<HX`jpr@@AAAB BB%B2B=BJBhmlmpmtmxm|mmmmmm$4:Bv&ڤ6Tzʥ$Bx4XHШ^֩ mmmmxn|nnnnnnnnnnnHV\dv *>$R\Ұn .4:\ht T`jz$FLTFL^dlr(0<L^h (08@HPX`rԹ޹"6<DJXbjܺ$6>DntĻʻNT\ļ 06@~ BT\tzԾܾ D nnoo oooo o&o*o0oZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ X&@JT^hv i@0hRn z DTE { DCE    MOD 8 MOD 1286(!4)N | - .) &4  M y - .) &4  J v - .) &4  G s - .) &4  D p - .) &4  Am -.) & 4  >j -.) & 4  ;g -.) & 4   8 d - . ) &!4  !5 !a !k, @98!1D!)P!!\!h!t!!! @!"!""!"6"C"Z @`       @` @` @`  !!!"""###$$$% %%&@&&'`''((()))***+++,,,- --.@../`//000111222333 @`<47127001FFF         "r"v"z"`a" ab" bc"cd"de"ef"fg"gh#hi#&ij#<jk#Pkl#^lm#smn#no#op#pq#qr#rs#st$tu$uv$"vw$7wx$Lxy$byz$vz{${|$|}$}~$~$$$%%&%:%H%]%r%%%%%%%& &!&6&L&`Layer2<< X25_L3_TRANSMIT_STRUCT { unsigned char path_num; unsigned char packet_type; unsigned char packet_type_byte; unsigned char m_bit; unsigned char d_bit; unsigned char q_bit; unsigned char PR_type; unsigned char PS_type; unsigned char PR_value; unsigned char PS_value; unsigned char cause; unsigned char diag_flag; unsigned char diag; unsigned char spare; unsigned char facilities_len; char * facilities; unsigned short data_len; char * data; }="2DXk|    pDEh.23>?h.ABh.-h-122FG"     h.h.h7 /""+C%%+Ct))+>4--l&n2:l'FS S DD/VBTLTC,aa5@goh.AzzB-h..fS S R3*h.4U=W.=`X0$cD68      7 .I x S S .I x S S S S I x S S S S S S  x  > >D  v7 ! :"" " &!9) ) --'; (n.//)5P " >D 1$PBJ$PQQ$PVV$P 1%JJ%[[%VV% S S N! :"" " `!9) ) --'; (n.//)5P S S S S `!9) ) --'; (n.//)5P S S S S S S --'; (n.//)5P S S S S S S S S (n.//)5P S S S S S S S S S S //)5P S S S S S S S S S S S S  ,&7 `,9) ) -X - 1.JJ.[[.VV. >D S S `,9) ) -X S S S S  -X S S c2'i i 10lp p S S S S 10lp p v7 ‡ ™0f¯0f0f0f 0f™0f! 32 &0f¯0f! 42 U0f0f! 5.2 Ä0f0f!ó22 97 c;'i i 90lp p S S c;'i i 90lp p S S S S 90lp p 7 v7 ‡ ô888™8¯88888 ,8ô8! <|:: [88! =H:: Ċ88! >:: Ĺ8™8! >:: 8¯8! ?:: 88! @x:: F88! AD:: u88! B:: Ť88!ó;:: F 7 cI^'i i F0lp p S S cI^'i i F0lp p S S S S F0lp p D vD ‡ ôEEEEEEEE E9E™E¯EGEVE ,EôE! J*G> hEE! JG> ƗE[E! KG> EE! LJG> EE! LG> $EE! MG> SEE! NHG> ǂEE! NG> DZE E! OG> E9E! PFG> E™E! PG> >E¯E! QG> mEGE! RDG> ȜEVE!óI^G> S7 T T S S  T >D V7 V S S  V U >D [7 c]('i i \0$p p V S S c]('i i \0lp p V S S S S \0lp p V S S S S S S  V X ‡Z Y Y™Y¯Y ÄYY! ]\~ DZY Y! ^\~ Y™Y! _\~ >Y¯Y!ó](\~ S S a0lp p b vb ‡b S S S S  b >D c d7 --f; EEf. g e S S --f; EEf. g S S S S EEf. g S S S S S S  g >D h7  ="2DXj`    q nR*<nR*<kR*<b:<4b9<4 7<4,r3?@B?@l /bDD%%bC))b>|-->&2:>&S S DDsBLTBaa{AgobAJzz-b.S S 3rb3=\>= 16TT4Z\\G6 /RDD%%RC))R>|--,&2:,&S S DDuBLTRBaa|AgoRAJzz -R.S S 3rR3V=\=16 j`    d , , M sF llbGHqqbGHRwbGIɈɐbGI j`ɚ E ɟ B  "S S cx(i i w0p p "ɧw 4ɫ ɫ cx(i i w0p p "S S S S w0p p i>viBiB~ i>‡ibib i>™v2¯v2v2v2 iRiRv2i>™v2! yw &iRiRv2i>¯v2! zPw UiRiRv2v2! zw ÄiRiRv2v2!óxw "8X c(i i 0p p "ɧl4ɫ ɫ c(i i 0p p "S S c(i i 0p p "S S S S 0p p i>irir~ i>viBiB~ i>‡ibib i>ô[™¯ i>,iRiRô! z8 i>[iRiR[! F8 i>ĊiRiR! 8 i>ĹiRiR™! 8 i>iRiR¯! 8 i>iRiR! v8 i>FiRiR! B8 i>uiRiR! 8 i>ŤiRiR!ó8 "<8X c(i i 0p p "ɧ4ɫ ɫ c(i i 0p p "S S c(i i 0p p "S S S S 0p p i>irir> i>viBiB> i>‡ibib i>ôNN[NNNNNN N9N™N¯NGNVN ,iRiRNi>ôN! Zn hiRiRNi>N! &n ƗiRiRN[N! n iRiRNN! zn iRiRNN! $n $iRiRNN! n SiRiRNN! xn ǂiRiRNN! "n DZiRiRN N! n iRiRN9N! vn iRiRN™N! n >iRiRN¯N! n miRiRNGN! tn ȜiRiRNVN!ón "r8X "ɧ4ɫ ɫ i>irir i>viBiB "8X Z.ɰ ɰ "ɧ4ɫ ɫ Z.ɰ ɰ i>irir i>viBiB "S S Z.ɰ ɰ i>ɳii "8X -$;X Z.ɰ ɰ /25 "ɧj4ɫ ɫ -$;X Z.ɰ ɰ /25 i>irir i>viBiB "S S -$;X Z.ɰ ɰ /25 i>ii "S S S S Z.ɰ ɰ /25 i>ɳii" "S S S S S S /25 i>ii iBiB "8X -;X Z.ɰ ɰ i>irirt "S S -;X Z.ɰ ɰ i>ii "S S S S Z.ɰ ɰ i>ɳii "p8X c|(i i l0p p i>irirn "ɧ4ɫ ɫ c|(i i l0p p i>viBiBn "S S c|(i i l0p p "S S S S l0p p i>‡ibib n n™n¯n i>ÄiRiR~~! H i>DZiRiR~ ~!  i>iRiR~™~!  i>>iRiR~¯~!ó| "8X "ɧf4ɫ ɫ i>irir i>viBiB "ɧ4ɫ ɫ 0p p i>viBiB "S S 0p p i>‡ibib "ɧ4ɫ ɫ i>viBiB " 8X i>irir i@S S  : +Dj` `v Illegal LCN ValueIllegal Cause ValueIllegal Diag ValueIllegal PR ValueIllegal PS ValueIllegal Path NumberIllegal Bit ValueSENDGV_DATAGIVE_DATAPROTOCLtop_level:actionRESENDRESET_PR_PSCLRPATHENHANCESUPPRESSRSTPRPSFIRSTNEXTRRRNRREJCALLCAL_CNFCALL_CONFRESTARTRST_CNFRESTART_CONFRESETRES_CNFRESET_CONFCLEARCLR_CNFCLEAR_CONFINTINT_CNFINT_CONFREGREG_CNFDIAGOTHERSUPPRESREVERSEBLINKLOWPATH=FACFAC=STRINGEnter Path Number:Enter FAC String:Enter String:PS=PRPR=QMEnter Hex Value:RCVD_PRACK_PSSKIPAUTOLAST_PRCAUSECAUSE=DIAG=Enter LCN Value:Enter Diag Value:LOCAL_PROCEDURE_ERRORNETWORK_CONGESTIONNETWORK_OPERATIONALREG_CANCEL_CONFIRMEDCause=LOCAL_PROCEDURE_ERROR (code 00)SELECTROLLCause=NETWORK_CONGESTION (code 03)Cause=NETWORK_OPERATIONAL (code 07)Cause=REG_CANCEL_CONFIRMED (code 7F)DTE_ORIGINATEDOUT_OF_ORDERREMOTE_PROCEDURE_ERRORREMOTE_DTE_OPERATIONALINCOMPATIBLE_DESTINATIONNETWORK_OUT_OF_ORDERCause=DTE_ORIGINATED (code 00)Cause=OUT_OF_ORDER (code 01)Cause=REMOTE_PROCEDURE_ERROR (code 03)Cause=LOCAL_PROCEDURE_ERROR (code 05)Cause=NETWORK_CONGESTION (code 07)Cause=REMOTE_DTE_OPERATIONAL (code 09)Cause=NETWORK_OPERATIONAL (code 0F)Cause=INCOMPATIBLE_DESTINATION (code 11)Cause=NETWORK_OUT_OF_ORDER (code 1D)NUMBER_BUSYREVERSE_CHARGE_NOT_ACCEPTEDFAST_SELECT_NOT_ACCEPTEDSHIP_ABSENTINVALID_FACILITY_REQUESTACCESS_BARREDNOT_OBTAINABLERPOA_OUT_OF_ORDERCause=NUMBER_BUSY (code 01)Cause=OUT_OF_ORDER (code 09)Cause=REMOTE_PROCEDURE_ERROR (code 11)Cause=REVERSE_CHARGE_NOT_ACCEPTED (code 19)Cause=INCOMPATIBLE_DESTINATION (code 21)Cause=FAST_SELECT_NOT_ACCEPTED (code 29)Cause=SHIP_ABSENT (code 39)Cause=INVALID_FACILITY_REQUEST (code 03)Cause=ACCESS_BARRED (code 0B)Cause=LOCAL_PROCEDURE_ERROR (code 13)Cause=NETWORK_CONGESTION (code 05)Cause=NOT_OBTAINABLE (code 0D)Cause=RPOA_OUT_OF_ORDER (code 15)Enter Diag String:Enter Control Byte:DTEDCERCVtop_level:conditionPS_ERRPR_ERRPACKET_SENTWINDOWMORE_TO_RESENDNO_MORE_TO_RESENDINVALIDUNKNOWNPKT_SNTFULLEMPTYNOT_FULNOT_FULLNOT_EMPNOT_EMPTYMORENO_MORELCNLCN=D=Enter D Bit:Q=M=Enter Q Bit:Enter M Bit:Enter Value:X25_ConditionsX25_ActionsX25_OSI_ConditionsX25_OSI_Actionstop_level:condition_recstop_level:general_cond_recstop_level:action_recstop_level:general_act_recs*SJS#S.iSGiSYi{SkiSziSiSi~SiSiSiSiSiTiTiTiT'iyT4iT?i|TTizThi}TxiTiTiTi jVW WW"W+W7VWEpWR,Wd".Wr<0W~2W4W6W]W]W]W]W]W]X]X ]X2]X?]XR]X]]Xn]Xz]X]X]X]X]X]X]]]]$]](]V & n            r z :    r  z  j      :    j          r      z               r        : b B J  R     Z J       : b B J  R     Z J        Ԇ  Ԇ         F  F *  2            z֎ ֖֒ ֚ >>Xx    kyizi{i|i}iiii ~i iiiiii iiiiiiiiii kiiii iiikiiliiiiiii i iiiiiiiiii i"i$i&i(i*i,i.i0i2i4i6i8i:i<i>i@iBiDiFiHiJiLiNiPiRiTiViXiZi\i^i`ibidifihijilinipiritivixizi|i~iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiim {iimiii iin}i in%|i{izi}i8! }i {i|i8i  }_ncnziiiii$i(i2i;i@iHiMiQiZi`}ieii~ilipzisiwiz~iiiniiiii iiiiii*i-i/i=i@iBiPi^iaicisixiiiiiioZi~i 8ˆ88dž i.i7}E}S8ψVom{i }i }iizi"i% }NiTiWi]QFklp:n}٤ڤ7p$n}٤ڤ!pn}٤ڤpn}٤ڤqjn}] ]]]]#](]-868džBd}b8ψelq3n}]] q3n}]] q1n}]] r/]]]]]]]] ] ]]]]]]]]]]]]]]]]]]] 3r ]]]]]] ] ?r]]]]]] ] ]]Pr]]]]Xr]XrXrXr]Xreeeeee e eeeeeeeeee e"e$e&e(e*e,e.e0e2e4e6e8e:e<e>e@eBeDeFeHeJeLeNePeReTeVeXeZe\e^e`ebedefehejeleneperetevexeze|e~eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee e eeeeeeeeee e"e$e&e(e*e,e.e0e2e4e6e8e:e<e>e@eBeDeFeHeJeLeNePeReTeVeXeZe\e^e`ebedefehejeleneperetevexeze|e~eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeXteeeeee e eeeeeeeeee e"e$e&e(e*e,e.e0e2e4e6e8e:e<e>e@eBeDeFeHeJeLeNePeReTeVeXeZe\e^e`ebedefehejeleneperetevexeze|e~eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee e eeeeeeeeee e"e$e&e(e*e,e.e0e2e4e6e8e:e<e>e@eBeDeFeHeJeLeNePeReTeVeXeZe\e^e`ebedefehejeleneperetevexeze|e~eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeXv]eeeeee e eeeeeeeeee e"e$e&e(e*e,e.e0e2e4e6e8e:e<e>e@eBeDeFeHeJeLeNePeReTeVeXeZe\e^e`ebedefehejeleneperetevexeze|e~eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee e eeeeeeeeee e"e$e&e(e*e,e.e0e2e4e6e8e:e<e>e@eBeDeFeHeJeLeNePeReTeVeXeZe\e^e`ebedefehejeleneperetevexeze|e~eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeXx]eeeeee e eeeeeeeeee e"e$e&e(e*e,e.e0e2e4e6e8e:e<e>e@eBeDeFeHeJeLeNePeReTeVeXeZe\e^e`ebedefehejeleneperetevexeze|e~eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee e eeeeeeeeee e"e$e&e(e*e,e.e0e2e4e6e8e:e<e>e@eBeDeFeHeJeLeNePeReTeVeXeZe\e^e`ebedefehejeleneperetevexeze|e~eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeXz]aaaaaa a aaaaaaaaaa a"a$a&a(a*a,a.a0a2a4a6a8a:a<a>a@aBaDaFaHaJaLaNaPaRaTaVaXaZa\a^a`abadafahajalanaparatavaxaza|a~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a aaaaaaaaaa a"a$a&a(a*a,a.a0a2a4a6a8a:a<a>a@aBaDaFaHaJaLaNaPaRaTaVaXaZa\a^a`abadafahajalanaparatavaxaza|a~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaX| h}Y d|]k|ar|au|ax|]!N |Y|Y|Y|Y|"N||YYYYY|]]] | ]]|P]]}g} 8e]] 8 l}eeeA} ]]]]a}eeeeeeep}eee e ee(ee] eeeeeee e#e%e%e&} ]] }]] }eeeeeeeeeeeeeeee}   ]  }]]}]~.]]]]]]+2~]]]F~+]]]]q~]]~]] ~]~]~]] ~ ]]~.]~]]~e8^5]8ˆ]]]]]#]']+]/]3]8 ]]]]q]] ]]"](]/]9]@]D]J]N]R]V]Z]`]f]l*ee]]e]']/]3e;]GeJ]Q]U]Yeaea]c e]] ,eee]] e]]eeeeee]!e%]'ǀI ]  )]/ 4]6]?]GU]]]]].Ue}8Ոa ] a  aU"Nm}XL88dž ]U.]:e}B8ЈEm}JGg}8g}8h}]+-e}/8Ԉ4U:=A]DF U"Nl} m}  U8 7]]8]8!]&]*8Ɉ/]5BJ88dž ]]%].e}C8ЈFaaaaaaaaaaaaaaaaaa# ]!]]]]aւ    )]]] ]")]]] ]"=     K    ]au ]a]] ] ]  ]]  8ˆ]] a ]a]a] ]!]& ]/37 CKQly „ńɄ̈́ ؄]]8ʈ8dž  6]],@<]]*]6|8̈8dž ?]8]̅U] ]]]]K]N8Q!Ue}8Ոa aU"Nm}> 8ˆ]8 8dže}8Ј|,]ΆUU U"Nm} U" U"Nm}RUtuvwxz y {|~UUfDyo}zo} {}}|Uw%x(U+v.U4e!Nwu wx{#z'8*u1"N7t;vBvH~L~S|X8 [taڤu xxw&y+{4z98<uD٤HtNvW|`8 c~ktq8"vvtF]F^FYVSFUFYF[FWFTFZF(VF.\F4XF:RFC1[[iii QF$RF(UF,WF0WF7WFDSF[WF_XFcQFgVF}XFSFVFUFiWFQFWFUFSFVFUFYF VFZFWF[FXF \F&-QFRF]FSF]FTF^FUFVF WF XF=YFZF[F\FE]FG^FUNKWN=??JMQUzzzzSRC LCN TYPE Pr Ps QDM MISC SIZE TIME BCCzzZ_gmu{zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz| Rd         SRC LCN TYPE Pr Ps QDM MISC SIZE TIME BCC INVALID PACKETRp  !   ! v X.25NVNB# NB#$pN^NuLOGICAL DTELOGICAL DCESelect Emulate Function MOD 8MOD 128Enter Mode (MOD 8 Or MOD 128): Enter Window Size (1 To 7): Enter Window Size (1 To 127): Enter Low Outgoing Channel# (0 to fff): Enter High Outgoing Channel# (0 to fff): Enter lcn for entry #0 (hex): Enter called address for entry #0 (decimal): Enter calling address for entry #0 (decimal): Enter facilities for entry #0 (char): Enter data for entry #0 (char): Enter lcn for entry #1 (hex): Enter called address for entry #1 (decimal): Enter calling address for entry #1 (decimal): Enter facilities for entry #1 (char): Enter data for entry #1 (char): Enter lcn for entry #2 (hex): Enter called address for entry #2 (decimal): Enter calling address for entry #2 (decimal): Enter facilities for entry #2 (char): Enter data for entry #2 (char): Enter lcn for entry #3 (hex): Enter called address for entry #3 (decimal): Enter calling address for entry #3 (decimal): Enter facilities for entry #3 (char): Enter data for entry #3 (char): Enter lcn for entry #4 (hex): Enter called address for entry #4 (decimal): Enter calling address for entry #4 (decimal): Enter facilities for entry #4 (char): Enter data for entry #4 (char): Enter lcn for entry #5 (hex): Enter called address for entry #5 (decimal): Enter calling address for entry #5 (decimal): Enter facilities for entry #5 (char): Enter data for entry #5 (char): Enter lcn for entry #6 (hex): Enter called address for entry #6 (decimal): Enter calling address for entry #6 (decimal): Enter facilities for entry #6 (char): Enter data for entry #6 (char): Enter lcn for entry #7 (hex): Enter called address for entry #7 (decimal): Enter calling address for entry #7 (decimal): Enter facilities for entry #7 (char): Enter data for entry #7 (char): Enter lcn for entry #8 (hex): Enter called address for entry #8 (decimal): Enter calling address for entry #8 (decimal): Enter facilities for entry #8 (char): Enter data for entry #8 (char): 012345678PATH LCN CALLED CALLING FACILITIES DATA F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** X.25 Packet Level Setup **Emulate:Mode of operation:Window size: Window size:Low Outgoing Channel#:High Outgoing Channel#:DTEDCEMOD_8MOD_128Emulate_FunctionMode_Of_OperationMod_8_Window_SizeMod_128_Window_SizeLow_Outgoing_ChannelHigh_Outgoing_ChannelChannel0_Logical_NumChannel0_Called_AddrChannel0_Calling_AddrChannel0_FacilitiesChannel0_DataChannel1_Logical_NumChannel1_Called_AddrChannel1_Calling_AddrChannel1_FacilitiesChannel1_DataChannel2_Logical_NumChannel2_Called_AddrChannel2_Calling_AddrChannel2_FacilitiesChannel2_DataChannel3_Logical_NumChannel3_Called_AddrChannel3_Calling_AddrChannel3_FacilitiesChannel3_DataChannel4_Logical_NumChannel4_Called_AddrChannel4_Calling_AddrChannel4_FacilitiesChannel4_DataChannel5_Logical_NumChannel5_Called_AddrChannel5_Calling_AddrChannel5_FacilitiesChannel5_DataChannel6_Logical_NumChannel6_Called_AddrChannel6_Calling_AddrChannel6_FacilitiesChannel6_DataChannel7_Logical_NumChannel7_Called_AddrChannel7_Calling_AddrChannel7_FacilitiesChannel7_DataChannel8_Logical_NumChannel8_Called_AddrChannel8_Calling_AddrChannel8_FacilitiesChannel8_DataNV y$ P h0 P|| B(B(B(|B(B(B(Bh"N^NuNV/ NJ"@E$ R P |||  R PTHNQ$nN^NuNV/ NJ"@E$ R P ||| R PTHNQ$nN^NuNV y$ P h0 P||B(B(B(|B(B(B(Bh"N^NuNV|H8(nA"P i h =f"i/) /)G|/ ND y$ P h0$P| / / N*@LpN^Nurcvd_pkt_causem_packet_causeNV|H 8(nA"P i h =f"i/) /)G|/ ND y$ P$P| / / N*@B9(rlrg `$<'`$<(B/HxNANDLlN^NuLOCAL_PROCEDURE_ERRORNETWORK_CONGESTIONNETWORK_OPERATIONALREG_CANCEL_CONFIRMEDDTE_ORIGINATEDOUT_OF_ORDERREMOTE_PROCEDURE_ERRORREMOTE_DTE_OPERATIONALINCOMPATIBLE_DESTINATIONNETWORK_OUT_OF_ORDERNUMBER_BUSYREVERSE_CHARGE_NOT_ACCEPTEDFAST_SELECT_NOT_ACCEPTEDSHIP_ABSENTINVALID_FACILITY_REQUESTACCESS_BARREDNOT_OBTAINABLERPOA_OUT_OF_ORDERNV/ /$. "nA<fRHy(/EENPOJgHy(/NPOJghHy(/NPOJg~Hy(/NPOJg.`r<fHy)/EENPOJg\Hy)/NPOJgHy)"/NPOJgHy(/NPOJgHy(/NPOJf<`Hy)9/NPOJgHy(/NPOJf<`Hy)P/NPOJg|Hy)i/NPOJf<`<fBHy)/EENPOJgHy)~/NPOJf<`Hy)/NPOJf< `jHy)"/NPOJf<`RHy)/NPOJf<`:Hy)P/NPOJf<!`"Hy)/NPOJf<)` Hy)/NPOJf<9`Hy)/NPOJgHy)/NPOJf< `Hy(/NPOJgHy(/NPOJgHy)/NPOJf< `Hy*/NPOJfn<`r<fhHy(/EENPOJf<`NHy)/NPOJf<`8Hy(/NPOJf<`"Hy(/NPOJf<` /NA`B$.$nN^NuNV y$ P h0 P||B(B(B(|B(B(B(Bh"N^Nul3_clear_path()NVNJ4BHy-XHxNAN^Nul3_clear_path(%d); NV / NJ"@AB/Hy-E / ND/ NBX$nN^NuNV/ NJ"@E$ R P ||| R PTHNQ$nN^NuNV/ NJ"@E$ R P ||| R PTHNQ$nN^NuNV y$ P h0 P||B(B(B(|B(B(B(Bh"N^NuNV y$ P h0 P@N^Nurcvd_pkt_dm_packet_dNV|H <*nA"P i h =f"i/) /)E|/ NDI$ T P&P||/ NAJ@g|@ T PTHB9(rlrg `$<.`$<.B/HxNAL<hN^NuNV y$ P h0 P|B(B(B(B(B(B(B(B(B(Bh"N^NuNV/ NJ"@E$ R P ||B) R PTHNQ$nN^NuNV y$ P h0 P||B(B(B(|B(B(B(Bh"N^NuNV|H8(nA"P i h =f"i/) /)G|/ ND y$ P h0$P|/ NA@LpN^Nurcvd_pkt_diagnm_packet_diag_codeNV|H 8(nA"P i h =f"i/) /)G|/ ND y$ P$P| |/ NA@B9(rlrg `$<0`$<0`NB/HxNANDLlN^NuNV/ NJ"@E$ R P ||| R PTHNQ$nN^Nul3_enhanceNVBHy1HxNAN^NuREVERSEBLINKLOWl3_enhance = %d; NV H08"nA&PB<IE k\H$PHy2/ NPOJf`.Hy2/ NPOJf`Hy2/ NPOJf`BJg +g&@`BJfBBHy2 E / ND/ NBXL N^Nul3_give_data ()NVBHy2HxNAN^Nul3_give_data (); NVHy3NBXN^NuNV y$ P h0 P||#B(B(B(|B(B(B(Bh"N^NuNV/ NJ"@E$ R P |||# R PTHNQ$nN^NuNV/ NJ"@E$ R P |||' R PTHNQ$nN^NuNV y$ P h0 P||'B(B(B(|B(B(B(Bh"N^Nuinvalid_packetNV/ "y$$QA <4J QTHB/HxNAND$nN^Nurcvd_pkt_lcnm_packet_lcnNV|H 8(nA"P i h =f"i/) /)G|/ ND y$ P$P/ NA| 5@(B9(rlrg `$<4`$<4B/HxNANDLlN^NuNV y$ P h0 PN^Nurcvd_pkt_mm_packet_mNV|H <*nA"P i h =f"i/) /)E|/ NDI$ T P&P||/ NAJ@g| T PTHB9(rlrg `$<5r`$<5}B/HxNAL<hN^NuNV|H8(nA"P i h =f"i y$ P h0$P/) /)G|/ ND|B*B*B*|B*B*B*Bj"|/ NA@LpN^Nurcvd_pkt_type_bytem_packet_type_byteNV|H 8$nNJ&@"y$(QA "QA $j/* /*E|/ ND|/ NA@*B9(rlrg `$<6`$<6`NB/HxNANDLlN^Nupacket_sentNV/ "y$$QA <7 QTHB/HxNAND$nN^NuNV|H8(nA"P i h =f"i/) /)G|/ ND y$ P h0$P/ NA@LpN^Nurcvd_device_pathm_device_pathNV|H 8(nA"P i h =f"i/) /)G|/ ND y$ P$P|/ NA@B9(rlrg `$<88`$<8I`NB/HxNANDLlN^NuLAST_PRACK_PSAUTONV|H<*nA"P i h =f"i/) /)E|/ ND y$ P h0&PHy8/ IENJf|`4Hy9/ NPOJf|`Hy9 / NPOJfB+`|Hn|NA@L<lN^Nupr_errorNV/ "y$$QA <9 QTHB/HxNAND$nN^NuRCVD_PRSKIPAUTONV|H<*nA"P i h =f"i/) /)E|/ ND y$ P h0&PHy:/ IENJf|`4Hy:/ NPOJf|`Hy:/ NPOJfB+`|Hn|NA@L<lN^Nups_errorNV/ "y$$QA <: QTHB/HxNAND$nN^NuNV y$ P h0 PN^Nurcvd_pkt_qm_packet_qNV|H <*nA"P i h =f"i/) /)E|/ NDI$ T P&P||/ NAJ@g| T PTHB9(rlrg `$<;B`$<;MB/HxNAL<hN^NuNV/$./NR*/N<4ND$.N^Nu )NVH0 &.NB$@ y$ P$/ /NKPOJg// /NLn/ /NM"/ /NM/ /NN. ./NN/ /NP/ /NQ>/ /NO:./NO/ /NPJ/ /NQ/ /NQ Hy<0/ NE B*,%CXNDL N^NuNV y$ P h0 P||B(B(B(|B(B(B(Bh"N^NuNV/ NJ"@E$ R P ||| R PTHNQ$nN^NuNV y$ P h0 P||B(B(B(|B(B(B(Bh"N^NuNV/ NJ"@E$ R P ||| R PTHNQ$nN^NuNV y$ P h0 P|| B(B(B(|B(B(B(Bh"N^NuNV/ NJ"@E$ R P ||  R PTHNQ$nN^Nuresend_packet ()NVNJ4BHy>HxNAN^NuFIRSTresend_packet ( %d, %d); NV / /t"nA Pg Hy> h\H/NEPOJVH4DBNJr‚/"@AB/Hy>E / ND/ NBX$.$nN^Nul3_more_to_resend()NV/ E$ R PJfNJ R P BHy?HxNA R PTH$nN^Nu( l3_more_to_resend(%d) )NV/ /$.NB$@ y$ P PB/Hy?Hj,NDB%BX$.$nN^Nu( !l3_more_to_resend(%d) )NV/ /$.NB$@ y$ P PB/Hy@PHj,NDB%BX$.$nN^NuNV y$ P h0 P||B(B(B(|B(B(B(Bh"N^NuNV/ NJ"@E$ R P ||| R PTHNQ$nN^NuNV/ NJ"@E$ R P ||| R PTHNQ$nN^NuNV y$ P h0 P||B(B(B(|B(B(B(Bh"N^Nureset_pr_ps()NVNJ4BHyAHxNAN^Nureset_pr_ps(%d); NV / NJ"@AB/HyBE / ND/ NBX$nN^NuNV y$ P h0 P||B(B(B(|B(B(B(Bh"N^NuNV/ NJ"@E$ R P ||| R PTHNQ$nN^NuNV/ NJ"@E$ R P ||| R PTHNQ$nN^NuNV y$ P h0 P||B(B(B(|B(B(B(Bh"N^NuNV y$ P h0 P||B(B(B(|B(B(B(Bh"N^NuNV/ NJ"@E$ R P || R PTHNQ$nN^NuNV y$ P h0 P||B(B(B(B(B(B(B(Bh"N^NuNV/ NJ"@E$ R P || R PTHNQ$nN^Nusend_packet ()NV/ NJ4BHyHxEANBHyDHxN$nN^Nuup_nN_DATANV . y$ P h0 P, HyDHyD/NBdN^Nu{ static char l3_fac_string[] = static struct X25_L3_TRANSMIT_STRUCT packet = { %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, l3_fac_string, %d, %d }; send_packet(%s,&packet); } NVH <*./HyEBLN/HyN/HyN/Hy7N.VNAx XO,<BRvKkIjGiEh/Hyn FN4Hx698//NA /Hyv FNJHSDBBBBf/Hy]NBR4HxHxR/NA Hy:HxR?Bg/NB .Hy~EBLNPOJ9 g /Hy`/HyNXO.HyEBLN/HyNJ92g /HyNPOJ9"g./HyNHyUNB"BAHAA?BgHyUNAL<|N^NuNVH $.8.6.<.:./B0. /Na/?Bg?BgNat/?Bg?BgNbLL|N^NuNV/ / $n G/ B0. /NCPOJ.g/ NA@H@`B||$n&nN^NuNVH08(n4.G/ B0. /ECNHn?BgNBABBJ.fJ.gvrBA"KJg*JgRAЀB`<RRIJfCJg*JgRAЀB`<RRIJfJgRACA0H@L N^NuNVH 0$n4.HjHjB0. /GbNHj$Hj"?BgNL N^NuNV|H 0$n &nHn~B0. /NC A.~BJg <0fL pN^NuNV/ /HyYEBN$Hy N/Hx/NBHyBHyMHx/Ni $.$nN^NuNVH8 (.HyHEBN&Hy6/NkBHyN$BHx/EBNHy/Nj .Hx/N/Ng/Hx/N LN^NuNV/ /HyEBN$Hy N/Hx/NBHyJBHyMHx/Ni $.$nN^NuNVH8 (.HybEBN&Hy~/NkBHyN$HyN/Hx/EBN.^/Nj/Hx/N/HyjNAP/Hx/N(Nd/Hx/N LN^NuNVH>0Hy NB&Ne/Hx/GBNNf^/Hx/NHyҺ(</,< /Hx/EiN,.V*< //Hx/NNf/Hx/N Ng/Hx/NHy/$< o/Hx/N.Ѧ//Hx/NHyV//Hx /N$.а/$< /Hx /NHyHyF/Hx /N$.Ϧ//Hx /N L |N^NuNVH00Hy GBN&HyHx/NHyֲB&</Hx /N$.֞B/Hx /NNiJ/Hx/NB L N^NuNV/ /HyNB$Hy/NkBHy׌BHyfHx/EiN.xBHyHx/N $.$nN^NuNV/4.pJ.g /.NBXO/?Bg/.NB$.N^NuNVH<&.(.:./.NB$XOJg //NjPOJg //NkBPO/?Bg/.NBL%ģ&d׈>ģÀ> tĀ&&d&uSMP u[&&& &`&ÿ &&&6%H)‰Ӂ؊&t Ȁو&ډGho&E&E&E&E؉^ ׎ho˸ho&E6G&E6G&Eho˸ho&E6G&Eho˸ho&E6G&Eho˸&u1&&6&&&>&7WRP u&&&&6 &˸6GG?G@.W026G8 W4BƋ &&66& &ss{r d:{{r{rD:{{{>Ì؎ssruurG;OuwuG Bu;GtB7u;Ou wtButBOGG;OuwB&Ɗ&\@|?8v 8s8vt 8r8v 8t&:d>uĀd>w2O4dw:8t5;w6t0SDD[G0 9rw.;W8uw8 9rƋO.w2O4;w6u G8G?G@DG@ue>tuir86&ĉÁ0u%@&D+v666%&D%È%&D&È&È&&DÈ&&DÈ&&DÈ&ÁrC&D%%€9r&tڎŽڎģ6<u\ '>  u&@& &_ u&& & 6L DLT\ u&D&&& && D tuOOO"L׋L׊DusDDĹ;DtBG H=sĹ;DtBG @=vuDDD ttOQװYװ׊D tu׉ED  tuD DD Dt׊D tuװ   Gg   GgD D D 誊D 쫊D D l 誊D  d D D D d OwOw>N>vO"w$>f>FGDDDtDDtAo<ou lo>o>o<Lro:tl:o?to?uŀˆo=O?Ōƚsw2;w6tDD ;w0rw.ߋG.W0G2G6G8 W4w6;w4tADDDG=D8uw8;w2uG@w8 ;w0rw.w6 6<u> D tuw8 uS u[O>ɎD&d&LO>D&d&L&DL&& & && >Et ;w0rw.;w6u1w86D t> G<G>G;G=G?G@G:6D u'u GGuG>  $ȉ9u6 t.u uV^ ðu>t&&u&&> t&?&>&t&&&U&u&> u &&&&&&]l3pp_trbuffl3pp_trbuff_endl3pp_trbuff_ctlNV//". n.B0. SvjeЀ0;N *4>NVl/NZ`/BBNX`NY`/NZj`N\`N]`/N]`|N\`r/N^X`f/BBNT`TNT`L/NTHyvNA`6/NUFHyFNA` NU`/NU`NU`Np$.&.N^Nu66>ك&& &G&&t t6>>& u+>)v ك& &I>>Ή%s9u;u&u6)s6>>rw&E ك&M& 6&=u u 6s %ƃՉ6ģģģ@ģ)RRRNRREJSREJCALLCALLACCCLEARCLEAR CRESETRESET CINTINTCONFREGREGCONFRSTRTRSTRT CINVALID PACKETNVH?8$n*. **0*0F2 8jtJlv,Ɔ/NBBXO6 |c<g,|b , fB/Hx@/HyNH`F<f"<@Jf"<`"<Jf"<r< //v ƀ/Hy// N* LN^NuNV/ / n$n (AB@(@A/ $/NCT R$.$nN^NuDIAGDATANV//"nAgDgv? @$`.<f$<` v @$`$<zfHyBANCl $.&.N^NuNVH8 "n$n )0)Bg"f <gx @ zg<BJg*<f) J0B`) J LN^NuNV n"n (0(Bf"<f I0B` @ N^NuNVH8 n$n ((0@Bf<f`( J  C B*JgQJgDJgM LN^NuNV/$. HnHn/.NB0.rlp"n BJoSJn $.N^NuNVH 0"n$n &n)BAg<20X2AAA)0<g<gA)gSA$6L N^NuNVH< n$. ((0(0(X|c|b<gf$<O`,"<Jf"<< /z ʀ/Hy^//N L:>>>>>>,?L?d????@0@@@@ AA>ARAZAAAAA"B4BZBBBBBB C2CzCCCCDLDTDzDDDDDDEEE FFFFFF(G>GFGrGGGGGHHhHHHH6INIIII>JPJnJJKKKKKKLLLLLDv$Bdpv  ,4<B^dpx"*0LR^fnt.:@\b >`~8Jp &,HZ&.6<Xj$*FX~4@Flx(4<DJlx   " H j | !&!B!H!N!T!d!j!v!!!!!!!!!""" "0"6"B"R"X"d"t"z""""""####$#F#R#Z#b#h###############"$D$b$r$x$$$$$$$$$% %%%"%.%6%>%D%P%X%`%r%%%%%% &&,&2&N&T&`&h&p&v&&&&&&&&&&','<'B'^'d''''''''''''(((@(b(((((((((()):)@)L)T)\)n))))))* *(*.*J*P*l*r****** +(+>+J+R+Z+`+++++++++,,,H,N,T,Z,,,,,,,,,,,,---&-L-X-d-n-r--------..$.6.\.~......./(/J/h/x/~/////////0080Z0x0000000000&1H1Z1v1|1111111112&2H2T2j2v222222222230363B3R3d33333333344404R4x44444444444"5.545:5@5P5V5b5r5x555556 666"6D6P6X6`6f666666667,727T7`7h7p7v77777778,8<8B8^8d888888889*90969<9b9t999999999: :.:@:b:n::::::::: ;;.;:;P;\;r;~;;;;;;;;;<<(<J<p<<<<<<<<<<<=<=N=j=p=v=|=======>>6><>B>H>X>^>j>z>>>>>????$?*?6?F?X?z?????????@@$@F@l@~@@@@@@@@@@A8AJAfAlArAxAAAAAAABB2B8B>BDBTBZBfBvB|BBBBBCCC C&CHCTC\CdCjCCCCCCCD D0D6DXDdDlDtDzDDDDDDDE0E@EFEbEhEEEEEEEFF.F4F:F@FfFxFFFFFFFFGGG2GDGfGrGGGGGGGGGHH2H>HTH`HvHHHHHHHHH I I,IRI^IdIjIpIIIIIIIIJ*J0J6JLJLPLVL\LlLrL~LLLLLLLMMMM(M8MJMlMMMMMMMMMMMN^J^Z^l^^^^^^^^_ __&_8_Z____________`&`L`j`z`````````a:aLahanatazaaaaaaab$b4b:bVb\bxbbbbbc ccc8cJcfclcrcxccccccccdd"d*d2d8dDdLdTdfdddddddde2eBeHedejeve~eeeeeeeef f0f6fRfXftfzfffffffgg$g@gFgbghggggggghh"h@hVhbhjhrhxhhhhhiii2iNi^ini~iiiiiiiijj.jTjfjrjzj~jjjjjjjjjjjjjjjkkk k$k(k2k>kTkdkhklkvkkkkkkkkkkkkkkk lll l,l4lpJpRpZp`plptp|ppppppppppppppq qqq&q,q8q@qHqNqZqbqqqqqqqqqrr6rHrnrrrrrrrrrrrrrrrrrssss s:sXshsnsssssttt:tFtNtVt\t~tttttttu(u4u{D{P{r{{{{{{{{||$|,|2|T|`|h|p|v||||| }}} }B}N}V}^}d}}}}}}}}~*~0~R~^~f~n~t~~~~~~~ *:@\b (.4:`rƀ؀ ,>`lƁҁ ,8NZp|Ђւ܂&HnăЃ:Lhntz4:@FV\hx҅ "(4DVx̆҆؆ކ"Dj|̇܇6Hdjpv܈06<BRXdtzΉ$FRZbhފ4@HPVxȋЋ؋ދ2P`f̌، B`pvƍ΍֍܍0B^djpĎʎЎ֎*06@btďڏ*@LbnȐԐ .:P\ґؑ(NZ`flҒ&,28HNZj|ēГ֓ܓ&HnzД$*06FLXhz•Εԕڕ$Flx~Ζ"(.4DJVfx̗җؗޗ"Djv|̘ &,2BHTdvʙЙ֙ܙ Bhtzʚ0FRZbhڛ Dfx̜ޜ2PfrzƝ̝ >T`hpv <BHNtڟ0<DLRԠڠ *@LT\bȡԡܡ  (.`¢ʢҢآ>JRZ`֣ &,28^pĤ&.6<^jrzĥ*FLRX~ΦԦ :FNV\§ާ4DJflĮ̃Ҩ&8TZ`jЩ &HT\dj06<Bhʫҫګ$Vxެ .4Vbjrx̭ޭ2PfrzƮ̮ Bdvʯ  BNV^dڰ*06<bı̱ԱڱPr²Ȳ >`rƳس(>JpƴҴ<Njpv|6<BHX^jzԶ$*6FLXzԷ(Jh~Ҹ"(.8Zl޹8DLTZܺ2BHjv~$Fdzμ$*4Vt޽.4:Dfrvz~Ҿ8Zx&&6FVfv&6TTTTUU"U,U6UVUxUUUUUUVV0VBVlV|VVVVZ^fjrv~ &.2:Vfv&6FVfvX2Y8Y@YHYbYjYtY|YYYYYYYYZZ&Z.Z6Z@ZFZ^ZzZZZZZZZZZZZZ.[L[h[x[[[[[[[[[\ \&\,\:\F\N\j\|\\\\\\\\]]@]H]]]]]]]]^ ^^&^8^f^v^^^^^^^^^ __$_>_R_v_~____`H`n```` anbbbc cc*8<8cHcPcVcpcxccLcccccbr dd$d*d4dPdXdjdd&0:DNXblv *4Jblv&0Dblv ddddddde ee0e@eHe\eneeeeee *>HR\fpzeeeef$f,f$.8BLV`jtfftf|ffff$:fffffffffgHRdhptx "*$g6g@gFgNgTg\gbgngvg6:FJhr|gggggghh*h@hZhrhh $4>HR\fhhhhhhhhhii,izTibijipixiiiij$jjjkZnnn,1E]+srpppppppp"<Vp7]nv~||*jxq}y}}}}}} $8L>f>XxzS9L6b   W w   / }  o            * 2 : B J R Z b j r z         H MYRFVvЉ ".>FPVflz$1>IVan "&*.26:>BFJNRVZ^bfjnrvz~ DJXbjt.FPV^Ď^bfjnrvz~ʐҐܐLR(t6Dؚ̚ NT`pvěΛޛRX`ȝН֝$HTž̞|ğ֟ "8BRlvƠΠ"@FRbh~ҡء(.X`(lt| RX^fnvؤޤ8@Fp\T$8Ld  &*04:>DZZZZcodestim%muxZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZRS232X.21ISDND_CODIRD_DS0AD_G.703 D_T1!D_V.35"G.703#ISDNSTU$T1ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZiZ2V38(4l*d4&4.4<44)gbrJRJ 4P4Z84d4(5̦ͦ*5 P65PPP<5@5C5F5I5L5O5R5 8> ^5  f5    n5 8%{5}5  5  5 8%58 5%P P88% 5=P16̦̦  8>46̦̦ D6̦̦ T6ͦͦ m6ͦu6 G _7rdž]b8-e7"PP8фPPP 7$PP8ф8%7PPP 8҄ 7 8%7܂܂ 8 8% 88 H ̦̦ ̦HHHHHHHHHHIIIIIII#I(I.I3I5I7I>IAIJIJINIVI`IgIoIvIIm`mkImamlImbmmImcmnIzmdmoIzmempIzmfmqIzmgmrIzmhmsIzmimtIzmjmuIzmkmvJmlmwJmmmxJ"mnmyJ+momzJ4mpm{J=mqm|JFinterface_rs232_setup"&8JJKKK KKK(K7K;K?KDKJKRKZK_KfK?KDKqKJqHqIKxXqIqJKxqJqKKqKqLKqLqMKqMqNKqNqOKqOqPKqPqQKqQqRKqRqSKqSqTKqTqULqUqVLqVqWL.qWqXL=qXqYLLbert_setup=S @P<Q2 SS S  SSSSTT TT TT T"T" T&T& T*T* T-T- S S > > ST0T0 @T3T3 @ SS ,L T7S S  T7TT TT T&T& T"T" TT THTH TMTM TRTR TWTW T7 T7** T7T0T0 ,T3T3 , T7T\TwT T7TTTTTTTTT T'TTT T'T T T T' T T T=T<T?T/ T*T)$T 0T<THTTUUUUUU&U%U2U5U%U2 UF U %U2 UZ U+Ul+U}=U2+U @9\U1hU)tU!UUUUU @UT` l@x`    @ `   @` ,8DP @u0U 63 U 511 V 2047 V  4095 V 32767 V!ALT-1/0V+FOX MSGV7MSG BUFVD VSf FDX Vh HDX Vt  V ON V OFF V V VV 1000 V 10000 VPATTERNVRWSECONDS W BITS WBLOCKS W# CONT W* W5 B?WS 'Wv 1000 W 10000 W100000 WPATTERN V6 Wv  W (W + X 6 X6 X6 X6 X @9X1X&)X.!X6X>XFXNXV @X^XoXxXXXX X X X X X X Xl* 6B2N Z  f r ~|   .Nn @qHX    % 4 */ ON XSWITCH X OFF XtX ON XSWITCH X OFF X!Y  ON XSWITCH X OFF X,Y8R` ON Y/ OFF Y2nY6 ON Y/ OFF Y2YH NO YZ YES Y] Ya ON Y/ OFF Y2Y< ON Y/ OFF Y2V!Yv ON Y/ OFF Y2+Y ON Y/ OFF Y25Y NO YZ YES Y] Y$-Y^lz Z        ZI!!#!#!!  #"# .  4Z$&$&$$$ b p&%& ~  Z')')'''  )()  &Z*****!!+!!$0[9/[t+ !R[!^[!j[0!v[&![ 5![ ![ &![ ![ ![  ![ !\& !\4 !\7 !\< "\A "\` "\h "*\|"6\"B\"N\"Z\"f\h"r\"~\"\" @9"\1"\)"\!"\"\"\"]"] # @#]]+]0)]5]9]>]C]P]V&]\0]b]h1]s!#]v@#HLPTX\` d  h l p #& #2 #>>f#J#V#b#nB#z|###*#>r   ! &!# :"# B#& v$% %& &) '( () )!*+!*+!2 @m`]#90.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000OFF00 IN SYNCtUU100010055+6666 000250010010000010010_/NVH 0&n$n |*HnN-> @//N0 @*BBBHn/ G1fNB/ N-B$<)// N .N.ZB// N/ N-B// N.N.L N^NuNVH8&n$KN+<N+@N+@HkHxqLIC NHkHxqMNN+@N,&@HxqPE,N'@HxqQN'@N,j@"HxqSN7@$HxqTN7@& Hk(HxqUNHkHxqVNHk,HxqWNHkHxqXN Hk0HxqYNLN^NuNVHxqINDtreBЀ0;N8 &,2B`(<`"<`<`<`<` <`<N^NuNVHxqJNDtg rf<`BN^NuNVHxqKNDtg rf<`BN^NuNVHxqNNDtrg lrg` <`<`BN^NuNVHxqONDtrgmJg `rgr`B`<` <`<N^NuNVHxqRNDtrgmJg `rgr`B`<` <`<N^NuNV/ E/ B0. /NC/ NA8$nN^NuNVi |N^NuNVB9iN^NuNVAi. . |N^NuBERTDTEBERTDCEUnk modeNV/ $nHxNDtrgrg `A-$`A-,` A-4`Jf $nN^NuNV/$.NBB//N1f$.N^NuEVENODDSPACEMARKNONEUnk parityNVHxNDtXOre<Ѐ0;N "* <-`& <-` <-` <-` <-` <-B//.N1fN^Nu8765Unk # bitsNVHxNDtXOrgmJg`.rgrg` <.F` <.H` <.J` <.L` <.NB//.N1fN^NuFDX/HDX/Unk duplex/SYNCASYNC/ISOC/Unk format/NVH0 $.HxqJNDtXOBgrg ` <.` <.` <.B//E1fNHxNDtrg$mJg`Nrg$rg(`@BHy./N`BBHy./N`4BHy.`BHy./N/N0`BHy./N1f HxqINDtXO<g]<bBHy./N1f/HxqMN0dL N^Nu12Unk stop bitsNVHxNDtXOgrg ` <0 ` <0 ` <0B//.N1fN^NuNV|/ /$. E~/ B0. /NC / /N1$.t$nxN^Nu635112047409532767ALT 1,0FOXUSERUnk BERT patternNV/ $nHxqINDtreZЀ0;N (08@HA0`BA0`:A0`2A0`*A0`"A0`A0`A0` A0`Jf $nN^NuNV//"n n 6.Jgt"ҁHC3RJf$.&.N^NuNVH8 "n$n 0|Jg$xvBB Ѐ6"ҁ3RRHHbLN^NuThe RS232 package is here! interfacebert_setupbert_results RS232 RS449 V.35 RC8245 TTL BERT NVH 0Hy1NBNB&@HyiHy'NDHy2Hy&HxECBNHy2Hy(HxN .2HyHxN B+3reЀ0;N&. <2&` <2.` <26` <2>` <2F/BHxHx Hx HxEA>N$<2N/BHxHx Hx HxN,.BHxHxHxHxNB+hpL N^NuThe RS232 package is gone! NV/ HxEANHxNHxNBHxHx Hx EANBHxHx Hx N(BHxHxHxN/9iNBFHy3zNBp$nN^NuNVN^NuNVNHN^NuNVN^NuNVNHN^NuNVN^pN^NuNVpN^NuNVpN^Nuctl_eiaNVH08&.EJgNIG/NB"$XOg$ g /NBXO` TN///NB^ JfL N^NuNVH 0Hy:EBN$HyN/Hx/GBNHyp`(<g /N?2`<g /N@`/NA LN^NuNVH00&.HxmvNEXOJ@fHy*NB//N8p`rHy"GBN$HyN/Hx/EBNHxmvNE/Hx/N . N/Hx/N/ND/Hx/N./N8L N^NuNVH08&.HyFGBN$HyN/Hx/EBNHxmvIEN/Hx/N .@ND/Hx/NHxmxN/Hx/N. N/Hx/N/ND/Hx/N./N8$//N;: L N^NuNVH08&.HyrIBN$HyN/Hx/EBNHxmvGEN/Hx/N .NG/Hx/NHxmxN/Hx/N. N/Hx/NHxmyN/Hx/N.NH"/Hx/N/ND/Hx/N./N8$//N;: L N^NuNVH08&.HyIBN$HyN/Hx/EBNHxmvGEN/Hx/N .NG/Hx/NHx@ND/Hx/N.mxN/Hx/NHy N/Hx/N.myN/Hx/NHxNH"/Hx/N.ND/Hx /N//N8$//N;: L N^NuNVH08&.HyIBN$HyN/Hx/EBNHxmvGEN/Hx/N .NG/Hx/NHx@ND/Hx/N.mxN/Hx/NHy N/Hx/N.myN/Hx/NHxNH"/Hx/N.@ND/Hx /N/ND/Hx /N./N8$//N;: L N^NuNVH8 &.HxmkEDtNHxmlNHxmmN <g$<g /N=$`b/BNB$//`J<g/N=$/B`*<g/BNB$/B`/HxNB$//N9//N;: LN^NuNVH80(. . HyGBN&HyN/Hx/EBNHxmvNE/Hx/N$JgHytN/Hx/N`BHx/N HxNG/Hx/EBNHxm{GEN/Hx/N. NB/Hx/NHxm|N/Hx/N.NH"/Hx/N/ND/Hx /N./N8$//N;: L N^NuNVH00. HyGBN&/Hy /NAB/NF/Hx/EBN .LN/Hx/N L N^NuNVH00. Hy*GBN&/Hy /NA//NF/Hx/EBN .LN/Hx/N L N^NuNVH0 $nJ* gv`4/*NAV&XOg$$HyNB&/Hx/NB| L N^NuNV//B0. /NE6XOg"HyNB$?BgHy/NA`t $.&.N^NuNV//B0. /NE6XOg"HyNB$?BgHy/NA`t $.&.N^NuNV/ E/ B0. /NC/ NA2$nN^NuNVH8 . .HyJNB$BCHy /EANBDHy /N LN^NuNVH00HxmwNEF&XOg~HyGBN$HxND/Hx/EBN/Hx/N.HxNF/Hx/NHyN/Hx/N .N/Hx/N` HxND$ L N^NuNVH00HxmzNEF&XOgxHyGBN$HxND/Hx/EBN/Hx/NBHxNF/Hx/NHyN/Hx/N .N/Hx/N` HxND$ L N^NuNVH00. HyEBN$BCHy/NAHyN/Hx/GBN.<*n/ NBv<B..NDtXOre"Ѐ0;N  <` B<`BBf"B8//8HxBHyL\NA`F&m<BIE k\H$PHyLr/ NPOJf/ Hn/ NO&@ Jg`*HyLv/ NPOJf./ Hn/ NO&@ JgJ.f`HyLz/ NPOJf/ Hn/ NO&@ JgX`*HyL~/ NPOJf./ Hn/ NO&@ Jg,J.f `HyL/ NPOJf./ Hn/ NO&@ JgJ.f`HyL/ NPOJf(/ Hn/ NO&@ J.f`HyL/ NPOJf&/ Hn/ NO&@ J.fr `jHyL/ NPOJf$/ Hn/ NO&@ J.f<@`6HyL/ NPOJf$/ Hn/ NO&@ J.f`BJgg +g&@`BJfBBBCHyLE/ ND/ NBXL<|N^NuMissing On/Off SelectionNVH8&n "n(nA$Pg$ j h =f$jg / NR`B)//)HxBHyO~NA LN^Nucurrent_eia_leadsprevious_eia_leadsevar_eia_changedNV/ BHyPHx EANBHyPHx NBHyP+HxN$NB @ PTHND$nN^NuRTSCTSDSRDTRCDRIUAMissing On/Off Selectionevar_eia_changed && ((previous_eia_leads ^ current_eia_leads) & 0x%x) ((current_eia_leads & 0x%x) == 0x%x)NVH<8(nBDBEB$lg4GEHyP j\H/NPOJf4<`HyP j\H/NPOJft@`HyP j\H/NPOJft`pHyP j\H/NPOJft`THyP j\H/NPOJft `:HyP j\H/NPOJft` HyP j\H/NPOJf4<`<JfX$jg j h =f$jf B,//,HxBHyPNA`V/ NRXOJfBB$jgJgNB$@B4/HyP/ GDN?Bg/HyQ Hj,N%LXL CD TD CTS RTSStatic Leads:Switched Leads: F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** Interface Control **RTS:CTS:CD:DTR:DSR:AUX Control:AUX0:AUX1:AUX2:AUX3:Maintain: msXmit Delay:NV|/ / |~=|G~/ HxmaED8N|~=|/ HxmbN|~=|/ HxmcN|~=|/ HxmdN|~=|.HxmeN|~=|/ HxmfN|~=|/ HxmgN|~=|/ HxmhN|~=|.HxmiN|~=|/ HxmjN$nt&nxN^NuNVNbHNcHxhHy^NBN^NuNV/ / $n &nJ. f/ / Hy)ND`N_N$_t&^$n&nN^NuNV0. |fHxND0<N^NuNV/$.N_4/N_NDhBN@$.N^NuNVHxHxHxNAN^NuNVHxHxHxNANcNdN^NuNVNDhN^NuBERQNVH8(nHnBHy_N@H JfPEG@*HxNC~/.N`Nd/ BHxHxNr(/ BHxHxN(.gLN^NuNV/ /$.B.E/ Hx2B/N@Nrf&HnBHxBN@*.g(|` JfHn/ N`PO` r6gNJ.g$.$nN^NuNV/ n$n Sr eЀ0;N4Xnf@Ai`JWDib`\Hyi/(HyiNAiWB`8Hyi.B0(/Hyi.N@iYB`HyiNB0(/HyiNN@i]B`Hyi&B0(/Hyi&N@iXB`HyiFB0(/HyiFN@i\B` <i//(/NAiVB`vHyi>B0(/Hyi>N@i[B`NHyi6B0(/Hyi6N@iZB`(B9id`idifB` `N$nN^NuNVB9idifB9i`ibNbrN^NuNVBiBi"Bi&Bi*BiNBiRBiFBiJBiBiBi.Bi2Bi>BiBBi6Bi:iViWiXiYiZi[i\i]N^NuNVifibiViWiXiYiZi[i\i]N^Nu0.0000000.000OUT OF SYNCOFFNV|H88B&<cr/Hxu1ED>NB$<cy/Hxu2NB/Hxu3N B/Hxu4NB/Hxu5NB/Hxu6N B/Hxu7NB/Hxu8NB(<c|/Hxu9N B/Hxu:NB/Hxu;NB/HxuNB/Hxu?N B/Hxu@NB/HxuANB/HxuBN B/HxuCNB/HxuDNBHycHxuHN BHycHxuENE~/ HxqSGC N/ HxuFID8N/ HxqTN .HxuGNLdN^NuNVNeJgND\N^NuNVH?Nh JfJg"<Hxu>Hxu=Hyi&Hyi.Ng2 JfJg"<Hxu:Hxu9HyiHyiNg2 Jf2 Jg"<HxuBHxuAHyi6Hyi>Ng2 Jg <Ng2J.g <NgtpLPO.uHNCN^NuONOFFNVJ9i`g BHygl`BHygoHxuEND>PO.uENCN^NuNVAi`JWDB9ibNgtND\N^Nu0.00000NVH0 "n n 4.6.JfJg Jf.Jf(BHyg?BgED>NBHyg?BgN`@HxHxHnE/ // NB:B/ ?BgED>N BHn?BgN ?BgECN?BgNL N^NuNVH0 6.4.HxHxHnE/ /.NCf .0g |*|*B/ /ED>NBHn/N/ECN/NL N^Nu &*.26BFJRVbfjnz~)) ** *2*B*V*x*******,,-h-p-x--... .(.0.>.......$/,/4/@/z//////////>0F0N0\0011 1(10181@1H1P1`2t2z2222222223 336333444B4z44444 5 "FrR*LZt<J^ *8888889v99::2:F:Z:r::L;;;;t<~<<<<<<<<<<===(=2=|=========>">6>J>b>~>>>>>>?"?@?P?l?????@@,@<@X@t@@@@@AA.A>AZAvAAAAAB B,BxBBBBBBBCC,CDCnCCCCCCD"DLDfDDDDEXEdEEE$FpF~FFFFFFG*G>GhGxGGGGGH0HTHpHHHHH:z~ ",0:>HLVZdhrv @DLPfJvJJX\`dhlptx| "04>LZhv"MJMbMvMMMMMMN6N\NtNNNNNNO\OOOFPZPhPXQvQQQQQQTRdRRRRRS 4 V x   . 4 @ P V b r x 2 > D P ` f r > N T ` p v  , < B N ^ d p *0<LR^ 8Xx8Xx8Xx,48@DLPX\ht(4@LXlpx| $26DHVZhlz~  .2@DRVdhvz"2BRbhtx*J^n~.BRbrx&Ff &2>JVbnz$(6:HLZ^lp~<@$4:FJbjz(8>JNbrx &26Vnv " * 6 > Z r z !!&!.!J!Z!b!f!n!r!z!~!!!!!!!!!!!!!!!!!!!!!!" """"""&"."2":">"F"J"R"V"^"b"j"n"v"z""""""""""""""""""""""# ###"#.#:#F#R#^#j#v############$$*$<$N$`$r$$$$$$$$$$$$$%%%"%&%4%8%F%J%X%\%j%n%|%%%%%%%%%&"&4&F&X&j&|&&&&&&&')v^|^^^^^^__f_l____h`````a aa(a4aBaPa\ajaxaaaaaaaaaabbb$b,bNbVb\bdbjbxb~bbbbbbbbbbbbbbbbbbbbc cc"c*c2c:cBcJcRcZcbcjcccdddde"e,e6e@eNeXefepe~eeeeeeeeff f8 )7ͦ ̦̦ͦ(ͦ0*2*6*6*2*9*<*<*9*@*D*H*L*U*Z*^*d*i*n*t*y*{*}****mrma*msmb*interface_x21_setupn+d+g+k+p+u+{+++++++++++++++qHqI+ qIqJ+@qJqK+TqKqL,qLqM, qMqN,HqNqO,!TqOqP,-qPqQ,:qQqR,FdqRqS,PqSqT,bqTqU,xqUqV,qVqW,qWqX,qXqY,bert_setupbt%s{ static char syn [] = "\026\026"; static struct { char * t; unsigned short l; } t_l []= { {&syn[0], 2}, }; x21_transmit_call (1,t_l,0); } =734r 77 7  7727K7g7777777777 7 7TT 77777 7  777777777 700 77777 77 , 77 7  7 N77 77 77 77 7 7 r r 777 77  7 r > 777 77 77 77 77 77 77  7788 7828382828282828282 82'828282 82'82 82 82 82' 82 82 82=82<82?82/ 82*86)8M 8^8h8r88888888%888%8 8 8 %8 8 8+8+9 =8+9 @9911&99)29A!>9IJ9QV9Yb9an9iz @9q  * 6 B >N ^Z ~f  r   ~   > ^~>^~ @u09 63 9 511 9 2047 9 4095 9 32767 9ALT-1/09FOX MSG9MSG BUF9 9$ FDX 9 HDX :>  :^ ON :( OFF :+x :/ :K:d 1000 :y 10000 :PATTERN::@SECONDS : BITS :BLOCKS : CONT :Z : B?: '; 1000 ;% 10000 ;+100000 ;2PATTERN : ;94  ;Y (;y + ; 6 ;6 ;6 ;6 ; @9L;1X;)d;!p;|;;;; @;;<<<<#<1 <= N$$<& /BHxHx Hx HxN/BHxHxHxHxN0NB"@AhBp$.$nN^NuThe X.21 package is gone! NV/ HxEANHxNHxNBHxHx Hx EANBHxHx Hx N(BHxHxHxN/9GNBFHy&NBp$nN^NuNVN^NuNVN(N^NuNVN^NuNVN(N^NuNVN=DN^NuNV/ $n/./. B. /N)B$nN^NuNVpN^NuNVpN^NuNV/ HxHx%EFNBHx(N$nN^Nuctl_eiaNVH08&.EJgNIG/NB"$XOg$ g /NBXO` TN///NB^ JfL N^NuNVHxmbNDtXO<fHxBN ` N N^NuNVHxmaNDtJVN^NuX.21 leadsNVH<. /.HyNBLHxNDt <WDHyNB$N(XO<f pJgp` <Jgp@/Hy/NA/. /NC(Hy(HxBB/NC&$HnHn/NCBB//B0.//N@L"$>H&=$n&nN^NuNV0. |fHxND0<N^NuNV/$.N>/N>\NDhBN@$.N^NuNVHxHxHxNAN^NuNVHxHxHxNANANCN^NuNVNDhN^NuBERQNVH8(nHnBHy>VN@H JfPEG@*HxNC~/.N>NC/ BHxHxNr(/ BHxHxN(.gLN^NuNV/ /$.B.E/ Hx2B/N@Nrf&HnBHxBN@*.g(|` JfHn/ N?bPO` r6gNJ.g$.$nN^NuNV/ n$n Sr eЀ0;N4Xnf@AHJWDH`\HyG/(HyGNAH B`8HyGB0(/HyGN@H B`HyHB0(/HyHN@HB`HyGB0(/HyGN@H B`HyGB0(/HyGN@HB` <G//(/NAH B`vHyGB0(/HyGN@HB`NHyGB0(/HyGN@HB`(B9H`HHB` `N$nN^NuNVB9HHB9HHNAFN^NuNVBGBGBGBGBHBHBGBGBGBGBGBGBGBGBGBGH H H H HHHHN^NuNVHHH H H H HHHHN^Nu0.0000000.000OUT OF SYNCOFFNV|H88B&<BF/Hxu1ED>NB$<BM/Hxu2NB/Hxu3N B/Hxu4NB/Hxu5NB/Hxu6N B/Hxu7NB/Hxu8NB(<BP/Hxu9N B/Hxu:NB/Hxu;NB/HxuNB/Hxu?N B/Hxu@NB/HxuANB/HxuBN B/HxuCNB/HxuDNBHyBVHxuHN BHyBbHxuENE~/ HxqSGC N/ HxuFID8N/ HxqTN .HxuGNLdN^NuNVH?Hxu=HyGHyGNF0 JfJgHxu:Hxu9HyGHyGNFJfJgHxuBHxuAHyGHyGNF0 JgNE0 JgNF(Jf,Jf(Jf$Jf Jf0 JfJf0 Jf 0 Jf0 JgND\LPO.uHNCN^NuONOFFNVJ9Hg BHyF `BHyF#HxuEND>PO.uENCN^NuNVAHJWDB9HNF(ND\N^Nu0.00000NVH0 "n n 4.6.JfJg Jf.Jf(BHyF?BgED>NBHyF?BgN`@HxHxHnE/ // NB:B/ ?BgED>N BHn?BgN ?BgECN?BgNL N^NuNVH0 6.4.HxHxHnE/ /.NCf .0g |*|*B/ /ED>NBHn/N/ECN/NL N^Nu &*.26BFJRVbfjnvz~2T\f D!L!T!!!!!!" ""j"r"z""""####V#d#r#|#######$"$*$8$f$$$$% %%%$%,%&(&.&:&@&R&X&h&n&z&&d'p'''''>(H(N((((():)H))DHLPTX\`dhlptx| **2+ $(,048<@DHLPTX\`dhlpz~"0>LZvzV------.0.H.d../:////020N0j001112 22 2*2<2N22223334445 5p5556\6~66666$,0JV\"(4DJVflx"HTZfv| &2BHTdjv$06BRXd 0 @ F R b h t   @ f r x 2 > D P ` f r   B d  6 V v 6Vv6Vv &2>JVbnz *.6:BFNRZ^fjrv~&*8<N\`nr"&48FJX\jn &26JZ`lp,<BNRfv 06BFf$D\`hltx ,8DP\hvz *.<@NR`dv&,8<P`frv (6:HLZ^J=P=Z=======:>@>p>>>@L@X@f@t@@@@@@@@@@@A"A*A0A8A>ALARAXA^AdAjApAvA|AAAAAAAAAAAAAAAAAABBBB&B.B6B>BrBBBjC|CCCCCCD DD&D4DNDTDjDpDDDDDDDDDDDEE$E@EFELEfElErEEEEEF.F8FBFhFvF|FFFZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZH{ f!&"l## #H""PF?).)"#$+8/NE XO.maNDtXOrgmJg ` rg` <D` <H` <L` <O//NE p$.N^Nu*/NVH 8(n$n |*HnNf @//N @BG/ NPBB/ / GNBHy/ NB .NB$<// N/ NB// N.NB// N/ N"LN^NuNV/HxmaNDt<Jmtl tVDp$.N^NuNVpN^NuNVHx NDt<WDrN^NuNVH8&n$KNN@N<@HkHxqLIC NHkHxqMNNd@N@HxqPE"N'@HxqQN'@N@"HxqSN7@$HxqTN7@& Hk(HxqUNHkHxqVNHk,HxqWNHkHxqXN Hk0HxqYNLN^NuNVHxqINDtreBЀ0;N8 &,2B`(<`"<`<`<`<` <`<N^NuNVHxqJNDtg rf<`BN^NuNVHxqKNDtg rf<`BN^NuNVHxqNNDtrg lrg` <`<`BN^NuNVHxqONDtrgmJg `rgr`B`<` <`<N^NuNVHxqRNDtrgmJg `rgr`B`<` <`<N^NuNV/ E/ B0. /NC/ NA8$nN^NuBERTDTEBERTDCEUnk modeNV/ $nHxNDtrgrg `AL`AT` A\`Jf $nN^NuNV/$.NBB//N$.N^NuEVENODDSPACEMARKNONEUnk parityNVHxNDtXOre<Ѐ0;N "* <`& <` <` <` <` <B//.NN^Nu8765Unk # bitsNVHxNDtXOrgmJg`.rgrg` <n` <p` <r` <t` <vB//.NN^NuFDX/HDX/Unk duplex/SYNCASYNC/ISOC/Unk format/NVH0 $.HxqJNDtXOBgrg ` <` <` <B//ENHxNDtrg$mJg`Nrg$rg(`@BHy/N`BBHy/N`4BHy`BHy/N/ND`BHy/N HxqINDtXO<g]<bBHy/N/HxqMNL N^Nu12Unk stop bitsNVHxNDtXOgrg ` <2` <4` <6B//.NN^NuNV|/ /$. E~/ B0. /NC / /N$.t$nxN^Nu635112047409532767ALT 1,0FOXUSERUnk BERT patternNV/ $nHxqINDtreZЀ0;N (08@HA`BA`:A`2A`*A`"A`A`A` A`Jf $nN^NuNV//"n n 6.Jgt"ҁHC3RJf$.&.N^NuNVH8 "n$n 0|Jg$xvBB Ѐ6"ҁ3RRHHbLN^NuThe ISDN package is here! interfacebert_setupbert_resultsp1_stats ISDN BERT NVH0 HHy NBHyHHyNDHy +HyN0$< ^/BHxHx Hx HxN/BHxHxHxHxN,.BHxHxHxHxNNB"@AhBpL N^NuNV/ BHx%EFNHxHx(N$nN^NuThe ISDN package is gone! NV/ HxEANHxNHxNHxNBHxHx Hx EANBHxHx Hx NBHxHxHxNBHxHxHxN/9HNBFHy!NBp$nN^Nustats_rackISDNSTSNV/Hy"XNC$HxaHy0NBB?BgHy"cHxB/NA <$.N^NuNV/$.N+/N2v$.N^NuNV/$.N+/N2v$.N^NuNVN^NuNV/$.N+/N2v$.N^NuNVN1&N+N^Nubert_root_rackBERTNVH8 Hy#4NC(HxaHy0NB6N;p4B?BgHy"cHxB/EAN B/Hy#CHxB/N LN^NuNVpN^Nu64000NVH00&nBBA#y#y#y#y#y#B+ /Hk NEHxEDtN JfB`HHxNBXOJg<f<H4A4JHxNDt" <fvJg <<`B<BB @ @L N^Nud_dce_framed_dte_framed_rcv_framesend_d_framesend_d_frame_ilNVH0 $n|&B*%B*(HyN%HyN&$NvPOJfHx NDtXO<WD`BJ9HfJ9Hg J*'f<BJ9HfJ9Hg *'f<JgJg|&`B*&`Jg|&`|&A%BJfJg<A(BJ*#gJVDN@6NHHL N^NuNVH 0&nBAJg $H/NBXOJVD SPJPKJfHHL N^NuNVH 0&nBAJg $H/NB"XOJVD SPJPKJfHHL N^Numpm_mux_setup_cset_isdn_speaker_chanNVH88(.&. /HyTNBLEPOJgPI G/NB"$XOg& g /NBXO` TN////NB^ JfLN^NuU..%~u ~u  &NVNA3H ByHN^NuNVH0 4. 6.EH B0/NCXOAHPC0 |0B0/NEXL N^NuNVB09HN^NuNVNA3H$ByH"N^NuNVH0 4. 6.EH$B0/NCXOAH"PC0 |0B0/NEXL N^NuNVB09H"N^NuNV |N^NuNV |N^NuNV n0XN^NuNV |N^NuNV. |N^NuNV n0.X0N^NuYESNOONOFFFD1FD2HRDMULTIPLEEVENODDSPACEMARKNONEPULSETONE()LayerB1B2DOffChannelSpeakerNV/ /$.NBAL $HrJg&Hy),BBBB//ND"fXJJfB0$.$nN^NuNVH 8$.(n nBBNBAL $Hg&R/+/NEPOJf(`XJJfLN^Nu635112047409532767ALT_1010FOX_MESSAGEMESSAGE_BUFFERFDXHDX100010000PATTERNSECONDSBITSBLOCKSCONTINUOUS100000BERT_PatternHandshakingResyncPreambleSync_PatternBlock_SizeTest_LengthTest_SecondsTest_BlocksTest_BitsError_Inject_RateError_Inject_Rate_ExpMessage_Line_1Message_Line_2Message_Line_3Message_Line_4Message_Line_5NVN/,N., yH8NN^NuNVHxHxHxNAN^NuNV0. B2oofHxND0<N^NuNVNDhN^NuNV yH8gNN^NuNVH80HnHxHxG@NHxNDJN(vxPC/t?/NDHxBE'nNBBN/BNE/BNEBDNCHn/.HxN$.N4BHxEE|NHxHxNL N^NuHAH&r9RHxUNDXLNBUNKG1 G2 G3 G4 DR U01SD DISRSYU05EI PU ARDU09TI ATIAI8AI0U14DIDU00LSLU02U03U06U07ARUU10U11AIUU13DIUF1 F2 F3 F4 F5 F6 F7 F8 NV/ / $nHxHxHxNAN.,N/, yH8NND\r$ EG@*/ BHxHxN/ BHxHxN .g yH8NND\p-@gNDhHxNA/9H>HxUNDBN@$n&nN^Nu%1d.%02d%cNVH0 HxE4NHxUNB#H>Hy,HxUNDHxNB N5|N(DH0. .BCN5 &@E `N5 SHDCf99gAHG0GB~g~g` 6<`6< `BCJg<fTHxHxNE|. /BN4T> B"~ /BN4H6Hx`N4`ܴ<g<fHB2A>Gp~ > Bv ւp砂/BN4T0@~ `D<2A0>GpЀ> B&Rp砂/BN4T0@ ႀ/BN4 .1HxNE|H6d~l΀/N4 HxHxNE|LN^NuNV/ B0./B0. /N'nEHDPOJg N' R0$nN^NuNV/ B0./B0. /N'EHDPOJg N(4 RTH0$nN^NuNVH0 . BN5 @E N(ZfN5 SDgJgHx`BCN(L N^NuNV/HnHnHnN@B. 逐$.B.Ё"遒BҀ ЀЁЁBBHBJЂ$.N^NuNVB9B9N^Nu STATUS INFORMATION |||||||||||||||| RATE TOTAL STD BERT PARAMETERSTEST SECONDS:EBLOCKS SENT:BLOCKS RECEIVED:BIT ERRORS:E-BLOCKS IN ERROR:ERROR-FREE SECONDS:NUMBER OF FAULTS:ERROR INJECTION:INJECTION RATE: PATTERN SYNC STATUS: F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** BERT Statistics ** 63 511 2047 4095 32767 ALT 1010 FOX MESSAGEMESSAGE BUFFERSelect BERT Pattern:FULL DUPLEXHALF DUPLEXSelect Handshaking MethodONOFFResynchronize After Faults?Enter Preamble Pattern: Enter Sync Pattern: 1000 10000 PATTERNSelect Block Size:SECONDSBITSBLOCKSCONTINUOUSSelect Units For Test Length:Enter Test Length: ______ Seconds.Enter Test Length: ____ Blocks. 1000 10000100000Select Test Length (# Of Bits):Enter Bit Error Injection Rate:Enter Error Injection Rate Exponent: E-Msg Text: F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** BERT Setup **Pattern:Handshake:Resync:Preamble:Sync Pattern:Block Size:Test Length:#:Error Injection Rate:E-Message Buffer: B1 B2 DEnter Channel to Monitor,Emulate (B1, B2, D) OFF Monitor B1Monitor B2Enter Speaker Selection: OFF, Monitor B1, Monitor B2 F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** ISDN Interface Setup **Channel:ISDN Parameter SetupSpeaker:ISS Board Version:TE State: TE Information TD Line Status:NT State: NT Information RD Line Status:ISDN Runtime StatisticsNVN?N@HxhHy;NBN^NuNV/ / $n &nJ. f/ / Hy*ND`N<$<&;$n&nN^NuNV0. |fHxND0<N^NuNV/$.N<4/NNB$<@/Hxu2NB/Hxu3N B/Hxu4NB/Hxu5NB/Hxu6N B/Hxu7NB/Hxu8NB(<@/Hxu9N B/Hxu:NB/Hxu;NB/HxuNB/Hxu?N B/Hxu@NB/HxuANB/HxuBN B/HxuCNB/HxuDNBHy@HxuHN BHy@HxuENE~/ HxqSGC N/ HxuFID8N/ HxqTN .HxuGNLdN^NuNVH?Hxu=HyHXHyH`NF0 JfJgHxu:Hxu9HyHHHyHPNFJfJgHxuBHxuAHyHhHyHpNF0 JgNF(0 JgNFjJf,Jf(Jf$Jf Jf0 JfJf0 Jf 0 Jf0 JgND\LHxu=HyHXHyH`NF0 JfJgHxu:Hxu9HyHHHyHPNFJf0 JgHxuBHxuAHyHhHyHpNF0 JgNF(0 JgNFjLPO.uHNCN^NuONOFFNVJ9Hg BHyFb`BHyFeHxuEND>PO.uENCN^NuNVAHJWDB9HNFjND\N^Nu0.00000NVH0 "n n 4.6.JfJg Jf.Jf(BHyF?BgED>NBHyF?BgN`@HxHxHnE/ // NB:B/ ?BgED>N BHn?BgN ?BgECN?BgNL N^NuNVH0 6.4.HxHxHnE/ /.NCf .0g |*|*B/ /ED>NBHn/N/ECN/NL N^Nu "&*.26>BFJRVZ~\.6DXh",:P08@HPXfLT\h$fnv8@HPX`hpxr x !8"D"t""""""" ##&#,#R#d#r#######$ $$$% %%:%B%V%^%%%&&&&Td`'f''''''' (<(vz~"DHPTB)R))\`dhlptx| &48BP^lz>+D+J+++,^,,,,  $(,048<@DHLPTX\`dhlp-----:.L.R.l.r.z.../\/`/h/l/t/x///////0H0V0000x0 111.1>1L1V1`1111111111 2 282>2J2R2X2`22*3D3L3V3334"444l4r4~4444444555(Hh(Hh(Hh ,8DP\ht     $ ( 0 4 < H L Z ^ l p ~   $ 2 6 H V Z h l z ~   J N b r   " 6 F L X \ v ~   ( 8 H N Z ^ ~ 8RZv&*26>BJNVZbfnz~(,:>LP^bt(6:L^p.4@D\`hltx"&PTt $6DHZhlz~.v;|;;;;;;<<`<<<<<<= == >>$>.><>H>V>d>p>~>>>>>>>>>> ??&?0?>?L?V?`?h???????????????????@@@@@&@.@6@>@F@N@^@f@n@v@~@@@@@@@@DAAA6B@BJBTB^BhBrBBBBBBBBBB CC(C.CDCJC`CfCCCCCCCCCCCCDDRD\DfDpDzDDDDDDDDDDEEE4E:EREXEnEtEEEEEEEEEEEF.F8FBFpFzFFFFFGGZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZǮJ#h$%@%%%%N%`0ILD.6.%n%'8%@0|& %J&J'J'J'J''+v+y+}++++++++++++++++++qHqI+qIqJ+qJqK, ^qKqL,qLqM,qMqN,(qNqO,3$qOqP,?qPqQ,LqQqR,X4qRqS,bqSqT,tqTqU,qUqV,qVqW,qWqX,qXqY,bert_setup2D,,,,,,,,,,,,,,--- -----!-(-9-K-W-a-j-s-z----m`ma-mamb-mbmc-mcmd-mdme-Nmemf-mfmg-mgmh-mhmi.Nmimj.mjmk.!interface_codir_setup >888888888 8'888 8'8 8 8 8' 8 8 8=8<8?8/ 8*8)8 8.888B8V8d8f8d8s8d88d%888d%8 8 8d %8 8 8d+8+8=8+8 @9919 )&9!29>9!J9)V91b99n @z9A*62BRNrZ f  r ~ 2 Rr2Rr @u09X 63 9Y 511 9b 2047 9k 4095 9u 32767 9ALT-1/09FOX MSG9MSG BUF9 9  FDX 9 HDX 9 2  9 R ON 9 OFF 9 l 9   ::4 1000 :I 10000 :QPATTERN:Y :a 4SECONDS :t BITS :|BLOCKS : CONT : N :  B?: ': 1000 : 10000 :100000 ;PATTERN :Y  ; (  ;) (;I   + ;r 6 ;r6 ;r6 ;r6 ;r @9@;|1L;)X;!d;p;|;;; @;;;;;;< < < < < < <3 <6   X     :      $  0 . < B H b  T    @qH`# NO = YES =C1>K)$>S!0>[<>cH>kT>s`>{l @>>???%?1?=?J?= ?^ ?m ? ??J?^?m?x :t      , ZHf  ,: 8h D  @m`P90.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000OFF00 IN SYNCtUU100010055+6666 A8@8/NVH 0&n$n |*HnNd @//N! @*BBBHn/ G"NB/ NB$<// N .NB// N/ NB// N.N L N^NuNVHxmaNDt<WDrN^NuNVNHHN^NuNVH8&nN0$KNN@N:@HkHxqLIC NHkHxqMNNb@N@HxqPE N'@HxqQN'@N@"HxqSN7@$HxqTN7@& Hk(HxqUNHkHxqVNHk,HxqWNHkHxqXN Hk0HxqYNLN^NuNVHxqINDtreBЀ0;N8 &,2B`(<`"<`<`<`<` <`<N^NuNVHxqJNDtg rf<`BN^NuNVHxqKNDtg rf<`BN^NuNVHxqNNDtrg lrg` <`<`BN^NuNVHxqONDtrgmJg `rgr`B`<` <`<N^NuNVHxqRNDtrgmJg `rgr`B`<` <`<N^NuNV/ E/ B0. /NC/ NA8$nN^NuBERTDTEBERTDCEUnk modeNV/ $nHxNDtrgrg `AJ`AR` AZ`Jf $nN^NuNV/$.NBB//N"$.N^NuEVENODDSPACEMARKNONEUnk parityNVHxNDtXOre<Ѐ0;N "* <`& <` <` <` <` <B//.N"N^Nu8765Unk # bitsNVHxNDtXOrgmJg`.rgrg` <l` <n` <p` <r` <tB//.N"N^NuFDX/HDX/Unk duplex/SYNCASYNC/ISOC/Unk format/NVH0 $.HxqJNDtXOBgrg ` <` <` <B//E"NHxNDtrg$mJg`Nrg$rg(`@BHy /N`BBHy /N`4BHy `BHy /N/N!B`BHy /N" HxqINDtXO<g]<bBHy /N"/HxqMN!L N^Nu12Unk stop bitsNVHxNDtXOgrg ` <!0` <!2` <!4B//.N"N^NuNV|/ /$. E~/ B0. /NC / /N"$.t$nxN^Nu635112047409532767ALT 1,0FOXUSERUnk BERT patternNV/ $nHxqINDtreZЀ0;N (08@HA!`BA!`:A!`2A!`*A!`"A!`A!`A!` A!`Jf $nN^NuNV//"n n 6.Jgt"ҁHC3RJf$.&.N^NuNVH8 "n$n 0|Jg$xvBB Ѐ6"ҁ3RRHHbLN^NuThe Dual Port Co-Dir package is here! interfacebert_setupbert_resultsD CODIR BERT NVH 8JHy#NBIJNB(HyJHyNDHy#5HyHxECBNHy#?HyHxN .#JHy xHxNHy#WBHxHx Hx HxEA>N$$<#_/BHxHx Hx HxN/BHxHxHxHxN0N7JHx@HxE+NGJ |BHxN(TAhJVDN%pLN^NuThe Dual-Port Co-Dir package is gone! NV/ HxEANHxNHxNBHxHx Hx EANBHxHx Hx N(BHxHxHxN/9JNBFHy$NBp$nN^NuNV <N^NuNV/.N4N^NuNVN7N^NuNV/.N4N^NuNV/.N4N^NuNVN7N^NuNVN?N^NuNVpN^NuNVN^NuNV/ BHx%EFNHxHx(NJ9JVDr€/HxmlN$nN^Nu64000NVH00&nBBA&y&y&y& y& y& B+ /Hk NEHxEDtN JfB`FHxNBXOJg<f<H4A4JHxNDt" <fvJg <<`<BB @ @L N^NuNVHx NDt<WH0@ DN^Nud_dce_framed_dte_framed_rcv_framesend_d_framesend_d_frame_ilNVH0 $n|&B*%B*(HyN(:HyN(NPOJfHx NDtXO<WD`BJ9JfJ9Jg J*'f<BJ9JfJ9Jg *'f<JgJg|&`B*&`Jg|&`|&A%BJfJg<A(BJ*#gJVDN&@6NHHL N^NuNVH 0&nBAJg $H/NBXOJVD SPJPKJfHHL N^NuNVH 0&nBAJg $H/NB"XOJVD SPJPKJfHHL N^NuNVNA3JByJN^Nu>Mux Setup 1: %04X NVH004. 6.GJB0/NCXOEJRC4?BgHy(NB |0B0/NEXL N^NuNVB09JN^NuNVNA3JByJN^Nu>Mux Setup 2: %04X NVH004. 6.GJB0/NCXOEJRC4?BgHy)|NB |0B0/NEXL N^NuNVB09JN^NuNV |N^NuNV |0N^NuNV n0XN^NuNV |0N^NuNV | |N^NuNV. |N^NuNV n0.X0N^NuNV. |N^Nu>MUX Disp %04X NV/4. ?BgHy*NB |0$.N^NuNVNA3JB9JN^NuNVB9JN^Nu>TIM C: %02X NVH00. .GJB0/NCXOEJBBHy+NB |B0/NEXL N^Nu635112047409532767ALT_1010FOX_MESSAGEMESSAGE_BUFFERFDXHDX100010000PATTERNSECONDSBITSBLOCKSCONTINUOUS100000BERT_PatternHandshakingResyncPreambleSync_PatternBlock_SizeTest_LengthTest_SecondsTest_BlocksTest_BitsError_Inject_RateError_Inject_Rate_ExpMessage_Line_1Message_Line_2Message_Line_3Message_Line_4Message_Line_5YESNOONOFFFD1FD2HRDMULTIPLEEVENODDSPACEMARKNONEPULSETONE()LayerCHANNEL_DATA_64KCHANNEL_DATA_128KSINGLE_PORTDUAL_PORTEXTERNALINTERNALNORMALINVERTED127EFFCo_Intf_ModeCo_Main_PortCo_Data_PathCo_P1_Line_ClockCo_P1_Tx_AISCo_P1_PolarityCo_P1_Channel_IdleCo_P2_Line_ClockCo_P2_Tx_AISCo_P2_PolarityCo_P2_Channel_IdleNVH0 &.N/"A f <<`>$HHy.4BBBB//ND$fXJJfBE/NCBB0L N^NuNVH <$.*n (nNB&@/+/NEPOJf N/"$@f*B`4*`,*`(BBGJg$S/*/NEPOJgXKJfL<N^NuNVH8ByJ3J3UJN^NuNV/ <BJ9Jg <F9J<f@J9JgH@J9Jg@ 9J<f@J9Jf <f@`@<f@ ByJ3J3UJ$.N^NuNV/ <BJ9Jf <F9J<f@J9JgH@J9Jf@ 9J<f@J9Jf <f@`@<f@ ByJ3J3UJ$.N^NuNVB09J/N*B09J/BN(B09J/BN)N^NuNV//v?/BNEtxPB/BNE//ND$.&.N^NuNV//BBB9Jvg l.vg`&< 9Jf<`< 9Jf<"J9JgJ9Jg 9Jf 9Jf 9JfBABN+BBHxNE|$.&.N^NuNVBBNE|N^Nu STATUS INFORMATION |||||||||||||||| RATE TOTAL STD BERT PARAMETERSTEST SECONDS:EBLOCKS SENT:BLOCKS RECEIVED:BIT ERRORS:E-BLOCKS IN ERROR:ERROR-FREE SECONDS:NUMBER OF FAULTS:ERROR INJECTION:INJECTION RATE: PATTERN SYNC STATUS: F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** BERT Statistics ** 63 511 2047 4095 32767 ALT 1010 FOX MESSAGEMESSAGE BUFFERSelect BERT Pattern:FULL DUPLEXHALF DUPLEXSelect Handshaking MethodONOFFResynchronize After Faults?Enter Preamble Pattern: Enter Sync Pattern: 1000 10000 PATTERNSelect Block Size:SECONDSBITSBLOCKSCONTINUOUSSelect Units For Test Length:Enter Test Length: ______ Seconds.Enter Test Length: ____ Blocks. 1000 10000100000Select Test Length (# Of Bits):Enter Bit Error Injection Rate:Enter Error Injection Rate Exponent: E-Msg Text: F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** BERT Setup **Pattern:Handshake:Resync:Preamble:Sync Pattern:Block Size:Test Length:#:Error Injection Rate:E-Message Buffer:SINGLE PORT DUAL PORT Select Interface Mode12Select Main Port Number (For Data Displays and Triggers)64K DATA CHANNEL 128K DATA CHANNELSelect Data PathEXTERNALINTERNALSelect Port 1 Line ClockYESNOTransmit Port 1 Alarm Indicator Signals? NORMALINVERTEDSelect Port 1 Channel Data Normal Or Inverted (MIL)7EFFSelect Port 1 Channel Idle CharSelect Port 2 Line ClockTransmit Port 2 Alarm Indicator Signals?Select Port 2 Channel Data Normal Or Inverted (MIL)Select Port 2 Channel Idle Char F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 **** G.703 64K Co-Directional Dual-Port Interface Control **** ** G.703 64K/128K Co-Directional Dual-Port Interface Control ** Interface Mode: General Setup Main Port: Data Path: Port 1 SetupLine Clock Select: Transmit AIS? Channel Polarity: Channel Idle Char: Port 2 SetupNVNCNE0HxhHy?NBN^NuNV/ / $n &nJ. f/ / HyND`N@$@&@$n&nN^NuNV0. |fHxND0<N^NuNV/$.N@f/N@NDhBN@$.N^NuNVHxHxHxNAN^NuBERQNVHnBHy@N@H Jf&HxNC~/.NANDNFN%N^NuNVHxHxHxNAN^NuNVNDhN^NuNVH8(nHnBHy@N@H JfHxNC~/.NANFG/ BHxHxE@*Nr(.BHxHxN.f*HxNC~/.NANF/ BHxHxN`LN^NuNV/ /$.B.E/ Hx2B/N@Nrf&HnBHxBN@*.g(|` JfHn/ NB,PO` r6gNJ.g$.$nN^NuNV/ n$n Sr eЀ0;N4Xnf@AK4JWDK6`\HyJ/(HyJNAK+B`8HyKB0(/HyKN@K-B`HyK"B0(/HyK"N@K1B`HyJB0(/HyJN@K,B`HyKB0(/HyKN@K0B` <J//(/NAK*B`vHyKB0(/HyKN@K/B`NHyK B0(/HyK N@K.B`(B9K8`K8K:B` `N$nN^NuNVB9K8K:B9K4K6NDN^NuNVBJBJBJBJBK"BK&BKBKBJBJBKBKBKBKBK BKK*K+K,K-K.K/K0K1N^NuNVK:K6K*K+K,K-K.K/K0K1N^Nu0.0000000.000OUT OF SYNCOFFNV|H88B&<E/Hxu1ED>NB$<E/Hxu2NB/Hxu3N B/Hxu4NB/Hxu5NB/Hxu6N B/Hxu7NB/Hxu8NB(<E/Hxu9N B/Hxu:NB/Hxu;NB/HxuNB/Hxu?N B/Hxu@NB/HxuANB/HxuBN B/HxuCNB/HxuDNBHyE HxuHN BHyE,HxuENE~/ HxqSGC N/ HxuFID8N/ HxqTN .HxuGNLdN^NuNVNFJgND\N^NuNVH?Hxu=HyJHyKNI~2 JfJg"<Hxu:Hxu9HyJHyJNI~2 Jf2 Jg"<HxuBHxuAHyK HyKNI~2 Jg <NHJ.g <NIpLPO.uHNCN^NuONOFFNVJ9K4g BHyI `BHyI HxuEND>PO.uENCN^NuNVAK4JWDB9K6NIND\N^Nu0.00000NVH0 "n n 4.6.JfJg Jf.Jf(BHyIt?BgED>NBHyIz?BgN`@HxHxHnE/ // NB:B/ ?BgED>N BHn?BgN ?BgECN?BgNL N^NuNVH0 6.4.HxHxHnE/ /.NCf .0g |*|*B/ /ED>NBHn/N/ECN/NL N^Nu "&*.26>BFJRVZ~"0HT\n~ *8N.6>FNVdJ R Z f !!"!d!l!t!!!6">"F"N"V"^"f"n"v"t#z########### $@$H$V$^$$ %,%X%f%x%%%%%"&(&0&8&@&H&T'Z'b'h'p'''''((((())*)Z)n)t)))))***+(+<+N+  $(,048<@JNX\fjt*FJNRVZ^bfjnrvz~ $.2<@JNX\fjtxD.J.^..../00&0H0X0`0h0011121>1d1l1111111111111111112,222:2>2Z2l222222222223"3<3333(4h44444555$5*50565@5R5Z5d5x555555555566$6>6L6\6n6z66666666666J7f7z7777777 *Jj *Jj *Jj &2>JVbnz "*.6:BFNRZ^fjrv~   , 0 B P T b f t x     ( , : > L P ^ b    & * > N T ` d x  0 6 B F Z j z   $ * 6 : Z z 8PT\`hltx ,8DP\jn| "04BFTXjx| 06BFZjp|(0@PVbfz.>DPTbj~$(6>N^dpt (,48@DLPX\dhpt|(4@LZ^p~ $6DHVZl~ .2DRVhvz??????@D@L@@@@@@ A.A4AAABlB|BBBBBBBBBBBCC"C0C>CJC`ClCzCCCCCCCCCCCDDDD"D(D.D4D:D@DFDLDRDXD^DdDjDpDxDDDDDDDDDDDDDDDDEEGXG^GxG~GGGGGGGGH H&H,HLHRHXHzHHHHHHHHI"I,IRI`IfIIIZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZhN"$L$%%&%%0L(K"D,.~.%M&D'h&N@0&\#N'&N'2N'>N'JN'W++++++++++++++,, ,++,+qHqI,"qIqJ,/qJqK,;^qKqL,BqLqM,KqMqN,XqNqO,c$qOqP,oqPqQ,|qQqR,4qRqS,qSqT,qTqU,qUqV,qVqW,qWqX,qXqY,bert_setup2D-- - -- --- ---- -)-.-2-8-=-B-H-M-O-Q-X-i-z------------m`ma-mamb-mbmc-mcmd-mdme. memf."mfmg.1mgmh.Dmhmi.Zmimj.iinterface_ds0a_setup >888888888 8'888 8'8 8 8 8' 8 8 8=8<8?8/ 8*8)8 8888888889 8%998%9 9, 8 %9 9@ 8+9R+9c=9+9t @9919) 9!,989D9P9\9h @t9 $ 0,<LHlT `  l x  , Ll ,Ll @u09 63 9 511 9 2047 9 4095 9 32767 :ALT-1/0:FOX MSG:MSG BUF:* :9  FDX :N HDX :Z ,  :f L ON : OFF : f :   :: 1000 : 10000 :PATTERN: : .SECONDS : BITS ;BLOCKS ;  CONT ; H ;  B?;9 ';\ 1000 ;} 10000 ;100000 ;PATTERN :  ; "  ; (; |  + ; 6 ;6 ;6 ;6 ; @9:<1F< )R<!^<j<$v<,<4<< @ TERM =BRIDGED =L =l  NORMAL =INVERT = = 7E > FF > > :>LZhl~ TERM =BRIDGED= >;NORMAL =INVERT =>^ . 7E > FF ><>\ @9v>1>)>!>>>>> @>?"?3?B?N?Z?n ?{ ? ? ??{??T*$ 6, D  Br   NZ&D`rfzr ~ 4 b @m`90.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000OFF00 IN SYNCtUU100010055+6666 7@TLLLL MQ̆FN3̆(4N3̆(/NVH 0&n$n |*HnN @//N!: @*BBBHn/ G!NB/ NB$<&// N .NB// N/ NN$$<"/BHxHx Hx HxN/BHxHxHxHxN0N8NpHx@HxE+FNGN~ | BHxN(TAhJVDpLN^NuNV/ BHx%EFNHxHx(N$nN^NuThe DS-0A package is gone! NV/ HxEANHxNHxNBHxHx Hx EANBHxHx Hx N(BHxHxHxN/9NNBFHy#NBp$nN^Nuroot_rackNVHxmdNDtXO<f Hy$N$ <N^NuSLP DTESLP DCENV//.NC$.NDtXOreЀ0;N @^@^ J9N~g,Hy8"NBB?BgHy$HxHx/NAHy8ZNBB?BgHy$Hx`, <8ZJ9N~g <8"/NBB?BgHy$HxHx/NA$.N^NuNV/.N5N^NuNVN8N^NuNV/.N5N^NuNV/.N5N^NuNVN8N^Nubert_root_rackNVHxmdNDtXO<fHy&N$XON?N^NuNVpN^NuNVN^Nu64000NVH00&nBBA&Vy&Wy&Xy&Yy&Zy&[B+ /Hk NEHxEDtN JfB`FHxNBXOJg<f<H4A4JHxNDt" <fvJg <<`<BB @ @L N^Nud_dce_framed_dte_framed_rcv_framesend_d_framesend_d_frame_ilNVH0 $n|&B*%B*(HyN(jHyN(NPOJfHx NDtXO<WD`BJ9NfJ9Ng J*'f<BJ9NfJ9Ng *'f<JgJg|&`B*&`Jg|&`|&A%BJfJg<A(BJ*#gJVDN@6NHHL N^NuNVH 0&nBAJg $H/NBXOJVD SPJPKJfHHL N^NuNVH 0&nBAJg $H/NB"XOJVD SPJPKJfHHL N^NuNVNA3NByNN^Nu>Mux Setup 1: %04X NVH004. 6.GNB0/NCXOENRC4?BgHy)NB |0B0/NEXL N^NuNVB09NN^NuNVNA3NByNN^Nu>Mux Setup 2: %04X NVH004. 6.GNB0/NCXOENRC4?BgHy)NB |0B0/NEXL N^NuNVB09NN^NuNV |N^NuNV |0N^NuNV n0XN^NuNV |0N^NuNV | |N^NuNV. |N^NuNV n0.X0N^NuNV. |N^Nu>MUX Disp %04X NV/4. ?BgHy*NB |0$.N^NuNVNA3NB9NN^NuNVB9NN^Nu>TIM C: %02X NVH00. .GNB0/NCXOENBBHy+8NB |B0/NEXL N^Nu635112047409532767ALT_1010FOX_MESSAGEMESSAGE_BUFFERFDXHDX100010000PATTERNSECONDSBITSBLOCKSCONTINUOUS100000BERT_PatternHandshakingResyncPreambleSync_PatternBlock_SizeTest_LengthTest_SecondsTest_BlocksTest_BitsError_Inject_RateError_Inject_Rate_ExpMessage_Line_1Message_Line_2Message_Line_3Message_Line_4Message_Line_5YESNOONOFFFD1FD2HRDMULTIPLEEVENODDSPACEMARKNONEPULSETONE()LayerCHANNEL_DATA_56KCHANNEL_DATA_64KSINGLE_PORTDUAL_PORTEXTERNALINTERNALDERIVEDNORMALINVERTED12TERMINATEDBRIDGED7EFFDs_Intf_ModeDs_Main_PortDs_Data_PathDs_Line_ClockDs_P1_Rcv_TerminationDs_P1_PolarityDs_P1_Channel_IdleDs_P2_Rcv_TerminationDs_P2_PolarityDs_P2_Channel_IdleNVH0 &.N/jA f <<`>$HHy.|BBBB//ND$fXJJfBE/NCBB0L N^NuNVH <$.*n (nNB&@/+/NEPOJf N/j$@f*B`4*`,*`(BBGJg$S/*/NEPOJgXKJfL<N^NuNVH8ByN3N3UNN^NuNV/0|0NB$<E3/Hxu2NB/Hxu3N B/Hxu4NB/Hxu5NB/Hxu6N B/Hxu7NB/Hxu8NB(<E6/Hxu9N B/Hxu:NB/Hxu;NB/HxuNB/Hxu?N B/Hxu@NB/HxuANB/HxuBN B/HxuCNB/HxuDNBHyEHxu=HyNHyNNKT0 JfJgHxu:Hxu9HyNHyNNKTJfJgHxuBHxuAHyNHyNNKT0 JgNJ0 JgNJJf,Jf(Jf$Jf Jf0 JfJf0 Jf 0 Jf0 JgND\LHxu=HyNHyNNKT0 JfJgHxu:Hxu9HyNHyNNKTJf0 JgHxuBHxuAHyNHyNNKT0 JgNJ0 JgNJLPO.uHNCN^NuONOFFNVJ9Ng BHyJ`BHyJHxuEND>PO.uENCN^NuNVANJWDB9NNJND\N^Nu0.00000NVH0 "n n 4.6.JfJg Jf.Jf(BHyKJ?BgED>NBHyKP?BgN`@HxHxHnE/ // NB:B/ ?BgED>N BHn?BgN ?BgECN?BgNL N^NuNVH0 6.4.HxHxHnE/ /.NCf .0g |*|*B/ /ED>NBHn/N/ECN/NL N^Nuget_tim_setupslip_bitslip_dce_bitslip_dte_bitNVH80(.BEJg8G/NB"$XOg/NB///NB^<PKPJJfpL N^NuNV/ nBBB0rBg^mr!gr?g6`fg,g>`TB0(r dp //(HyNpNAD`6 9NtfJ9N~gN8"` 9Ntg4<` N8Z`4BFJRVZ^~DRjv~*2<`jx nv~ "  ( N V b v!~!!!!!!!!""""""""###$#H#~####r$~$$$%&%8%R%d%p%v%~%%%%%%%(&.&6&r&x&&&&&'''''''''N(X())6)J)Z)))))))&**+ +0+X+l+~+  $(,048<@JNX\fjt*FJNRVZ^bfjnrvz~ (,6:DHRV`dnr|..../>/ 0X0^0n000001J1T1^1x11111112222"2&2,20262:2B2Z2b2|222222222233$363P3j333 4V444 55 5<5D5L5R5X5^5d5n555555555556*60686T6d6t66666666666H7d7x7777777808j8$Dd$Dd$Dd ,8DP\ht$(04<@HLTX`dlpx    & * < J N \ ` n r    " & 4 8 F J X \   $ 8 H N Z ^ r  * 0 < @ T d t   $ 0 4 T t 2JNVZbfnrz~&2>JVdhvz *.<@NRdrv"&:JP\`t (@HXhnz~ ".2@H\dnv08HX^jn &2>JVbnz"04FTXj| 0>BTbf???@@@@`@h@@@@@@&AJAPAAA"BBBBBBBBBBB CC$C2C>CLCZCfC|CCCCCCCCCCDDDD$D2D8D>DDDJDPDVD\DbDhDnDtDzDDDDDDDDDDDDDDDDDE EEE$EXEnEEPFbFFFFFFFFF GG4G:GPGVGlGrGGGGGGGGGGH H&H,H2HLHRHXHhHtHHHHHHHIII(IBIHI^IdIzIIIIIIIIII JJJ4J:J@J\JbJhJxJJJJJJJK(K6Ky3y4yYyZy]y^yAyByCyDҀy_y`yayb yEyFyGyH yIyJyKyL!yMyNyOyPyUyVyWyXҀ@yQyRySyT҂ycydyeyfy[y\ }'}(}O}PV}}}}>}}}}Ҁ}} }!}"F }}}}6} } } } F!} }}}F}}}}Ҁ@}}}}҂}#}$}%}&}}}A}B}E}FX})}*}+},Ҁ}G}H}I}J` }-}.}/}0P}1}2}3}4`!}5}6}7}8`}=}>}?}@Ҁ@}9}:};}<҂}K}L}M}N}C}D$&(*,)ffnquzqHqIqIqJqJqKTqKqL qLqMqMqN qNqO+qOqP7qPqQDqQqRP*qRqSZqSqTlqTqUqUqVqVqWqWqXqXqYbert_setup(:  %+/4 %/:@GKPW`bdfhyhyhyhyP %159<?KVcmvP`bm`mamambmbmc|mcmdmdme`memf mfmg%mgmh2lmhmiDmimj^LmjmkrLmkmlLmlmmLmmmnLmnmoLmompLmpmqLmqmrLmrmsLmsmt&Lmtmu:LmumvNLmvmwbLmwmxvLmxmyLmymzLmzm{Lm{m|Lm|m}Lm}m~Lm~mLmmLmm*Lmm>LmmRLmmfLmmzLmmLmmLmmLmmLmmLmmLmmLmm&Lmm=LmmTLmmkLmmLmmLmmLmmLmmLmmLmm Lmm#Lmm:LmmQLmmhLmmLmmLmmLmmLmmLmmLmm Lmm Lmm7LmmNLmmeLmm|LmmLmmLmmLmmLmmLmmLmmLmm4LmmKLmmbLmmyLmmLmmLmmLmmLmmLmmLmmLmm1LmmHLmm_LmmvLmmLmmLmmLmmLmmLmmLmmLmm.LmmELmm\mmymmLmmLmmLmmLmmLmmLmmLmm LmmLmm,Lmm=LmmNLmm_LmmpLmmLmmLmmLmmLmmLmmLmmLmmLmm LmmLmm+Lmm<LmmMLmm^LmmoLmmLmmLmmLmmLmmLmmLmmLmmLmmLmm.LmmBLmmVLmmjLmm~LmmLmmLmmLmmLmmLmmLmm LmmLmm2LmmFLmmZLmmnLmnLnnLnnLnnLnnLnnLnnLnnLnn"Lnn 6Ln n JLn n ^Ln n rLn n Ln nLnnLnnLnnLnnLnnLnnLnn&Lnn:LnnNLnnbLnnvLnnLnnLnnLnnLnnLnnLnn Ln n!Ln!n"*Ln"n#>Ln#n$RLn$n%fLn%n&zn&n'n'n(n(n)n)n*Xn*n+n+n,Dn,n-Dn-n.Dn.n/Dn/n00n0n1DDn1n2Tn2n3jn3n4~$n4n5n5n6n6n7n7n8n8n9n9n:Dn:n; n;n< n8n>n?Jn?n@^n@nApnAnBDnBnCnCnDDnDnEnEnFnFnGnGnHnHnInInJ1nJnKMnKnLdnLnMznMnNnNnOnOnPnPnQnQnRnRnSDnSnTDnTnUDnUnV,DnVnWA8nWnXULnXnYiLnYnZ{nZn[Dn[n\n\n]n]n^n^n_n_n`n`nananbnbncDncnd!ndne7DnenfOnfng`ngnhtnhnininjnjnknknlnlnmLnmnnLnnno nonpnpnq-nqnr?nrnsOnsnnaLntntmnunu|interface_g703_setup4mjmkmlmmmnmompmqmrmsmtmumvmwmxmymzm{m|m}m~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnn n n n n nnnnnnnnnnnnnnnnnnn n!n"n#n$n%mmmmmmmmmmmmmmmmmmmmmmmmnnnnnnn"#L&~">#&"`#&"#&"$&#$J'" @P P P P P P P P P P 'P P P P 'P  P  P P ' P  P  P =P <P ?P / P *P):P% FP6RP@^PJP^PlPnPlP{PlPPl%PPPl%P P Pl %P P Pl+P+P=P+P @9rQ 1~Q)Q!Q!Q)Q1Q9QA @QIj.v6Vv  6 V v  6V*v6BNZf6 @u0Q` 63 Qa 511 Qj 2047 Qs 4095 Q} 32767 QALT-1/0QFOX MSGQMSG BUFQ Q!| FDX Q HDX Q!  Q! ON R OFF R! R!" " R#R< 1000 RQ 10000 RYPATTERNRa"hRi"SECONDS R| BITS RBLOCKS R CONT R" R" B?R 'R 1000 R 10000 S100000 S PATTERN Ra#L S#  S1 (SQ## + Sz 6 Sz6 Sz6 Sz6 Sz @9$S1$S)$S!$S$S$S$S$S% @%SSSSSST T T" T" T" T% T; T>% %(!%4!%@!" %L"(%X"H%d" %p"  %|#  %#, %# %# %## %$$$$D$d$ @qH%V'^V'bSINGLE V FRACT W'p W 'SINGLE W# FRACT W1DUAL CHW?DUAL PTWMDC FRACW[DP FRACWi' W (  PORT WwCHL MAPW($  W(D SAME WSPLIT +W(^W(~ PORT WM CHMAPWS CHMAPiW( X ( SAME W SPLIT +W(W) 1 X2 2 X4) X6)< )V)bPORT 1 XoPORT 2  XCHMAP 1 XCHMAP 2jX)p X) SAME W SPLIT +W)W) NO X YES X* X*$ NO X YES X*> X*^ NO X YES X*x Y* NO X YES X* Y* NO X YES X* Y.+  NO X YES X+&YB+F NO X YES X+`YV+ NO X YES X+Yj+ NO X YES X+ Y~+ NO X YES X, Y,. NO X YES X,H Y,h NO X YES X, Y, NO X YES X, Y, NO X YES X,Y- NO X YES X-0Y-P NO X YES X-jZ - NO X YES X- Z- NO X YES X- Z2- NO X YES X. ZF.8 NO X YES X.R ZZ.r NO !X YES !X. Zn. NO "X YES "X.Z. NO #X YES #X/Z/  NO $X YES $X/:Z/Z NO %X YES %X/t) Z/ NO &X YES &X/) Z/ NO 'X YES 'X/) Z0 NO (X YES (X0") Z0B NO )X YES )X0\) [0| NO *X YES *X0)["0 NO X YES X0)[60 NO ,X YES ,X1  [J1* NO -X YES -X1D [a1d NO .X YES .X1~ [x1 NO /X YES /X1 [1 NO 0X YES 0X1 [2 NO 1X YES 1X2,[2L NO 2X YES 2X2f[2 NO 3X YES 3X2[2 NO 4X YES 4X2 \2 NO 5X YES 5X3 \34 NO 6X YES 6X3N \03n NO 7X YES 7X3 \G3 NO 8X YES 8X3 \^3 NO 9X YES 9X3\u4 NO :X YES :X46\4V NO ;X YES ;X4p\4 NO <X YES <X4 \4 NO =X YES =X4 \5 NO >X YES >X5 \5> NO ?X YES ?X5X \5x NO @X YES @X5 ]5 NO AX YES AX5]-5 NO BX YES BX6]D6& NO CX YES CX6@][6` NO DX YES DX6z) ]r6 NO EX YES EX6) ]6 NO FX YES FX6) ]7 NO GX YES GX7() ]7H NO HX YES HX7b) ]7 NO IX YES IX7)]7 NO JX YES JX7)]7 NO KX YES KX8 ^80 NO LX YES LX8J ^*8j NO MX YES MX8 ^A8 NO NX YES NX8 ^X8 NO OX YES OX8 ^o9 NO PX YES PX92 ^9R NO QX YES QX9l ^9 NO RX YES RX9 ^9 NO SX YES SX9 ^: NO TX YES TX: ^:: NO UX YES UX:T ^:t NO VX YES VX: _: NO WX YES WX: _': NO XX YES XX;_>;" NO YX YES YX;<_U;\ NO ZX YES ZX;v_l; NO [X YES [X; _; NO \X YES \X; _<  NO ]X YES ]X<$ _ NO fX YES fX>.+ `>N NO gX YES gX>h+ `> NO hX YES hX>+]> NO X YES X>+`> SAME kW SPLIT W?W?6 SAME kW SPLIT W?PW?p NO lX YES lX? X? NO mX YES mX? X? NO nX YES nX? Y@ NO oX YES oX@8 Y@X NO pX YES pX@r Y.@ NO qX YES qX@YB@ NO rX YES rX@YVA NO sX YES sXA YjA@ NO tX YES tXAZ Y~Az NO uX YES uXA YA NO vX YES vXA YA NO wX YES wXB YB( NO xX YES xXBB YBb NO yX YES yXB|YB NO zX YES zXBYB NO {X YES {XBZ C NO |X YES |XC* ZCJ NO }X YES }XCd Z2C NO ~X YES ~XC ZFC NO X YES XC ZZC NO X YES XD ZnD2 NO X YES XDLZDl NO X YES XDZD NO X YES XDZD NO X YES XD) ZE NO X YES XE4) ZET NO X YES XEn) ZE NO X YES XE) ZE NO X YES XE) [F NO X YES XF)["F< NO X YES XFV)[6Fv NO X YES XF [JF NO X YES XF [aF NO X YES XG [xG$ NO X YES XG> [G^ NO X YES XGx [G NO X YES XG[G NO X YES XG[H  NO X YES XH&[HF NO X YES XH` \H NO X YES XH \H NO X YES XH \0H NO X YES XI \GI. NO X YES XIH \^Ih NO X YES XI\uI NO X YES XI\I NO X YES XI\J NO X YES XJ0 \JP NO X YES XJj \J NO X YES XJ \J NO X YES XJ \J NO X YES XK ]K8 NO X YES XKR]-Kr NO X YES XK]DK NO X YES XK][K NO X YES XL) ]rL  NO X YES XL:) ]LZ NO X YES XLt) ]L NO X YES XL) ]L NO X YES XL) ]M NO X YES XM")]MB NO X YES XM\)]M| NO X YES XM ^M NO X YES XM ^*M NO X YES XN ^AN* NO X YES XND ^XNd NO X YES XN~ ^oN NO X YES XN ^N NO X YES XN ^O NO X YES XO, ^OL NO X YES XOf ^O NO X YES XO ^O NO X YES XO ^O NO X YES XP _P4 NO X YES XPN _'Pn NO X YES XP_>P NO X YES XP_UP NO X YES XP_lQ NO X YES XQ6 _QV NO X YES XQp _Q NO X YES XQ _Q NO X YES XQ _R NO X YES XR _R> NO X YES XRX _Rx NO X YES XR ` R NO X YES XR `$R NO X YES XS+ `;S& NO X YES XS@+ `RS` NO X YES XSz+ `iS NO X YES XS+ `S NO X YES XS+ `T NO X YES XT(+]TH NO X YES XTb+`T 1 X2 2  X4T`T AMI ` HDB3 `T`T 0 dB ` 20 dB aU a U0UJUX TERM a.BRIDGEDa9Uf aBUU@UUUNORMAL aeDRP/INSalU atU INT a EXT aV  aV*VDVH YES a NO aVVaVv YES a NO aVaV YES a NO aVb V YES a NO aWb(W$W>VWBWPWTWbWnW|WUNF AGGbJFRM AGGb]W*bpW YES a NO bW,bW64K CH.b56K CH.bX *bX,64K CH.b56K CH.bSIG BITc VOICE cUNF AGGbJFRM AGGb]16K GSMc+XF*bX64K CH.b56K CH.bSIG BITc VOICE c16K GSMc+X*bY Y:T~YF SAME c> SPLIT cE ALL cL DACS cSDACS-D cZYT-caY SAME c> SPLIT cE ALL cL DACS cSY-caY SAME c> SPLIT cE DACS cSZ-caZH SAME c> SPLIT cE ALL cLZb-caZ SAME c> SPLIT cEZ-caZ YES a NO bZ-c|[/c2 c< c2 c 1 X2 2 X4 3 c 4 c[5d[< c 1 X2 2 X4 3 c 4 c\?d\Z YES a NO a\t-d>\ CAS dz CCS d~\0d\ YES a NO a\2d]]"]0]>@]B]P]T01+ 4]bd]]]@]]]01+ +]e]]01= /]e2^ ^$NORMAL aeEXTEND ea^2( eh^RNORMAL aeEXTEND ea^l: e^NORMAL eEXTEND e^6 e^^V^ 7 ^^_ __(_6_D_N A-LAW eMU-LAW e_\, e_|6 7 _____A_ __ 0 dB  ` 20 dB  a_.f%` TERM a.BRIDGEDa9`*, fI`J `d`h NORMALfl INVERTft`v1f}` AMI ` HDB3 ``f` 0 dB ` 20 dB a` f%a a$a2 TERM a.BRIDGEDa9a@ fIa`aza INT a EXT aa faa'a YES a NO aafb YES a NO abgb: YES a NO abTg2bt YES a NO abgPb64K CH.b56K CH.bUNF AGG&bJFRM AGGb]16K GSM"c+b*grcc2c>cLcX64K CH.b56K CH.b16K GSM"c+cf*grc64K CH.&b56K CH.&bc*grc SAME c> SPLIT  cE ALL cLc-gd YES &a NO &bd4-gdT/g2 g< h2 g 1 $X2 2 $X4 3 $c 4 $cd5h%e.< h 1 &X2 2 &X4 3 &c 4 &ceh?hDe YES 'a NO 'ae-hce CAS (dz CCS +d~e0hf YES )a NO )af62hfV0****00fpf~01+ 4fh2,,,,22ff01+ +fi$/.f&f01= /giO02g&'g*NORMAL 1aeEXTEND 1eag8( i~gXNORMAL 2aeEXTEND 2eagr: igNORMAL 3eEXTEND 3eg6 eg44gg5hh NORMALfl INVERTfth1ih264K CH.8b56K CH.8b16K GSM9c+hL*j h|64K CH.=b56K CH.=bh*j h/'j42*j[ 1 ;X2 2 ;X4 3 ;c 4 ;ci5jiP<*j 1 =X2 2 =X4 3 =c 4 =ci?ji NORMAL>fl INVERT>fti5kj????jj, 7E k? FF kBj:6kEjZ NO b YES ajtVj NO b YES ajVj @9jko1jkw)kk!k kkkk$kk0kk<kkHkkT @k`kkkxkkkkl lkl&l-l5-klD-klX -klh -klz -ll -ll l ll,l&ll-l5-l\lD-lhlX -ltlh -llz -ll -ll llll& l llll m lm# m, mm5 &m> %mmG l m4lm@mP m mXm# m, mpm5 &m> %mmG mzml& mml& l mlml m mm# m, n m5 &m> %n$mG l n<lnHmP m n`m# m, nxm5 &m> %nmGmmnm m m m nn n nn,nFn^nrnoDnnnohnnonnonl&l&l&l&l&nnn8nn4n8n>nnoo o+ o8 1oE oR /o\ oh ompomompo m m n q$on,nFn^nrnqlonqonqol&nnn8nn4n8n>nnoo o+ o8 1oE oR /o\ ohonronronn4n8n>nopkl'V 'hk'k(k(J k(k( l8) lD)B )h lP) l) l** *d * *++L++l+,4,n,,--V-m-..> .x !.!"." #/&#!$/`$"%m(/%#&/&$'0'%(0H(&)0)'*0*(0+),mL10,*-1j-+.1.,/1/-020.12R1/222032314md34253:5363t647375838694"97:4\:8;4;9<m|4<:=5 =;>5D><?5~?=@5@>A5A?B6,B@C6fCADm6DBE6ECF7FDG7NGEH7HFI7IGJ7JHK86KIL8pLJM8MKN8NLO9OMP9XPNQ9QOR9RPS:SQT:@TRU:zUSV:VTW:WUX;(XVY;bYWZ;ZX[;[Y\<\Z]ecf>Tfdg>geh>hf?igkm?<jhkm?vkilm?ljm?mkn@$nlo@^omp@pnq@qorA rpsAFsqtnAtruAusvAvtwB.wuxBhxvyBywzBzx{C{y|nCP|z}C}{~C~|C}D8~DrDDn0E EZEEFFBF|nTFFG*GdGGHHLnlHHHI4InIIJnJVJJKK>KxKKnL&L`LLMMHMMMN0NjNNOOROOPP:PtPPQ"Q\QQR RDR~RRS,SfSSTTNTnTnTnU6U^nUUUnUnVoV0VNoV|o Vo,Vo8W* WHWZWtWoPWo\WotX2oXoY& YLoYoZoZNoZoZo[ o[ p[@p[`p[p([p4[p@\`pL\pX\pd]]6]H]Zpp]f]]]p|]]p^^*p^Xp^p^ ^__ _<_Tp____ _  p` p`P  `n p` q`q aa8qafaq0aaq<bqHb@qTbzq`bqxccDc^qc&qcqd &qdZ&qdn !qd!&qd"#qd#$qe4$%reH%&re&'r e'(r,f"()r8f\)*f*,rDf+,f,-rPf-.f./r\g/0g00 1rhg^1 2rtg2 3rg34g45h 5 rh86 8rh7=rh8=rh9:rh:;riV;<rij<=ri=>sj >?j2?sj`@jAj @m`s90.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000OFF00 IN SYNCtUU100010055+666601010101011111111110101010101111111111161616 Q 0.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.000000 0 00.0000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.000000 0 00.0000000.0000000.000000.0000000.00000Q 0.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.000000 0 00.0000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.000000 0 00.0000000.0000000.000000.0000000.00000p.p.p. p.p.p.p. p.p. &p.p. p.p.p.p. p.p.p.p. p.p.lApp.p. p.p. p. p. >AB p. p. p. p. p. p. p. p.p.p. p.p.+p.2p.6p.=p.+p.2p.6p.=p.59&+p.2p.6p.=p.+p.2p.6p.=p.+p.2p.6p.=p.FBjAn+p.2p.6p.=p.+ p.2 p.KI<A@+ p.6 p.+ p.2 p.+ p.2 p.6 p.= p.+p.2p.6p.=p.++p/6pF+pPpZ pF plpvpxp{pvpxppvpxppvpxppvpxppvpx p  @ pv q q pv q3 pv pxqJpvpxqaqx1pv;px1pv;px1pv;px1pv;px1pv;px1pv;px 1pv 1pv 1pv ;px1pv;px @9nq1zq)q!qqqqq @q".::ZFz R  ^ j  , vL l ,Lv~HP p !!"*"#6# $B$!%%"&N0&#'ZP'$(fp(%))&*r*'+~+(,,)--*..+//,080-1X1.2x2/330445516627 738*849J95:j:6;;7<<8==9>>:? ?;@*@<AJABtB=C|C>DD?EE@FFAGGBH&HIFICJNJDKnKELLFM2MGNNHO>OIPPJQJ.QKRNRLSVnSMTTNUbUOVVPWW @}qqq qqqq qq TXqq qqqq qqqq qqAqq qq q q A q q q q q q q qqq qq+q2q6q=q+q2q6q=q59RV+q2q6q=q+q2q6q=q+q2q6q=qFBA+q2q6q=q+ q2 qKIA+ q6 q+ q2 q+ q2 q6 q= q+q2q6q=q++q6Tr +`rlr xr r0r:r<r?r:r<rVr:r<rmr:r<rr:r<rr:r< r h @ r: r r r: r r: r<sr:r<s%s<1r:;r<1r:;r<1r:;r<1r:;r<1r:;r<1r:;r< 1r: 1r: 1r: ;r<1r:;r< @9sS1s[)sc! skss$s{0s<sH @TsLTt 4 ^ f    &F f,8DP8\Xtx  ! !"*"#J# $j$!%%"&&#''$((%) )&***'+J+(,N,)-R-*.r.+//,00-11.2(2/33044245\516d627@738849L95::6;X;7<$<8=dD=9>d>:?p?;@@<A|ABB=CC>DD?E6E@FVFAGvGBHHIICJJDKKELLFM(MGNHNHOhOIPPJQQKRRLSSMTTNU(UOVHVPWLW`P @yltL~ ~B~~&4H̆=H̆=(H̆=pH̆=<̆1/NVH 0&n$n |*HnN< @//N @*BBBHn/ GdNB/ NŌB$<P// N .NXB// N/ NB// N.NL N^NuNVNDPJgB`HxmbNDt<RDHHN^NuNVNHHN^NuNV9(Ȳ<g[<c<f0| N^NuNV9(U<c[<c _<b0| N^NuNVHx NDt<WDrN^NuNVH8&nN$KNÆN@N@HkHxqLIC NHkHxqMNN:@Np@HxqPEN'@HxqQN'@NĴ@"HxqSN7@$HxqTN7@& Hk(HxqUNHkHxqVNHk,HxqWNHkHxqXN Hk0HxqYNLN^NuNVHxqINDtreBЀ0;N8 &,2B`(<`"<`<`<`<` <`<N^NuNVHxqJNDtg rf<`BN^NuNVHxqKNDtg rf<`BN^NuNVHxqNNDtrg lrg` <`<`BN^NuNVHxqONDtrgmJg `rgr`B`<` <`<N^NuNVHxqRNDtrgmJg `rgr`B`<` <`<N^NuNV/ E/ B0. /NC/ NA8$nN^NuBERTDTEBERTDCEUnk modeNV/ $nHxNDtrgrg `A"`A*` A2`Jf $nN^NuNV/$.NBB//Nd$.N^NuEVENODDSPACEMARKNONEUnk parityNVHxNDtXOre<Ѐ0;N "* <Ű`& <ŵ` <Ź` <ſ` <` <B//.NdN^Nu8765Unk # bitsNVHxNDtXOrgmJg`.rgrg` <D` <F` <H` <J` <LB//.NdN^NuFDX/HDX/Unk duplex/SYNCASYNC/ISOC/Unk format/NVH0 $.HxqJNDtXOBgrg ` <` <` <B//EdNHxNDtrg$mJg`Nrg$rg(`@BHy/N`BBHy/N`4BHy`BHy/N/N`BHy/Nd HxqINDtXO<g]<bBHy/Nd/HxqMNbL N^Nu12Unk stop bitsNVHxNDtXOgrg ` <` < ` < B//.NdN^NuNV|/ /$. E~/ B0. /NC / /Nɠ$.t$nxN^Nu635112047409532767ALT 1,0FOXUSERUnk BERT patternNV/ $nHxqINDtreZЀ0;N (08@HAȘ`BAț`:Aȟ`2AȤ`*Aȩ`"Aȯ`Aȷ`AȻ` A`Jf $nN^NuNV//"n n 6.Jgt"ҁHC3RJf$.&.N^NuNVH8 "n$n 0|Jg$xvBB Ѐ6"ҁ3RRHHbLN^NuFSTDMSTSThe Dual Port G.703 package is here! interfacebert_setupbert_resultsp1_statsp2_stats G703 BERT P1STATSP2STATSinterface_stats_addrtim_stats_addrNVH08..gBC`BAN(6XOfHyNBITNB(Hy HyNDHyHyHxECBNHy Hy'>HxN .+Hy HxNHy8HyHxNHyAHy4Hx N .JBHxHx Hx HxEA>N$<R/BHxHx Hx HxN,.BHxHxHxHxNHyZBHxHxHxHxN,.bBHxHxHxHx NHyPG/ HyjEBN ./ HyN& T(2' <RD^XZ<RD\B9B(hNB0L N^NuThe G.703 package is gone! NV/ HxEANHxNHxNHxNHx NBHxHx Hx EAN BHxHx Hx NBHxHxHxNBHxHxHxNBHxHxHxN. NBFHyrNBp$nN^Nustats_rackNVH 0Hy BNB0/ICN/-// ND$B/ EB0/ BNB0/NL< N^NuNVHN"RAB0/GCNB"R/ N."RA B0/N$RA B0/N J9$gNL<N^Nu NOT MONITOREDNVH0 B9$rgrf y06( 4(` y06(4( BHy/ED>NBHy/N/ECN/NL N^NuNVNdNN^NuNV/ E0 R(g6BB(/NR. RPHB0/ND> RPHB0/NC R(g2BHhN."RA B0/ND>$RA B0/NC$nN^NuNV/ /E0 R$<.0(g:BB(-/NR."RA B0/ND>"RA B0/NC R0(g2BHh.N."RAB0/ND>$RAB0/NC$.$nN^Nu NO SIGNAL NORMAL REMOTE ALARM MULTIFRAME ALARM UNFRAMED ALL ONES SIGNALLING ALL ONES SIGNAL LOST OUT OF SYNC ????????????????????NVB. reZЀ0;N (08@H <ؔ`> <ة`6 <ؾ`. <`& <` <` <` <'` </ NA,BAAXOjF@R@/ ?BgNCN|-` / ?BgNCNPOHn`Hn?BgNPO?BgNCLN^NuNVHx/. B0. /ND>N^NuNVNA3LByJN^Nu>Mux Setup 1: %04X NVH004. 6.GLB0/NCXOEJRC4?BgHyNB |0B0/NEXL N^NuNVB09JN^NuNVNA3PByNN^Nu>Mux Setup 2: %04X NVH004. 6.GPB0/NCXOENRC4?BgHytNB |0B0/NEXL N^NuNVB09NN^NuNV |N^NuNV |0N^NuNV n0XN^NuNV |0N^NuNV | |N^NuNV. |N^NuNV n0.X0N^NuNV. |N^Nu>MUX Disp %04X NV/4. ?BgHyNB |0$.N^NuNVNA3TB9RN^NuNVB9RN^Nu>TIM C: %02X NVH00. .GTB0/NCXOERBBHyNB |B0/NEXL N^Nu635112047409532767ALT_1010FOX_MESSAGEMESSAGE_BUFFERFDXHDX100010000PATTERNSECONDSBITSBLOCKSCONTINUOUS100000BERT_PatternHandshakingResyncPreambleSync_PatternBlock_SizeTest_LengthTest_SecondsTest_BlocksTest_BitsError_Inject_RateError_Inject_Rate_ExpMessage_Line_1Message_Line_2Message_Line_3Message_Line_4Message_Line_5YESNOONOFFFD1FD2HRDMULTIPLEEVENODDSPACEMARKNONEPULSETONE()LayerSAMESPLITALLDACSDACSDA_LAWMU_LAWAMIHDB3NORMALEXTENDED1234CHANNEL_DATA_64KCHANNEL_DATA_56KSIGNALLING_BITSVOICEUNFRAMED_AGGREGATEFRAMED_AGGREGATE16K_GSMDRP_INSPORTMAIN_CHANNEL_MAPSCND_CHANNEL_MAPPORT_1PORT_2CHANNEL_MAP_1CHANNEL_MAP_2CHANNEL_MAPCASCCS7EFFSINGLE_PORTFRACTIONALDUAL_CHANNELDUAL_PORTDC_FRACTDP_FRACTINTERNALEXTERNALINVERTED0_dB20_dBTERMINATEDBRIDGEDG7_Intf_Mode_HSRG7_Intf_ModeG7_Fract_SetupG7_Fract_Channel_ModeG7_DC_Fract_SetupG7_DC_Main_Channel_ModeG7_Main_PortG7_DP_Fract_SetupG7_DP_Port_1_Channel_ModeG7_Fract_Channel_01G7_Fract_Channel_02G7_Fract_Channel_03G7_Fract_Channel_04G7_Fract_Channel_05G7_Fract_Channel_06G7_Fract_Channel_07G7_Fract_Channel_08G7_Fract_Channel_09G7_Fract_Channel_10G7_Fract_Channel_11G7_Fract_Channel_12G7_Fract_Channel_13G7_Fract_Channel_14G7_Fract_Channel_15G7_Fract_Channel_16G7_Fract_Channel_17G7_Fract_Channel_18G7_Fract_Channel_19G7_Fract_Channel_20G7_Fract_Channel_21G7_Fract_Channel_22G7_Fract_Channel_23G7_Fract_Channel_24G7_Fract_Channel_25G7_Fract_Channel_26G7_Fract_Channel_27G7_Fract_Channel_28G7_Fract_Channel_29G7_Fract_Channel_30G7_Fract_Channel_31G7_Fract_Channel_TD_01G7_Fract_Channel_TD_02G7_Fract_Channel_TD_03G7_Fract_Channel_TD_04G7_Fract_Channel_TD_05G7_Fract_Channel_TD_06G7_Fract_Channel_TD_07G7_Fract_Channel_TD_08G7_Fract_Channel_TD_09G7_Fract_Channel_TD_10G7_Fract_Channel_TD_11G7_Fract_Channel_TD_12G7_Fract_Channel_TD_13G7_Fract_Channel_TD_14G7_Fract_Channel_TD_15G7_Fract_Channel_TD_16G7_Fract_Channel_TD_17G7_Fract_Channel_TD_18G7_Fract_Channel_TD_19G7_Fract_Channel_TD_20G7_Fract_Channel_TD_21G7_Fract_Channel_TD_22G7_Fract_Channel_TD_23G7_Fract_Channel_TD_24G7_Fract_Channel_TD_25G7_Fract_Channel_TD_26G7_Fract_Channel_TD_27G7_Fract_Channel_TD_28G7_Fract_Channel_TD_29G7_Fract_Channel_TD_30G7_Fract_Channel_TD_31G7_Fract_Channel_RD_01G7_Fract_Channel_RD_02G7_Fract_Channel_RD_03G7_Fract_Channel_RD_04G7_Fract_Channel_RD_05G7_Fract_Channel_RD_06G7_Fract_Channel_RD_07G7_Fract_Channel_RD_08G7_Fract_Channel_RD_09G7_Fract_Channel_RD_10G7_Fract_Channel_RD_11G7_Fract_Channel_RD_12G7_Fract_Channel_RD_13G7_Fract_Channel_RD_14G7_Fract_Channel_RD_15G7_Fract_Channel_RD_16G7_Fract_Channel_RD_17G7_Fract_Channel_RD_18G7_Fract_Channel_RD_19G7_Fract_Channel_RD_20G7_Fract_Channel_RD_21G7_Fract_Channel_RD_22G7_Fract_Channel_RD_23G7_Fract_Channel_RD_24G7_Fract_Channel_RD_25G7_Fract_Channel_RD_26G7_Fract_Channel_RD_27G7_Fract_Channel_RD_28G7_Fract_Channel_RD_29G7_Fract_Channel_RD_30G7_Fract_Channel_RD_31G7_DC_Secondary_Channel_ModeG7_DP_Port_2_Channel_ModeG7_F2_Channel_01G7_F2_Channel_02G7_F2_Channel_03G7_F2_Channel_04G7_F2_Channel_05G7_F2_Channel_06G7_F2_Channel_07G7_F2_Channel_08G7_F2_Channel_09G7_F2_Channel_10G7_F2_Channel_11G7_F2_Channel_12G7_F2_Channel_13G7_F2_Channel_14G7_F2_Channel_15G7_F2_Channel_16G7_F2_Channel_17G7_F2_Channel_18G7_F2_Channel_19G7_F2_Channel_20G7_F2_Channel_21G7_F2_Channel_22G7_F2_Channel_23G7_F2_Channel_24G7_F2_Channel_25G7_F2_Channel_26G7_F2_Channel_27G7_F2_Channel_28G7_F2_Channel_29G7_F2_Channel_30G7_F2_Channel_31G7_F2_Channel_TD_01G7_F2_Channel_TD_02G7_F2_Channel_TD_03G7_F2_Channel_TD_04G7_F2_Channel_TD_05G7_F2_Channel_TD_06G7_F2_Channel_TD_07G7_F2_Channel_TD_08G7_F2_Channel_TD_09G7_F2_Channel_TD_10G7_F2_Channel_TD_11G7_F2_Channel_TD_12G7_F2_Channel_TD_13G7_F2_Channel_TD_14G7_F2_Channel_TD_15G7_F2_Channel_TD_16G7_F2_Channel_TD_17G7_F2_Channel_TD_18G7_F2_Channel_TD_19G7_F2_Channel_TD_20G7_F2_Channel_TD_21G7_F2_Channel_TD_22G7_F2_Channel_TD_23G7_F2_Channel_TD_24G7_F2_Channel_TD_25G7_F2_Channel_TD_26G7_F2_Channel_TD_27G7_F2_Channel_TD_28G7_F2_Channel_TD_29G7_F2_Channel_TD_30G7_F2_Channel_TD_31G7_F2_Channel_RD_01G7_F2_Channel_RD_02G7_F2_Channel_RD_03G7_F2_Channel_RD_04G7_F2_Channel_RD_05G7_F2_Channel_RD_06G7_F2_Channel_RD_07G7_F2_Channel_RD_08G7_F2_Channel_RD_09G7_F2_Channel_RD_10G7_F2_Channel_RD_11G7_F2_Channel_RD_12G7_F2_Channel_RD_13G7_F2_Channel_RD_14G7_F2_Channel_RD_15G7_F2_Channel_RD_16G7_F2_Channel_RD_17G7_F2_Channel_RD_18G7_F2_Channel_RD_19G7_F2_Channel_RD_20G7_F2_Channel_RD_21G7_F2_Channel_RD_22G7_F2_Channel_RD_23G7_F2_Channel_RD_24G7_F2_Channel_RD_25G7_F2_Channel_RD_26G7_F2_Channel_RD_27G7_F2_Channel_RD_28G7_F2_Channel_RD_29G7_F2_Channel_RD_30G7_F2_Channel_RD_31G7_Port_SetupG7_P1_Coding_TypeG7_P1_Rcv_GainG7_P1_Rcv_TerminationG7_P1_DropinG7_P1_Line_ClockG7_P1_Tx_Sig_All_OnesG7_P1_Tx_MF_AlarmG7_P1_Tx_Remote_AlarmG7_P1_Tx_UF_All_OnesG7_P1_HSR_Data_PathG7_P1_Rcrd_Ch16G7_P1_Fract_Data_PathG7_P1_Mon_Data_PathG7_P1_Emu_Data_PathG7_P1_Channel_Mode_1G7_P1_Channel_Mode_2G7_P1_Channel_Mode_3G7_P1_Channel_Mode_4G7_P1_Channel_Mode_5G7_P1_Incl_Ch16G7_P1_Channel_NumberG7_P1_Ch_RDG7_P1_Ch_TDG7_P1_DACSD_Ch_RDG7_P1_DACSD_Ch_RD_dG7_P1_DACSD_Ch_TDG7_P1_DACSD_Ch_TD_dG7_P1_CRC4_EnableG7_P1_Signalling_ModeG7_P1_Begin_MF_With_FASG7_P1_Extra_BitsG7_P1_National_BitsG7_P1_International_BitG7_P1_MF_Sync_CriteriaG7_P1_MF_Resync_CriteriaG7_P1_Frame_Resync_CriteriaG7_P1_Voice_Codec_TypeG7_P2_Dropin_Rcv_GainG7_P2_Dropin_Rcv_TerminationG7_P1_PolarityG7_P2_Coding_TypeG7_P2_Rcv_GainG7_P2_Rcv_TerminationG7_P2_Line_ClockG7_P2_Tx_Sig_All_OnesG7_P2_Tx_MF_AlarmG7_P2_Tx_Remote_AlarmG7_P2_Tx_UF_All_OnesG7_P2_Mon_Data_PathG7_P2_Emu_Data_PathG7_P2_Data_Path_3G7_P2_Channel_ModeG7_P2_Incl_Ch16G7_P2_Channel_NumberG7_P2_Ch_RDG7_P2_Ch_TDG7_P2_GSM_Ch_RDG7_P2_GSM_Ch_RD_dG7_P2_GSM_Ch_TDG7_P2_GSM_Ch_TD_dG7_P2_CRC4_EnableG7_P2_Signalling_ModeG7_P2_Begin_MF_With_FASG7_P2_Extra_BitsG7_P2_National_BitsG7_P2_International_BitG7_P2_MF_Sync_CriteriaG7_P2_MF_Resync_CriteriaG7_P2_Frame_Resync_CriteriaG7_P2_PolarityG7_Sc_Data_Path_1G7_Sc_Data_Path_2G7_Sc_Channel_NumG7_Sc_GSM_Ch_RDG7_Sc_GSM_Ch_RD_dG7_Sc_GSM_Ch_TDG7_Sc_GSM_Ch_TD_dG7_Sc_SpeedG7_SC_PolarityG7_SC_Channel_IdleNVH0 &.N~A6 f <<`>$HHyBBBB//ND$fXJJfBE6/NCBB0L N^NuNVH <$.*n (nNB&@/+/NEPOJf N~$@f*B`4*`,*`(BBG:Jg$S/*/NEPOJgXKJfL<N^NuNVH8*>$<J( f"$<`$<//NPO`$<//NE $.&.N^NuCh%02dR%02dT%02dR%02d.%dT%02d.%dNV n B( reЀ0;N **PPB( /HyHnND `ZB(/B( /HyHnND`4B(/B(/B(/B( /HyHnNDHn/.NE N^NuNV/ /HxmbEDtNBXO<g<fHxnuN<fHH$.$nN^NuNVH0 NDPHxNDtXOve0Ѐ0;N  B9$`$`$Hx EDtNXOJVD%JgHxmaNXO<Jf<(`HxmbNXOveЀ0;N :pzJ9Xg" 9$fHxn*NDtXO<f<`2B`.J9Xg" 9$fHxn*NDtXO<f<`<(`&(`(`(`(BHy=E NBHy]NB9(<g<fHxmgNDtXOJg<*N 97VD)B9(vehЀ0;N*2::BNHx\HyHy,NAD`4N`,N \`$N~`NHx` N \HxNL N^NuNVH>0B9,Hxn'EDtNXOJVD-Hxn(NXOJVD.BJ9$fHxn)NXOJVD/Hxn+NXOJVD0HxnCNXOJVD6HxnKNXO<VD}B9(reЀ0;NN4NNN444Hxn0EDtNXO<Jf<Hxn1N`bHxn2NDtXOJV`J9$f^Hxn3NDtXOreЀ0;Nfjpv,|<Hxn:NDtXOJWD`T<`FHxn4NDtXOre.Ѐ0;N  B`<`<` <`<7J96fnHxn-EDtNXOJWD2HxnDNXOJWDHxnENNHxnHNPOJVDHxnINXOJVDB91`6Hxn,NDtXOJWD1B92B9B9B9B9Hxn.EDtNXOJWD3Hxn/NXOJWD4B9(rejЀ0;N8ppN888J9$fJJ9Xg,BrgmJg `rgT` Hxn5`VHxn6`PHxn7`JBrgm&Jf6Hxn8`4 9(g&BrgmJg `rg` Hxn8` <`Hxn9N XXO8;GN9B @=Hxn?EDtN;Hxn@N:B @]HxnAN<`(B9(rgmrg`.rgrg` Hxmd` Hxmf`HxmiNDtXOJVD8<gJfC;BAlHxn5NDtreЀ0;N^ <`Hxn6NDtrg~m Jgr`vrgFr`Hxn7NDtrgPlrfL<`FHxn8NDtrg,lrf(<`"Hxn9NDtgrg`B`<$.N^NuNVH 0G$HxnOEDtNXOJVDHxnPNXOJVDBJfHxnQNXOJVDHxnRNXOJVDHxndNXOJVD 9(fHxnYNXOJV`JfVHxnWNXOretЀ0;NZ^( d<Hxn[NDtXOJWD`@<`2HxnXNXOrgmJg `rg `B` <`<J9fnHxnTEDtNXOJWDHxneNXOJWDHxnfNNHxniNPOJVDHxnjNXOJVDB9`6HxnSNDtXOJWDB9B9B9B9B9HxnUGDtNXOJWDHxnVNXOJWDBHyE NBHyN<fjHxn_EN @Hxn`NHxnaN @HxnbN`@HxnZNXOrgfmJg`"rg`B9Hxn\N @ @XO`Hxn]EN @Hxn^N @PO`fHxHyNHxHyNHxn[NJWDg  `B9B9HxncGDtNXOJWDHxngENNHxnhNHxnkN JVD 9*f %`HxnlNJVDL N^NuNVH 0Hx\HyHy,NADPOBHyE NBHyN 9(fHxnnNDtXOJV`HxnmNDtXOrgmJg `rg `B` <`<<gNB9HxnoN @ @XO`lHxnpGN @HxnqEDtNHxnrN @HxnsNHxnuEDtNXOJVDHxntNJVDL N^NuNV/ E/ B0. /NC/ N@$nN^NuNV/ Hx\HyHy,NADPO.nLEDtNXOJVDHxnMNJVD$nN^NuNVH<< . fHxm`HxmNDtXOJVDABEBJfJtv(*JIGE6/NDtXO<WDg"DRRRLRKTJRrd`ltv*<Dt(KIGED6/"ENXO<WDg"DRB0/"ENXO<WDgR9RMTLRKTJRrdL< .g<Hy'NBXOJgJgN0,$:<ŕGBHjHy(N//9/9N0HxN@HnNAJg.Jg .> fHy(KNBEXO`$B@Hy(hNPO` Hy(NXORJ~dJgB/9NCPON? LJl:HxN@/ NAPOJfBHy+NB`B/Hy+NBpLN^NuDs5000_dl: invalid start drive for download file (%d) Ds5000_dl: loaded hex file %s Ds5000_dl: couldn't load hex file %s (0x%04x) NVH< .<rg$brg6`^-|'-|'-|'`V-|'-|'-|'`<-|'-|'-|'`"/Hy,NB`tB/Hy,NBPOJgfx*<v$N/*/NE/HyHyB/NC4g6//Hy-NB XJRrdJBWDpLL<N^NuNV/ /B y (f<0J(Tg ( g ` J(Ug@BB9B@N@C$QA  QTH$.$nN^NuNV/ / y ( f< `49([<TJ(g ( f J(gBB9B@N@C$QA  QVH$.$nN^NuNVH 8. B. y ([f| ( f. ` (Yf. (Zf.G/ NN&Hy]N(POB9zft"`Fzn$zmznJ9gtr`&$<"`HyE>N$HyN"POB9(zeЀ0;NrrJrJƂȁ/HyE>^N/HyN/HyN/Hy N `B/HyE>^N/Hy NHx N>/HyE>^N/HyNBN>`.BHyE>^NBHyNBHyNBHy NL>p<pr2|AtR~dR~dB`xtCJg Arc RbRIR~d`tx"HJg "ҁЁARIR~d`P J"d`:ACdtDBJgtxPB <eA(" Ҁd<HHLN^NuNVH80&nJ.gXJ9^g(.[<cvt/NXORc`Jvt$K( /NXOdRrd`vt/NXORcyL N^NuNVH<<?<v?Ƅ/BNE$/BNE//NDLNB$<y+/Hxu2NB/Hxu3N B/Hxu4NB/Hxu5NB/Hxu6N B/Hxu7NB/Hxu8NB(<y./Hxu9N B/Hxu:NB/Hxu;NB/HxuNB/Hxu?N B/Hxu@NB/HxuANB/HxuBN B/HxuCNB/HxuDNBHyy4HxuHN BHyy@HxuENE~/ HxqSGC N/ HxuFID8N/ HxqTN .HxuGNLdN^NuNVNzJgND\N^NuNVH?Hxu=HyHyN}2 JfJg"<Hxu:Hxu9HyHyN}2 Jf2 Jg"<HxuBHxuAHyHyN}2 Jg <N|J.g <N}&pLPO.uHNCN^NuONOFFNVJ9g BHy}`BHy}!HxuEND>PO.uENCN^NuNVAJWDB9N}&ND\N^Nu0.00000NVH0 "n n 4.6.JfJg Jf.Jf(BHy}?BgED>NBHy}?BgN`@HxHxHnE/ // NB:B/ ?BgED>N BHn?BgN ?BgECN?BgNL N^NuNVH0 6.4.HxHxHnE/ /.NCf .0g |*|*B/ /ED>NBHn/N/ECN/NL N^Nuget_tim_setupset_isdn_speaker_chanset_tim_setupget_raw_setupset_raw_setupNVH80(.BEJg8G/NB"$XOg/NB///NB^<PKPJJfpL N^NuNV nB0rЁr&eЀ0;NNXblv/N`,/NN`"/N`/N`/N&`0<N^NuNV n0(2<@d0?Bg/(Hy&NADpN^NuNVH 0 n9h<g(<g"<g 9xg_<c (<c <`HxHy$HydGADN Jg7B989:BHy=E NBHy]NB @,||1;<$<B9(grg`:Hx\/Hy,N `&Hx\/Hy,N BNCpL N^NuNV n"h g0<`*0(2<@d0?BgHy&/ NADBNCB@N^NuNV/ $n j9c:Hx:/HyNAD R0(X1@0(X1@0( X1@ p` <$nN^NuNV"n iJg0<`R i9b0<`DHx8HyHhNADA0 X0A0X0A0X0NDB@N^NuS6G6!6G6G 6G F6GF6GF 6GS蔁6G [S6G6@6G6G 6G F6GF6GF 6GS蔁6G [S6G6F6G6G 6G F6GF6GF 6GS蔁6G [S6G6G6G6G 6G F6GF6GF 6GS蔁6G [S6G6>6G6G 6G F6GS蔁6G [ "&*.26>BFJRVZ^0H`x2Jbz ^vx n|0\&fnv&.<"*2>x<DLZ&.6>FNfv  ,2>DTt06<JPV`(Rdx@RfDJRZbjV\djr *$*2>^$,4<flt| ",>t>Jrz>L*V\l^~ DLT\dlt|2DJPjpxn~8>Df~ (r "Rfl 4F "&*.26@DNR\`jx <@DHLPTX\`dhlptx|  $(,048<@DHLPTX\`dhlptx|    ( , 6 : D H R V ` d n r |    $ ( 2 6 @ D N R \ ` j n x |     $ . 2 < @ J N X \ f j t x     * . 8 < F J T X b f p t ~    & * 4 8 B F P T ^ b l p z ~  "&04>BLPZ^hlvz",0:>HLVZdhrv (,6:DHRV`dnr| $(26@DNR\`jnx| $.2<@JNX\fjtx *.8<FJTXbfpt~ &*48BFPT^blpz~ "&04>BLPZhv",0:>HLVZdhrv (6DRV`dnr| .2:.RjpHT\fp @4jt:@HRZ,@Tjr(6$*0J^f (0\dpz"T\bnz$.4<DR\h~  6 R \        F v             $ * 2 6 J f n       H V         $*06<Vjrx(28>LXdlz &.6PZbnZbjtz .@ $*lrx~2 FNjt| "@X">bt ,@  ( 6<Bjz2:@FLRXdt*2^flrx~ &Tz \  &.4Vb|pv  """"""(","2"6"D"J"N"T"X"f"l"p"v"z"""""""""""""""""""""""## ###"#&#,#0#6#:#@#D#T#Z#`#f#n#t#################$$$"$($.$6$<$R$X$^$d$l$r$%%H%P%^%l%z%%%%%%%%%%&&&& &(&0&6&&&&&&&&&&&&&' ''*'0'8'((((")<)F)Z)b)j)|)))))))*(*@*J*P*V*`*j******+,,&,>,F,T,j,,,,,n-v-~-----------..&./p///:0@0F0L0p0x000&1D11112:2n222233x3333(4F4R44444\5v5555l6677 777 7&7*70747:7@7N7T7Z7v7|7777777778N9h999999*:::@:p::::: ;;@;b;p;v;;;;; <6<F<L<x<<<<<=== =D=\=b=l=z==========> >> >*>0>:>D>N>>>>@?z??????"@f@@@@A0AFArAAAAA BB&BLBRB^BnBtBzBBBBBBBBBBC CCC0CXCzCCCCCCCCCCCCDDD D*D:DFDdDDDDDDDDDDD EEE4EBERE\ErE|EEEEEEEEEF*F6FNFZFdFzFFFFFFFFFG(G6GLGdGpGzGGGGGGGH HH6HBHRHjHHHHHHHHHHHIIII(I0I:IHIPIXI`IjIrI|IIIIIII JOVO^OOOOO.Nn.Nn.Nn.BJNVZbfnr~&2>JVbn$(6:HLZ^lp~   $ 6 D H V Z h l z ~ !!(!8!H!X!h!x!~!!!!!!!!!!!!""$"@"`"t"""""""""""##$#D#X#h#x########$$<$\$|$$$$$$$$$$$$$$$%% %% %$%0%<%H%T%`%l%x%%%%%%%%%%%%%&&&(&,&:&>&L&P&^&b&p&t&&&&&&&&&&&&&''('R'TpUUUVV'd'h'l'|''''''''''( (((0(@(F(R(V(j(z(((((((((((()))()8)>)J)N)d)l)|))))))))))))* *&*2*6*J*Z*`*l*p************++++2+B+H+T+X+l+|++++++++++++,,,*,0,<,@,T,d,j,v,z,,,,,,,,,,,---$-(-<-L-R-^-b-v------------. ..$.4.:.F.J.^.n.t............. //"/./2/F/V/\/h/l////////////0 000.0>0D0P0T0h0x0~00000000000011&1,181<1P1`1f1r1v11111111111122 2$282H2N2Z2^2r22222222222223 3 30363B3F3Z3j3p3|333333333333444*4.4B4R4X4d4h4|444444444445555*5:5@5L5P5d5t5z55555555555556"6(64686L6\6b6n6r666666666666 777 747D7J7V7Z7n7~777777777777888,828>8B8V8f8l8x8|88888888888999&9*9>9N9T9`9d9x999999999999:::&:6:<:H:L:`:p:v:::::::::::::;;$;0;4;H;X;^;j;n;;;;;;;;;;;;< <<<0<@<F<R<V<j<z<<<<<<<<<<<<===(=.=:=>=R=b=h=t=x===========>>>">&>:>J>P>\>`>t>>>>>>>>>>>>> ??"?2?8?D?H?\?l?r?~???????????? @@ @,@0@D@T@Z@f@j@~@@@@@@@@@@@AAAA,AFJFNFbFrFxFFFFFFFFFFFFFG G&G2G6GJGZG`GlGpGGGGGGGGGGGGHHHH2HBHHHTHXHlH|HHHHHHHHHHHHIII*I0IMDMPMTMhMxM~MMMMMMMMMMMMNN&N,N8NUBUZUbUrUUUUUUUUUUUUUUV&V,V8VXRXbXrXXXXXXXXXXX YY"Y.Y2YHYLYPY`YpYYYYYYYYYYYZ ZZ$Z4ZDZJZVZZZnZ~ZZZZZZZZZZZ[[[[8[X[x[[[[[[[[[\&\6\F\V\\\h\l\\\\\\\\\\\\] ]]]2]:]D]L]V]^]z]~]]]]]]]]]]]^^&^.^>^N^T^`^d^x^^^^^^^^^^^^^___$_8_@_P_X_h_x_~____________ ```"`6`F`L`X`\`j`r````````````a aaa4awLwPwbwtwwwwwwwwwxx(x:xLx^xpxxxxxxxxyy$y6yHyZyly~yyyyyyyyz z2zDzVzhzzzzzzzzzzzzz {{.{<{@{R{d{v{{{{{{{{{||*|<|N|\|`|r|||||||||}}&}8}J}\}j}n}}}}}}}}}}~"~4~F~X~j~|~~~~~~~~~ 0BTfx,>Pbt΀(6:HLZ^p~Ɓʁ؁܁ $26HZl~‚ƂԂ؂  .2@DRVdhvzƒЃԃ .@NRdvЄބ*<N`nrȅ̅څޅ"&8FJ\jnĆȆֆچ "04BFTXfjx|ć҇և 0>BTbfx҈(,:>LP^bptҙ2RrҚ$Ddě$Ddrz֜6DLhȝ(HhȞ0PpПޟ"Bb "Bbpxԡ4BJfƢ&Ffƣ*6BNZfr~ƤҤޤ&2>JVbnz¥Υڥ ".:FR^j~ƦʦҦ֦ަ $6DHVZhl~§Ƨا  .2@DRVhvz¨ШԨ .<@NR`drvЩީ&*<JN`nrȪ̪ު&48JX\n|ȫ֫ګ"4FTXjx|Ĭ֬ HLḽ ,LZb~ޮ>^~ޯ0Ppư"Bb±"Bjʲ *JX`|ܳ<\|ܴ.Nnĵ @` @\dhpt|ȷԷ(4@LXdpxĸиܸ $0<HT`lx̹ع (,48@DLPXdhzºкԺ *.<@R`drv̻л&*<JN\`nrȼ̼ڼ޼"&48JX\jn|ĽȽڽ "4BFXfj|ľҾ־ ,0BPTftxοҿ,:>P^btssss tttXt`ttttttuBuHuuuvvvvvvvvvvvwww*w6wDwRw^wtwwwwwwwwwwxxxxx*x0x6x\vĀʀЀ؀ހ $:NZ^dhpP`p|Ղe &4BZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZǮ^ [~Vj 4fYR.H[>OjP2xxx.xx/sys/mux/D_T1.MUX_yCyDyoypay5y6y9y:yyyyЀy;y yyyy y!y"y#y$!y%y&y'y(Ay)y*y+y,y-y.y/y0Ёy1y2y3y4Єy?y@yAyBy7y8yaybyeyf(yEyFyGyHЀygyhyiyj0 yIyJyKyL yMyNyOyP !yQyRySyT0AyUyVyWyX0yYyZy[y\Ёy]y^y_y`Єykylymynycyd` }+},}W}Xa}}}!}"l}}}}Ѐ}#}$}%}&t }}}}d} } } } d!} }}}tA}}}}t}}}}Ё}}}}Є}'}(})}*}} }I}J}M}N}-}.}/}0Ѐ}O}P}Q}R }1}2}3}4}5}6}7}8!}9}:};}<A}=}>}?}@}A}B}C}DЁ}E}F}G}HЄ}S}T}U}V}K}L`L`N`P`R `T-beinsy͎͂ͥͪ͝͡Ͱ͸ͥͪͰqHqIDqIqJdqJqKqKqLqLqMqMqNlqNqOxqOqP+qPqQ8qQqRDqRqSNqSqT`qTqUvqUqV΅qVqWΔqWqXΣqXqYβbert_setup   #(.#4;AEJ[lzψϐϘϞϱJ[lzϘ"'"3D"UcqtϞϱx{~ЊЕТЬео {m`mamamb!mbmc.mcmd=mdmeSmemfemfmg} &mgmhъmhmiќmimjѴmjmkmkmlmlmmmmmnmnmomomp,mpmq@mqmrTmrmshmsmt|mtmuҐmumvҤmvmwҸmwmxmxmymymzmzm{m{m|m|m}0m}m~Dm~mXmmlmmӀmmӔmmӫmmmmmmmmmmmm5mmLmmcmmzmmԑmmԨmmԿmmmmmmmmmm2mmImm`mmwmmՎmmեmmռmmmmmmmmmm/mmFmm]mmtmm֋mm֢mmֹmmmmmmmmmm,mmCmmZmmqmm׈mmןmm׶mmmmmmmmmm,mm=mmNmm_mmpmm؁mmؒmmأmmشmmmmmmmmmm mmmm+mm<mmMmm^mmommـmmّmm٢mmٳmmmmmmmmmmmm+mm?mmSmmgmm{mmڏmmڣmmڷmmmmmmmmmmmm/mmCmmWmmkmmmmۓmmۧmmۻmmmmmmmm mmmm3mmGmm[mmomm܃mmܗmmܫmmܿmmmmmmmmmm#mm7mmKmm_mms &mm݁ .mmݐ 6mmݦmnݳ Nnn nnnnnnnnnn"Rnn 8RnnKnn _n n tn n މ6n n ޞn n ޳n nnnnnnnnnnnnn*nn;~nnPvnnhnn~nnߒ FnnߤJnn߶Bnn .nn 6nn nn .nn  6n n!4 Nn!n"K n"n#\n#n$mn$n%|n%n& Rn&n'n'n(n(n)n)n*n*n+n+n,~n,n- vn-n.#n.n/9n/n0M Fn0n1_Jn1n2q n2n3n3n4 >n4n5 n5n6interface_t1_setup V   t @   `* @~ *  *  ......... .'... .'. . . .' . . .=.<.?./ .*.)/ / /*/4/H/V/X/V/e/V/v/V%///V%/ / /V %/ / /V+/+/=/+/ @9/1/)0! 0 0"0.0#:0+F @R03 *&J2j >  J V b  *nJzj *Jj^ @u0j0J 63 0K 511 0T 2047 0] 4095 0g 32767 0qALT-1/00{FOX MSG0MSG BUF0p 0 FDX 0 HDX 0  0* ON 0 OFF 0D 0d~ 1 1& 1000 1; 10000 1CPATTERN1K1S SECONDS 1f BITS 1nBLOCKS 1s CONT 1z& 1f B?1 '1 1000 1 10000 1100000 1PATTERN 1K 1  2 (2;Zj + 2d 6 2d6 2d6 2d6 2d @9 2n1 $2v) 02~! <2 H2 T2 `2 l2 x @ 2222222 2 3 3 3 3 3% 3( h  0 j    l    ! ! ! :p !,x @qH!85"P""A""I"##SINGLE 5 FRACT 5#$5#DSINGLE 5 FRACT 6 DUAL CH6DUAL PT 6-DC FRAC 6=DP FRAC 6M#^5# PORT 6]CHL MAP6n# 6# SAME 6 SPLIT '6$6$2 PORT 6]M CHMAP 6S CHMAPW6$L 6$| SAME 6 SPLIT '6$6$ 1 7 2 7$ 7$ % %PORT 1 7NPORT 2 7_CHMAP 17pCHMAP 2X7%$ 7%d SAME 6 SPLIT '6%~6% NO 7 YES 7% 7% NO 7 YES 7% 7& NO 7 YES 7&, 7&L NO 7 YES 7&f 7& NO 7 YES 7& 8 & NO 7 YES 7& 8!& NO 7 YES 7' 85'4 NO 7 YES 7'N 8I'n NO 7 YES 7' 8]' NO 7 YES 7' 8q' NO 7 YES 7' 8( NO 7 YES 7(6 8(V NO 7 YES 7(p 8( NO 7 YES 7(8( NO 7 YES 7(8) NO 7 YES 7)8)> NO 7 YES 7)X" 8)x NO !7 YES !7)" 9) NO "7 YES "7)" 9%) NO #7 YES #7*" 99*& NO $7 YES $7*@" 9M*` NO %7 YES %7*z"9a* NO &7 YES &7*"9u* NO 7 YES 7*"9+ NO (7 YES (7+( 9+H NO )7 YES )7+b 9+ NO *7 YES *7+ 9+ NO +7 YES +7+ 9+ NO ,7 YES ,7, 9,0 NO -7 YES -7,J :,j NO .7 YES .7, :', NO /7 YES /7, :>, NO 07 YES 07, :U- NO 17 YES 17-2 :l-R NO 27 YES 27-l :- NO 37 YES 37- :- NO 47 YES 47- :. NO 57 YES 57.:.: NO 67 YES 67.T:.t NO 77 YES 77.:. NO 87 YES 87." ; . NO 97 YES 97/" ;$/" NO :7 YES :7/<" ;;/\ NO ;7 YES ;7/v" ;R/ NO <7 YES <7/" ;i/ NO =7 YES =7/";0  NO >7 YES >70$";0D NO ?7 YES ?70^";0~ NO @7 YES @70 ;0 NO A7 YES A70 ;0 NO B7 YES B71  ;1, NO C7 YES C71F < 1f NO D7 YES D71 "9a;^ NO p7 YES p7;x"9u; NO 7 YES 7;"9; NO r7 YES r7; 9<  NO s7 YES s7<& 9= NO z7 YES z7= :U= NO {7 YES {7= :l> NO |7 YES |7>0 :>P NO }7 YES }7>j :> NO ~7 YES ~7> :> NO 7 YES 7>:> NO 7 YES 7?:?8 NO 7 YES 7?R:?r NO 7 YES 7?" ; ? NO 7 YES 7?" ;$? NO 7 YES 7@" ;;@  NO 7 YES 7@:" ;R@Z NO 7 YES 7@t" ;i@ NO 7 YES 7@";@ NO 7 YES 7@";A NO 7 YES 7A"";AB NO 7 YES 7A\ ;A| NO 7 YES 7A ;A NO 7 YES 7A ;A NO 7 YES 7B  < B* NO 7 YES 7BD  NO 7 YES 7FX%=Fx NO 7 YES 7F%=F 1 7 2 7F=F 0 dB > 20 dB >G >G&G@GNG\G`GnGz TERM >2BRIDGED>=G >FGNORMAL >iDRP/INS>pG >xG 7F > FF >H>H  INT > EXT >H:>HZ NO > YES >Ht >H NO > YES >H? H D4 ?+ ESF ?.H0?2II"PI&I4AI8IFIIJIXIfItIxIIIIUNF AGG?MFRM AGG?`I-?sI64K CH.?56K CH.?I-?J 64K CH.?56K CH.?A BITS ?B BITS ?Ft BITS@ Fs BITS@ VOICE @2UNF AGG?MFRM AGG?` J&-@EJ64K CH.?56K CH.?A BITS ?B BITS ?C BITS @]D BITS @p FDL @ VOICE @2J-@EKPKj38Kv SAME @ SPLIT @ ALL @ DACS @DACS-D @ BRITE @K0@K SAME @ SPLIT @ ALL @ DACS @K0@L> SAME @ SPLIT @ DACS @LX0@L SAME @ SPLIT @ ALL @L0@L SAME @ SPLIT @L0@M /@3 @< A3 @ 1 7 2 7 3 A8 4 A:M6A<M< A 1 7 2 7 3 A8 4 A:N ?AVN`NzN~DBIT 2 ApF-BIT12A~N0 ANFT & FSAFT ONLYAN2 ANDBIT 2 Ap 00/FF AO0AO  YES > NO B#O:9B&OZ10 bit BK24 bit BROt/ BYO AMI Bs B8ZS BwO/ B|OOPOOAOP IPPP,P:PFPTPX PfPxPPMU-LAW B A-LAW BP6 BPPPPQQQQ&Q* 0 dB > 20 dB >Q81 BQX TERM >2BRIDGED>=Qr/ BQQ Q NORMALC INVERTCQ4 C$Q 0 dB > 20 dB >Q BRR2R@ TERM >2BRIDGED>=RN BRn 7F > FF >RCXR INT > EXT >RC{R NO > YES >R CS NO > YES >S6CSV D4 ?+ ESF ?.Sp0CS64K CH.?56K CH.?UNF AGG?MFRM AGG?`S-CS64K CH.?56K CH.?T-CT$T>TJ SAME @ SPLIT @ ALL @TX0D T/D$3 DA< DaUUDBIT 2 ApF-BIT12A~U0 DU4FT & FSAFT ONLYAUN2 DUnDBIT 2 Ap 00/FF AU0DU YES > NO B#U9DU10 bit BK24 bit BRU/ EV AMI Bs B8ZS BwV6/ E/VVVp Vt NORMALC INVERTCV4 EIV< 'E} 64K E 56K EV;EV NORMALC INVERTCW8EW6WPW^ 7E F FF >Wl<FW NO B# YES >W5W NO B# YES >W5X @9XF=1X&FE)X2FM!X>FUXJF]XVFeXbFmXnFuXz @XF}FXFFXFF FXFF(F (XG (Y G& (YG8 (Y"GQ (Y.Gi Y:GYFFGF(F (YvG (YG& (YG8 (YGQ (YGi YGYF G YGYG G YG G ZG G Z*GZ6H G ZNG G ZfG H$Z~F H:ZF G ZGZG G ZG G ZG G [G[H G [&G G [>GHM H^[bHn H H [H HHHHH"H"[H"I"I"I"I"F"F"F"F"F"I"I,8I>"I,5IC8I>>IC"IE"IT"IE"Ie "I} "I "H^ "\I"H "I H^]*I HH ]NIHHH"H"]I"I"I"F"I"I,8I>"IE"IT"IE"Ie "I} "I "I "I"J "^JJ "J?"JVX"""##X#JX#X#X$8 X$ YR$  Y^$ % Yj%j Y% Y% & &R &&'':'tZ''("(\(() )D Z)~ !)!")"#*,#$*f$%*% &*&!+'"(ZB+N(#)+)$*+*%+++&,,6,'-,p-(.,.)/,/*0ZZ-0+1-X1,2-2-3-3.4.4/5.@506.z617.728Zr.839/(94:/b:5;/;6</<7=0=8>0J>9?0?:@0@;A0A<B12B=C1lC>D1D?E1E@F2FAG2TGBH2HCI2IDJ3JEK3<KFL3vLGM3MHN3NIO4$OJP4^PKQ4QLR4RMS5 SNT5FTOU5UPV5VQ5WRYZ6.XSYZ6hYTZZ6ZU[6[V\7\W]7P]X^7^Y_7_Z`7`[a88a\bZ8rb]c8c^d8d_e9 e`f9Zfag9gbh9hci:idjZ:Bjek:|kfl:lgm:mhn;*nio;dojp;pk;qlr[<rms{v|>V|w}>}x~>~y?z?>{?x|[J?}?~@&@`@@AAHAAAB0BjBBCCRCCDD:DtDDE"E\EEF FDF~F[VF[nG,GTGfG[zG[G[G[H&[H`[H[H[II,I>IPIlI~II[I[J\ J\KV K|\"K\.LD\:L\FL\RM\^M&\jMF\vMf\M\M\N\NfN\N\N\O&\O`\O\OOPPP2PLP^P~PPPQ QQ0]Q^]QQ]Q]6RRF]BRt]ZR]fR]rS"]~S\]S]S]T*TP]T]T]T]TU ]U:]Ut^U^U^V"^&V\Vz^2V^>V^VW^bW<Wd^nWWX @m`^z90.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000OFF00 IN SYNCtUU100010055+6666a 010101010101010124 Ya@0.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.000000 0 00.0000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.000000 0 00.0000000.0000000.000000.0000000.00000Ya@0.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.000000 0 00.0000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.000000 0 00.0000000.0000000.000000.0000000.00000JrJrJr JrJrJrJr JrJr  JrJr JrJrfjJrJr JrJrJrJr JrJrJrJr JrJr Jr Jr Jr Jr Jr Jr(& Jr Jr Jr Jr Jr Jr Jr JrJrJr JrJr+Jr2Jr6Jr=Jr+Jr2Jr6Jr=Jr+Jr2Jr6Jr=JrEA+Jr2Jr6Jr=Jr+Jr2Jr6Jr=Jr+Jr2Jr6Jr=Jr+ Jr2 Jr6 Jr= Jr+ Jr2 JrVT$(+ Jr6 Jr+ Jr2 Jr+ Jr2 Jr6 Jr= Jr+Jr2Jr6Jr=Jr++Js6J+JJ JJJJJJJJJKJJKJJK2JJKIJJ K` Kw J J Kz J K K J K J JKJJKL1J;J1J;J1J;J1J;J1J;J1J;J 4Kw 1JJ ;J 1J 1J 1J ;J1J;J @9L1L#)L+!L3L;LCLK LS @"L[ "6.Vv :   F R ^  j & vFp x8Xx  !!"8"#X#$x$%*%&&'6' ((!)B )"*N**#+ZJ+$,fj,%--&.r.'/~/(00)1 1*2*2+3J3,4N4-5R5.6r6/770881992::3;;4<2<5=R=6>r>7??8@@AA9BB:CC;D$D<EDE=FdF>GG?HH@I&IAJJBK2KCL$LDM>DMENdNFOVOGPPHQbQIRRJSnST.TKU6ULVVVMWvWNXzXOYYPZZQ[[R\\S]6]T^V^U_v_V``WaaXbb. @}:L|L|L| L|L|L|L| L|L| bf txL|L| L|L|L|L| L|L|L|L| L|L|L|L| L|L| L| L| L| L| L| L|(&dh L| L| L| L| L| L| L| L|L|L| L|L|+L|2L|6L|=L|+L|2L|6L|=L|+L|2L|6L|=L|EA~+L|2L|6L|=L|+L|2L|6L|=L|+L|2L|6L|=L|+ L|2 L|6 L|= L|+ L|2 L|VT+ L|6 L|+ L|2 L|+ L|2 L|6 L|= L|+L|2L|6L|=L|++L}6nL+zLL LLLLLLLLLMLLM%LLM<LLMSLL Mj M L L M L M M L M L LMLLMN1L;L1L;L1L;L1L;L1L;L1L;L 4M 1L ;L 1L 1L 1L ;L1L;L @9bN%1nN-)zN5!N=NENMNUN] @NeZb" B l ~        " .$:DdFR^jv$Dd  !!""##$$$%D%&n&'v' ((!))"**#++$,,%-6-&.V.'/*v/(060)11*2B2+3N3,4Z4-55.6f6/7>708r^819~92:~:3;;4<<5==6>>7?>?8@^@AA9BB:CC;DD<EE=FF>G0G?HPH@IpIAJJBKKCLLDMMENNFO0OGPPPHQpQIRRJSSTTKUULVVMW"WNX&BXOYbYPZ2ZQ[[R\>\S]]T^J^U_"_V`VB`WabaXbfbj @yO[L:[ZV[pH]H̆=*^H̆=r^<̆1/NVH 0&n$n |*HnNP @//N @*BBBHn/ GxNB/ NB$<d// N .NlB// N/ NB// N.N L N^NuNVNDPJgB`HxmbNDt<RDHHN^NuNVNHHN^NuNV9_Ȳ<g[<c<f0| N^NuNV9_U<c[<c _<b0| N^NuNVHx NDt<WDrN^NuNVH8&nN$KNN@N&@HkHxqLIC NHkHxqMNNN@N@HxqPE N'@HxqQN'@N@"HxqSN7@$HxqTN7@& Hk(HxqUNHkHxqVNHk,HxqWNHkHxqXN Hk0HxqYNLN^NuNVHxqINDtreBЀ0;N8 &,2B`(<`"<`<`<`<` <`<N^NuNVHxqJNDtg rf<`BN^NuNVHxqKNDtg rf<`BN^NuNVHxqNNDtrg lrg` <`<`BN^NuNVHxqONDtrgmJg `rgr`B`<` <`<N^NuNVHxqRNDtrgmJg `rgr`B`<` <`<N^NuNV/ E/ B0. /NC/ NA8$nN^NuBERTDTEBERTDCEUnk modeNV/ $nHxNDtrgrg `A6`A>` AF`Jf $nN^NuNV/$.NBB//Nx$.N^NuEVENODDSPACEMARKNONEUnk parityNVHxNDtXOre<Ѐ0;N "* <`& <` <` <` <` <B//.NxN^Nu8765Unk # bitsNVHxNDtXOrgmJg`.rgrg` <X` <Z` <\` <^` <`B//.NxN^NuFDX/HDX/Unk duplex/SYNCASYNC/ISOC/Unk format/NVH0 $.HxqJNDtXOBgrg ` <` <` <B//ExNHxNDtrg$mJg`Nrg$rg(`@BHy/N`BBHy/N`4BHy`BHy/N/N.`BHy/Nx HxqINDtXO<g]<bBHy /Nx/HxqMNvL N^Nu12Unk stop bitsNVHxNDtXOgrg ` <` <` < B//.NxN^NuNV|/ /$. E~/ B0. /NC / /N$.t$nxN^Nu635112047409532767ALT 1,0FOXUSERUnk BERT patternNV/ $nHxqINDtreZЀ0;N (08@HA`BA`:A`2A`*A`"A`A`A` A`Jf $nN^NuNV//"n n 6.Jgt"ҁHC3RJf$.&.N^NuNVH8 "n$n 0|Jg$xvBB Ѐ6"ҁ3RRHHbLN^NuFSTDMSTSThe Dual Port T1 package is here! interfacebert_setupbert_resultsp1_statsp2_stats T1 BERT P1STATSP2STATSinterface_stats_addrtim_stats_addrNVH08..`FgBC`BANh6XOfHyNBI_NB(Hy`HHypnNDHy'HypVHxECBNHy1Hy"HxN .N$<c/BHxHx Hx HxN,.BHxHxHxHxNHykBHxHxHxHxN,.sBHxHxHxHx NHy^G/ Hy{EBN .^/ HyN_ T(2_ <RD___ <RD_B(hNxB0L N^NuNV/ /J9_VDJ9_VDr€/Hxn7EFNr‚/Hxn8NBHx%NHxHx(N$.$nN^NuThe T1 package is gone! NV/ HxEANHxNHxNHxNHx NBHxHx Hx EAN BHxHx Hx NBHxHxHxNBHxHxHxNBHxHxHxN.`HNBFHyNBp$nN^Nustats_rackNVH 0HyNC$HxaHylGBNB?BgHykHxB/EAN .jHyĴNB?BgHysHxB/N <L N^NuNVN#jNN^NuNVN"NN^NuNVN#jN^NuNVN#jNN^NuNVN"NN^Nubert_root_rackBERTNVH00Hy~NC&HxaHylGBNB?BgHykHxB/EAN .jHyĴNB?BgHysHxB/N NNBB4/HyHxB/N L N^Nu64000NVH00&nBBA,y-y.y/y0y1B+ /Hk NEHxEDtN JfB`FHxNBXOJg<f<H4A4JHxNDt" <fvJg <<`<BB @ @L N^Nud_dce_framed_dte_framed_rcv_framesend_d_framesend_d_frame_ilNVH0 $n|&B*%B*(HyN@HyNNPOJfHx NDtXO<WD`BJ9`NfJ9`Pg J*'f<BJ9`LfJ9`Pg *'f<JgJg|&`B*&`Jg|&`|&A%BJfJg<A(BJ*#gJVDN@6N,HHL N^NuNVH 0&nBAJg $H/NBXOJVD SPJPKJfHHL N^NuNVH 0&nBAJg $H/NB"XOJVD SPJPKJfHHL N^NuNV/.<WUONN^NuNV/.<WUONN^NuNVH <*n B. /NNn$NfG6NENHx y`XB0(/B0(/NAHx/9_"N@0r*K/ BHxHxI@*N(NfNN .fL$M&LgN.g "BNND\/ BHxHxN/ BHxHxN .gHx/9_"N@0NDhBN@L<N^NuNVHXOJg HxNNNNL<N^NuNV. `VA`Xf ` NHx y`XB0(/B0(/NAN^NuNV0. B2o2o g ` N` y`X\HB0/ND0<N^NuNVH Jg(9`VWH0@"D/ENNNNBBNL<N^NuNVNDhN^NuNV/B9_tgmJg`tg ` <H` <Ƅ` <f$.N^NuNVHXOJg HxNNNNL<N^NuNV/ / HxG`XpГ/ENHx&SD/ N$n&nN^NuNV/ / BG`XpГ/ENB&SD/ N$n&nN^NuNVBpй`X/NN^NuNVB 9`XD/NN^Nu%9dNVH0<*nJ.f-gj/- &</G/ NDB/ EB0/$<D> BNB0/ICN/-// ND$B/ EB0/ BNB0/NL< N^NuNVHN"RAB0/GCNB"R,/ N."RA B0/N$RA B0/N J9_gNL<N^Nu NOT MONITOREDNVH0 B9_rgrf y`X6( 4(` y`X6(4( BHy/ED>NBHy/N/ECN/NL N^NuNVNhNN^NuNV/ E`X R(g6BB(+/N,. RPHB0/ND> RPHB0/NC R(g2BHh,NÜ."RA B0/ND>$RA B0/NC$nN^NuNV/ /E`X R$<F0(g:BB(]/N,."RA B0/ND>"RA B0/NC R0(g2BHh^NÜ."RAB0/ND>$RAB0/NC$.$nN^Nu NO SIGNAL NORMAL BLUE ALARM YELLOW ALARM SIGNAL LOST OUT OF SYNC ????????????????????NVB. reFЀ0;N $,4 <˜`. <­`& <` <` <` <` <N^NuNBYgSyS??NVH>0$nB9`pC`o Jg<t&|(<`\Jg`<B2(|e>Ѐ03NN $,AÌ`&AÎ`AÐ`AÒ`AÕ`AØb(SIgbSIf <`\b  SIc <`\L |N^NuNV/ / $n &nJ. f/ / HyND`BN`$`&$n&nN^NuNV/ / $n &nN>JfBB`.J. f/ / Hy0ND`HxN`$`&$n&nN^NuNV. `VA`Xf ` N y`X PJ(fJ(=f 3`r`3`r`3`rN^NuNVH / NA,BAAXOjF@R@/ ?BgNCN|-` / ?BgNCNPOHn`Hn?BgNʔPO?BgNCLN^NuNVHx/. B0. /ND>N^NuNVNA3`vBy`tN^Nu>Mux Setup 1: %04X NVH004. 6.G`vB0/NCXOE`tRC4?BgHyNB |0B0/NEXL N^NuNVB09`tN^NuNVNA3`zBy`xN^Nu>Mux Setup 2: %04X NVH004. 6.G`zB0/NCXOE`xRC4?BgHyhNB |0B0/NEXL N^NuNVB09`xN^NuNV |N^NuNV |0N^NuNV n0XN^NuNV |0N^NuNV | |N^NuNV. |N^NuNV n0.X0N^NuNV. |N^Nu>MUX Disp %04X NV/4. ?BgHy̐NB |0$.N^NuNVNA3`~B9`|N^NuNVB9`|N^Nu>TIM C: %02X NVH00. .G`~B0/NCXOE`|BBHyNB |B0/NEXL N^Nu635112047409532767ALT_1010FOX_MESSAGEMESSAGE_BUFFERFDXHDX100010000PATTERNSECONDSBITSBLOCKSCONTINUOUS100000BERT_PatternHandshakingResyncPreambleSync_PatternBlock_SizeTest_LengthTest_SecondsTest_BlocksTest_BitsError_Inject_RateError_Inject_Rate_ExpMessage_Line_1Message_Line_2Message_Line_3Message_Line_4Message_Line_5YESNOONOFFFD1FD2HRDMULTIPLEEVENODDSPACEMARKNONEPULSETONE()LayerSAMESPLITALLDACSDACSDBRITEMU_LAWA_LAWAMIB8ZSCHANNEL_DATA_64KCHANNEL_DATA_56KROBBED_BITS_AROBBED_BITS_BFT_BITSFS_BITSVOICEUNFRAMED_AGGREGATEFRAMED_AGGREGATEFT_FSFT_ONLYDBIT_2FBIT_121234NORMALDRP_INSROBBED_BITS_CROBBED_BITS_DLINK_DATA00_FFPORTCHANNEL_MAPMAIN_CHANNEL_MAPSCND_CHANNEL_MAPCHANNEL_MAP_1CHANNEL_MAP_2D4ESF7EFFSINGLE_PORTFRACTIONALDUAL_CHANNELDUAL_PORTDC_FRACTDP_FRACTINTERNALEXTERNALINVERTED0_dB20_dBTERMINATEDBRIDGED64K56K10_BIT24_BIT7FT1_Intf_Mode_HSRT1_Intf_ModeT1_Fract_SetupT1_Fract_Channel_ModeT1_DC_Fract_SetupT1_DC_Main_Channel_ModeT1_Main_PortT1_DP_Fract_SetupT1_DP_Main_Channel_ModeT1_Fract_Channel_01T1_Fract_Channel_02T1_Fract_Channel_03T1_Fract_Channel_04T1_Fract_Channel_05T1_Fract_Channel_06T1_Fract_Channel_07T1_Fract_Channel_08T1_Fract_Channel_09T1_Fract_Channel_10T1_Fract_Channel_11T1_Fract_Channel_12T1_Fract_Channel_13T1_Fract_Channel_14T1_Fract_Channel_15T1_Fract_Channel_16T1_Fract_Channel_17T1_Fract_Channel_18T1_Fract_Channel_19T1_Fract_Channel_20T1_Fract_Channel_21T1_Fract_Channel_22T1_Fract_Channel_23T1_Fract_Channel_24T1_Fract_Channel_TD_01T1_Fract_Channel_TD_02T1_Fract_Channel_TD_03T1_Fract_Channel_TD_04T1_Fract_Channel_TD_05T1_Fract_Channel_TD_06T1_Fract_Channel_TD_07T1_Fract_Channel_TD_08T1_Fract_Channel_TD_09T1_Fract_Channel_TD_10T1_Fract_Channel_TD_11T1_Fract_Channel_TD_12T1_Fract_Channel_TD_13T1_Fract_Channel_TD_14T1_Fract_Channel_TD_15T1_Fract_Channel_TD_16T1_Fract_Channel_TD_17T1_Fract_Channel_TD_18T1_Fract_Channel_TD_19T1_Fract_Channel_TD_20T1_Fract_Channel_TD_21T1_Fract_Channel_TD_22T1_Fract_Channel_TD_23T1_Fract_Channel_TD_24T1_Fract_Channel_RD_01T1_Fract_Channel_RD_02T1_Fract_Channel_RD_03T1_Fract_Channel_RD_04T1_Fract_Channel_RD_05T1_Fract_Channel_RD_06T1_Fract_Channel_RD_07T1_Fract_Channel_RD_08T1_Fract_Channel_RD_09T1_Fract_Channel_RD_10T1_Fract_Channel_RD_11T1_Fract_Channel_RD_12T1_Fract_Channel_RD_13T1_Fract_Channel_RD_14T1_Fract_Channel_RD_15T1_Fract_Channel_RD_16T1_Fract_Channel_RD_17T1_Fract_Channel_RD_18T1_Fract_Channel_RD_19T1_Fract_Channel_RD_20T1_Fract_Channel_RD_21T1_Fract_Channel_RD_22T1_Fract_Channel_RD_23T1_Fract_Channel_RD_24T1_DC_Secondary_Channel_ModeT1_DP_Port_2_Channel_ModeT1_F2_Channel_01T1_F2_Channel_02T1_F2_Channel_03T1_F2_Channel_04T1_F2_Channel_05T1_F2_Channel_06T1_F2_Channel_07T1_F2_Channel_08T1_F2_Channel_09T1_F2_Channel_10T1_F2_Channel_11T1_F2_Channel_12T1_F2_Channel_13T1_F2_Channel_14T1_F2_Channel_15T1_F2_Channel_16T1_F2_Channel_17T1_F2_Channel_18T1_F2_Channel_19T1_F2_Channel_20T1_F2_Channel_21T1_F2_Channel_22T1_F2_Channel_23T1_F2_Channel_24T1_F2_Channel_TD_01T1_F2_Channel_TD_02T1_F2_Channel_TD_03T1_F2_Channel_TD_04T1_F2_Channel_TD_05T1_F2_Channel_TD_06T1_F2_Channel_TD_07T1_F2_Channel_TD_08T1_F2_Channel_TD_09T1_F2_Channel_TD_10T1_F2_Channel_TD_11T1_F2_Channel_TD_12T1_F2_Channel_TD_13T1_F2_Channel_TD_14T1_F2_Channel_TD_15T1_F2_Channel_TD_16T1_F2_Channel_TD_17T1_F2_Channel_TD_18T1_F2_Channel_TD_19T1_F2_Channel_TD_20T1_F2_Channel_TD_21T1_F2_Channel_TD_22T1_F2_Channel_TD_23T1_F2_Channel_TD_24T1_F2_Channel_RD_01T1_F2_Channel_RD_02T1_F2_Channel_RD_03T1_F2_Channel_RD_04T1_F2_Channel_RD_05T1_F2_Channel_RD_06T1_F2_Channel_RD_07T1_F2_Channel_RD_08T1_F2_Channel_RD_09T1_F2_Channel_RD_10T1_F2_Channel_RD_11T1_F2_Channel_RD_12T1_F2_Channel_RD_13T1_F2_Channel_RD_14T1_F2_Channel_RD_15T1_F2_Channel_RD_16T1_F2_Channel_RD_17T1_F2_Channel_RD_18T1_F2_Channel_RD_19T1_F2_Channel_RD_20T1_F2_Channel_RD_21T1_F2_Channel_RD_22T1_F2_Channel_RD_23T1_F2_Channel_RD_24T1_Port_SetupT1_P1_Rcv_GainT1_P1_Rcv_TerminationT1_P1_DropinT1_P1_Xmt_Idle_PatternT1_P1_Line_ClockT1_P1_Xmt_YellowT1_P1_Xmt_BlueT1_P1_Framing_ModeT1_P1_HSR_Data_PathT1_P1_Fract_Data_PathT1_P1_D4_Data_PathT1_P1_ESF_Data_PathT1_P1_Channel_Mode_1T1_P1_Channel_Mode_2T1_P1_Channel_Mode_3T1_P1_Channel_Mode_4T1_P1_Channel_Mode_5T1_P1_Channel_NumberT1_P1_Ch_RDT1_P1_Ch_TDT1_P1_DACSD_Ch_RDT1_P1_DACSD_RD_DT1_P1_DACSD_Ch_TDT1_P1_DACSD_TD_DT1_P1_D4_Yellow_ModeT1_P1_D4_Sync_ProcedureT1_P1_ESF_Yellow_ModeT1_P1_Sync_With_CRCT1_P1_Sync_LengthT1_P1_Coding_TypeT1_P1_Voice_Codec_TypeT1_P2_Dropin_Rcv_GainT1_P2_Dropin_Rcv_TerminationT1_P1_PolarityT1_P2_Rcv_GainT1_P2_Rcv_TerminationT1_P2_Xmt_Idle_PatternT1_P2_Line_ClockT1_P2_Xmt_YellowT1_P2_Xmt_BlueT1_P2_Framing_ModeT1_P2_D4_Data_PathT1_P2_ESF_Data_PathT1_P2_Channel_ModeT1_P2_Channel_NumberT1_P2_Ch_RDT1_P2_Ch_TDT1_P2_D4_Yellow_ModeT1_P2_D4_Sync_ProcedureT1_P2_ESF_Yellow_ModeT1_P2_Sync_With_CRCT1_P2_Sync_LengthT1_P2_Coding_TypeT1_P2_PolarityT1_Sg_Channel_NumT1_SG_SpeedT1_SG_PolarityT1_SG_Channel_IdleNVH0 &.NA. f <<`>$HHyBBBB//ND$fXJJfBE./NCBB0L N^NuNVH <$.*n (nNB&@/+/NEPOJf N$@f*B`4*`,*`(BBG2Jg$S/*/NEPOJgXKJfL<N^NuNVH8Ѐ0;N$,,,,,,44444,Hxn `Hxn `Hxn `BBHy`B| e,Ѐ0;Npppppp"""""pHxn `RBBHy`\ 9_g6B| e<Ѐ0;N""""""22222"Hxn `Hxn NnXO`BBHyNBPO___B|e>Ѐ0;N J>HxnNB4_ B__ B_`|_`zHxHy_ENHxHy_N__`_HxnGNB4_ B_HxnEDtN_HxnNB4_ B_HxnN_`H 9_g6B| e<Ѐ0;N""""""22222"Hxn `Hxn NnXO`BBHy NBPO_I_G_B|gNmJg`|g`HxnNB4__ B_ B_XO`rHxnENB4_ B_HxnNB4_ B_PO`.HxHy_ENHxHy_N`B9_|gm|g`.|g|g` Hxmd` Hxmf`HxmiNDtXOJVD_B|mJmA_BE_BJfLtv(*JI_G_E6/NDtXO<WDg"DRRRLRKTJR|d`Btv*<Dt(K_IG_E6/"ENXO<WDg"DRB0/"ENXO<WDgR9_RMTLRKTJR|d`zxJf6tvE6/NDtXO<g TJR|d`Z(*`T*`*(`LtvE6/NDtXO<gTJR|dtvE6/NDtXO<gTJR|d____ E_ D_`__HxnEDtNXOJVD_HxnNXOJVD_J9_f __`HxnNXOJVD_HxnEDtNXO<WD`HxnN<WD`L<|N^NuNV/B0. reЀ0;N HvHxn NDtreЀ0;Nh <`<`Hxn NDtrg~m Jgr`vrgFr`Hxn NDtrgPlrfL<`FHxn NDtrg,lrf(<`"Hxn NDtgrg`B`<$.N^NuNVH88HxnEDtNXOJVD`BJ9_fHxn NXOJVD`Hxn!NXOJVD`Hxn"NXOJVD`Hxn%NXOJVD`B9`BJfvHxn&NXOxgmJg`"xgxg `B`<` < `< `Hxn,EDtNXOJVD`>Hxn-NXOJVD`?`DHxn'NXOJVD`Hxn.NXOJV`>Hxn/NXO<Jf<`?Hxn(NDtXOxgmJg `xg `B` <`<BHy`ENBHy`&N` I` G` BxgNmJg`xg`Hxn)N` `  @` @`&XO`jHxn*EN`  @`Hxn+N`  @`&PO`$HxHy`NHxHy`&NHxn0EDtNXOJVD`@Hxn1NXOJVD`A 9_f _`C`Hxn2NXOJVD`CHxn#EDtNXO<WD`DHxn$N<WD`ELN^NuNV/ HxDHy`Hy_NAD B9` BHy`ENBHy`&N` ` Hxn3N` `  @` @`&Hxn6EDtNJVD`Hxn5NXOJVD`CHxn4NJVD`$nN^NuNV/ / G`HxD/ Hy_NADPO.nEDtNXOJVDHxnNJVD`$n&nN^NuNVH<< . fHxm`HxmNDtXOJVD` A` BE` BJfJtv(*JI`&G`E6/NDtXO<WDg"DRRRLRKTJRrd`ltv*<Dt(K`&IvG`EF6/"ENXO<WDg"DRB0/"ENXO<WDgR9` RMTLRKTJRrdL<B9_tg*mJg `Ttg6`LA`Jg j`: :`2A`Jg z` J`A`Jg ` ZE_"HyN@~$NN|BHy/N@$.$nN^NuNV/Hx /9_"N@0BBPOJ9`gHxN@XORBJ9`g|c$.N^NuNVHx@/9_"N@0N^NuNVH0 E_"&Hx/N@0BBPOJg,HxN@XORBJ_"g|cJ_"g/N@L N^NuNV/ /Hx0Hy^BEAJNHx0Hy^BN y^$gHx/BN/N$.$nN^NuNV/ nB($y_C3y_y_y_y`$nN^NuNVH<<(nE`BrgmJg8`rg`J9`g`B`l/ NBXO* T"EB ЀЂ& PEK`/(<E:"DN J /Hy^G6NHjHy^NN>Jg0 E/"DN J /Hy^NHjHy_NRRrlt"EHx0Hy^BEAJNHx0Hy^BNL< .g<Hy NBXOJgJgN$:<ŕGBHjHy N//9`/9`N&HxN!HnN"vJg.Jg .> fHy NBEXO`$B@HyNPO` Hy7NXORJ~dJgB/9`NCPON LJl:HxN!/ N"vPOJfBHy*NB`B/HyYNBpLN^NuDs5000_dl: invalid start drive for download file (%d) Ds5000_dl: loaded hex file %s Ds5000_dl: couldn't load hex file %s (0x%04x) NVH< .<rg$brg6`^-| 8-| >-| D`V-| >-| 8-| D`<-| D-| 8-| >`"/HyNB`tB/HydNBPOJgfx*<v$N/*/NE/Hy`Hy`B/NC4g6//HyNB XJRrdJBWDpL fE_ fJg&BB9`B@N!0POBB9`B@N!0PO f9_[<c`Jg&BB9`B@N!dPOBB9`B@N!dL N^NuNVH< B9_znz mv(`(z mvx`Hy_EN&Hy_N(POB9`znz mt"`(z mtr`Hy`EN$Hy`&N"POB9_zeBЀ0;N,,,88ȁ/Ƃ`//Hx N //BNL *. ,.. BE/E!dN B@/NBEHEBE /NBF/E!0N B@/NBFHFBF/NL|N^NuNVHy`B/.N@HxUNB#`HyHxUNDHxNB N^NuNVHxNA/9`HxUNDN^NuNV/. N>Jg BBN!$.N^NuNVH0 . . /E!N/N@BBN/NL N^NuNV/ /.. /E!NBBN$.$nN^NuNV/ /.. @B@E!NBBN$.$nN^NuNVH8. HnBHxHx0N@*BBvNg /NT`HxN@XORB| cLN^NuNVH00G`B Rt?ĀE`BfHx `. A`"|H Bl@vfHx/9`N@0POHxUNDL N^NuNV/ "nE`B9`g @`R?<`/ N"HH$nN^NuNV/ $nHnHx2HxHx0N@*rg.fC`B9`fB` @`R?<r$nN^NuNV/ N,N< < fA`At <R| dB` tx*|,6|.< *<WrJgHA<  U|e6Ѐ05N "(30x`(K` 3` (K`0XPR|dB`xtJg Arc RbR|d`btxJg "ҁЁAR|d`8trJg APR|d`* J"d<HHLJg 9`fJ9`f B 9_f<J9_fB9_zg lTzg`L9_<g<f6`0B9_zmzozg`zf  `Jg:HxNDJ |B@NCHx N@ BCBNBBHxNE|LB` <`//(/NAa8B`vHya B0(/Hya N@a=B`NHyaB0(/HyaN@aa?N^NuNVaHaDa8a9a:a;a<a=a>a?N^Nu0.0000000.000OUT OF SYNCOFFNV|H88B&<S/Hxu1ED>NB$<S/Hxu2NB/Hxu3N B/Hxu4NB/Hxu5NB/Hxu6N B/Hxu7NB/Hxu8NB(<S/Hxu9N B/Hxu:NB/Hxu;NB/HxuNB/Hxu?N B/Hxu@NB/HxuANB/HxuBN B/HxuCNB/HxuDNBHyTHxuHN BHyTHxuENE~/ HxqSGC N/ HxuFID8N/ HxqTN .HxuGNLdN^NuNVH?BAaHBAaDBJgHxu6Hxu5HyaNZ JgHxu4Hxu3Hya0NZ JgHxuHxu=HyaHyaNZ0 JfJgHxu:Hxu9Hy`HyaNZJfJgHxuBHxuAHyaHya NZ0 JgNYn0 JgNYJf,Jf(Jf$Jf Jf0 JfJf0 Jf 0 Jf0 JgND\LBAaHBAaDBJgHxu6Hxu5HyaNZ JgHxu4Hxu3Hya0NZ JgHxuHxu=HyaHyaNZ0 JfJgHxu:Hxu9Hy`HyaNZJf0 JgHxuBHxuAHyaHya NZ0 JgNYn0 JgNYLPO.uHNCN^NuONOFFNVJ9aBg BHyY`BHyYHxuEND>PO.uENCN^NuNVAaBJWDB9aDNYND\N^Nu0.00000NVH0 "n n 4.6.JfJg Jf.Jf(BHyZ?BgED>NBHyZ?BgN`@HxHxHnE/ // NB:B/ ?BgED>N BHn?BgN ?BgECN?BgNL N^NuNVH0 6.4.HxHxHnE/ /.NCf .0g |*|*B/ /ED>NBHn/N/ECN/NL N^Nuget_tim_setupset_isdn_speaker_chanset_tim_setupNVH80(.BEJg8G/NB"$XOg/NB///NB^<PKPJJfpL N^NuNV nB0r>gmr!g `&r@g`/N\,`/N\`/N\\`0<N^NuNV n0(2<@d0?Bg/(Hy_NADpN^NuNV n"h g0<`*0(2<@d0?BgHy_/ NADBN$vB@N^NuNVH 0 n9_*<g2<g,<g& 9_5g 9_yg_<c (<c <`HxHy_Hy_&GADN Jg _B9_S__BHy_ENBHy_NB @_| |$__E`B9_grg`6HxD/ Hy_N `"HxD/ Hy_N _r_s`BN$vpL N^NuS6G6!6G6G 6G F6GF6GF 6GS\6G [S6G6@6G6G 6G F6GF6GF 6GS\6G [S6G6>6G6G 6G F6GS\6G [ "&*.26>BFJRVZ^.F^vH`xN4L6Nf~Ϋޫ2Dpʬ֬ެ $:z"*2:BPΰ6>FṞԱPX`n"*2:BJRZbĴҴ޴,2>DPVfڵ$0BHN\fxԷ&,:@N\bpv¸HNV^fn Z`hnv$. (.6Bb (08@jpxнؽ&0Bxľ̾Ծܾ BNv~ȿBP.Z`p"bT\dlt| $,J^ 04&.4JT^rVfl&,2Tltf|zFZ`(:DHLPTX\`dhlptx| *8FTbp~"&*.26:>BFJNRVZ^bfjnrvz~       " & * . 2 6 : > B F J N R \ ` j n x |     $ . 2 < @ J N X \ f j t x     * . 8 < F J T X b f p t ~    & * 4 8 B F P T ^ b l p z ~    " & 0 4 > B L P Z ^ h l v z ",0:>HLVZdhrv (,6:DHRV`dnr| $(26@DNR\`jnx| $.2<@JNX\fjtx *.8<FJTXbfpt~ &*48BFPT^blpz~ "&04>BLZhvz&*2^L@JV^fn ", V`&,4>Frx@H^r $>Fpz bt 0:FNdt|<FLT`t(@H\bhRx0L`D^rPV\jv&*@\p.@Vb>DJP:>BFJNRVZ^bfjnrvz~">HPXbjr|,Vd"FXf$  ((>DJr"*V^djpv| (BJv~$>l"(06t"28>FLnz&: . &,06:@DJNTX^bhlrv   & , 2 8 F L R X h n t z                          6 > L Z h             $ * 2 H N V ^ f z          x~ @FLR$8D\j"*8L &.6@HP\n$4@:L 4<JPXt^hx:Dj T <f"2@fv(6n~( ^ z     !J!!!!""*"V""""""" #0#6#B#R#X#^#v############$$<$^$h$$$$$$$$$$$$%%2%P%Z%`%|%%%%%%%%%& &&2&@&^&j&t&&&&&&&&''$'0'B'H'N'j''''''''' ($(0(J(X(d(v(|((((((() ))")*)4)<)L)V)v)~))))))))*"*N*|************+,+8++,-->-\-p----.. ...H.f.."Bb"Bb"Bb ".:FR^jv&*26>BJNVbftx(,:>LPbpt$(6:dh|&,8<P`frv2BRbhtx2Rlt ( , 4 8 @ D L P X \ d h p t | !!!(!4!B!F!T!X!f!j!x!|!!!!!!!!!!!!!!" ""","0"B"P"T"f"x""""34""""""## #0#@#F#R#V#j#z###########$ $$.$4$@$D$X$h$x$~$$$$$$$$$$$$%% %0%@%P%`%f%r%v%%%%%%%%%%%%&& &$&8&H&N&Z&^&r&&&&&&&&&&&&&' ' '0'6'B'F'Z'j'p'|''''''''''''(((*(.(B(R(X(d(h(|((((((((((())))*):)@)L)P)d)t)z)))))))))))))*"*(*4*8*L*\*b*n*r************ +++ +4+D+J+V+Z+n+~++++++++++++,,,,,2,>,B,V,f,l,x,|,,,,,,,,,,,---&-*->-N-T-`-d-x------------...&.6.<.H.L.`.p.v.............//$/0/4/H/X/^/j/n////////////0 00000@0F0R0V0j0z000000000000111(1.1:1>1R1b1h1t1x11111111111222"2&2:2J2P2\2`2t2222222222222 33"32383D3H3\3l3r3~333333333333 44 4,404D4T4Z4f4j4~444444444445555,5<5B5N5R5f5v5|55555555555566$6*666:6N6^6d6p6t666666666666 777"767F7L7X7\7p77777777777778 88.848@8D8X8h8n8z8~88888888888999(9,9@9P9V9b9f9z999999999999:::(:8:>:J:N:b:r:x:::::::::::::; ;&;2;6;J;Z;`;l;p;;;;;;;;;;;;<<<<2<B<H<T<X<l<|<<<<<<<<<<<<===*=0=<=@=T=d=j=v=z===========>>>$>(><>L>R>^>b>v>>>>>>>>>>>>? ??$?4?:?F?J?^?n?t????????????? @@"@.@2@F@V@\@h@l@@@@@@@@@@@@A AAA.A>ADAPATAhAxA~AAAAAAAAAAAABB&B,B8BM^M~MMMMMMMMMN,NYBYJYNYVYZYfYrY~YYYYYYYYYYYYYYYYYYYYZ ZZZ"Z&Z2Z:Z>ZFZJZVZ^ZbZnZvZzZZZZZZZZZZZZZZZZZZ [[[["[.[6[:[F[N[R[^[j[r[v[[[[[[[[[[[[[[\\\*\6\B\N\Z\f\r\~\\\\\\\\\\\] ]]]&]2]:]>]J]V]^]b]n]z]]]]]]]]]]]]] ^^"^.^:^F^R^Z^^^j^v^^^^^^^^^^^____&_*_8_<_J_N_`_n_r__________``"`&`8`J`\`n``````````a"a4aBaFaXaja|aaaaaaaaa bb0bBbTbbbfbxbbbbbbbbcc,c>cPcbctccccccccdd(d:dLd^dpdddddddddddee$e6eHeVeZele~eeeeeeeeef f2fDfVfhfvfzffffffffg gg.g@gRgdgvggggggggghh*hkBkPkTkbkfktkxkkkkkkkkkkkkkkllll(l,l:l>lLlPl^lbltllllllllllllllmm(m:mLm^mpmmmmmmmmmmnnn n$n6nDnHnVnZnhnlnzn~nnnnnnnnnnnnnn ooo o2o@oDoRoVodohovozoooooooooooooo ppp.p@pjp.NnĀ΀ր>^ltЁ0PpЂ0Ppƃ"Bb„"Bjʅ *Jjʆ؆<\|܇<\|܈*2NnΉ.NnʊҊ֊ފ*6BNZfr~Ƌҋދ &2>JVbnzŒΌڌ ".:FRZ^jvƍʍҍ֍ލ&26HVZhl~ƎԎ؎  .2DRVhvzЏԏ *.<@R`drv̐А&*8<JN`nrȑ̑ڑޑ"&8FJ\jnȒڒ "04FTXjx|ē֓ 0BTbfxΔҔ(,VZzڕ:Zhpzʖ  <\|ܗ<\|ܘ<\jrΙ.NnΚ6Vv֛6VvȜ(Hhȝ(HhȞ֞ޞ:Zzڟ:Zv~ʠ֠*6BNZfr~ơҡޡ&2>JVbnz¢΢ڢ ".:FR^rv~ƣʣңޣ*8<JN\`rȤ̤ڤޤ"&8FJX\n|ĥȥ֥ڥ "04FTXfjx|ĦҦ֦ ,0>BTbftxΧҧ,:>P^btΨܨ$(:HL^lpʩܩ$26HVZlz~ƪԪت NNNNNNN(O0OvOOOOOOPPfPlPPPQ`QjQtQQQQQQQQQQQRR"R.RDRPR^RlRvRRRRRRRRRRRRSS SSSS$S*S0S6S]D]N]\]p]x]~]]]]]]]]^g^^:HVZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZǚ68TCZ?/(89\9989 c6.$8zBZ*Z92 99<9vcn;9CB.<<<<<?@V@̦ͦΦY@ Pe@PPPk@o@r@u@x@{@~@@ 8> @@    @ 8%@@   @  @ 8%@8 @%P P88% A=P1KA̦Φ̦ 8>eA̦̦ uA̦̦ Aͦͦ AͦA G _JBrdž]b8-eB"PP8фPPP B$PP8ф8%CPPP 8҄ C 8%C܂܂ 8 8% l FDX l HDX m  m ON m( OFF m+ m/2L\ mKmd 1000 my 10000 mPATTERNmmSECONDS m BITS mBLOCKS m CONT m m4 B?m 'n 1000 n% 10000 n+100000 n2PATTERN m n9  nY (ny(8 + n 6 n6 n6 n6 n @9n1n)n! nn"n.n:nF @Rnnoooo#o1 o= oJ oJ oJ oM oc of^6jv8bj :  N n   > Ff @qHovSINGLE owDUAL PTo o V.35 o 530 o 232 o# o $8(6: EXT 0o INT oHoh(p  EXT o INT o SPLIT p&o(p ,p/9pN ON pmSWITCH pr OFF pyLp~| ON pmSWITCH pr OFF py!p ON pmSWITCH pr OFF py,p*8 ON p OFF pFpf ON p OFF pp NO p YES p'p8q     % 4 */   < J   X  ^q!!$!$!!  "#"  $#$  q]%%'%'%%  '&'! !q(*(*(((!@!N*)*!\ !bq+-+-+++!!-,-! !&r.....!!/! "0rM1"0"4 V.35 2o 530 2o 232 2o"B# r"r EXT 4o INT 3o"r"(r6555566"" 7E 6r FF 6r#r#"NORMAL 7rINVERT 7r#<#s#\ NO p YES p#v s7# NO p YES p#ov# @9#sM1#sU)$s]!$se$sm$&su$2s}$>s$J @$Vsss$zss!ss!s!s4tt t)t$t(t;tN<tY,%"t\th%:tk%Ftt%^t%jt tk %t %t t %t %t  t %t %t t u$ &%uF &uU0uX&&u] 5&*ub+ t&Bul&Nu/us&rus!suu u$b$n$.@0$n0$ $ $  $   $, $ $ $> $l % %%.%R %v % % % $% (& ,&6 0&Z 4&f 8 P d l ! !" "$ #$ $%!%'!&'! '*!T()!h)*!p*-!+,!,-!-!./"/"01":1 2&~"x2!4&"3"4&"45"5#6&#(6$7&#b7%&#8&# @m`&90.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000OFF00 IN SYNCtUU100010055+6666'~96009600960096000002500100100000100109600vjlead_control_init/NVH 0&n$n |*HnN1 @//N5R @*BBBHn/ G5NB/ N2 B$<."// N .N2B// N/ N2TB// N.N3xL N^NuNVHxmaNDt<WH0@ DN^NuNV/ /HxEDtNBXOJg <VDBJgHxmN<WDt$.$nN^NuNVH8&nNc$KN0N0j@N0@HkHxqLIC NHkHxqMNN0@N0@HxqPE1xN'@HxqQN'@N14@"HxqSN7@$HxqTN7@& Hk(HxqUNHkHxqVNHk,HxqWNHkHxqXN Hk0HxqYNLN^NuNVHxqINDtreBЀ0;N8 &,2B`(<`"<`<`<`<` <`<N^NuNVHxqJNDtg rf<`BN^NuNVHxqKNDtg rf<`BN^NuNVHxqNNDtrg lrg` <`<`BN^NuNVHxqONDtrgmJg `rgr`B`<` <`<N^NuNVHxqRNDtrgmJg `rgr`B`<` <`<N^NuNV/ E/ B0. /NC/ NA8$nN^NuBERTDTEBERTDCEUnk modeNV/ $nHxNDtrgrg `A1`A1` A1`Jf $nN^NuNV/$.NBB//N5$.N^NuEVENODDSPACEMARKNONEUnk parityNVHxNDtXOre<Ѐ0;N "* <20`& <25` <29` <2?` <2D` <2IB//.N5N^Nu8765Unk # bitsNVHxNDtXOrgmJg`.rgrg` <2` <2` <2` <2` <2B//.N5N^NuFDX/HDX/Unk duplex/SYNCASYNC/ISOC/Unk format/NVH0 $.HxqJNDtXOBgrg ` <3B` <3G` <3LB//E5NHxNDtrg$mJg`Nrg$rg(`@BHy3X/N`BBHy3X/N`4BHy3]`BHy3d/N/N4`BHy3j/N5 HxqINDtXO<g]<bBHy3u/N5/HxqMN4L N^Nu12Unk stop bitsNVHxNDtXOgrg ` <4` <4` <4B//.N5N^NuNV|/ /$. E~/ B0. /NC / /N6 $.t$nxN^Nu635112047409532767ALT 1,0FOXUSERUnk BERT patternNV/ $nHxqINDtreZЀ0;N (08@HA5`BA5`:A5`2A5$`*A5)`"A5/`A57`A5;` A5@`Jf $nN^NuNV//"n n 6.Jgt"ҁHC3RJf$.&.N^NuNVH8 "n$n 0|Jg$xvBB Ѐ6"ҁ3RRHHbLN^NuThe Dual-Port V.35 package is here! interfacebert_setupbert_resultsD V.35 BERT NVH 8Hy6fNBINB(HyHy*NDHy6Hy*HxECBNHy6HyHxN .6HyHxNHy6BHxHx Hx HxEA>N$$<6/BHxHx Hx HxN/BHxHxHxHxN0NjHx@HxEV>NG |BHxNJg (TAh`2(TAhBBBBbBfBjBnBzN:HN9pLN^NuThe Dual-Port V.35 package is gone! NV/ NgHxEANHxNHxNBHxHx Hx EANBHxHx Hx N(BHxHxHxN/9NBFHy8.NBp$nN^NuNV <N^NuNVJ9gJ9fNg` /.NhfN^NuNVJ9gJ9fNSp`NjN^NuNVJ9gJ9fNg` /.NhfN^NuNVJ9gJ9fNg` /.NhfN^NuNVJ9gJ9fNSp`NjN^NuNVNuN^NuNVpJ9gHxmaNDtJWHHDN^NuNVpN^NuNVN^NuNV/ / GJVDr€/HxmEFNPOJVDr€/Hx%NHxHx(N$n&nN^NuNV|/ / |~=|G~/ HxmpED8N=|/ HxmqN=|/ HxmrN=|/ HxmsN=|.HxmtN=|/ HxmuN=|/ HxmvN=|/ HxmwN=|.HxmxN=|/ HxmyN$nt&nxN^NuNVH88&nN9JgHxmeNDtXOVDC <f HkHxmgECNHk HxmhN`$$ T/HxmfNCHxHk /NADHxNDtXOJVDJf JfB`HxEDtNBXOJg<g HxN<f<Jg<<Jg<`HxmcIDtNXOJVDHkHxmdECNHxmN JVD@ Hk HxmNHxN JVDHxNBXOJg<g HxN<f<JgJg <<`B<`B<CC @ @LN^Nud_dce_framed_dte_framed_rcv_framesend_d_framesend_d_frame_ilNVH8 $n|&B*%B*(N9JgHx NDt<WD@6p`HyN>HyN>JN.POJfHx NDt<WD@6B`BJ9fJ9g J*'f<BJ9fJ9g *'f<JgJg|&`B*&`Jg|&`|&A%BJfJg<A(BJ*#gJVDN.@6<xLN^NuNVH 0&nBAJg $H/NBXOJVD SPJPKJfHHL N^NuNVH 0&nBAJg $H/NB"XOJVD SPJPKJfHHL N^Nub2ABAHA HA0 2B@H@Nu B@H@HABA"BtҁрbRAQNu /"//$ B$HBHAЂH@B@ $Nu /"//$"a$Nu /"//$"at $Nu /"//$lD"pJlDF @aL4gD$Nu /"// @p$lDF"lDF @a$gD $Nuctl_eiaNVH08&.HxmaNDtXOrgXEJgNIG /NB"$XOg$ g /NBXO` TN///NB^ JfL N^NuNVH 0HyEBN$HykN/Hx/GBNHyN/Hx/N L N^Nu  #&hh=t=t&\$u &\$t û&\$@uû&^㐐&^&^$&^&^&^&&h&&&PuX&^㐐&^&^$&^&^㐐&^'&^&^%&^&^&^&^&^ &^&^`~u\h&^㐐&^&^$&^&^㐐&^&^ û PTaϸûNV/. HyNBLN^NuNVH00&n. HxmaEDtNXO<fB`B-n -nB.B.HxNXOBvgvg`|<` |<B/NG,XOvgvg`HnNH$&`HnNM &`NL N^NuL1_hdshkNVH08$.&n HygNB&NF/Hx/EBN/Hx/NI/Hy?NBL$HnHnB/NC/.HyPEAN/.HyPN <J+ g <@HyD/BB/NC$/NC?BgB//+/NCXO.B0./B/N@,NDNDn .L N^NuL1_leadNVH88(.&n /+HyMNBLHyIBN&NQF/Hx/EBNHxNR/Hx/N(NQ/Hx/NHxNS/Hx/NJg*HyN$/Hy/NA/Hx/N`BHx/N HyE$HxBB/NC$HnHnB/NC/.HyPNA .NC?BgB//+/NCXO.B0./B/N@NDNDn .LN^NuNVH0 &.$n HyNB$/Hy/NA/*/NCBt//Hx(ND .Hx(NDL N^NuNV/ /HyEBN$HyN/Hx/NB $.$nN^NuNVH> . HxmiEDtNHxmjNHxmkNHxmlNHxmmN<fJf 9`9Jg8`@<fBJf 9`9Jf 9`9Jf 9`9L|N^NuNV/ EHxmbNDtrgmJg`r`  `$nN^NuNVH8 (.HxmiEDtNHxmjNHxmkN <g<g /NH`2/NIT`(<g /NJ`<g /NK`/NLLN^NuNVH00&.HxmoNPXOJ@fHyNB//NDp`rHy}GBN$HyWN/Hx/EBNHxmoNPx/Hx/N .eN/Hx/N/NO/Hx/N./NDL N^NuNVH08&.HyGBN$HyWN/Hx/EBNHxmoIPxN/Hx/N .@NN/Hx/NHxm{N/Hx/N.eN/Hx/N/NO/Hx/N./ND$//NF L N^NuNVH08&.HyIBN$HyWN/Hx/EBNHxmoGPxN/Hx/N .NR/Hx/NHxm{N/Hx/N.eN/Hx/NHxm|N/Hx/N.NS/Hx/N/NO/Hx/N./ND$//NF L N^NuNVH08&.HyIBN$HyWN/Hx/EBNHxmoGPxN/Hx/N .NR/Hx/NHx@NN/Hx/N.m{N/Hx/NHyeN/Hx/N.m|N/Hx/NHxNS/Hx/N.NO/Hx /N//ND$//NF L N^NuNVH08&.Hy9IBN$HyWN/Hx/EBNHxmoGPxN/Hx/N .NR/Hx/NHx@NN/Hx/N.m{N/Hx/NHyeN/Hx/N.m|N/Hx/NHxNS/Hx/N.@NOf/Hx /N/NO/Hx /N./ND$//NF L N^NuNVH8 &.HxmiEDtNHxmjNHxmkN <g$<g /NH$`b/BNM$//`J<g/NH$/B`*<g/BNM$/B`/HxNM$//NE,//NF LN^NuNVH80(. . HyuGBN&HyWN/Hx/EBNHxmoNPx/Hx/N$JgHyN/Hx/N`BHx/N HxNR/Hx/EBNHxm~GPxN/Hx/N.eNB/Hx/NHxmN/Hx/N.NS/Hx/N/NO/Hx /N./ND$//NF L N^NuNVH00. HycGBN&/Hy /NAB/NP/Hx/EBN .N/Hx/N L N^NuNVH00. HyGBN&/Hy /NA//NP/Hx/EBN .N/Hx/N L N^NuNVH0 $nJ* gv`4/*NAV&XOg$$HyWNB&/Hx/NB| L N^NuNV//B0. /NP6XOg"HyNB$?BgHy/NA`t $.&.N^NuNV//B0. /NP6XOg"HyNB$?BgHy/NA`t $.&.N^NuNV/ E/ B0. /NC/ NA2$nN^NuNVH8 . .HyNB$BCHy /EANBDHy /N LN^NuNVH00HxmzNP*&XOg~HyGBN$HxNN/Hx/EBN/Hx/N.HxNP/Hx/NHyIN/Hx/N .7N/Hx/N` HxNN$ L N^NuNVH00Hxm}NP*&XOgxHyGBN$HxNOf/Hx/EBN/Hx/NBHxNP/Hx/NHyIN/Hx/N .7N/Hx/N` HxNOf$ L N^NuNVH00. Hy'EBN$BCHy/NAHykN/Hx/GBN.N/Hx/N L N^NuNVH00. HyIEBN$BCHy/NAHykN/Hx/GBN.N/Hx/N L N^NuNV/ HxmaEDtNXO<g6HxmnNXOJfAB@BNV>` NV $nN^NuU.."F F&NVNA3ByN^Nu>Mux Setup 1: %04X NVH004. 6.GB0/NCXOERC4?BgHyTNB |0B0/NEXL N^NuNVB09N^NuNVNA3ByN^Nu>Mux Setup 2: %04X NVH004. 6.GB0/NCXOERC4?BgHyTNB |0B0/NEXL N^NuNVB09N^NuNV |N^NuNV |0N^NuNV n0XN^NuNV |0N^NuNV | |N^NuNV. |N^NuNV n0.X0N^NuNV. |N^Nu>MUX Disp %04X NV/4. ?BgHyUNB |0$.N^NuNVNA3B9N^NuNVB9N^Nu>TIM C: %02X NVH00. .GB0/NCXOEBBHyV0NB |B0/NEXL N^Nu635112047409532767ALT_1010FOX_MESSAGEMESSAGE_BUFFERFDXHDX100010000PATTERNSECONDSBITSBLOCKSCONTINUOUS100000BERT_PatternHandshakingResyncPreambleSync_PatternBlock_SizeTest_LengthTest_SecondsTest_BlocksTest_BitsError_Inject_RateError_Inject_Rate_ExpMessage_Line_1Message_Line_2Message_Line_3Message_Line_4Message_Line_5YESNOONOFFFD1FD2HRDMULTIPLEEVENODDSPACEMARKNONEPULSETONE()LayerV.35530232SINGLE_PORTDUAL_PORTONSWITCHOFFEXTERNALINTERNALSPLITNORMALINVERTED7EFFInterface_ModeV_P1_ConnectorV_P1_Line_ClockV_P1_Clock_SpeedV_P1_Lead_Line_ClockV_P1_Lead_Clock_SpeedV_P1_Lead_DTE_Clock_SpeedV_P1_Lead_DCE_Clock_SpeedRTS_StateCTS_StateCD_StateDTR_StateDSR_StateMaintain_ControlXmit_DelayT1_ValueT2_ValueT3_ValueT4_ValueT5_ValueT6_ValueV_P2_ConnectorV_P2_Line_ClockV_P2_Clock_SpeedV_P2_Idle_CharV_P2_PolarityV_P2_NRZINVH0 &.N[A f <<`>$HHyZ(BBBB//ND$fXJJfBE /NCBB0L N^NuNVH <$.*n (nNB&@/+/NEPOJf N[$@f*B`4*`,*`(BBG Jg$S/*/NEPOJgXKJfL<N^NuNVH8<*n/ NBv<B..NDtXOre"Ѐ0;N  <` B<`BBf"B8//8HxBHy[NA`d&m<BIE k\H$PHy\/ NPOJf/ Hn/ N^6&@ Jg`*Hy\ / NPOJf./ Hn/ N^6&@ JgJ.f`Hy\/ NPOJf/ Hn/ N^6&@ Jgv`(Hy\/ NPOJf(/ Hn/ N^6&@ JgJJ.f@`:Hy\/ NPOJf(/ Hn/ N^6&@ JgJ.f`BJgg +g&@`BJfBBBCHy\E/ ND/ NBXL<|N^NuMissing On/Off SelectionNVH8&n "n(nA$Pg$ j h =f$jg / Naf`B)//)HxBHy^NA LN^Nucurrent_eia_leadsprevious_eia_leadsevar_eia_changedNV/ BHy^Hx EANBHy^Hx NBHy^HxN$NB @ PTHND$nN^NuRTSCTSDSRDTRCDRIUAMissing On/Off Selectionevar_eia_changed && ((previous_eia_leads ^ current_eia_leads) & 0x%x) ((current_eia_leads & 0x%x) == 0x%x)NVH<8(nBDBEB$lg4GEHy_2 j\H/NPOJf4<`Hy_6 j\H/NPOJft@`Hy_: j\H/NPOJft`pHy_> j\H/NPOJft`THy_B j\H/NPOJft `:Hy_E j\H/NPOJft` Hy_H j\H/NPOJf4<`<JfX$jg j h =f$jf B,//,HxBHy_KNA`V/ NafXOJfBB$jgJgNB$@B4/Hy_d/ GDN?Bg/Hy_Hj,N%LXLr ‚/HxNE| yg$.$nN^NuNVB9rgmJg `rg`Nh`Nh`Ni2NjNgNiNirHxNeN^NuNV0<@ 9f0<@By33UN^NuNV0BBHxNE|$.&.N^NuNVB 9f< 9f 9fB@HxNE|N^Nu STATUS INFORMATION |||||||||||||||| RATE TOTAL STD BERT PARAMETERSTEST SECONDS:EBLOCKS SENT:BLOCKS RECEIVED:BIT ERRORS:E-BLOCKS IN ERROR:ERROR-FREE SECONDS:NUMBER OF FAULTS:ERROR INJECTION:INJECTION RATE: PATTERN SYNC STATUS: F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** BERT Statistics ** 63 511 2047 4095 32767 ALT 1010 FOX MESSAGEMESSAGE BUFFERSelect BERT Pattern:FULL DUPLEXHALF DUPLEXSelect Handshaking MethodONOFFResynchronize After Faults?Enter Preamble Pattern: Enter Sync Pattern: 1000 10000 PATTERNSelect Block Size:SECONDSBITSBLOCKSCONTINUOUSSelect Units For Test Length:Enter Test Length: ______ Seconds.Enter Test Length: ____ Blocks. 1000 10000100000Select Test Length (# Of Bits):Enter Bit Error Injection Rate:Enter Error Injection Rate Exponent: E-Msg Text: F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** BERT Setup **Pattern:Handshake:Resync:Preamble:Sync Pattern:Block Size:Test Length:#:Error Injection Rate:E-Message Buffer: SINGLE DUAL PORTSelect Interface Mode V.35 EIA-530(449)EIA-232/V.24Select Port 1 ConnectorEXTERNALINTERNALSelect Port 1 Line ClockEnter Port 1 Clock Speed: SPLIT Enter Port 1 DTE Clock Speed: Enter Port 1 DCE Clock Speed: ONSWITCH OFFSelect RTS State Select CTS State Select CD State ONOFFSelect DTR State Select DSR State NOYESMaintain Lead Levels Upon Exiting Run?Enter Xmit Delay: Enter T1 Value: (T1 = RTS On to CTS On) Enter T2 Value: (T2 = CTS On to Start Xmit)Enter T3 Value: (T3 = End Xmit to RTS Off)Enter T4 Value: (T4 = RTS Off to CTS Off)Enter T5 Value: (T5 = CD On to Start Xmit)Enter T6 Value: (T6 = End Xmit to CD Off)Select Port 2 ConnectorSelect Port 2 Line ClockEnter Port 2 Clock Speed: 7EFFSelect Port 2 Idle Char NORMALINVERTEDSelect Port 2 Channel Data Normal Or Inverted (MIL)Port 2 NRZI Selected? F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** V.35/530/232 Dual-Port Interface Control ** Mode: Connector: Port 1Clock: Speed: Speed DTE: DCE: Switched Leads: RTS:CTS:CD:Static Leads: DTR:Static Leads: DSR:Maintain: msXmit Delay: RTS CTS DATA TD CD RD Port 2Idle Char: Channel Polarity: NRZI: NVNzN{bHxhHyuNBN^NuNV/ / $n &nJ. f/ / Hy-ND`Nw$w&vD$n&nN^NuNV0. |fHxND0<N^NuNV/$.Nv/Nw(NDhBN@$.N^NuNVHxHxHxNAN^NuBERQNVHnBHyvN@H Jf&HxNC~/.NwNzN~N9N^NuNVHxHxHxNAN^NuNVNDhN^NuNVH8(nHnBHyvN@H JfHxNC~/.NwN|G/ BHxHxE@*Nr(.BHxHxN.f*HxNC~/.NwN|/ BHxHxN`LN^NuNV/ /$.B.E/ Hx2B/N@Nrf&HnBHxBN@*.g(|` JfHn/ Nx^PO` r6gNJ.g$.$nN^NuNV/ n$n Sr eЀ0;N4Xnf@A8JWD:`\Hy/(HyNA/B`8HyB0(/HyN@1B`Hy&B0(/Hy&N@5B`HyB0(/HyN@0B`HyB0(/HyN@4B` <//(/NA.B`vHyB0(/HyN@3B`NHyB0(/HyN@2B`(B9<`<>B` `N$nN^NuNVB9<>B98:NzBN^NuNVBBBBB&B*BB"BBBB BBBB./012345N^NuNV>:./012345N^Nu0.0000000.000OUT OF SYNCOFFNV|H88B&<{B/Hxu1ED>NB$<{I/Hxu2NB/Hxu3N B/Hxu4NB/Hxu5NB/Hxu6N B/Hxu7NB/Hxu8NB(<{L/Hxu9N B/Hxu:NB/Hxu;NB/HxuNB/Hxu?N B/Hxu@NB/HxuANB/HxuBN B/HxuCNB/HxuDNBHy{RHxuHN BHy{^HxuENE~/ HxqSGC N/ HxuFID8N/ HxqTN .HxuGNLdN^NuNVH?BA:BJgHxu6Hxu5HyN JgHxu4Hxu3Hy&N JgHxuHxu=HyHyNj0 JfJgHxu:Hxu9HyHyNjJfJgHxuBHxuAHyHyNj0 JgN0 JgNJf,Jf(Jf$Jf Jf0 JfJf0 Jf 0 Jf0 JgND\LBA:BJgHxu6Hxu5HyN JgHxu4Hxu3Hy&N JgHxuHxu=HyHyNj0 JfJgHxu:Hxu9HyHyNjJf0 JgHxuBHxuAHyHyNj0 JgN0 JgNLPO.uHNCN^NuONOFFNVJ98g BHy`BHyHxuEND>PO.uENCN^NuNVA8JWDB9:NND\N^Nu0.00000NVH0 "n n 4.6.JfJg Jf.Jf(BHy`?BgED>NBHyf?BgN`@HxHxHnE/ // NB:B/ ?BgED>N BHn?BgN ?BgECN?BgNL N^NuNVH0 6.4.HxHxHnE/ /.NCf .0g |*|*B/ /ED>NBHn/N/ECN/NL N^Nu "&*.26>BFJRVZbfjnz~@.N.f.r.z....6/B/J/T/x////111$22222222 333$3,3:333333444*484@4f4n4z444445555555555666666777*707<7`7777777788 8888\888888999"9*989@9H9T9b9j9r9~9999999:;<="=*=0=8=b=j=~===???@"@:@4?Mg}9uIWc'Ik7WeLCCCC0D>DdDDBENE^ExEEEEEFF GrG|GGGGGGGG`HjHzHHHHHHHHII.IFIbIrIIIIIIJ$J4JPJlJJJJJJK KLZLnLLLLLMM\MjMMMMMMMMN(NRNlNNNNNNO0OJOtOOOOBFJNRVZ^bfjnrvz (,6DR`dnr|   $ ( 2 @ D N R \ ` 8Z>ZRZzZZZ[\\\\]4]L]`]x]]]]r^^^^__`0`L`f````a0aFa~aaa  6 X z   0 6 B R X d   $ 0 @ F R x  . 4 @ P V b r x ".Pv BdBcHcXctcccccddddd d$d*d.d4d8d@dVdjddddd`erexeeeeeeeefvfffff>gggggggggh$h*h8hNhnhhhhhhhhhhhhhhii"i*i>iPi\ibijiziiiiiiiij.jBjPjnj|jjjjjjj kkp0Pp0Pp0Pp ,8DP\ht $04BFTXfjx| 0>BPTbfx26JZjz .4@D^f 06BFf :B^~&*26>BJNVbfr~"&48FJ\jn|"4FXj *2<DTdjvz$DXhx~ ":BRbhtx L T ` h !!!!8!P!X!d!l!!!!!!!!!" "("6">"N"^"n"t"""""""""""##$#0#4#H#X#^#j#n#############$ $$$$"$*$.$6$:$B$F$N$R$Z$f$j$v$$$$$$$$$$$$$%%%*%2%6%B%J%N%V%Z%f%n%r%z%~%%%%%%%%%%%%%%%%%& &&&&&&.&2&:&>&J&R&V&^&b&n&z&&&&&&&&&&&&&& ''*'.'<'@'N'R'`'d'r'v''''''''''''''((((&(*(8(<(J(N(\(`(n(r((((((((((((())&)8)J)\)n)))))))))*"*4*B*F*T*X*f*j*|*********.uuuv(v.v4vvv~vvvvvvX^tz"(.JPVrx~€̀ր>LRZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZǸ LMFONNNODNNBqv=nVlpqNQXOOPKKPPPPPS4YZ ZZ"Z.Z:RMSgSyW]pzjy;y%&'(ł`y?y@yAyB)*+,Ŋr yCyDyEyF-./0ŒyGyHyIyJ2345Śr!yKyLyMyN6789Ţ`@yOyPyQyR:;<=Ų`ySyTyUyV>?@Ažyyyy `y!y"y#y$ y%y&y'y( y)y*y+y,!y-y.y/y0`Ay1y2y3y4`y5y6y7y8 !"ABCDDCE:DTE:l>lFlNlUlXl\lalflllullllllllllllllllllllllllllqHqIl0qKqPmmamboJmbmcoYmcmdogmdmeo|memfomfmgo,mgmho,mhmio,mimjomjmlomkmoo,mlmpommmqo,mnmrp momspmpmtp#mqmup5mrmvpJmsmypamtmzpw,mumkpmvmmpmwmnpinterface_g703_setupH^{D|0}`|wd{X|D}t|wx{|}}$w@ ' '   '   =<?/    '  ' '+ 7 *)     %% 0  % D +V+g=+x    %%% * @9Z1f)r!~ ( @0     : Z z " .  : F  R :  Z ^ z j  v     : Z z      : Z z  !* !!" ""#6 ##$ $$%B :%%&N Z&&' z' @u0FCHANNEL GUNFRAMEPFRAMED Y a2^15-1 u2^20-1 ~2^23-1  QRSS * j YES  NO   ON  OFF   YES  NO  , 1E5  1E6  1E7 $ 1E8 ,PATTERN4F<SECONDSOBLOCKS W CONT ^ i 63  511  2047  4095  32767 ALT-1/0 FOX MSG MSG BUF  z FDX  HDX    ON  OFF    * 1000 ? 10000 GPATTERN4f<SECONDSO BITS OBLOCKS W CONT ^ i B?T 'w 1000  10000 100000 PATTERN4J    (  +  6 6 6 6  @91')/!7?GO W @"_p| |       .:FpR^j2v      & F  *6Vv @qH*  AMI   HDB3 f75 OHM +120 OHM4= 0 db T 20 db Y_ TERM }BRIDGED 4  N\NORMAL DRP/INSj    INT  EXT   YES  NO   YES  NO 4%T YES  NO nH64K CH. _SIG BITp, SAME  SPLIT /14< YES  NO |/ CAS 1 CCS 529 YES  NO ; Q*8FJ01- -X|010 $014 (NORMAL EXTEND  7  $NORMAL !EXTEND ! >81 ^8 X! !!   7E !u FF !x ;{ NORMAL "EXTEND " 8!#!(A!,$!:I!>%!LP!P&&&!^!l YES  NO !z.! @9!1!)!!!! !!"!")" @",;S"Dal}  "   ""0!D!"P!`!o!6!! "!#@ ! ! ! !%!< !U!m!!"8^"P"\"h"t: b"  "  "   "Z " " " # #<#\#(#4#L>P#X\#d#p#| *!# d# x!  !# !"#!"&!2#&!D$&!V%&!r&#! @m`#'0.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000OFF00 IN SYNC0.0000000.0000000.0000000.0000000.0000000.000000 NORMAL[RMSgSy]UU100010055+666601010111111111116C# @0.0000000.0000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.00000   ' '   ' /n/r   '    '    '    ' ,3,37>,37>, 3 7 > 263D3H, 3 7 > , 3 7 > , 3 7 > , 3 7 >  !, 875j 5v,555% %   % )  % 7  % D  % T  %22<2< 2 < 2 < 2 < 2 < 2 <e7z @9717)7!777777 @8 -f5-n5-5-5-5-5... 5.N 5.n 6. . 6. 6.6*//.66/N/x6B//6N//6Z/6f06r0$0D6~0d6060060 61 !61$!"1D" #61d#!$1$"%61%#&1&$'61'%(2(&)62$)'*2D*(+62d+),2,*-72-+.2.,/72/-030.173$123N2/33V3047&3v415352672363737487>3859496:7J46:7;4V;8<7V4v<9=4=:>7b4>;?4?<@7n4@=A5A>B7z56B?C75VC@D5ZDAE5^EBF5bF85f @y8"//G703/G703/NVH 0&n$n HxqINDtXOJWD|*HnNG @/XOJg /NJ`/N?. @XO*BBBHn/ GK2NB JgH/ NGZB$<=^// N/ NH&B// N.NGBHy=`/ N/ NH`BHy=g/ N/ N>L N^NuUNFRAMEDFRAMED/WITH CH16FRAMED/WITHOUT CH16Unk G703 formatNV/ HxqIEDtNXOrg l,rg `$ <>L`"HxqMNXOJf <>U` <>f` <>zB//.NK2$nN^Nu2^15-12^20-12^23-1QRSSUnk G703 BERT pattern/INVERTEDNV/ / &nHxqJNDtXOrgmJg`.rgrg` E>`"E>`E?`E? ` E?`JfHxqKNDtJf E?$`Jf $n&nN^Nu16NV/ E/ HxmlNCHy?/ NEJVH0@ D$nN^NuNVpN^NuNVHx NDt<WDrN^NuNVH8&n$KN@NA`@NA@HkHxqSIC NHkHxqTNNA@NA@HxqWEBnN'@HxqXN'@NB*@"HxqZN7@$Hxq[N7@& Hk(Hxq\NHkHxq]NHk,Hxq^NHkHxq_N Hk0Hxq`NLN^NuNVHxqPNDtreBЀ0;N8 &,2B`(<`"<`<`<`<` <`<N^NuNVHxqQNDtg rf<`BN^NuNVHxqRNDtg rf<`BN^NuNVHxqUNDtrg lrg` <`<`BN^NuNVHxqVNDtrgmJg `rgr`B`<` <`<N^NuNVHxqYNDtrgmJg `rgr`B`<` <`<N^NuNV/ E/ B0. /NC/ NA8$nN^NuNV/ /ļNC6NDB9ľtED9ľre` Ѐ0;N T.NCD`NC`HxNNDTBNPO`NfNYNDNE@NA9ļ`<$.$nN^NuBERQNV/ / G/ E~/ N=n/ / ND,HxNDDBNNHyĸBHyC>N@Hľ$n&nN^NuNV/ND 9ľfp4<NC@g"e|g`@|g*|f4`>ļ`ļNDľ`NDľ` ?BgNCxXO 9ľg$.N^NuNV-nHn/9ĸN@TN^NuNV/NSND 9ľfp4<NC@g"e|g`@|g*|f4`>ļ`ļNDľ`NDľ` ?BgNCxXO 9ľg$.N^NuNVNCHxaHy]*NB6@NR6B?BgHyE)HxB/EAN0B?BgHyE1HxB/NB?BgHyE9HxB/N,B?BgHyE?HxB/NB? BgHyEGHxB/N,B/HyEOHxB/N/ND L N^NuNVJ. f HxND6` HxNN^NuNVJ. f HxND6` HxNN^NuNVJ. f HxND6` HxNN^NuNVJ. f HxND6` HxNN^NuBERTDTEBERTDCEUnk modeNV/ $nHxNDtrgrg `AF`AF` AG`Jf $nN^NuNV/$.NBB//NK2$.N^NuEVENODDSPACEMARKNONEUnk parityNVHxNDtXOre<Ѐ0;N "* <G~`& <G` <G` <G` <G` <GB//.NK2N^Nu8765Unk # bitsNVHxNDtXOrgmJg`.rgrg` <H` <H` <H` <H` <HB//.NK2N^NuFDX/HDX/Unk duplex/SYNCASYNC/ISOC/Unk format/NVH0 $.HxqQNDtXOBgrg ` <H` <H` <HB//EK2NHxNDtrg$mJg`Nrg$rg(`@BHyH/N`BBHyH/N`4BHyH`BHyH/N/NI`BHyH/NK2 HxqPNDtXO<g]<bBHyH/NK2/HxqTNJ0L N^Nu12Unk stop bitsNVHxNDtXOgrg ` <I` <I` <IB//.NK2N^NuNV|/ /$. E~/ B0. /NC / /NKn$.t$nxN^Nu635112047409532767ALT 1,0FOXUSERUnk BERT patternNV/ $nHxqPNDtreZЀ0;N (08@HAJf`BAJi`:AJm`2AJr`*AJw`"AJ}`AJ`AJ` AJ`Jf $nN^NuNV//"n n 6.Jgt"ҁHC3RJf$.&.N^NuNVH8 "n$n 0|Jg$xvBB Ѐ6"ҁ3RRHHbLN^NuFSTDMSTSThe G.703 package is here! interfacebert_setupbert_resultsp1_stats G.703 BERT NVH8 HyKNBHyHy&NDHyKHy&HxECBNHyKHyFHxN .KHyHxNHyK(<=2/HxN&<L/BHxHx Hx HxEA>N0$<L /BHxHx Hx HxN/BHxHxHxHxN,.BHxHxHxHxN#NB"@AhBpLN^NuThe G.703 package is gone! NV/ HxEANHxNHxNHxNBHxHx Hx EANBHxHx Hx NBHxHxHxNBHxHxHxN/9NBFHyM*NBp$nN^Nustats_rackG703STAdata_rackCAS SIGNVH 8HyMICN$HxaHy]*GBNB?BgHyMHxB/EAN .mpNDtXOJf,HyMN$HxbHy^ NB?BgHyMHxB/N <LN^NuNV/.NN^NuNV/.NNsLN^NuNVNsNYN^NuNV/.NNsLN^NuNVNsNYN^NuNV/ $nHxqINDtXOJf / N@$`B$nN^Nubert_root_rackBERTNVH8 HyO0NC(HxaHy]*NB6N4B?BgHyMHxB/EAN B/HyO?HxB/N LN^NuNVHxmxNDt<WDrN^Nu64000NVH00&nBBAOyOyOyOyOyOB+ /Hk NEHxEDtN JfB`FHxNBXOJg<f<H4A4JHxNDt" <fvJg <<`<BB @ @L N^NuNV/ BHx%EFNHxHx(N$nN^Nud_dce_framed_dte_framed_rcv_framesend_d_framesend_d_frame_ilNVH0 $n|&B*%B*(HyNRHyNRXN?POJfHx NDtXO<WD`BJ9fJ9g J*'f<BJ9fJ9g *'f<JgJg|&`B*&`Jg|&`|&A%BJfJg<A(BJ*#gJVDN@@6N?HHL N^NuNVH 0&nBAJg $H/NBXOJVD SPJPKJfHHL N^NuNVH 0&nBAJg $H/NB"XOJVD SPJPKJfHHL N^NuNVNBNHxiHyRNBN^NuNV/ / $n &nJ. f/ / HyND`NT$S&S$n&nN^NuNV0. |fHxND0<N^NuNV/ $nNTNT8NTr$HnHxHxHxN@*.fNT8NT`NDhBN@$nN^NuNV/ EFBNT8NVRJfNX$nN^NuNVNDhN^NuNVBRBVBZB^BbBfjklN^NuNV<WUOHx&HxNAN^NuNVH00B9Zgvg`9ź9Ż` 99BBAN\.HxuUGD>NHxuUECNBBBN\.HxuVNHxuVNL N^NuNVH> 9BAj,<RBAkBAlBJg&HxuJHxuI/N8HxuIECNHxuJNJg*HxuLHxuKHyZN8HxuKECNHxuLNJg*HxuNHxuMHybN8HxuMECNHxuNNJfJg,HxuPHxuOHy/NÈHxuOECNHxuPNJfJg0HxuRHxuQHyHyZNÈHxuQECNHxuRNJfJgJE/ Hx 9BAj,<RBAkBAlBJg&HxuJHxuI/N8HxuIECNHxuJNJg*HxuLHxuKHyZN8HxuKECNHxuLNJg*HxuNHxuMHybN8HxuMECNHxuNNJfJg,HxuPHxuOHy/NÈHxuOECNHxuPNJfJg0HxuRHxuQHyHyZNÈHxuQECNHxuRNJfJgFE/ HxNE R h<BB9/N.HxyXN R h 9ZgNZLN^Nu NOT MONITOREDNVH< B9ZgzfvDxE2NBHyZ?BgNC QB0"ҀҁҨ A<( QB0"ҀҁҨ A(L y h g0BB9/N\.HxyXND> y h$nN^NuNV/ Ehg4BB9ź/N\.HxyYND> y h g0BB9Ż/N\.HxyZND> y h$nN^NuNV/. A$"<HcC&f `\I\Hb$.N^NuNVH 0. [ACH <Tc&$GJEIggVKVJVIb]B <L N^NuNV/ / $n &nJ. f/ / HyTND`NY$Y&Y.$n&nN^NuNV/ $nNcNdbr$N]JgNdb`BN@$nN^NuNVHnBHxHxN@*Jg rHnB0/NcPO`*Hy`"BB0/NcHy`B0/Nc y"nB0"ҀҁҨ A( y"nB0"ҀҁҨ A(v׮׮ԃ׮׮ރ܃ڃ؃׮0.Ю bxL8(n6.:.8.4.<.HxHxG/ E/ / NCf/ ?BgNc y ЂЀШ @(JDgDJfJg:/ NA,DXOjF@R@/ ?BgNCN|-` / ?BgNCNPOHn`Hn?BgNc yB0"ҀҁҨ A(L|N^NuNVHx/. B0. /ND>N^NuNVH8 NB#NdvtxEe4/Ng BHx //N/Nh BHxB@/N RC|cLN^NuNVH8NB#vtx4/Ng BXOgHx //Ne /Nh BXOgHxB@/Ne RC|cLN^NuNVH<8D<*/Hx B$< /Ef|N/HxB/N.Hx)B/N/Hx4B/N.HxHx&<*/N/HxHx$<%/N.Hx"Hx/N/Hx/Hx/NEv GtIf/ 4/N/Hx// N/ BHhN.Hx&// NRC|cLmJg$`HrfB#~\3h3ż`&3h#\`3ż#\E8HyN@~$NtBHyu/N@$nN^NuNVNBByB(By.BjBnBzB~B9źB9ŻBŎBŊBŖBŒBŞBŚBŦBŢ3hBžBBBB9B9BBBBBBBB3żN^NuNVNs y\ PNN^NuNV/J8g/. /.Hyt/9HND#@HnHnHnN@ Jf . yDf #H`0c"AH ЁЀD tce Hx/98N@0$.N^NuNV/BN8HxN@POHyDHnHnN@ Jf#HBBHytHxND#@HxNrtpg /NvXO`Nv`NqNVH80(.HnB/9N@ Gż6<E\Hn/HxHxN@*$ .f`gNt.g*Hy`NC0Syh"RA PN"RA PNXOrf y\XH PNHx/.N@0POp-@gpL N^NuNVH08BBIż6<GhE\HnBHxHxN@*.gDHy`NC0TS"RA PN"RA PNRBXO|c RPH PNB"RA PNp-@gL N^NuNV y\XH PNN^NuNV/ / 9ZS<b~HnNRXO.gG/ RKNRXORJrdHyżE/ NxHy$B9// NzHxmeNDt<fB./NzPXO9Z<gJf~HnNRXO.gG/ RKNRXORJrdHyhE/ NxHyB9ź// NzHxmeNDt<fB./NzXOHxNr$n&nN^NuNVH>8(n&n J+Rff<BBCHxmpNDtXO<fCA <ϰe*tr,EC4 gVJVIVHdARgSASgSg0,gXA2/?Bg/N@S HxmoNDtXOJf"0,gXA*/?Bg/N@S 0,gXA"/?Bg/N@S 0,gXA:/?Bg/N@S@L|N^NuNV"n nB.rn&rlrf||` ||g|N^NuNVH0 . HxEDtNHxqINPOJg W<c@Brm6rn0 r€/Hx ENPOJ] r €/Hx NL N^NuNVH0 . HxEDtNHxqINPOJg W<c@Brm6rn0 r€/Hx E@NPOJ] r €/Hx NL N^NuNVN{XN{N^NuNV/ / /</<BEjN/</<BN/<@GjhNEBR5@/<@NH@B@ђ/<@N3$n&nN^NuNV/ / /</<JEjN/</<JN/<HGjhNE$BR5@/<HNH@B@ђ/<HN3,$n&nN^NuNVN|DN|N^NuNV/ /</<BEjN/</<BNN}N~N0N~d$nN^NuNV/ /</<JEjN/</<JNN~(NNN~$nN^NuNVN|N}$N^NuNV/ /</<BEjN/</<BNN~N0$nN^NuNV/ /</<JEjN/</<JNNN$nN^NuNVN}tN}N^NuNV/ /</<BEjN/</<BNN}N~d$nN^NuNV/ /</<JEjN/</<JNN~(N~$nN^NuNV/ / /<@GjhNEBR5@/<@NH@B@ђ$n&nN^NuNV/ / /<HGjhNE(BR5@/<HNH@B@ђ$n&nN^NuNV/ / BGE -@HyjHnHyjN@yh$$n&nN^NuNV/ / BG(E$ -@HyžHnHyžN@yż$$n&nN^NuNV/<@Njh3N^NuNV/<HNjh3.N^NuNV/ / GE0Rg0 ѹHyz/HyzN@yh4$n&nN^NuNV/ / G.E,0Rg24ѹ0Hy/HyN@yż4$n&nN^NuNV/ / HyhG,NHyEHNHyżNHy$NB`Bd$n&nN^NuNV nBBBJBNN^NuNV nB(B B(B(N^NuNVNxNN^NuNV/$</HyhN/NH$.N^NuNV/$<$/HyżN/NH$.N^NuNV/ / &n$n J f *fHkNC0SXOJ*f *fHkJNC0S$n&nN^NuNVH8/</<BIjN/</<BN/<@GjhNEbBR5@/<@NH@B@ђ/<@N3/<@NEƈBR5@.@NH@B@ђ/</<JN/</<JN/<HNEƚBR5@/<HNH@B@ђ/<HN3,B9BƬBưA\BBjBfnBtBpxBƢBƞƦB~BzƂBƐBƌƔLN^NuNV/ \/</<BEjN/</<JN/</<BNNN~Nn/</<JN NNN 9fN0NNRN$nN^NuNV/ / /<@GjhNE^BR5@/<@NH@B@В$Ab"#Ƽ $n&nN^NuNV/ / /<@GjhNEƄBR5@/<@NH@B@В$Aƈ"#Ƹ $n&nN^NuNV/ / /<HGjhNEƖBR5@/<HNH@B@В$Aƚ"#ƴ $n&nN^NuNV 9Ƹg4ѹB-@HyƌHnHyƌN@ƔN^NuNVH00HyfEƼ/HyfNAnGƬ&֒&$yƨ d`/ /NEPO$/ /NEPO&Hyp?BgHypN@xE <fHyzNC0ƂBL N^NuNVH8 Eư(عƴ$&9ƨd://NEPO$//NEPO$Hyƞ?BgHyƞN@ƦLN^NuNV/ HxNrN|/9@EEN/9PN/98N@BHxNE|$nN^NuNV/ B9Zgrg"`>#hT#X#xL`#żT#$X#L yT0E8HyN@~$NBHyJ/N@$nN^NuBERQNVH 0HyBHyDN@HNsNSNlN"NNlBBN,BN8HxN@HyDHnHnN@ Jf#HBBHytHxND#@HxNrGż4<EhHnHxHxHxN@* 9g4N.g&Hy`NC0SRNwN yLNXON~N`HxNjXO`NqNVH8<FE\C"<f <K6I(<B&A$&+"#C$9p&9t&@&'C$9ƞ&9Ƣ*+C$9z&9~()C$9ƌ&9Ɛ&D&'C>@EA? yT!Q!yP g`L<N^NuNV/4. HnB/9N@ Jf?Bg/.N@0$.N^NuNVHxqNNDtXOrehЀ0;N ".:#ƨ`H#B@ƨ`<#ƨ`0#ƨ`$HxqJNDtJf #ƨ` #ƨN^NuNVBBHy,HxND#PJ8gNN^NuNVHnBHx/9N@NJf/.NXO`N^NuNV .rg mrg`hrgrg:`ZN`RN(`JNsNSNlN"N` 9fNB9BƬNlN^NuNV |N^NuNV/ EHJf NN`NBJ$nN^NuNVB9N^NuNVAJf<B/<NhHxHxNifBBHyHx|ND#`NDN^NuNVNjBHxNif/<HxNhN^NuNVA<g<fND`@NjB/<NhHxHxNifBBHyTHx|ND#N^NuNV/<HxNhBHxNifB9N^NuNVB9rgrg `N`N yNN^NuNV/<HxqINDtXO<f9NjRfLN`Nj~$.N^NuNV 9ƸgV//9ƼNEPOre@B9LNHy.NC0DHxqLNDtPOJfNj~N^NuNV/ / Nj~B9LNB9Zgrg ``HxqONDtXOrgJmJg`rf#`z#E/ HxqWNCGPO g*`:#pE/ HxqXNCGPO f/ NA8#B`/ NA8й"#$n&nN^NuNV 9eN^NuNV 9"eN^NuNVN^NuNVB9BBBBB9B9B9B9N^NuNV/ E gHyNC0XOBJf fHy&NC0CXOHx{HxN$nN^NuNVHnHyHyNE.### HxHx@NN^NuNVH08BI&c<HyRNC0jXOvƂ/N&GRE"Ҕ$XO<;c cHybNC0lBBBL N^NuNV/ . EJf&<fAR< cHB`BB9`:HyZNC0kJfAR< c BB`B9$nN^NuNVH0<&.G/ HxqZKCN/ IA2N$C/ Hxq[N/ N CJfBB| `NB@NCr$$CTJ CB//NEPO$$C\J CB//NE$f C| ` CB( L< N^NuNV/ / N&BHxHx/<BENHx/<BGhNBHxHx/<BN$BHxHx/<BNHx/<BNBHxHx/<JN$./<JNBHxHx/<JNN$n&nN^NuNV/ /<_/<BEjN/<G/<JN/<?/<BN/<'/<JN$nN^NuNV | 9fN`/<X/<JNjPO/<8/<JNjN^NuNV/</<JNjN^NuNV/ E/ NXOJ.fHx/<JNB9`L/</</<JN .g .cB9/ N6`/ N$nN^NuNV/ / &nTK b*/</<JEjNHx !/<HNB0+/`b/</<JEjNHx /<HNB/<HNB0+//<HN./<JNHx !/<HNB0 @Hh/<HN$n&nN^NuNV/ $n *b / N `/ NH.N$nN^NuNV n3 0(R@33N^NuNVH< n(< fN`>Y&<'B//NEPO(//NEEE 3RD33LHxqIEDtNXOJfHxmeN<g `HxqIEDtNXOJfHxmeN<f Z`Z$nN^NuNV/ /HxmjEDtNNDPXOJg<`JfB`HxmpN<<f$.$nN^NuNV//v?/BNEtxPB/BNE//ND$.&.N^NuNVH8<. HnHxHxI@NHxNDJ|K/ /(< DN$|HxHxGE|N.@BHxNBCNCHn/.HxNHx N@B.HxmbEDtN <f.@/ / DNB./BNkBrg&mrg`Rrg:rg`DHxmeNXOJg.`2HxmeNXOJg ` 9Zf<4`< `J9Zf<8`<HxmcNDtXO<fBCHxNE|L<N^NuNVH0 $n . HxmdNDtJWDBve>Ѐ0;N   Jg$``JgL N^Nu STATUS INFORMATION |||||||||||||||| RATE TOTAL STD BERT PARAMETERSTEST SECONDS:EBLOCKS SENT:BLOCKS RECEIVED:BIT ERRORS:E-BLOCKS IN ERROR:ERROR-FREE SECONDS:NUMBER OF FAULTS:ERROR INJECTION:INJECTION RATE: PATTERN SYNC STATUS:SEVERELY ERR'D SEC:G.703 BERT PARAMETERSFAILED SECONDS:DEGRADED MINUTES:G.703 RCV LINE STATUS: F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** BERT Statistics ** CHANNELUNFRAMED FRAMEDSelect G.703 Mode: 2^15-1 2^20-1 2^23-1 QRSSSelect BERT Pattern:YESNO Invert BERT Pattern?ONOFFResynchronize After Faults?Transmit BERT Pattern On Channel 16? 1E5 1E6 1E7 1E8 PATTERNSelect Block Size:SECONDSBLOCKSCONTINUOUSSelect Units For Test Length: 63 511 2047 4095 32767 ALT 1010 FOX MESSAGEMESSAGE BUFFERFULL DUPLEXHALF DUPLEXSelect Handshaking MethodEnter Preamble Pattern: Enter Sync Pattern: 1000 10000 BITSEnter Test Length: ______ Seconds.Enter Test Length: ____ Blocks. 1000 10000100000Select Test Length (# Of Bits):Enter Bit Error Injection Rate:Enter Error Injection Rate Exponent: E-Msg Text: F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** BERT Setup **G.703 Mode:Pattern:Invert:Resync:Include Ch16:Block Size:Test Length:Handshake:Preamble:Sync Pattern:#:Error Injection Rate:E-Message Buffer:AMI HDB3Select Coding Type:75 OHMS 120 OHMSSelect Line Impedance:0 db20 dbSelect Receiver Gain (in db):TERMINATED BRIDGEDSelect Receiver Termination: NORMALDROP/INSSelect Transmit Mode:INTERNALEXTERNALSelect G.703 Line Clock:YESNO Transmit Signalling All 1's?Transmit Distant Multiframe Alarm?Transmit Remote Alarm?64K DATA CHANNELSIGNALLING BITS Select Data Path:SAME SPLITSelect Channel Mode:Enter Channel Number:Enter RD Channel Number:Enter TD Channel Number:Enable CRC-4 checksum generation and error checking?CASCCSSelect Signalling Type:Begin CAS Multiframe with Frame Containing FAS?Select Extra Bits For Channel 16 of Frame 0:Select National Bits For Channel 0:Select International Bit For Channel 0: NORMAL EXTENDEDSelect CAS Multiframe Sync Criteria:Select CAS Multiframe Resync Criteria:Enter Signal Channel Number:7EFFSignal Channel Idle Char 7E or FF?Select Frame Resync Criteria:NORecord Channel 16 In Aggregate G703 Data? F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 G.703 / 2.048MBPS** Interface Control **Coding Type: Line SetupLine Impedance: Receiver Gain: Termination: Transmit Mode: Transmit SetupLine Clock Select: (CCS Signalling Only): Xmit Signalling All 1's (CAS Signalling Only): Xmit Distant MF AlarmXmit Remote Alarm: Data Path: Data Path SetupChannel Mode: Channel Number: Channel Number RD: TD: Enable CRC-4: Signalling Type: ing Frame Align. Signal: Begin CAS MF W/Frame Contain-Extra Bits: National Bits: International Bit: CAS MF Sync Criteria: CAS MF Resync Criteria: Signal Channel Number: Signal Channel Idle Char: Frame Resync Criteria: Record Ch16: TEST SECONDS: RATE DCE DTE G.703 STATISTICS EFRAMES RCVD:BPV'S RCVD:E-BPV-FREE SECS:FRAMING ERRORS:CRC-4 ERRORS:SYNC LOSSES:SYNC LOSS TIME:ERROR-FREE SECS: CURRENT [PREVIOUS] G703 LINE CONDITIONS F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** G.703 Line Statistics **NVNBNHxhHyNBN^NuNV/ / $n &nJ. f/ / Hy=JND`N$>&\$n&nN^NuNV0. |fHxND0<N^NuNV/$.N/NLNDhBN@N$.N^NuNVHxHx$HxNAN^NuBERQNVHnBHyN@ Jf&HxNC~/.NN NNXN^NuNVHxHx$HxNAND\N^NuNVNDhN^NuNVH8(nHnBHyN@ JfHxNC~/.NNTG/ BHxHxE@*Nr(.BHxHxN.f*HxNC~/.NNT/ BHxHxN`LN^NuNV/ /$.B.E/ Hx2B/N@Nrf&HnBHxBN@*.g(|` JfHn/ NPO` r6gNJ.g$.$nN^NuNV/ n$n Sr eЀ0;N4Xtl@AHJWDJ`bHy/(HyNA?B`>HyB0(/HyN@AB`Hy6B0(/Hy6N@EB`HyB0(/HyN@@B`Hy.B0(/Hy.N@DB` <//(/NA>B`|Hy&B0(/Hy&N@CB`THyB0(/HyN@BNTB`(B9L`LNB` `N$nN^NuNVB9LNB9HJNlN^NuNVNSNBB BBB6B:B.B2BBBBB&B*BB">?@ABCDEN^NuNVNJ>?@ABCDEjklN^Nu0.0000000.000OUT OF SYNCOFFNV|H88B&</Hxu1ED>NB$</Hxu2NB/Hxu3N B/Hxu4NB/Hxu5NB/Hxu6N B/Hxu7NB/Hxu8NB(</Hxu9N B/Hxu:NB/Hxu;NB/HxuNB/Hxu?N B/Hxu@NB/HxuANB/HxuBN B/HxuCNB/HxuDNBHyHxuHN BHyHxuENB/HxuINB/HxuJN B/HxuONB/HxuPNB/HxuKN B/HxuLNB/HxuQNB/HxuRN B/HxuMNB/HxuNNB/HxuSN B/HxuTNE~/ HxqZGC N/ HxuFID8N/ Hxq[N .HxuGNLdN^NuNVH?BADBAjPBAkPBAlPBANBAJBJgHxu6Hxu5HyN8 0 JgHxu4Hxu3Hy6N8 JgHxuHxu=HyHyNÈ0 JfJgHxu:Hxu9HyHyNÈJfJgHxuBHxuAHyHy&NÈ0 JgNJgNJf>Jf:Jf60 Jf0Jf,0 Jf&Jf"0 JfJ.fJ.fJ.f 0 JfJgND\LBADBB9jB9kB9lANBAJBJgHxu6Hxu5HyN8 JgHxu4Hxu3Hy6N8 JgHxuHxu=HyHyNÈ0 JfJgHxu:Hxu9HyHyNÈJf0 JgHxuBHxuAHyHy&NÈ0 JgN0 JgNLPO.uHNCN^NuONOFFNVJ9Hg BHy`BHyHxuEND>PO.uENCN^NuNVAHJWDB9JNND\N^Nu0.00000NVH0 "n n 4.6.JfJg Jf.Jf(BHy~?BgED>NBHyÄ?BgN`@HxHxHnE/ // NB:B/ ?BgED>N BHn?BgN ?BgECN?BgNL N^NuNVH0 6.4.HxHxHnE/ /.NCf .0g |*|*B/ /ED>NBHn/N/ECN/NL N^Nu "&*.26:>BFJRVZ======>>>(>2>>>>>>>>j?r?z?????8@@@J@n@x@@@BBBBBBB CC(CZCvC|CCCCCCCDD(DFD\DjDDDDDDD^ElE|EEEEEEEE F F>FpF|FFFFFFF4GDTZ\ZrZZZZZ["[.[v[|[[[[[[[[\ \(\:\Z\b\t\\\\\\\\\\]TXF]T]Z]`]|]]]]l(^6^|04NRlpR^v^|^^^^^^^^^_ __$_*_6_B_H_Z___________``6`<`D`N`t`|```````aa b b*b8b>bJbTbvb"c(cccccddd0d8drdddddddee\epee2fRffsVspsts|sssssssssssssssstt tttt$t*t0t6tvnv|vvvvvv w~wwwwwwwwwx"x8xRxbxnxtx|xxxxy yy yz{J{P{n{{{{{{{ |6|<|X|n|t|z||||||||||}}8}N}T}f}l}}}}}}}}~8~@~r~x~~~~~~~~~"(:@NZ`hvjp8T\~΁$*28>FLRZ`fnƂ̂ .6R\~΃փ$2<J\bjx~̄҄ @JXrx~̅Ѕօڅ (0T\hntzԆކ .6DTZ`jpzЇև&.6>DN|ڈ$6FPXpĉ̉҉؉މ 0:FPbpĊЊ$2<LdpvЋ֋ *28F\dv~2HZ`v|ƍ̍ҍ؍ލ*8H^drx|ƎԎڎ2BZbpv~Xn^fzܑ֑"*Z ,8@ȓГҔؔޔ<̕ܕ,JX^z8ė 6<BHN0<șЙt8Zdl>Z`(Zȝ֝.:B^frzĞȞΞҞ@Vr,808\dx¡ܡ ,Vڢ @F^hntƣ>D\flrzBT`fpv|0BNT^dj ~ƨڨ2Rr 2 R r  2 R r  2 R r  2 R r    * 6 B N Z f r ~ &2>JVjnvz "04BFTXfjx| ,0>BPTbftx(,>LPbpt "6FVflx|(.:>Rbr&6FVfv|">^r"BVfv .Nn&26BNZfr~&48FJX\jn|"04BFTXfjx| 0Z^r  06BF^fv(,@PVbfz4Tt ":BLTpt  & 2 6 J Z ` l p !!! !.!6!@!H!R!Z!n!v!!!!!!!!!!!!!!!!"" """"$"("0"<"@"L"T"X"d"p"|"""""""""""""""# ##$#0#<#H#P#T#`#l#x#############$$$$,$:$>$P$^$b$p$t$$$$$$$$$$$$$$$%%%%$%(%:%L%Z%^%p%%%%%%%%%%%%%&&& &$&6&H&Z&l&z&~&&f-----.&.F.f...../&/F/f/t/|/////0<0\0|000001<1\1|111112<2\2|222223<3J3R3n333334.4N4n444445.5N5r5z5~555555555555555666&626>6J6V6b6n6z666666666666 77"7.7:7F7R7^7j7v77777777777777777778888808>8B8P8T8b8f8t8x88888888888889999(9,9>9L9P9b9p9t999999999999::::$:(:::H:L:Z:^:l:p::::::::::::;; ;$;6;D;H;Z;h;l;~;;;;;;;;;;; << <.<2<D<R<V<h<v<z<<<<<<<<<<< ===F=N=2@FL `ظ޸\¹ҹܹ(6DP^lxºк޺ &HPV^drx~ƻ̻һػ(08@HPX`hpxҼ&ƽȾҾ .DJbh~Կڿ8>D^djz$2<BHN\v| &@FLhnt",6\jpZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZTw5Z6-7t<<<FJFVFcKKKKKKKKKKKKKKKKKKKKK\KKKKKKKKKKKKKKLL LLLL"m`mbL,mamcL9mbmdLHmcmeLZmdmfLbmemaLomfmgLymgmhLmhmiLmimjLmjmkLinterface_isdn_setup rMfMiMmMrMwM}MMMMMMMMMMMMMMMqHqIMqIqJMqJqKM qKqLNqLqMN qMqNNqNqON#qOqPN/qPqQN<qQqRNHqRqSNRqSqTNdqTqUNzqUqVNqVqWNqWqXNqXqYNbert_setup00.0000.0101.00xx.xx/sys/mux/ISDNSTU.MUX\,X `%K nnnnnn"n&n*n.Unknown Status Coden2n@nInQn]nmnnnnnnnnnnnnnnnnnnnnnooo o0o;oDoWomoooonoooon2nQonpppp#p'nnnp+nnp/np3p7p;p?pCo o0oDomnnQnpOpSpWp[p_pcpgpkpopspwp{pn2ppppppppnpqqq)npq7p'q;q?qCnnnnqGp3p7nnqKq`qkqo;oDoWnonQnqqqqqqqqqqqqqn2pppqppppnqqpq)qqq7qnqqCqnqp/qp3qp;p?qq`r o rqr3oDrKrjnrnQPQRSTrrrrrssss/yyyyyy y y y!y"y#y$y'y(y)y*y+y,y-y.y/ y0!y1"y2#y%y&y3$y4%y!y"y#y$y%y&y/ y0!y1"y2#y3$y4% ' '   '   =<?/ *) 4  @ L X %% ,  % @ +R+c=+t @9 l1 x) !      @  d ( p 0 | P p      0 P p       0  P $ p 0  <  H  T  `  0 @u0  63  511  2047  4095  32767 ALT-1/0FOX MSGMSG BUF* 9v FDX N HDX Z  f ON  OFF    1000  10000 PATTERNbSECONDS  BITS BLOCKS  CONT   B?9 '\ 1000 } 10000 100000 PATTERN F    ( +  6 6 6 6  @91 )!$,4< @ DU^iq{       "|.:F"RB^ j  v &    >^~ @qH S/T  U X x B1  B2  D   B1  B2  D   B1+B2 GM.HLZh B1  B2  D   B1+B2 Gv+ OFF  B1  B2   MU LAW  A LAW  : NONE  V.110 T #tNORMAL 8ALTERN @ J DISABLE ENABLENORMAL PASSIVE& F`n3  NO = YES @ NO = YES @ NO = YES @0 NO = YES @Jj @9D1L)T!\dlt| @   (1P~ 4Rn, 8  D@  Pz  \  h tLt |  6p @m`HJN\jHHHHHHHH  H H HH H H&&=H"H=H"H&&  ,=H"H=H"H   && & &&  : H" H: H"H' H7 HI!SVf!pV s "f0"$p""0"H" " ""2 @9"1")"!"" "("0"8"@BTp!x!  !  4  !T  t   !  " " " B"b"0"<& 2"T : Z"` z    !"l !"!"#"x!(#$!H$%"!h%&"!&#! @y#90.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000OFF00 IN SYNCtUU100010055+6666R0IF1 InactiveRES Device ResetH1 Full ResetDC Deactivated 0 0G1 DeactivatedTIM Timing OnlyJ1 Full ResetDEA Deactivation Accepted 0 0+T+b+p+~-+;+K+IZ+Jb+Kj+Lt+M}+N+O+P+P<̆1\̆QH̆=0H̆=x3̆(3̆(ޟ;̆0;&̆0/ISDN/ST/U/B1/B2/D/B1+B2NV/$.Hy+/NE XO.maNDtXOgrg ` <+` <+` <+//NE J9tgHxmc`HxmbNDtXOPOrgmJg`.rgrg` <+` <+` <+` <+` <+//NE p$.N^Nu*/NVH 8(n$n |*HnN0L @//N3 @BG/ N+BB/ / G4tNBHy,/ NB .N0B$<,// N/ N1hB// N.N0B// N/ N2LN^NuNVJ9tgHxmc`HxmbNDt<VDrN^NuNVpN^NuNVHx NDt<WDrN^NuNVH8&n$KN.N.@N/"@HkHxqLIC NHkHxqMNN/J@N/@HxqPE0N'@HxqQN'@N/@"HxqSN7@$HxqTN7@& Hk(HxqUNHkHxqVNHk,HxqWNHkHxqXN Hk0HxqYNLN^NuNVHxqINDtreBЀ0;N8 &,2B`(<`"<`<`<`<` <`<N^NuNVHxqJNDtg rf<`BN^NuNVHxqKNDtg rf<`BN^NuNVHxqNNDtrg lrg` <`<`BN^NuNVHxqONDtrgmJg `rgr`B`<` <`<N^NuNVHxqRNDtrgmJg `rgr`B`<` <`<N^NuNV/ E/ B0. /NC/ NA8$nN^NuBERTDTEBERTDCEUnk modeNV/ $nHxNDtrgrg `A02`A0:` A0B`Jf $nN^NuNV/$.NBB//N4t$.N^NuEVENODDSPACEMARKNONEUnk parityNVHxNDtXOre<Ѐ0;N "* <0`& <0` <0` <0` <0` <0B//.N4tN^Nu8765Unk # bitsNVHxNDtXOrgmJg`.rgrg` <1T` <1V` <1X` <1Z` <1\B//.N4tN^NuFDX/HDX/Unk duplex/SYNCASYNC/ISOC/Unk format/NVH0 $.HxqJNDtXOBgrg ` <1` <1` <1B//E4tNHxNDtrg$mJg`Nrg$rg(`@BHy1/N`BBHy1/N`4BHy1`BHy1/N/N3*`BHy1/N4t HxqINDtXO<g]<bBHy2/N4t/HxqMN3rL N^Nu12Unk stop bitsNVHxNDtXOgrg ` <3` <3` <3B//.N4tN^NuNV|/ /$. E~/ B0. /NC / /N4$.t$nxN^Nu635112047409532767ALT 1,0FOXUSERUnk BERT patternNV/ $nHxqINDtreZЀ0;N (08@HA3`BA3`:A3`2A3`*A3`"A3`A3`A3` A3`Jf $nN^NuNV//"n n 6.Jgt"ҁHC3RJf$.&.N^NuNVH8 "n$n 0|Jg$xvBB Ѐ6"ҁ3RRHHbLN^NuFSTDMSTSThe ISDN STU package is here! interfacebert_setupbert_resultsp1_stats ISDN BERT NVH8 .XB@NP,8XOfHy5NBHyxHy%NDHy5Hy*HxECBNHy5)Hy8HxN .54&</HxNHy5A$<%/HxN#T#^&<5J/BHxHx Hx HxEA>N0$<5R/BHxHx Hx HxN/BHxHxHxHxN,.BHxHxHxHxNN\NBNB"@AhBB0LN^NuThe ISDN package is gone! NV/ HxEANHxNHxNHxNBHxHx Hx EANBHxHx Hx NBHxHxHxNBHxHxHxN/9xNBFHy6NBp$nN^Nustats_rackisdn_stats_rackISDNSTSNVH8 Hy7PECN(HxaHy]hNB6HxmaNDt<f.Hy7[N$/?BgHy7kHxB/NA/N>J`B?BgHy7kHxB/NA <LN^NuActivating ISDN LT NVHy8 NBHx+NN^NuDeactivating ISDN LT NVHy8NN^NuSending C/I code to transceivers to enter PU test mode NVHy;NBBHxNJLN^NuNV/$.N[/Ndd$.N^NuNV/$.N[/NddNs<$.N^NuNVN]NsN^NuNV/$.N[/NddNs<$.N^NuNVN]N[NsN^Nubert_root_rackBERTNVH<0HyJ`B?BgHy7kHxB/NB0L Hy:JN6@.:N8@Hy:N=@Hy:N4@/?BgHy>HxB/.N B?BgHy> HxB/NB?BgHy>HxB/N,B?BgHy>HxB/NB?BgHy>"HxB/N,B? BgHy>*HxB/NB? BgHy>2HxB/N,B?.BgHy>:HxB/NB? BgHy>BHxB/NLHxP/<NH4`,B9lrglrl Hx9` Hx:`Hx;NN^Nud_dce_framed_dte_framed_rcv_framesend_d_framesend_d_frame_ilNVH0 $n|&B*%B*(HyNGvHyNGN-jPOJfHx NDtXO<WD`BJ9~fJ9g J*'f<BJ9|fJ9g *'f<JgJg|&`B*&`Jg|&`|&A%BJfJg<A(BJ*#gJVDN-@6N-HHL N^NuNVH 0&nBAJg $H/NBXOJVD SPJPKJfHHL N^NuNVH 0&nBAJg $H/NB"XOJVD SPJPKJfHHL N^NuNVNA3ByN^NuISDN: Mux port 1 = %4x NVH004. 6.GB0/NCXOERC4?BgHyHNB | 0B0/NEXL N^NuNVB09N^NuNVNA3ByN^NuNVH0 4. 6.EB0/NCXOAPC0 |0B0/NEXL N^NuNVB09N^NuNVNA3ByN^NuISDN: Mux port 2 = %4x NVH004. 6.GB0/NCXOERC4?BgHyI4NB |"0B0/NEXL N^NuNVB09N^NuNVNA3ByN^NuNVH0 4. 6.EB0/NCXOAPC0 |0B0/NEXL N^NuNVB09N^NuNVNA3B9N^NuNVH0 . .EB0/NCXOA |B0/NEXL N^NuNVB9N^NuNV |$N^NuNV |N^NuNV |0N^NuNV |N^NuNV |'N^NuNV |$0N^NuNV n0XN^NuNV |N^NuNV |"0N^NuNV. |&N^NuNV n0.X0N^NuYESNOONOFFFD1FD2HRDMULTIPLEEVENODDSPACEMARKNONEPULSETONE()LayerB1B2DB1+B2OffMu_LawA_LawS_TUNoneV_110DisabledEnabledNormalPassiveAlternateMain_ChannelMain_Channel_2Secondary_ChannelHandsetVoice_CodingInterfaceRate_AdaptionRA_56K_MethodS_Q_MonitoringTE_ModeEOC_Dest_AddrNV/ /$.NBA $HrJg&HyLBBBB//ND"fXJJfB0$.$nN^NuNVH 8$.(n nBBNBA $Hg&R/+/NEPOJf(`XJJfLN^Nu635112047409532767ALT_1010FOX_MESSAGEMESSAGE_BUFFERFDXHDX100010000PATTERNSECONDSBITSBLOCKSCONTINUOUS100000BERT_PatternHandshakingResyncPreambleSync_PatternBlock_SizeTest_LengthTest_SecondsTest_BlocksTest_BitsError_Inject_RateError_Inject_Rate_ExpMessage_Line_1Message_Line_2Message_Line_3Message_Line_4Message_Line_5VERSION=CHECKSUM=ds5000_dl: mux code version # != file code version # ds5000_dl: mux checksum (%0X) NE file checksum (%0X) ds5000_dl: downloading DS5000 (attempt %d) ds5000_dl: dummy read of MCS data following download reset ds5000_dl: mux checksum OK ds5000_dl: mux checksum (%0X) != file checksum ds5000_dl: no mux response to checksum command NVH?0. .69 N$yf4Nc| eHxN@XOygԶygpB4/B09/BEBDG B0E2/Hy_~NBBA2(RC|cBC6B@@eB@AeB`"Hy_NBHxNNv <L |N^NuNVH?pJ9gp$34<`X<gJfJ3H`<gJf3<WH4BL`"9pJg0<34<g<fxBJ9f(0 @`BFy?BgBNH40 @Gx`0 BFy?BgBNH40 GxȀ/BNILJ9mfB`n0 @x``<2 A BF B09瀂/BNH42Ax„p( Ѐ/BNILJ9mfB` 0 @ x$Ȁ/BNHXO.mgNDtXO<f,B9lxglxl Hx9` Hx:`Hx;NL y^B0"ҀҁҨ A(XKXJ JRfL N^Nu 0NVH 0$nJRgNtGHxHyv4/ND> y^B0"ҀҁҨ A( jB JRfL N^NuNVB0. reJЀ0;N<<@@@@@@<<@@@@@<<<@@@@@<<<@<< +f6` +f,HxNC~XO`B0+/B0+/?BgN B0reЀ0;N44444444449RBEf0IZB0/NCXOf <RB0/NEXEB"@ Ikk<`BrLN^NuNVH 0$n&n ./ BHxHxN@**gHy|NvXO"gB9`"g/ B/9N@ J9gJg Hx/N@0L N^Nu NVH 0$./9E/ NEHyz0/ GE N/9/ NHx/ HxF`ND> .F`NC/NzL N^Nurun_displayNV .A|-|z//N@TN^NuNV 9\f#~#}J`#|4#{ N^NuNT UP NT DN NVH884. 8.|b|bAԸ| f {` {APVD03Hx Bd/Hxy'ID>NE^ R h{<Hx Bx/Hxy(GF$N R hHxB4 B/Hxy)N R h . B/Hxy*N R hLN^NuTE UPTE DNNVH884. 8.|b|bAظ| f |(` |.APVD03Hx B/HxyID>NE^ R h7<Hx B/HxyGF$N R hIHxB4 B/HxyN R h[ . B$/HxyN R hmLN^NuLT UP LT DN NVH884. 8.| b.|b&AԸ| f }<` }CAPVD0| f y g6HxSENHxTN` ygHyNvhHy NvPO3Hx B/Hxy+ID>NE^ R h<Hx B4/Hxy,GF$N R hHxB4 Bl/Hxy-N R h . B/Hxy.N R h LN^NuNT UPNT DNNVH884. 8.| b.|b&Aظ| f ~` ~APVD0| f y g6HxQENHxRN` ygHyNvhHyNvPO3Hx B /HxyID>NE^ R h<Hx BD/HxyGF$N R hHxB4 B|/HxyN R h . B/Hxy N R hLJLN^Nu%X %X %02XNVH?04n 4.2nfPvBAAIg RHRxdB0 ryAg:m g`zg>gP`f y f6|y#z<E^ RB0"ҀҁҨ A<(.  @/?BgNF$ RB0"ҀҁҨ A(L N^Nu%9dNV/ / &n0. k P f^ kА"<;d  /HytE/ NDHx/ p0/ND> y^B0"ҀҁҨ A($n&nN^NuNVHxUNB#Hy\HxUNDB9HxNB N^NuNVHxNA/9HxUNDN^NuNV y WH0@ DN^NuNV9rN^NuMCS write port busy. Can't write 0x%02X NVH8. N&tNK  f.Ncrd/HyNB<POBDNKXLN^NuNV/HnHnHnN@B. 逐$.B.Ё"遒BҀ ЀЁЁBBHBJЂ$.N^NuNVByBy N^Nu STATUS INFORMATION |||||||||||||||| RATE TOTAL STD BERT PARAMETERSTEST SECONDS:EBLOCKS SENT:BLOCKS RECEIVED:BIT ERRORS:E-BLOCKS IN ERROR:ERROR-FREE SECONDS:NUMBER OF FAULTS:ERROR INJECTION:INJECTION RATE: PATTERN SYNC STATUS: F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** BERT Statistics ** 63 511 2047 4095 32767 ALT 1010 FOX MESSAGEMESSAGE BUFFERSelect BERT Pattern:FULL DUPLEXHALF DUPLEXSelect Handshaking MethodONOFFResynchronize After Faults?Enter Preamble Pattern: Enter Sync Pattern: 1000 10000 PATTERNSelect Block Size:SECONDSBITSBLOCKSCONTINUOUSSelect Units For Test Length:Enter Test Length: ______ Seconds.Enter Test Length: ____ Blocks. 1000 10000100000Select Test Length (# Of Bits):Enter Bit Error Injection Rate:Enter Error Injection Rate Exponent: E-Msg Text: F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** BERT Setup **Pattern:Handshake:Resync:Preamble:Sync Pattern:Block Size:Test Length:#:Error Injection Rate:E-Message Buffer:S/T INTERFACE U INTERFACEEnter Reference Point B1 B2 D Enter Primary Channel to Monitor,Emulate (B1, B2, D)B1+B2Enter Primary Channel to Monitor,Emulate (B1, B2, D, B1+B2)Enter Secondary Channel to Monitor (B1, B2, D, B1+B2)OFFB1B2Enter Handset Channel: B1, B2, or OFFMU LAWA LAWEnter Voice Encoding SchemeNONEV.110Select Rate Adaption NORMALALTERNATESelect Bit 8 NORMAL (all 1's) or ALTERNATE (0,X,S3,S4,1,1,1,1)DISABLEENABLE Enable/Disable S/Q Bit Use for Frame SyncNORMALPASSIVEEnter TE Mode: Normal=Only TE, Passive=one of many TEsEnter EOC Destination Address (0=NT, 7=Broadcast): NOYES F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** ISDN S/T/U Interface Setup **Reference Point:Primary Channel:Secondary Channel:Handset:Voice Coding:Rate Adaption:56K Rate Adaption Method:S/Q Bit Sync:TE Mode:EOC Destination Addr:TE State:TETD Line Status:NT State:NTNT EOC TX Addr-D/M-Code:NT EOC RX Addr-D/M-Code:NEBE:FEBE:RD Line Status:LT State:LTLT EOC TX Addr-D/M-Code:LT EOC RX Addr-D/M-Code: F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ISDN Runtime StatisticsNVNlNHxhHyNBN^NuNV/ / $n &nJ. f/ / Hy*ND`N$&$n&nN^NuNV0. |fHxND0<N^NuNV/$.N/NNDhBN@$.N^NuNVHxHxHxNAN^NuBERQNVHnBHy6N@H Jf&HxNC~/.N,N>N"NZN^NuNVHxHxHxNAN^NuNVNDhN^NuNVH8(nHnBHy6N@H JfPEG@*HxNC~/.N,N/ BHxHxNr(/ BHxHxN(.gLN^NuNV/ /$.B.E/ Hx2B/N@Nrf&HnBHxBN@*.g(|` JfHn/ NPO` r6gNJ.g$.$nN^NuNV/ n$n Sr eЀ0;N4Xnf@A0JWD2`\Hy/(HyNA'B`8HyB0(/HyN@)B`HyB0(/HyN@-B`HyB0(/HyN@(B`HyB0(/HyN@,B` <//(/NA&B`vHyB0(/HyN@+B`NHyB0(/HyN@*B`(B94`46B` `N$nN^NuNVB946B902NN^NuNVBBBBBB"BBBBBBBBBB &'()*+,-N^NuNV62&'()*+,-N^Nu0.0000000.000OUT OF SYNCOFFNV|H88B&</Hxu1ED>NB$</Hxu2NB/Hxu3N B/Hxu4NB/Hxu5NB/Hxu6N B/Hxu7NB/Hxu8NB(</Hxu9N B/Hxu:NB/Hxu;NB/HxuNB/Hxu?N B/Hxu@NB/HxuANB/HxuBN B/HxuCNB/HxuDNBHyHxuHN BHyHxuENE~/ HxqSGC N/ HxuFID8N/ HxqTN .HxuGNLdN^NuNVH?Hxu=HyHyN0 JfJgHxu:Hxu9HyHyNJfJgHxuBHxuAHyHyN0 JgN0 JgNRJf,Jf(Jf$Jf Jf0 JfJf0 Jf 0 Jf0 JgND\LHxu=HyHyN0 JfJgHxu:Hxu9HyHyNJf0 JgHxuBHxuAHyHyN0 JgN0 JgNRLPO.uHNCN^NuONOFFNVJ90g BHyJ`BHyMHxuEND>PO.uENCN^NuNVA0JWDB92NRND\N^Nu0.00000NVH0 "n n 4.6.JfJg Jf.Jf(BHy?BgED>NBHy?BgN`@HxHxHnE/ // NB:B/ ?BgED>N BHn?BgN ?BgECN?BgNL N^NuNVH0 6.4.HxHxHnE/ /.NCf .0g |*|*B/ /ED>NBHn/N/ECN/NL N^Nuset_isdn_speaker_changet_eoc_dataget_tim_setupset_tim_setupactivate_linkdeactivate_linkloop_2B_plus_Dloop_B1loop_B2send_CCRCreq_CCRCreturn_to_normalmake_UTCmake_holdwrite_mcsNVH<8*.BE*Jg\xI*G*/NB"&XOg0/NB$/Hy/NA///NB^< JfpLgD`tCgDtDg\`~"<gVmg&g<`^gHg:`L/N`F/N`8$n(*B<*BEB09Z/NCAB"XOJg,I&Hvg"D AXXXER6bB09Z/NEX0X j0pL|N^NuS6G6>6G6G 6G F6GSL6G [S6G66G6G 6G F6GF6GF 6GF 6GF6G6GSL6G [S6G6!6G6G 6G F6GF6GF 6GSL6G [S6G6@6G6G 6G F6GF6GF 6GSL6G [S6G66G6G 6G SL6G [S6G66G6G 6G SL6G [S6G66G6G 6G 1fGSL6G [S6G66G6G 6G ĉGSL6G [ "&*.26>BFJRVZ^~+$,,,4,D,,,,,,,,,--"-*-8-L-\-p----.. .6.v0~00011&1.161>1L111111122:2B2N2222222222 3L3T3\3j334&4.464>4F4N4V4^4j5v555555555555556*6v6|607<7~777777$848X8h8888889(949V9f9999999:.:P:`:::::::>;R;f;;;;<,<@<H<`<h<n<<<<<<<<<<===J=Z=l=z=X>l>|>>>>>>>>>>(?D?^?r??????@@4@F@b@|@@@@@A*ABZBpBBBBBCCC|DDDDDDEEEEEF*FFFFFFFFFFZGdGHHFHZHjHHHHHHI&I,I^IrIIIIIII*J>JDJ^JrJJ $(,048<@DHLPTXbp $(26@DNR\`jLL4M",:HLVZdr>PDPTPhPnPPPPPPPPPQ"Q(Q.Q4Q|QQQQQQQQQRZfZnZ|Z [4[<[B[[[[[[\8\\\\\\\\\8<]]]]]^^^0^:^@^h^|^^^^^^^^"_0_D_J_R___` `0`8`H`\`f`x````0aXa|aaaaaaaab.bBbZbfbbbbbbbcc0cBcNcfcrccccccc d(dLdVdnddde,e6e@eJepezeeeeeeeeeeeeeeeee ffffff g(g2gBPTbftx"2BRbrx:Zn~>Rbr6Vv*6BNZfr~"&48FJX\jn|"LPdtz *0<@NVjr&6<HL`pv "2BHTXpx,2>BVflx|(4@LXdp|&*8<JN\`r>BPXlt,Ll:Zz . 6 R r ! !@!`!!!!!!!!!!!!"" ","4"8"D"P"X"\"h"t""""""""""""""""""## ##"#4#F#T#X#j#x#|########## $$$0$>$B$T$b$f$t$x$$$$$$$$$$$%%%,%>%P%^%b%t%%%%%%%%%%%*^dnHjpv| $0>LXftďЏ&4>HPrzƐ̐Ґؐސ&.6FNV^fnv~‘ؑ,̒(2<FPZhv֓ܓ,2HNhnt”Ҕޔ,:DNXblzȕΕ":@V\v|Ɩ̖Җ *Xbl****************++++++"+&+,+0+6+:+@+D+șɚʚҚVdқ6<DLRZbhΜԜ0j֝.ݞ%mӟIT+b+p+~+++++ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZҾ OPR QVQQRlQQElo@pznnQT\T R:SSO$O)TTT`TlTxTV]x]]]]]BYSgSy[Tl\yCyDyEyF0123tRyGyHyIyJ4567|d yKyLyMyN89:;yOyPyQyR<=>?!ySyTyUyV@ABCdAyWyXyYyZDEFGdy[y\y]y^HIJKRy_y`yaybLMNORycydyeyfPQRSyyyy Ry!y"y#y$ y%y&y'y( y)y*y+y,!y-y.y/y0Ay1y2y3y4 !y5y6y7y8"#$%Ry9y:y;y<&'()Ry=y>y?y@*+,-iPiXi`igijinisixi~iiiiiiiiiiiiiiiiiiiiiiiiiiqHqIjqKqNjqIqJj qLqOj0qJqKj<pqMqPjKpqNqQjRqOqRj[qPqSjhq\qLjsqQqTjq]qMjqRqUjqSqVjqTqWjqUqXjqVqYjqWqZjqXq[jqYq\kqZq]kq[q^k#bert_setupDk2k6k6k2k9k<k<k9k@kDkHkLkUkZk^kdkiknktkyk{k}kkkkkkkkkkkkkkkkkkkklll'l5lClQl_lll'l5lilqlylllllllklm`melmamflmbmclmcmdlmdmhl memlmmfmmmmgmnm+`mhmom<$mjmpmK`mpmqmZ`mkmimo,mlmkmmmmjmHmimgm`mnmamhmombmpmqmrmmrmsmxmsmtninterface_t1_setupPy2z{Nzv\~RrzyFz2{bzv\~frzyzz{{v\~rz  ' '   '   =<?/ ( 8 >   '  ' ', 8 *) +  < (F 4Pdrtrrr%r%  r %  r++=+  H# r7rGr %%% +Y @9m1u)}! , @8 @0 L8 XX dx p |    8 X x       8 X x  $ 0 <  DT L` ll x     ! ! " ,"!# L#"$ l$#% %$& &%' '&( (D @u0PCHANNELUNFRAMEFRAMED d 2^15-1 2^20-1  QRSS    ON ! OFF $ ( 1E5 D 1E6 L 1E7 T 1E8 \PATTERNd2lSECONDS BLOCKS CONT   63  511  2047  4095  32767 ALT-1/0FOX MSGMSG BUF  f FDX  HDX   ' ON ! OFF $ (  AZ 1000 o 10000 wPATTERN dRlSECONDS BITS BLOCKS  CONT   B? ' 1000  10000 100000 PATTERNd6 v   ( + E 6 E6 E6 E6 E @9O1W)_!gow @        \&2>JVbln z    2   |"Bb @qH" 0 db # 20 db (.$ TERM KBRIDGEDV> _^ MAT { ICOT  ABAM  PIC  PULP x  0-220 220-440440-655  ,:NORMAL DRP/INSH h  7F  FF    INT ! EXT *3 D4 H ESF K0O264K CH. d56K CH. vA BITS B BITS C BITS D BITS  FDL L-64K CH. 56K CH. A BITS B BITS #Ft BITS3Fs BITS?-62Kp tDBIT 2 aF-BIT12o0 |FT & FSFT ONLY2  YES  NO 910 bit 24 bit 0/P YES  NO j/ AIP YES  NO  7 G ( B  F9q t  7E  FF  <  NORMAL INVERT 8  NO " YES "!"!$ NO " YES "!>"!^ @9!x1!)!!!!! !!! @!%=!K[iv  "8 """h""""""("@ "N "\"r """"!"*"d" ", @"Dn  "P  "\  "t8 " "< "Pz " """V" " . L" T # # !* !d @m`#'0.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000OFF00 IN SYNC0.0000000.0000000.0000000.0000000.0000000.000000 NORMAL[BYSgSy]lUU100010055+6666{80124S 0.0000000.0000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.000000.0000000.00000   ' ' '. ../ '   '    '    '    '    ' ,3,37>,37>,37>,37>, 3 7 > , 3 7 > , 3 7 > , 3 7 > , 3 7 >  !, 876 6,777"%.1%.@%.LZe%. s  %.   %.   %.   %.   %.22<.2<.2<.2<. 2 <. 2 <. 2 <. 2 <. 2 <.9 @9919)9!999 9:: @:#,7*,76- 7B-*7N-J7Z-j7f-- 7r- 7~- 7.  .* 7.J 7.j7..7../7/7/7//7/:/Z7/z8/8//8/8&0 820: !0Z!"8>0z"#8J0#$8V0$%0% &8b0&!'8n1'"(8z1:(#)1Z)$*81z*%+81+&,81,'-1-(.81.)/2/*082:0+12Z1,282z2-323.4824/5250682617372883:8393Z94:83z:5;3;6<83<7=3=8>9 3>9?4?:@94:@;A4ZA<B9"4zB=C4C>D9.4D?E4E@F9:4FAG5GBH9F5:HCI5ZIDJ9R5zJEK5KFL9^5LGM5MHN9j5NIO6OJP9v6:PKQ6ZQLR96zRMS6SNT96TOU96UPV6VQW6WRX6X:*6 @y:6//T1/T1/NVH 0&n$n HxqINDtXOJWD|*HnNJz @/XOJg /NN`/NB4 @XO*BBBHn/ GNNB JgH/ NJB$<@// N/ NKB// N.NKBHy@/ N/ NL6`BHy@/ N/ NAL N^NuUNFRAMEDFRAMEDUnk T1 formatNVHxqINDtXOrg lrg ` <A` <A` <AB//.NNN^Nu2^15-12^20-1QRSSUnk T1 BERT patternNV/ $nHxqJNDtrgmJg ` rg`AB `AB`AB` AB`Jf $nN^Nu24NV/ E/ HxmkNCHyB/ NEJVH0@ D$nN^NuNVpN^NuNVHx NDt<WDrN^NuNVH8&n$KNCND4@ND\@HkHxqQIC NHkHxqRNND@ND@HxqUEEBN'@HxqVN'@ND@"HxqXN7@$HxqYN7@& Hk(HxqZNHkHxq[NHk,Hxq\NHkHxq]N Hk0Hxq^NLN^NuNVHxqNNDtreBЀ0;N8 &,2B`(<`"<`<`<`<` <`<N^NuNVHxqONDtg rf<`BN^NuNVHxqPNDtg rf<`BN^NuNVHxqSNDtrg lrg` <`<`BN^NuNVHxqTNDtrgmJg `rgr`B`<` <`<N^NuNVHxqWNDtrgmJg `rgr`B`<` <`<N^NuNV/ E/ B0. /NC/ NA8$nN^NuNV/ /NC6NGB9tED9re` Ѐ0;N T.NF`NF|`HxNNG(BNPO`NZN]^NDNE@NA9`<$.$nN^NuBERQNV/ / G/ E~/ N@/ / ND,HxNDDBNNHyBHyFN@H$n&nN^NuNV/ND 9fp4<NC@g"e|g`@|g*|f4`>`ND`ND` ?BgNCxXO 9g$.N^NuNV-nHn/9N@TN^NuNV/NW ND 9fp4<NC@g"e|g`@|g*|f4`>`ND`ND` ?BgNCxXO 9g$.N^NuNVNCHyJN6@HyJN0$<Oz/BHxHx Hx HxN/BHxHxHxHxN,.BHxHxHxHxNNSNB"@AhBpL N^NuThe T1 package is gone! NV/ HxEANHxNHxNHxNBHxHx Hx EANBHxHx Hx NBHxHxHxNBHxHxHxN/9NBFHyPNBp$nN^Nustats_rackT1STATSNV/HyQBNC$HxaHy`HNBB?BgHyQMHxB/NA <$.N^NuNV/.NNqN^NuNVNqN]^N^NuNV/.NN^NuNV/.NNqN^NuNVNqN]^N^NuNV/ $nHxqINDtXOJf / NB`B$nN^NuNVHxmsNDt<WDrN^Nubert_root_rackBERTNVH8 HyRXNC(HxaHy`HNB6N<4B?BgHyQMHxB/EAN B/HyRgHxB/N LN^NuT1_TIM, toplevel.c: mux rev = %x NV/ /NB"@A2"/HyRNBPO<RDr€/HxmuEFNPO</RDr€/HxmvNBHx%NHxHx(N$.$nN^Nu64000NVH00&nBBASySySySySySB+ /Hk NEHxEDtN JfB`FHxNBXOJg<f<H4A4JHxNDt" <fvJg <<`<BB @ @L N^Nud_dce_framed_dte_framed_rcv_framesend_d_framesend_d_frame_ilNVH0 $n|&B*%B*(HyNUHyNUNBPOJfHx NDtXO<WD`BJ9fJ9g J*'f<BJ9fJ9g *'f<JgJg|&`B*&`Jg|&`|&A%BJfJg<A(BJ*#gJVDNB@6NBHHL N^NuNVH 0&nBAJg $H/NBXOJVD SPJPKJfHHL N^NuNVH 0&nBAJg $H/NB"XOJVD SPJPKJfHHL N^NuNVNPNHxiHyVNNBN^NuNV/ / $n &nJ. f/ / HyND`NW$WL&V$n&nN^NuNV0. |fHxND0<N^NuNV/ $nNWNWNX:r$HnHxHxHxN@*.fNWNX:`NDhBN@$nN^NuNV/ ENBNWNYJfN\T$nN^NuNVNDhN^NuNVBZB^BbBfBjBnrstN^NuNVHxHx'HxNAN^NuNVH00B9Lgvg`99` 9 9!BBAN_.HxuUGD>NHxuUECNBBBN_.HxuVNHxuVNL N^NuNVH> 9JAr,<ZBAsBAtBJg&HxuJHxuI/NRHxuIECNHxuJNJg*HxuLHxuKHybNRHxuKECNHxuLNJg*HxuNHxuMHyjNRHxuMECNHxuNNJfJg,HxuPHxuOHy&/NHxuOECNHxuPNJfJg0HxuRHxuQHy&HybNHxuQECNHxuRNJfJgJE/ Hx 9JAr,<ZBAsBAtBJg&HxuJHxuI/NRHxuIECNHxuJNJg*HxuLHxuKHybNRHxuKECNHxuLNJg*HxuNHxuMHyjNRHxuMECNHxuNNJfJg,HxuPHxuOHy&/NHxuOECNHxuPNJfJg0HxuRHxuQHy&HybNHxuQECNHxuRNJfJgFE/ HxNHxyjECNBB9!/N.HxyhNHxyhN 9LgN^BLN^Nu NOT MONITOREDNVH0 B9Lgrf6NBHy^=/N/ECN/NL N^NuNVN^N_6N^NuNV/ Eg,BB9 /N_.HxygND>HxygNCg(BB9!/N_.HxyhND>HxyhNC$nN^NuNV/ EZg,BB9/N_.HxyiND>HxyiNCg(BB9/N_.HxyjND>HxyjNC$nN^NuNV/. A$"<HcC&f `\I\Hb$.N^NuNVH 0. [ACH <Tc&$GJEIggVKVJVIb]B <L N^NuNV/ / $n &nJ. f/ / HyTND`N\$]&\$n&nN^NuNV/ HxmhEDtNXOJfHxmmNJf 3`3`3$nN^NuNVH8HxHxBHxyHxyHyREe NHyHxHyGAN .HxBHxyHxyHyNHydHxHy\N ./Hx.BHxyBHxyAHydNHyEB0/HydN .B0/HyNHx HyhIZB0/EcLNHx HyvGB0/N$N^BTBSLN^NuNV/ / HxHxBHxyHxyHyREe NHyHxHyGAN .HxBHxyHxyHyNHyB09/HyN . HyvEB0/NcLN^BR$n&nN^NuNV/ / HxHxBHxyHxyHyREe NHydHxHy\GAN ./Hx.BHxyBHxyAHydNHyB09/HydN . HyhEZB0/NcLN_6BR$n&nN^Nu0.00000NVH?<=n =n&n 0.ЋcBC-IIKt ԋC-IC-I~ދ| ܋zڋx؋& P0."CQg"D=Q/."EB0/"FB0/"GB0/"nB0//Ne "n Q ШgHxHx/.E/ //NB:/ B0/Ne "BJQgB SJfJg6/.NA,"BQF@R@/.?BgNCNHnB0/Ne`N^NuNVNA3ByN^NuNVH0 4. 6.EB0/NCXOAPC0 |0B0/NEXL N^NuNVB09N^NuNVNA3 ByN^NuNVH0 4. 6.E B0/NCXOAPC0 |0B0/NEXL N^NuNVB09N^NuNVNA3By N^NuNVH0 4. 6.EB0/NCXOA PC0 |0B0/NEXL N^NuNVB09 N^NuNV |N^NuNV |N^NuNV n0XN^NuNV |N^NuNV |N^NuNV |N^NuNV. |N^NuNV n0.X0N^NuNVNA3ByN^NuNVH0 4. 6.EB0/NCXOAPC0 |0B0/NEXL N^NuNVB09N^NuNVNA3ByN^NuNVH0 4. 6.EB0/NCXOAPC0 |0B0/NEXL N^NuNVB09N^NuNVNA3B9N^NuNVB9N^NuNVH0 . .EB0/NCXOA |B0/NEXL N^NuCHANNELUNFRAMEFRAMED635112047409532767ALT_1010FOX_MESSAGEMESSAGE_BUFFER2_15_12_20_1QRSSFDXHDX1E51E61E71E8PATTERN100010000SECONDSBLOCKSCONTINUOUSBITS100000BERT_T1_ModeBERT_PatternBERT_T1_PatternHandshakingBERT_T1_ResyncResyncPreambleSync_PatternBlock_SizeT1_Block_SizeTest_LengthT1_Test_LengthTest_SecondsTest_BlocksTest_BitsError_Inject_RateError_Inject_Rate_ExpMessage_Line_1Message_Line_2Message_Line_3Message_Line_4Message_Line_5YESNOONOFFFD1FD2HRDMULTIPLEEVENODDSPACEMARKNONEPULSETONE()LayerNORMALDROP_INSERT7FU_LAWMATICOTABAMPICPULP0_220220_440440_655D4ESFBIT_2S_BITCROSS_CHECKSEQUENTIAL10_BIT24_BITCHANNEL_DATA_64KCHANNEL_DATA_56KROBBED_BITS_AROBBED_BITS_BROBBED_BITS_CROBBED_BITS_DLINK_DATAFT_BITSFS_BITSINTERNALEXTERNAL0_db20_dbTERMINATEDBRIDGED7EFFINVERTEDT1_Transmit_ModeT1_Idle_CharsT1_Cable_TypeT1_Cable1_LengthsT1_Framing_ModeT1_Yellow_ModeT1_D4_sync_procedureT1_Sync_With_CRCT1_Sync_LengthT1_B8ZS_CodingT1_RCRD_FRAMING_BITST1_ESF_Data_PathT1_Channel_NumberT1_D4_Data_PathT1_Line_ClockT1_Receiver_GainT1_Rcv_TerminationT1_Signal_Channel_NumberT1_Signal_Channel_IdleT1_Signal_Channel_MILNVH0 &.NoA f <<`>$HHynBBBB//ND$fXJJfBE/NCBB0L N^NuNVH <$.*n (nNB&@/+/NEPOJf No$@f*B`4*`,*`(BBGJg$S/*/NEPOJgXKJfL<N^NuNVH8rgrg`0Hyp(`Hyp*`Hyp,`Hyp./NE `/Np$.N^NuChNVH 0$.Hyp/GE NE/ HxmkNC/ /NL N^NuH"9H8 y Hf |(# $f(<`x@0<,N@HxUNDXLNBNVN^NuNVN^NuNVHxN\N@/9RNE/9JN@BHxNE| yNXH PNN^NuNV/ B9Lrg>mJg$`HrfB#N3Z3`&3Z#N`3#NEJHyN@~$NsBHytX/N@$nN^NuNVN^NuNVN}B&By,B:By@B\B`BlBpB9B9BB|BBBBBBBBBB3ZBBBBB9 B9!BBBBBBBBBBB B3N^NuNVNr yN PNN^NuNV/JJg/. /.Hys/9ZND#RHnHnHnN@ Jf . yVf #Z`0c"AZ ЁЀD tce Hx/9JN@0$.N^NuNV/BNHxN@POHyVHnHnN@ Jf#ZBBHysHxND#RHxN\tpg /NtXO`Nu`NqNVH80(.HnB/9N@ G6<ENHn/HxHxN@*$ .f`gNs.g*HyRNC0SyZ"RA PN"RA PNXOrf yNXH PNHx/.N@0POp-@gpL N^NuNVH08BBI6<GZENHnBHxHxN@*.gDHyRNC0TS"RA PN"RA PNRBXO|c RPH PNBP"RA PNp-@gL N^NuNV yNXH PNN^NuNV/ / 9LS<bbHnN8(n&n J+bffb<BBCJlfCA$ <-etr"@4 fdVHdAbgSAcgSg0,g:6[A"/B4//E@NAB///NS` ((`BC4,gdZHxmhNDtXO<f6A*/B0,//E@NA2///NS0`A*/?Bg/N@S 4,g.ZA:///E@NAB///NS4,gZAJ/?Bg/N@SL|N^NuNV"n nB.rn&rlrf||` ||Jig|N^NuNVNyFNyN^NuNV/ / /</<BEgN/</<BN/<@GgzNE"BR5@/<@NH@B@ђ/<@N3*$n&nN^NuNV/ / /</<JEgN/</<JN/<HGgzNE6BR5@/<HNH@B@ђ/<HN3>$n&nN^NuNVNz2NzzN^NuNV/ /</<BEgN/</<BNN{N|N}N|R$nN^NuNV/ /</<JEgN/</<JNN|N}N}vN|$nN^NuNVNzN{N^NuNV/ /</<BEgN/</<BNN|N}$nN^NuNV/ /</<JEgN/</<JNN}N}v$nN^NuNVN{bN{N^NuNV/ /</<BEgN/</<BNN{N|R$nN^NuNV/ /</<JEgN/</<JNN|N|$nN^NuNV/ / /<@GgzNE&BR5@/<@NH@B@ђ$n&nN^NuNV/ / /<HGgzNE:BR5@/<HNH@B@ђ$n&nN^NuNV/ / BG&E" -@Hy\HnHy\N@yZ$$n&nN^NuNV/ / BG:E6 -@HyHnHyN@y$$n&nN^NuNV/<@Ngz3,N^NuNV/<HNgz3@N^NuNV/ / G,E*0Rg02ѹ.Hyl/HylN@yZ4$n&nN^NuNV/ / G@E>0Rg2FѹBHy/HyN@y4$n&nN^NuNV/ / HyZG~NHy"E~6NHyNHy6NBRBV$n&nN^NuNV nBBBZB^N^NuNV nB(B B(B(N^NuNVN~fN~N^NuNV/$<"/HyZN~/N~6$.N^NuNV/$<6/HyN~/N~6$.N^NuNV/ / &n$n J f *fHkNC0SXOJ*f *fHkZNC0S$n&nN^NuNVH8/</<BIgN/</<BN/<@GgzNEtBR5@/<@NH@B@ђ/<@N3*/<@NEBR5@.@NH@B@ђ/</<JN/</<JN/<HNEBR5@/<HNH@B@ђ/<HN3>B9BBAnBB|BxBBBBBBBBLN^NuNV/ n/</<BEgN/</<JNNg/</<BNNN|Nb/</<JN NN}N 9fN}N}vNFN$nN^NuNV/ / /<@GgzNEpBR5@/<@NH@B@В$At"# $n&nN^NuNV/ / /<@GgzNEBR5@/<@NH@B@В$A"# $n&nN^NuNV/ / /<HGgzNEBR5@/<HNH@B@В$A"# $n&nN^NuNV 9g4ѹB-@HyHnHyN@N^NuNVH00HyxE/HyxNAG&֒&$y d`/ /NEPO$/ /NEPO&Hy?BgHyN@E <fHyNC0BL N^NuNVH8 E(ع$&9d://NEPO$//NEPO$Hy?BgHyN@LN^NuNV/ HxN\N@/9REEN/9bN/9JN@BHxNE|$nN^NuNV/ B9Lgrg"`>#Zf#"j#~f^`#f#6j#~^ yf0EJHyN@~$NBHy>/N@$nN^NuBERQNVH 0HyBHy8N@HNrNWZNzNNNBBNBNHxN@HyVHnHnN@ Jf#ZBBHysHxND#RHxN\G4<EZHnHxHxHxN@* 9g4Np.g&HyRNC0SRNv\N y^NXONNLHxNVXO`NqNVH8<NEnC"<x <K>I(<B&A$&+"#C$9&9&@&'C$9&9*+C$9&9()C$9&9&D&'CFHMIG yf!Q!y P g`L<N^NuNV/4. HnB/9N@ Jf?Bg/.N@0$.N^NuNVHxqLNDtXOrehЀ0;N ".:#`H#B@`<#`0#`$HxqJNDtJf #` #N^NuNVBBHyHxND#bJJgNnN^NuNVHnBHx/9N@NJf/.NXO`N^NuNV/ .SreЀ0;N DN6`|NF`rNrNWZNzNNN`LE f@NNNgB9TVB9B`N`N$nN^NuNV |N^NuNV/ EPJf N`N BR$nN^NuNVB9N^NuNVAJf<B/<NfHxHxNfxBBHyHx|ND#`NDN^NuNVNgBHxNfx/<HxNfN^NuNVA<g<fND`@NgB/<NfHxHxNfxBBHyrHx|ND#N^NuNV/<HxNfBHxNfxB9N^NuNVB9rgrg `N`N$ yNN^NuNV/<HxqINDtXO<f9NgdfTV`Ng$.N^NuNV 9gV//9NEPOre@B9TVHy6NC0LHxqKNDtPOJfNgN^NuNV/ NgB9TVB9Lgrg ``HxqMNDtXOrg>mJg`^rfX#`L#~E/ HxqUNC/ NA8`"#VE/ HxqVNC/ NA2#$nN^NuNV 9e#N^NuNV 9*e#N^NuNVN^NuNVB9BBB9B9B9B9N^NuNVH08E gHy&NC0XOJJf fHy.NC0KXOBI c<HyZNC0rXOvƂ/NGRE"Ҕ$XO<Y&<'B//NEPO(//NEEE 3RD33LHx`,HxmhEDtNXO<fHxmi`HxmjNXO<fHx/<Nfx$nN^NuNV/BBNBrepЀ0;NV B`TB@`NNrgmJg`*rgrg`B `B@`B` B`BN@@NT@@/BNh/BNhz$.N^NuNV/ E/ HxmkNC/ NA2S@|cp$nN^NuNV/ E/ HxmrNC/ NA2S@|cp$nN^NuNVH00&nHxEDtNB/N/NBHxNE|Hx N<f 3`Byg*J+(g$HxmtNDtXO<fy@3 `ByNN`BNNXOBredЀ0;N $H8 N`FHxqINDtXOJf / NXO`*N`"HxqINDtXOJf / NXO`NN@L N^NuNV/ / BBEfNHxmhNDt <f HxBNPOBBGfxNNNDPPOJgNJJgHxBNHxBNNhHxNbNVN$n&nN^NuNVNB"@A2<cHxmqNDt<gBHHN^NuNV/ /NBgrg` 4<`4<`BBHxmhEDtNXO<fB?BgBNf4<HxmeN Jf4< HxmgNXOJf4<$ ?BgBNfxN09@y?BgBNfNhHxmeNDtJf"/.NrHxPNbN|N`HxNbNVN$.$nN^NuNV/ /NBgrg` 4<*`4<*`BBHxmhEDtNXO<fB?BgBNf4< HxmeN Jf4< @HxmgNXOJf4HxqIEDtNXOJfHxmeN<g `HxqIEDtNXOJfHxmeN<f L`L$nN^NuNV/ /HxmhEDtNXO<f0HxmiNreZЀ0;N<<@@@@<`rgrg`0<`.<`(HxmjNrgrg` B` <`<$.$nN^NuNV//<?NDPJgNJJfB`<r?Ɓ/BNE/BNE//ND$.&.N^NuNVH8<. HnBHxI@NHxNDJ|K/ /(< DN$|HxHxGE|N.@BHxNBCNCHn/.HxNHx N@N2@HxmpEDtN Jf.@/ / DNB./BNiBrg&mrg`Rrg:rg`DHxmeNXOJg.`2HxmeNXOJg ` 9Lf<4`< `J9Lf<8`<HxmaNDtXO<fBCHxNE|L<N^NuNV/ /HxmcEDtNXOrlrm2`.HxmdNrgmJg `rg `BB` t`t`tB0$.$nN^NuNVH0 $n . HxmbNDtJWDBve>Ѐ0;N   Jg$``JgL N^Nu STATUS INFORMATION |||||||||||||||| RATE TOTAL STD BERT PARAMETERSTEST SECONDS:EBLOCKS SENT:BLOCKS RECEIVED:BIT ERRORS:E-BLOCKS IN ERROR:ERROR-FREE SECONDS:NUMBER OF FAULTS:ERROR INJECTION:INJECTION RATE: PATTERN SYNC STATUS:SEVERELY ERR'D SEC:T1 BERT PARAMETERS FAILED SECONDS:DEGRADED MINUTES:T1 RCV LINE STATUS: F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** BERT Statistics ** CHANNELUNFRAMED FRAMEDSelect T1 Mode: 2^15-1 2^20-1 QRSSSelect BERT Pattern:ONOFFResynchronize After Faults? 1E5 1E6 1E7 1E8 PATTERNSelect Block Size:SECONDSBLOCKSCONTINUOUSSelect Units For Test Length: 63 511 2047 4095 32767 ALT 1010 FOX MESSAGEMESSAGE BUFFERFULL DUPLEXHALF DUPLEXSelect Handshaking MethodEnter Preamble Pattern: Enter Sync Pattern: 1000 10000 BITSEnter Test Length: ______ Seconds.Enter Test Length: ____ Blocks. 1000 10000100000Select Test Length (# Of Bits):Enter Bit Error Injection Rate:Enter Error Injection Rate Exponent: E-Msg Text: F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** BERT Setup **T1 Mode:Pattern:Resync:Block Size:Test Length:Handshake:Preamble:Sync Pattern:#:Error Injection Rate:E-Message Buffer:0 db20 dbSelect Receiver Gain (in db)TERMINATED BRIDGEDSelect Receiver TerminationMATICOTABAMPICPULPSelect Type Of T1 Cable 0-220220-440440-655Select Cable Length (in feet) NORMALDROP/INSSelect Transmit Mode7FFFSelect Idle CharacterINTERNALEXTERNALSelect T1 Line ClockD4ESFSelect Framing Mode: 64K DATA CHANNEL 56K DATA CHANNEL A ROBBED BITS B ROBBED BITS C ROBBED BITS D ROBBED BITSFACILITY DATA LINKSelect Data Path:64K DATA CHANNEL56K DATA CHANNEL A ROBBED BITS B ROBBED BITS Ft BITS Fs BITSEnter Channel Number:DATABIT 2 = 0F-BIT 12 = 1Select 193S Yellow Alarm Mode: ALL F-BITSFT BITS ONLYEnter Desired Sync Procedure: YESNOCheck CRC Values During Sync?10 bit24 bitSelect Sync Length:Enable 8-Bit Zero Supression (B8ZS) Coding?Record Framing Bits In Aggregate T1 Data?Enter Signal Channel Number:7ESignal Channel Idle Char 7E or FF?INVERTEDSignal Channel Data Normal Or Inverted? F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** Interface Control **T1 Line SetupReceiver Gain: Termination: Cable Type: Cable Length: Transmit Mode: T1 Transmit SetupIdle Select: Line Clock Select: Framing Mode: T1 Data Path SetupData Path: Channel Number: Yellow Alarm: Sync Procedure: Check CRC During Sync: Sync Length: B8ZS Coding: Record Framing Bits: Signal Channel Number: T1 Signal Channel Setup Signal Channel Idle Char: Sig Channel Polarity: TEST SECONDS: RATE DCE DTE T1 STATISTICS EFRAMES RCVD:BPV'S RCVD:E-BPV-FREE SECS:OOF EVENTS:FT/FS ERRORS:FT ERRORS:CRC-6 ERRORS:ESF ERRORS:CARRIER LOSSES:SYNC LOSSES:SYNC LOSS TIME:ERROR-FREE SECS:CURRENT [PREVIOUS]T1 LINE CONDITIONS F 8 F 7 F 6 F 5 F 4 F 3 F 2 F 1 ** T1 Line Statistics **NVNPNHxhHyfNBN^NuNV/ / $n &nJ. f/ / Hy@ND`Nh$&$n&nN^NuNV0. |fHxND0<N^NuNV/$.N/NNDhBN@$.N^NuNVHxHxHxNAN^NuBERQNVHnBHyN@H Jf&HxNC~/.NN"NN\TN^NuNVHxHxHxNAN^NuNVNDhN^NuNVH8(nHnBHyN@H JfPEG@*HxNC~/.NN/ BHxHxNr(/ BHxHxN(.gLN^NuNV/ /$.B.E/ Hx2B/N@Nrf&HnBHxBN@*.g(|` JfHn/ NPO` r6gNJ.g$.$nN^NuNV/ n$n Sr eЀ0;N4Xnf@APJWDR`\Hy/(HyNAGB`8HyB0(/HyN@IB`Hy>B0(/Hy>N@MB`HyB0(/HyN@HB`Hy6B0(/Hy6N@LB` <//(/NAFB`vHy.B0(/Hy.N@KB`NHy&B0(/Hy&N@JB`(B9T`TVB` `N$nN^NuNVB9TVB9PRNzN^NuNVBBBBB>BBB6B:BB BB"B.B2B&B*FGHIJKLMN^NuNVVRFGHIJKLMN^Nu0.0000000.000OUT OF SYNCOFFNV|H88B&<z/Hxu1ED>NB$</Hxu2NB/Hxu3N B/Hxu4NB/Hxu5NB/Hxu6N B/Hxu7NB/Hxu8NB(</Hxu9N B/Hxu:NB/Hxu;NB/HxuNB/Hxu?N B/Hxu@NB/HxuANB/HxuBN B/HxuCNB/HxuDNBHyHxuHN BHyHxuENE~/ HxqXGC N/ HxuFID8N/ HxqYN .HxuGNLdN^NuNVH?NR JgHxuHxu=HyHyN0 JfJgHxu:Hxu9HyHyNJfJgHxuBHxuAHy&Hy.N0 JgN0 JgN6Jf,Jf(Jf$Jf Jf0 JfJf0 Jf 0 Jf0 JgND\LNR JgHxuHxu=HyHyN0 JfJgHxu:Hxu9HyHyNJf0 JgHxuBHxuAHy&Hy.N0 JgN0 JgN6LPO.uHNCN^NuONOFFNVJ9Pg BHy.`BHy1HxuEND>PO.uENCN^NuNVAPJWDB9RN6ND\N^Nu0.00000NVH0 "n n 4.6.JfJg Jf.Jf(BHy?BgED>NBHy?BgN`@HxHxHnE/ // NB:B/ ?BgED>N BHn?BgN ?BgECN?BgNL N^NuNVH0 6.4.HxHxHnE/ /.NCf .0g |*|*B/ /ED>NBHn/N/ECN/NL N^Nu "&*.26:>BFJRVZ@AA*A>AFATAhApA|AAAAAABfBnBvB~BB CCCBCLCZCpCxEEEEEEEEEE.FJFPFVF^FlFFFFFFFG0G>GpGzGGGGG>HLH\HfHpHzHHHHHHHHI.IHIbIIIIIIIJJ(J4JLJXJJJJJDKLKTK\KdKlKzKKKKKKK`LhLpL|LLLLLLLL$M,M8MzMMMMMLNTN\NdNlNtN|NNNOOOOOOOOOOOOP*PvP"Q.Q^QpQQQQQQQQQQR*RvRRRRR*SSSSSSSTTTTTTTUU|UU*V0V:VjVxV~VVVVVVW(W0W6W@W`WfWlWrWxW~WWWWWWWWWWXDXJXRXZXdX|XXXXXY Y8Y>YDYrYYYYYYYYYZD]]]^"^N^p^^^^^^^ __>_N_V_________```:`TXd`r`x`~`hl :>X\vz *.HLfj``````a.a6a@a`ahanazaaaaaaaaabbbb@bHbPbXbjbpb|bbbbbbbbbccc*c0cc*dpddddddLeeeef&fVfjfpffffffggFgggh(hXhlhrhhhhhhhi(i $(26@DNR\`jx .<X\`dhlptx|  $(,048<@DHLPTX\`dhlptx| (,6DHRV`dnr|*n0nDnlnnnoopFpPpxpppppppppp q>qHqPqXq^qdq  qqqqqqr rrr&r,r0r:r@rDrJrPr^rfrrrrrrrrrrrrrrrrrrrrrss sss s&s,s2s8s>sDsJsPsVs\sbshsnstszssssssssss ttFtbttttttttttuu>uLuZu|uuuuuNvfvxvvvvvvvvvww&w,w4w>wLwww8y>y\yxyyyyyyz$z*zFz\zbzhznzzzzzzzzz{{&{<{B{T{Z{v{{{{{{{{&|.|`|f|t|~|||||||||}}(}.}<}H}N}V}d}}}}}}}}}}}}}}~ ~X~^~n~v~|~~~~~~&BJlz  &,4:@HNT\x؀ހ"*FPrzʁ&0>PV^lr~Ƃ؂4>Lflrăʃ΃ԃ؃$HP\bhntzʄڄ"0@FLV\f|…Ѕօ "*0:hƆ҆ކ"2<D\tćʇЇև܇"*NXdn̈4BPZjƉ*4HPVdzŠ̊(,J\blrvƋ̋ҋ؋ (2DP^dp̌ |2H`fʐ$*RZr\bhntƒVfԓ4t”NΕPn>^ʗ$PtʘDv$,HP\dr\r؜"*0Xr|$.4:̞  &BLRXdjp̟  &BLRX`jpؠdpvԡ,6x^ޤ0Pp 0 P p  0 P p  0 @ H d  $ D d   $ , 0 8 < D H T ` l x  ,8DPX\ht $(04<HLZ^lp~ $26HVZhlz~  .2@DRVdhvz *.X\p&*>N^n~"2BRbhtx*J^n~.BRbrx:Zz ".:FR^jv ,0>BPTbftx(,:>LPbt &26JZ`lp $<DTdjvz .4@DXhx"28DHhv~$(<LR^bv  $ * 6 : H P l ! !&!2!6!J!Z!`!l!p!!!!!!!!!!!!!!!!!!!!" """("4"@"H"L"X"d"p"x"|""""""""""""# ##&#*#8#<#J#N#\#`#n#r##############$$$&$4$8$F$J$X$\$j$n$|$$$$$$$$$$ %%"%0%4%B%F%X%j%%,-"-B-b-----.".B.b......./ /2/R/r/////020R0r00000121R1r11111222R2r22222323R3r33333424R4r44444525R5r55555626R6r6666667 7777"7&7.727>7J7V7b7n7z777777777777 88"8.8:8F8R8^8j8v888888888888999*969B9N9Z9f9r9~99999999999999999: ::::":.:2:D:R:V:d:h:v:z:::::::::::::: ;;;*;.;<;@;R;`;d;v;;;;;;;;;;;;<<<<&<*<<<J<N<\<`<n<r<<<<<<<<<<<<<<=="=&=4=8=F=J=\=j=n=============>>">4>B>F>X>f>j>|>>>>>>>>>>>> ???0?>?B?T?b?f?x????????????@@@(@,@>@P@b@p@t@@@BHR޲,NTZ`гֳpִ"0<JXdrʵֵ ",4V^dlr¶ȶζԶڶ *2:BJRZbjr  *4>LZhع޹,2LRXtzº(2<FP^hvȻλ$:@Z`fƼҼ<FPvҽZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ&D_G.703.MUX'D_T1.MUX(ISDNSTU.MUXZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZVERSION=C100 PARTITION=1000 :020000000115E8 :0700030002082578C1780016 :05000B000208FA781064 :02001000780076 :0D001300218375813D75B800C28CC28E75C9 :100020008911C29CC299C298759027C292D292D26D :1000300048C249C24A75980011467E53AF06D2A8FD :10004000D2AAD2AF214F7D067C0031034305403157 :10005000037D26310343054031037D07310343050A :100060004031037D27310343054031037D053103D2 :1000700043054031037D25310343054031037D08AD :10008000310343054031037D2831034305403103EB :100090007D09310343054031037D29310343054088 :1000A00031037D0A310343054031037D2A31034387 :1000B000054031037D0B310343054031037D2B3176 :1000C0000343054031037C007D003103430540318B :1000D000037D20310343054031037C007D0C310357 :1000E00043054031037D2C310343054031037D0D31 :1000F000310343054031037D2D3103430540310376 :100100009184228DE010E506C24BC2918004D24B4F :10011000D29110E608C24CB290C2908006D24CB286 :1001200090D2902320E004C24D8002D24D85E09908 :100130003099FDC299304D0DD29C3098FDAC99C2DA :1001400098C29C80078C993099FDC299B290228EFA :10015000E0C39F6017A90630B5FD87A0D293C29374 :100160000975E080C39970027953AE01214FC00137 :10017000A907A7E00975E080C39970027953AF0120 :10018000D00122C0E0C0D0C082C083C0008580E022 :1001900020480CACE0AD203103C249D24821CA85C9 :1001A000E02020041330070AADE031038CE0316E0B :1001B00021CAD249C24821CA540F9001C025E07318 :1001C000410E6172817C21FC21D9C292D292D00071 :1001D000D083D082D0D0D0E032C00179009000002E :1001E00075E0009329F90582AA82BA00F30583AA73 :1001F00083BA10EC89E0316ED00121CA74C0552059 :10020000700575E0C1800375E000316E21CA91ED83 :1002100091F674C0552070045145414320D00451DB :1002200072412C30060451D8412C712430051474CD :10023000C0552020D00451A7414330060451FE414F :1002400043714B21CAC2A8C28CC28EC2A9C2ABC222 :100250004FC250C251C2527C007D00310343054061 :1002600031037D203103430540310391BD91CA9193 :100270008422D24FD250C251C252D2A8D2A9C25B5C :10028000C25CD1BBD19791BD91CA9184305404D244 :100290002BD229305304D233D2317403FC7D003188 :1002A00003430540310322D251D252D2A8D2A9C26F :1002B0005DC25EF103D1DF91BD91CA9184305604D5 :1002C000D23BD239305504D243D2417403FC7D2055 :1002D0003103430540310322D24FC250D2A8D2A9E4 :1002E000C25BD19791BD91CA9184305304D233D26D :1002F000317D407C0331037C007D00310322D251EB :10030000C252D2A8D2A9C25DD1DF91BD91CA918457 :10031000305504D243D2417D607C0331037C007DA3 :1003200020310322D250C24FD2A8D2A9C25CD1BB85 :1003300091BD91CA9184305404D22BD2297D007C86 :100340000331037C00430540310322D252C251D213 :10035000A8D2A9C25EF10391BD91CA91843056041E :10036000D23BD2397D207C0331037C0043054031F0 :10037000032230503CB121B1A9D1BBD131F140F1C0 :10038000AE8525E0316E302A288508E0316E85097A :10039000E0316E850AE0316E850BE0316E850CE050 :1003A000316E850DE0316E850EE0316E850FE031E6 :1003B0006EC22A304F3C91FFB187D197D10FF12700 :1003C000F18C8526E0316E3032288531E0316E8542 :1003D00032E0316E8533E0316E8534E0316E853543 :1003E000E0316E8536E0316E8537E0316E8538E07C :1003F000316EC23230523DB165B1EDF103D175F1CC :10040000731207F28527E0316E303A288518E03103 :100410006E8519E0316E851AE0316E851BE0316E14 :10042000851CE0316E851DE0316E851EE0316E85E4 :100430001FE0316EC23A30513DB143B1CBD1DFD173 :1004400053F1591207D08528E0316E3042288510CB :10045000E0316E8511E0316E8512E0316E8513E07A :10046000316E8514E0316E8515E0316E8516E03110 :100470006E8517E0316EC24291CA21CA91BD91CA00 :10048000918421CA7C007D02310343054031037D04 :1004900022310343054031037D04310343054031DC :1004A000037D24310343054031037D0331034305BC :1004B0004031037D233103430540310322753A96D1 :1004C000753996753C96753B962278087582187634 :1004D0000008D582FA7831758208760008D582FA4C :1004E00075260075250075280075270022C250C2A8 :1004F0004FC252C25122C258C257C25AC25922C216 :10050000677DC331038C307D437C003103E530606F :100510000FB4FF02D2672535F53550020536D232C9 :1005200022C2687D8331038C307D037C003103E57A :1005300030600FB4FF02D268250CF50C5002050D97 :10054000D22A22C2697DE331038C307D637C003185 :1005500003E530600FB4FF02D2692514F514500290 :100560000515D24222C26A7DA331038C307D237CE3 :10057000003103E530600FB4FF02D26A251CF51C80 :100580005002051DD23A22C2637DC431038C307DF6 :10059000447C003103E530600FB4FF02D2632533A1 :1005A000F53350020534D23222C2647D8431038C8B :1005B000307D047C003103E530600FB4FF02D2646B :1005C000250AF50A5002050BD22A22C2657DE431C4 :1005D000038C307D647C003103E530600FB4FF0292 :1005E000D2652512F51250020513D24222C2667D51 :1005F000A431038C307D247C003103E530600FB4DE :10060000FF02D266251AF51A5002051BD23A22C201 :100610006B7DC231038C307D427C003103E530605C :100620000FB4FF02D26B2537F53750020538D232AE :1006300022C26C7D8231038C307D027C003103E567 :1006400030600FB4FF02D26C250EF50E5002050F7C :10065000D22A22C26D7DE231038C307D627C003172 :1006600003E530600FB4FF02D26D2516F516500277 :100670000517D24222C26E7DA231038C307D227CCE :10068000003103E530600FB4FF02D26E251EF51E67 :100690005002051FD23A22A253925F7DC131038CD2 :1006A00022D297C295A2819253D295C297E5222079 :1006B000110454E2C1B85412422622A25492607D21 :1006C0008131038C21D297C295A2809254D295C2D7 :1006D00097E52120090454E2C1DC5412422522A2EC :1006E0005592617DE131038C24D297C295A2839209 :1006F00055D295C297E52420210454E2E10054121A :10070000422822A25692627DA131038C23D297C245 :1007100095A2829256D295C297E52320190454E2FD :10072000E1245412422722301115205B12D25B784B :1007300031120814D2321208B67D407C00310322F7 :10074000300915205C12D25C7808120814D22A12E3 :1007500008C77D007C00310322302116205D13D2B2 :100760005D7810120814D2421208D87D607C001205 :10077000010322301915205E12D25E781812081477 :10078000D23A1208E97D207C0031032230101E305D :1007900063077833120814D23230670778351208AD :1007A00014D232306B077837120814D23222300854 :1007B0001E306407780A120814D22A306807780CB1 :1007C000120814D22A306C07780E120814D22A228A :1007D00030201E3065077812120814D242306907A3 :1007E0007814120814D242306D077816120814D209 :1007F000422230181E306607781A120814D23A3096 :100800006A07781C120814D23A306E07781E120854 :1008100014D23A22B6FF0708B6FF0280071806B6C0 :100820000002080622C0E0C0D0C000D297D2968550 :1008300080E0C296C297204E1012085E1208741211 :10084000088A1208A0B24E800E1208A012088A125E :10085000087412085EB24ED000D0D0D0E03220E44E :10086000121206BB1205A912063112052112074009 :100870001207AE2220E51212069712058712060F04 :100880001204FF12072712078C2220E61212070318 :100890001205ED1206751205651207731207F22292 :1008A00020E7121206DF1205CB120653120543127F :1008B00007591207D022208C08758A18758CFCD233 :1008C0008CD257753A9622208C08758A18758CFC44 :1008D000D28CD25875399622208C08758A18758C5E :1008E000FCD28CD259753C9622208C08758A1875DA :1008F0008CFCD28CD25A753B9622C0E0C0D0C0008E :10090000204E0C3132314C31663180B24E211931DA :10091000803166314C3132B24E20570D20580A20BA :100920005907205A04C28C212B31EFD000D0D0D0EF :10093000E03230571630110812099B120697214BEE :10094000C25BC2577C037D4012010322305816302F :1009500009081209B01206BB2165C25CC2587C03AB :100960007D00120103223059163021081209C512E8 :1009700006DF217FC25DC2597C037D601201032224 :10098000305A173019091209DA12070302099AC2FC :100990005EC25A7C037D201201032230530E2033A5 :1009A00009E53A6003D53A02D23321AF753A96226F :1009B00030540E202B09E5396003D53902D22B21A2 :1009C000C47539962230550E204309E53C6003D5A5 :1009D0003C02D24321D9753C962230560E203B0969 :1009E000E53B6003D53B02D23B21EE753B9622C22C :1009F0008C75E023258A85E08A75E0FC358C85E0DE :040A00008CD28C22E6 :00000001FF ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZVERSION=8100 PARTITION=1000 :020000000115E8 :070003000207D178817800AB :05000B000208A67810B8 :02001000780076 :0D00130021BB75813D75B800C28CC28E7591 :100020008911C29CC299C298759027C292D292D26D :1000300048C249C24A75980011467E53AF06D2A8FD :10004000D2AAD2AF21877D047C00313B43054031E9 :100050003B7D24313B430540313B7D06313B43052D :1000600040313B7D26313B430540313B7D05313BF3 :10007000430540313B7D25313B430540313B7D0706 :10008000313B430540313B7D27313B430540313B0C :100090007D08313B430540313B7D28313B430540E2 :1000A000313B7D09313B430540313B7D29313B43A9 :1000B0000540313B7CFF7D0A313B430540313B7DB0 :1000C0002A313B430540313B7D0B313B43054031F9 :1000D0003B7D2B313B430540313B7D0C313B4305A0 :1000E00040313B7D2C313B430540313B7C007D0161 :1000F000313B430540313B7D21313B430540313BA2 :100100007C007D0D313B430540313B7D2D313B4330 :100110000540313B7D0E313B430540313B7D2E3167 :100120003B430540313B7D0F313B430540313B7D37 :100130002F313B430540313B91C4228DE010E50651 :10014000C24BC2918004D24BD29110E608C24CB28D :1001500090C2908006D24CB290D2902320E004C28C :100160004D8002D24D85E0993099FDC299304D0DF8 :10017000D29C3098FDAC99C298C29C80078C993073 :1001800099FDC299B290228EE0C39F6017A90630F4 :10019000B5FD87A0D293C2930975E080C399700220 :1001A0007953AE012187C001A907A7E00975E08056 :1001B000C39970027953AF01D00122C0E0C0D0C012 :1001C00082C083C0008580E020480CACE0AD2031C7 :1001D0003BC249D248410285E02020041330070A7F :1001E000ADE0313B8CE031A64102D249C248410228 :1001F000540F9001F825E073414661BA81BC413447 :100200004111C292D292D000D083D082D0D0D0E01F :1002100032C001790090000075E0009329F9058251 :10022000AA82BA00F30583AA83BA10EC89E031A64A :10023000D001410274C05520700575E081800375BE :10024000E00031A64102B11BB12474C055207004F6 :10025000517D417B20D00451AA41643006047114C1 :100260004164716630051474C0552020D00451E1FA :10027000417B300604713D417B71904102C2A8C2AE :100280008CC28EC2A9C2ABC24FC250C251C2527CF4 :10029000007D01313B430540313B7D21313B43052E :1002A00040313B91EB91F891C422D24FD250C251D0 :1002B000C252D2A8D2A9C257C258D16BD14791EB32 :1002C00091F891C4300C04D22CD228301404D234CA :1002D000D23074414490FC7D01313B430540313BB9 :1002E00022D251D252D2A8D2A9C259C25AD1B3D124 :1002F0008F91EB91F891C4301C04D23CD238302459 :1003000004D244D24074414490FC7D21313B4305EA :1003100040313B22D24FC250D2A8D2A9C257D147B6 :1003200091EB91F891C4301404D234D2307D417CE9 :1003300041430490313B7C007D01313B22D251C2CC :1003400052D2A8D2A9C259D18F91EB91F891C43061 :100350002404D244D2407D617C41430490313B7CF3 :10036000007D21313B22D250C24FD2A8D2A9C2581F :10037000D16B91EB91F891C4300C04D22CD2287D32 :10038000017C41430490313B7C00430540313B22DA :10039000D252C251D2A8D2A9C25AD1B391EB91F88C :1003A00091C4301C04D23CD2387D217C414304905E :1003B000313B7C00430540313B2230503AB152D1B1 :1003C0006BB1E1F114F1788525E031A6302A28855A :1003D00008E031A68509E031A6850AE031A6850B43 :1003E000E031A6850CE031A6850DE031A6850EE052 :1003F00031A6850FE031A6C22A304F3AB12DD14740 :10040000B1BFD1FBF1608526E031A63032288531BD :10041000E031A68532E031A68533E031A68534E0AF :1004200031A68535E031A68536E031A68537E03145 :10043000A68538E031A6C23230523BB19AD1B3D151 :1004400025F1471207A88527E031A6303A288518FC :10045000E031A68519E031A6851AE031A6851BE0BA :1004600031A6851CE031A6851DE031A6851EE03150 :10047000A6851FE031A6C23A30513BB175D18FD16C :1004800003F12D1207908528E031A630422885100F :10049000E031A68511E031A68512E031A68513E092 :1004A00031A68514E031A68515E031A68516E03128 :1004B000A68517E031A6C24291F8410291EB91F86E :1004C00091C441027C007D02313B430540313B7DBC :1004D00022313B430540313B7D03313B43054031F5 :1004E0003B7D23313B430540313B22753A967539BC :1004F00096753C96753B96227808758218760008AA :10050000D582FA7831758208760008D582FA752688 :100510000075250075280075270022C250C24FC201 :1005200052C25122C254C253C256C25522C25F7D2A :10053000C3313BEC540FF5307D437C00313BE5305B :10054000600FB40F02D25F2533F53350020534D269 :100550003222C2607D83313BECF5307D037C00317B :100560003BE530600FB40F02D260250AF50A500255 :10057000050BD22A22C2617DE3313BEC540FF530EA :100580007D637C00313BE530600FB40F02D2612502 :1005900012F51250020513D24222C2627DA3313BF2 :1005A000EC540FF5307D237C00313BE530600FB417 :1005B0000F02D262251AF51A5002051BD23A22C246 :1005C000637DC2313B8C307D427C00313BE5306045 :1005D0000FB4FF02D2632537F53750020538D23207 :1005E00022C2647D82313B8C307D027C00313BE550 :1005F00030600FB4FF02D264250EF50E5002050FD5 :10060000D22A22C2657DE2313B8C307D627C003192 :100610003BE530600FB4FF02D2652516F516500297 :100620000517D24222C2667DA2313B8C307D227CEE :1006300000313BE530600FB4FF02D266251EF51E87 :100640005002051FD23A22A214925B7DC0313B8C2E :1006500022D297C295A2819214D295C297E5222008 :1006600010045420C1685403422622A20C925C7DDF :1006700080313B8C21D297C295A280920CD295C238 :1006800097E5212008045420C18C5403422522A25E :1006900024925D7DE0313B8C24D297C295A2839257 :1006A00024D295C297E5242020045420C1B05403DD :1006B000422822A21C925E7DA0313B8C23D297C29D :1006C00095A282921CD295C297E52320180454204B :1006D000C1D4540342272230140578351207C022B2 :1006E000300C05780C1207C022302405781412074C :1006F000C022301C05781C1207C02230101520576C :1007000012D25778311207C0D2321208627D417C72 :1007100000313B22300815205812D25878081207B1 :10072000C0D22A1208737D017C00313B2230201692 :10073000205913D25978101207C0D2421208847D72 :10074000617C0012013B22301815205A12D25A78CF :10075000181207C0D23A1208957D217C00313B2245 :10076000301714305F0778331207C0D23230630776 :1007700078371207C0D23222300F14306007780A5F :100780001207C0D22A306407780E1207C0D22A227C :1007900030271430610778121207C0D24230650743 :1007A00078161207C0D24222301F14306207781A1E :1007B0001207C0D23A306607781E1207C0D23A221A :1007C000B6FF0708B6FF0280071806B60002080643 :1007D00022C0E0C0D0C000D297D2968580E0C296F9 :1007E000C297204E1012080A12082012083612086A :1007F0004CB24E800E12084C120836120820120815 :100800000AB24ED000D0D0D0E03220E41212066BF3 :100810001205521205E11206E0120714120778229F :1008200020E51212064712052D1205BF1206D71237 :1008300006FB1207602220E6121206B312059A1276 :1008400006251206F21207471207A82220E7121205 :10085000068F1205751206031206E912072D1207FC :100860009022208C08758A18758CFCD28CD2537516 :100870003A9622208C08758A18758CFCD28CD2543A :1008800075399622208C08758A18758CFCD28CD20A :1008900055753C9622208C08758A18758CFCD28C74 :1008A000D256753B9622C0E0C0D0C000204E0C113D :1008B000DE11FE311E313EB24E01C5313E311E11F8 :1008C000FE11DEB24E20530D20540A20550720564B :1008D00004C28C01D731E3D000D0D0D0E032305305 :1008E0001C30100B12098F12064712095F01FDC25E :1008F00057C2537C414304907D4112013B22305446 :100900001C30080B1209A412066B12096B211DC2C0 :1009100058C2547C414304907D0112013B22305562 :100920001C30200B1209B912068F120977213DC223 :1009300059C2557C414304907D6112013B223056DF :100940001D30180C1209CE1206B312098302095E7B :10095000C25AC2567C414304907D2112013B223091 :100960001408205B0578351207C022300C08205C83 :1009700005780C1207C022302408205D0578141277 :1009800007C022301C08205E05781C1207C02230E8 :10099000140E203409E53A6003D53A02D23421A37B :1009A000753A9622300C0E202C09E5396003D539B2 :1009B00002D22C21B87539962230240E204409E544 :1009C0003C6003D53C02D24421CD753C9622301CBC :1009D0000E203C09E53B6003D53B02D23C21E27589 :1009E0003B9622C28C75E023258A85E08A75E0FC5F :0809F000358C85E08CD28C22CD :00000001FF ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZPARTITION=1800 VERSION=8188 CHECKSUM=DF :02000000011EDF :0A0003002140788178887818780091 :03001300020F6178 :05001B000214FF740057 :10002000F535F5377418F536F538758911C28CC277 :100030008E7400F532F534D262C260C261C265C20C :1000400066C263C264C270C271C272C273C274C239 :1000500075E47563EE7564EE7565EE7566EE75674D :10006000EE7568EE7569EE756AEEC276C277C27992 :10007000C27A7551EE7552EE7553EE7554EE7557A2 :10008000EE7558EE7559EE755AEE755BEE755CEED1 :10009000755DEE755EEE7561EE7562EE755FEE751F :1000A00060EE756E00755000754F007B01D27C7557 :1000B0006B00756C0A756D01754AFFF530783A79F9 :1000C00010760008D9FB75900075903475B0FF115B :1000D000EA313175A00075B801753F8475A8847543 :1000E0003B5512021B853D6FA104783975E08031C4 :1000F000987830E43198748031987496D5E0FDE4B6 :100100003198782275E0633198783875E01031982D :10011000783175E0073198783A75E008319878378A :1001200075E070319878233198782075E0FA31982D :1001300022785075E0B8319D785E75E011319D22CE :10014000C0D0C0E0C083C082C000C00190F800E011 :1001500030E01420E135782012020120E21A30E06C :100160002A120F0002018B78201201FA20E21430CB :10017000E019120E9F02018B7831120201120D520A :1001800002018B78311201FA120BFBD001D000D0A2 :1001900082D083D0E0D0D03231A431C8221201EC19 :1001A0001201F322C00130610FA96DB90111A9300C :1001B000B9010C7583FA21C2B83104C8D2E6C875FA :1001C00083F98882F0D00122C00130610FA96DB996 :1001D0000111A930B9010C7583F921E6B83104C8C1 :1001E000D2E6C87583FA8882F0D001227583FB8835 :1001F00082F0227583FC8882F0227583F98882E080 :10020000227583FA8882E0227583FB8882E022755A :1002100083FC8882E022511B51AA22758C60D28C0B :10022000E58C6079782131FA540170F4783275E008 :100230008031A4783A75E00331A4E58C605F783AA8 :1002400031FA30E1F57832853AE031A4E58C604D41 :10025000783A31FA30E1F5783A75E00A31A4E58C64 :10026000603B783A31FA30E3F5783231FA783A7512 :10027000E00E31A4E58C6025783A31FA20E2233093 :10028000E3F2783231FA85E03DE58C6010783A315E :10029000FA20E20E30E3F2783231FA4189C28C0260 :1002A00002A2783A75E00031A422758C60D28CE508 :1002B0008C607978215101540170F4783275E080B6 :1002C00031C8783A75E00331C8E58C605F783A51FF :1002D0000130E1F57832853AE031C8E58C604D783F :1002E0003A510130E1F5783A75E00A31C8E58C60A1 :1002F0003B783A510130E3F578325101783A75E0B4 :100300000E31C8E58C6025783A510120E22030E3B7 :10031000F27832510185E03EE58C6010783A510167 :1003200020E20B30E3F2783251016118C28C783A46 :1003300075E00031C822713B718B22758C60D28CC4 :10034000E58C603D782131FA540170F47832853BB8 :10035000E031A4783A75E00331A4E58C6023783A63 :1003600031FA30E1F57832853CE031A4E58C60115A :10037000783A31FA30E1F5C28C783A75E00831A468 :1003800022C28C783A75E00831A422758C60D28C38 :10039000E58C603D78215101540170F47832853B41 :1003A000E031C8783A75E00331C8E58C6023783ACB :1003B000510130E1F57832853CE031C8E58C6011BF :1003C000783A510130E1F5C28C783A75E00831C8CD :1003D00022C28C783A75E00831C82275A800E53051 :1003E000B40309782075E0FF31A461F77831120178 :1003F000FA753200120BFBE530B40209782075E083 :10040000FF31C8810C783175E03C31C8753F857586 :10041000A8852275A80078311201FA543C0303B470 :1004200001028130B40F028130783175E00431A4CB :100430007831120201543C0303B40F028145783134 :1004400075E00031C8753F8575A8852275A800E55F :1004500030B40309782075E0FF31A481857831122A :1004600001FA543C0303F531B40C028185B4080948 :10047000783175E03031A48185783175E00031A4A0 :1004800075E02031A4E530B40209782075E0FF3131 :10049000C881C6B4010A7831740731C8C26281C606 :1004A0007831120201543C0303F533B40C0281C6C7 :1004B000B4080281C6B4090281C6B4070281C678B5 :1004C0003175E02031C8753F8575A8852275A80073 :1004D000783175E00031C8783175E00731A4853F87 :1004E000A822C001790090000075E0009329F90569 :1004F00082AA82BA00F30583AA83BA10ECE9121427 :100500007BD00122307C2EC27CC279C27A754F002A :10051000755000755FEE7560EE7561EE7562EEE523 :1005200030B4030EE56E700AC27C8B3B753CFF1243 :10053000098A756E0030B5FD3060051214F6C26090 :10054000C3E535B53708C3E536B53802A17875A8D7 :1005500000853683853582E0F580D293C29375801D :10056000FF853FA8A3A983B91C0875350075361807 :10057000A178858235858336306603120B74306529 :10058000831209BAA104E530B403051205A1A1A0A4 :10059000B40205120626A1A0B401051206C4A1A04A :1005A000221207FFE54D54F0B40002A1B002062567 :1005B000E534B40919D56C16B27D756C0A753B80AB :1005C000207D05753CFBA1CB753CFA12098AE54DEF :1005D000B56108E54EB562030205F0854D61854EB3 :1005E000627DF9AE4DAF4E121498854D65854E660D :1005F000854D55854E5612092D3078297DF9AE4D21 :10060000AF4E121498854D65854E66E54D30E01568 :10061000E54EB45410E564B4540B753B80753CF062 :1006200012098AC12522120847E54B54F0B4000292 :10063000C1350206B9E532B40919D56B16B27E751B :100640006B0A753B80207E05753CFBC150753CFAFA :1006500012095AE54BB55F08E54CB5600302067513 :10066000854B5F854C607DF1AE4BAF4C1214988585 :100670004B69854C6A854B55854C5612090030787C :10068000387DF1AE4BAF4C121498854B69854C6A9E :10069000E54B540E6010B40E02C1A6753B01753CCB :1006A0000012095AC1B9E54B30E00512088EC1B9F4 :1006B000753B01753CAA12095A22854B3B854C3C7F :1006C00012095A22207B03020741120847E54B54C6 :1006D000F0B40002C1D9020740E532B40919D56B64 :1006E00016B27E756B0A753B80207E05753CFBC19A :1006F000F4753CFA12095AE54BB55F08E54CB56054 :1007000003020725854B5F854C607DF1AE4BAF4CF6 :10071000121498854B69854C6A854B3B854C3C127D :10072000098A020725854B55854C561209003078F9 :100730000F7DF1AE4BAF4C121498854B69854C6A16 :10074000221207FFE54D54F0B40002E1500207FE0B :10075000E534B40919D56C16B27D756C0A753B8009 :10076000207D05753CFBE16B753CFA12098AE54D6D :10077000B56108E54EB5620302079C854D61854E63 :10078000627DF9AE4DAF4E121498854D65854E666B :10079000854D3B854E3C12095A02079C854D558577 :1007A0004E5612092D3078567DF9AE4DAF4E854D1F :1007B00065854E66121498E54D30E042E54EB4531F :1007C00011E564B4530C753B80753CF012095A0274 :1007D00007FEE54EB45411E564B4540C753B8075C6 :1007E0003CF012098A0207FEE54EB4FF11E564B43D :1007F000FF0C753B80753CFF12095A12098A22E5ED :100800004D54F0B41003020846B4201FE54DB55B0B :1008100008E54EB55C03020846854D5B854E5C7D60 :10082000F9AE4DAF4E121498020846B48018E54E4A :100830006014207D057DEA02083C7DE9AE4E7F0014 :1008400012149802084622E54B54F0B41003020833 :100850008DB4201FE54BB55D08E54CB55E0302087D :100860008D854B5D854C5E7DF1AE4BAF4C1214987F :1008700002088DB48017E54C6013207E047DE201F0 :10088000837DE1AE4C7F0012149802088D22E54C66 :10089000B4510F1206BA753B80753CF412095A0226 :1008A00008FCB4520F1206BA753B80753CF212096F :1008B0005A0208FCB4500F1206BA753B80753CF121 :1008C00012095A0208FCB4530F1206BA753B807520 :1008D0003CF012095A0208FCB4FF0F1206BA753B2D :1008E00080753CFF12095A0208FCB454061206BA7D :1008F0000208FC753B01753CAA12095A755AEE2292 :10090000E555B55308E556B5540302091B85555303 :10091000855654754F00C27A02092A207A0C054F79 :10092000E54FB40305D27AD27822C27822E555B5D4 :100930005108E556B552030209488555518556526E :10094000755000C27902095720790C0550E550B462 :100950000305D279D27822C27822E530B40106307C :100960007627756D0075A80012033B853FA8756D4D :1009700001207715E53B54F0700F853B67853C6897 :100980007DF2AE67AF6812149822E530B4010630EC :100990007627756D0075A80012038B853FA8756DCD :1009A00001207715E53B54F0700F853B63853C646F :1009B0007DFAAE63AF6412149822E5307003020B27 :1009C00073B40303020A9930694B206A1778361210 :1009D000020830E703020A99786674101201ECD21B :1009E0006A020A99783612020830E70C786674F0C9 :1009F0001201ECC26A020A997838120208B41F1276 :100A0000786474101201EC785674A01201ECC2697B :100A1000C26A020A99206B46206A217836120208BF :100A200030E73B7856E41201EC786674301201EC42 :100A3000786474301201ECD26A020A997836120294 :100A40000820E755785674A01201EC7866741012ED :100A500001EC786474101201ECC26A020A99206AEF :100A600015783812020830E5307856E41201ECD2DD :100A70006BD26A020A99783612020830E705C26B17 :100A8000020A23783812020820E50E785674A01264 :100A900001ECC26BC26A020A99E530B40203020B90 :100AA00073306D4B206E17783612020F30E7030259 :100AB0000B73786674101201F3D26E020B737836E2 :100AC00012020F30E70C786674F01201F3C26E0266 :100AD0000B73783812020FB41F127864741012016D :100AE000F3785674A01201F3C26DC26E020B73202C :100AF0006F46206E21783612020F30E73B7856E4BD :100B00001201F3786674301201F3786474301201C4 :100B1000F3D26E020B73783612020F20E755785627 :100B200074A01201F3786674101201F378647410E3 :100B30001201F3C26E020B73206E15783812020F89 :100B400030E5307856E41201F3D26FD26E020B73A7 :100B5000783612020F30E705C26F020AFD783812AC :100B6000020F20E50E785674A01201F3C26FC26E18 :100B7000020B732275A800A295307211405EC297D5 :100B8000758CF8758A00D28CC272020BDC308C1E18 :100B9000400DE58C54F07044C28CD273020BDCD251 :100BA00097C28C7DFD7EFD7F0012149861DC208E43 :100BB0001330730E5026C273758DFF758BC0D28EA5 :100BC00061DC61CCE58D54F07012C28E30740DC2C0 :100BD00074D2977DFE7EFE7F0012149861F7E54A7D :100BE00050077E20B5060961F77E00B5060261F761 :100BF0008E4A7DFC121498853FA822C000C083C095 :100C000082543C0303A832B53108B80002811202B5 :100C10000D4BC0E0900C1BF8232873020CA7020CAC :100C20004B020C64020D01020CC3020D3D020D3D8E :100C3000020C6D020CE8020D3D020D3D020CFB02A0 :100C40000D0A020D34020D3D020C86306103020DC7 :100C50003D753201306603020D4078317403120194 :100C6000A4020D40206103020D3D020D40753204C7 :100C700030610975320220630A75320378317423BA :100C80001201A4020D40753203206103020D40756C :100C90003202E531B40706753204020D4078317432 :100CA000031201A4020D40753203206103020D40BE :100CB00075320D307503020D407831743F1201A476 :100CC000020D4075320B206177E531B4070281D8FF :100CD000B40F0281D8B4010AB8000281E27532056E :100CE00081E5753208020D40753206306152753269 :100CF00008783174331201A4020D4020613F020DC7 :100D000040206139753207020D407532073061307D :100D1000753209E530B40128E533B401232062209F :100D2000433F08853FA8758BAF758D3C753964D2FC :100D30008E020D40206106753207020D40753200AB :100D4000D0317DF0AE32AF31121498D000D082D0C5 :100D50008322C000C083C082543C0303A834B5334F :100D600009B80003020D6A020E98C0E0900D73F8F6 :100D7000232873020DA3020DB6020DDE020DE70259 :100D80000DF3020DFE020DDE020E0C020E18020E15 :100D900024020E87020E2D020E48020E38020E8724 :100DA000020E56306103020E8775340478317403E5 :100DB0001201C8020E8A206103020E8775340D30BD :100DC000640675340B020E8A206203020E8A3075A7 :100DD00003020E8A783174031201C8020E8A206160 :100DE00003020E87020E8A206103020E8775340209 :100DF000020E8A753402206103020E8AC12D206121 :100E000003020E87753409D27C020E8A2061030228 :100E10000E87753408020E8A75340230616C7534A1 :100E200004020E8A306160753407020E8A20610365 :100E3000020E8A75340BC13E30614C75340D783129 :100E400074131201C8020E8A75340330613C753484 :100E500009D27C020E8A7534013061217534027822 :100E600031743F1201C8206421433F08853FA875B3 :100E70008BAF758D3C753905D28E020E8A78317430 :100E8000231201C8020E8A753400D0332066097D12 :100E9000F8AE34AF33121498D000D082D083223011 :100EA0007603756D00783A1201FAF930E319783259 :100EB0001201FA207006F54BD270C1C0F54CC27019 :100EC000783A740E1201A4E930E211C270783A74D3 :100ED000081201A4D27B3061031205867824120126 :100EE000FA756D0122C270783A74081201A4782450 :100EF0001201FA7DF07EAB7FAB121498756D012262 :100F0000307603756D00783A120201F930E31978F2 :100F100032120201207106F54DD271E121F54EC267 :100F200071783A740E1201C8E930E211C271783A50 :100F300074081201C8C27B3061031205867824123E :100F40000201756D0122C271783A74081201C878E5 :100F5000241202017DF87EAB7FAB121498756D01EF :100F600022C0D0C0E0C000C001C083C08275A8000C :100F7000C294E580D294853FA8F8900F8275F00363 :100F8000A4730210840210870210940210BC021392 :100F90002B0210C20210C70210CC0210EB0211008B :100FA00002110F02112502113802113E02115B02DB :100FB00011F30211F7021178021185021194021146 :100FC0009B0211A20211A90211B00211B70211BEB7 :100FD0000211C50211CC0211D30211DA0211E10291 :100FE00011E80212BB0212BB0212BB0212BB0212B8 :100FF000BB0212BB0212BB0212BB0212BB0212BB2B :101000000212BB0212D70212E30212EF0212FB021B :10101000131D02132B02133602133F02134802134F :101020005102135D02136502136A02136F021285E7 :1010300002129A0212AF02135702137402138002B3 :10104000130F02138D02139402139B0213A20213B7 :10105000A50213A80213AB0213AE0213B10213B61A :101060000213C30213CE0213D90213E40213EF02D8 :10107000140302140E02141A02142C02143E021459 :1010800050021462021467748112147B7488121463 :101090007B02146775A800E4F5B8F5F07581079038 :1010A00000007590FFF589F588F58CF58AF58DF5CA :1010B0008BF598F587F5D0C0E0C0E03275300002BE :1010C0001100D260021467753C0C8003753C8C756E :1010D0003B81E56FB442004003533CFB120336757D :1010E0003B83753C0412038B0214672061061203D4 :1010F000DB0210F712044C753F8575A88502146752 :1011000020610612041302110C1204CD021467D2DE :10111000617831743C1201A474C8D5E0FD740312E7 :101120000198021467C261783175E0071201987561 :10113000E0231201C80214671204E202146775A8C2 :101140000078311201FA753200120BFB7DF0AE32DD :10115000AF31121498853FA802146775A800783142 :10116000120201753400120D527DF8AE34AF331205 :101170001498853FA80214677400F540F54674047E :10118000F5470214677408F5407480F5467400F55D :10119000470214677400F5410214677420F5410298 :1011A00014677400F5420214677440F54202146734 :1011B0007480F54202146774C0F5420214677440EB :1011C000F5430214677442F5430214677444F5430F :1011D0000214677446F5430214677408F544021458 :1011E000677400F5440214677401F5457402F5480C :1011F000021467744621F9744E785212019D785A90 :101200007430454345444546454512019D78547424 :10121000004541454212019D786E74C012019D74D3 :10122000004547454812019D7876741612019D7855 :1012300068747E12019D78607400454912019D78A2 :101240006474F012019D786674F012019D785674F2 :101250000012019D206609785074F4454012019DEA :10126000785E12020FB4AA0C785674A012019DC2C7 :1012700065021467D265D269D26DC26AC26EC26B52 :10128000C26F02146778607400454912019D78505E :1012900074F4454012019D02146778607408454952 :1012A00012019D785074F4454012019D0214677834 :1012B0005074F0454012019D021467E8540FF8C4C1 :1012C00048785E12019D785074F812019D785A7426 :1012D0003812019D021467C264783174231201C868 :1012E000021467D264783174031201C8021467C211 :1012F00063783174231201A402146720610574031A :10130000021307D263740778311201A4021467C272 :1013100063C275783174071201A4021467C264C2F3 :1013200075783174071201C8021467753001306195 :1013300002D2960210EB753C5012038B02146775B3 :101340003C5112038B021467753C5212038B02143A :10135000677530020210EB7530030210EBE5901256 :10136000147B021467D272021467D266021467D229 :101370007402146778317417120198D275021467D9 :101380007831741B120198021467021467EBD2E1E2 :10139000FB021467EBD2E2FB021467EBD2E3FB0221 :1013A00014670214670214670214670214670214B8 :1013B000677B010214678B3B753C5012098AD26E21 :1013C0000214678B3B753C5112098A0214678B3BF0 :1013D000753C5212098A0214678B3B753C54120902 :1013E0008A0214678B3B753C5312098A0214677595 :1013F0003B80753CFF12098A8B3B753CFF12098AC2 :101400000214678B3B753CEE12098A021467753B28 :101410000D753C0012098A02146775A8007DF1AEB3 :1014200069AF6A121498853FA802146775A8007DF9 :10143000F2AE67AF68121498853FA802146775A8CA :10144000007DF9AE65AF66121498853FA802146757 :1014500075A8007DFAAE63AF64121498853FA802A8 :101460001467D276021467C292D29275A00FD0820E :10147000D083D001D000D0E0D0D0328538838537FA :1014800082F0A3E583B41C0975370075381802147F :101490009785823785833822C0E0E530B4011C206F :1014A0007619BDF00281BBBDF80281BBBDFC028193 :1014B000BBBDFD0281BBBDFE3A81BB85388385374C :1014C00082EDF0A3E583B41C06758200758318EEE7 :1014D000F0A3E583B41C06758200758318EFF0A3B2 :1014E000E583B41C0875370075381881F385823799 :1014F000858338D0E022E535F537E536F53822C06A :10150000E0C000C083C082C28ED5393175A80020EA :10151000620E533FF7783174031201C8D262A138CA :10152000E533B40F13783174231201C87534037D89 :10153000F8AE34AF33121498853FA8A145758BAF30 :0E154000758D3CD28ED082D083D000D0E032A8 :00000001FF ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ