TuS&T bTT !"VT&ArialT VT&ArialT VT&ArialT ZT @ZT `ZT ZT ZT ZT ZT ZT ZT #! e\TkTfT1$oTPTgTt=/8=/8d#T=/8d&%Insertion Times        LinearQuadratic DoubleChainedPerfectPerfect* 0.25x    Ac]?   0.5x   7R?   1xc?GDl?\Cl?q_vO?۲V@)g>?   1.01xCl?IO?^8d`?s%C?=QF(@PFoZ?   1.5xQ?K<,Ԛ?`;On?uR'?a?D?   2x~jt?M8v?bT?Q y&1?f `Qڛ?{[T  $@ +>|]? xh|??     Search Times                Linear Quadratic  Double Chained Perfect   0.25x   EԸ?}   0.5x   Nܪ(?   1x5=wX?<n{?Q$۲V?f?߾?ˡE?  1.01x㥛 ?>4j"?SvOjM?h/$M8?%M8?  1.5x3 ?@x&1?U@5?jbX9ȶ?8B-k?  2xOV#?B#۲?WD?l:v?'e?  4x-C6?D]K=?Y&1?na#?&1?  10x9.X?Fݝ?[cD?p= ףp=?#ћ? Efficiency       LinearQuadratic DoubleChainedPerfect 0.25x   *? s/   0.5x   D0? u.   1x"h? 2- dU*/? G- fuW4? \- q6}U? w- 2? -  1.01x˟b? 4, k@,? I, `|j"u? ^, ߎ(y? y, ߎ(y? ,  1.5x_…? 6+ BǕ? K+ J*? `+ 2s? {+ 2s? +  2xS? 8*  ? M* ̹e-? b*  qT? }*  qT? *  4x 7? :) iZ=J? O) B{r? d) mZI? ) mZI? )  10x -? <(  \? Q(  XMGը? f(  tL]? (  tL]? ( "Probe Length " " " " ""Probe Length/Search "  "  "  "  " # #Linear#Quadratic #Double#Chained#Perfect # #Linear #Quadratic #Double #Chained #Perfect $0.25x$ $ $ $@ @h$  $0.25x$  $  $  $*s~Y @ h$  $  %0.5x% % % %L@j%  %0.5x%  %  %  %Ddͻ.? j#  %  &1x&6A'&(A<& AQ& @l& -  &1x&,X@ '"  &uoaN%@ <"  & ~@$z%@ Q"  &X ? l"  & -  '1.01x' 'A)'@>'n@S'@n' ,  '1.01x' ?H@ )!  ' s"Y@ >!  'W@ S!  '@? n!  ' ,  (1.5x(@>@+(@@@(@@U(@p( +  (1.5x(_bi'@ +  (? @  (M:s? U  (){? p  ( +  )2x)@[@-)7@B)A@W)̭@r) *  )2x)%o? -  )rdT-? B  )/挗? W  )F54? r  ) *  *4x*@y@/*@e@D*Q@Y*l@t* )  *4x*O? /  *PX? D  *.? Y  *jŎ?? t  * )  +10x+@1+@F+@[+@v+ (  +10x+2B? 1  +ƿR?? F  +uM_? [  +%\o? v  + ( @-Hash Functions on the Perfect Hash Table - Insertion Time - - - - -<-Hash Functions on the Perfect Hash Table - Collisions - -  -  - ..Division.Multiplication.Reciprocal .Random . ..Division.Multiplication .Reciprocal .Random /1x/۲V@v/oZ<@/ʡEs@/1Zd@ǀ /1x/2? y /gx?   /q6}U?   /q6}U? ʀ  01.01x0=QF(@y0L@0x&1@0;@ʀ 01.01x0ߎ(y? | 0ߎ(y?   0ߎ(y?   0ߎ(y? ̀  11.5x1a?|1v?1V-?19v?̀ 11.5x12s?  12s?   12s?   12s? Ѐ  22x2@5^I ?2aWk?2 ^s?2~jt?Ѐ 22x2 qT?  2 qT?   2 qT?   2 qT? Ӏ  34x3l?3g?3E?3K7A`?Ӏ 34x3mZI?  3mZI?   3mZI?   3mZI? ր  410x4+>|]?4N?4kt?4DDDDDD?ր 410x4tL]?  4tL]?   4tL]?   4tL]? ـ 76Hash Functions on the Perfect Hash Table - Moves 6 6 6 696Hash Functions on the Perfect Hash Table - Guesses 6 6  6  6 77Division7Multiplication7Reciprocal 7Random 77Division7Multiplication 7Reciprocal 7Random 81x8Ľ@p8Ľ@8Ľ@8Ľ@ 81x8@K@p8@'@ 8@ 8p@ 91.01x9@s9@9@9@Ā 91.01x97@s9Y@ 9@ 9@@Ā :1.5x:@v:@:@:@ǀ :1.5x:@v:@ :@ :J@ǀ ;2x;̭@y;̭@;̭@;̭@ʀ ;2x;J@y;@ ;@ ;4@ʀ <4x<l@|<l@<l@<l@̀ <4x<>@|<O@ <@ <@̀ =10x=@=@=@=@Ѐ =10x=ԗ@=@ =Ԙ@ =d@ЀHElements:[T H@ JJAverageJVariance JDataKLinear 1x KItimeKc?  QKI8?  W[T K@T@KʡE?[T K@T@[T K@T@KʡE?[T K@S@ KuV? K%C? KS㥛? L LStimeL5=wX?  QL)@?  W[T LV@LT㥛 ?L$C?L~jt?LZd;? LbX9? L|?5^? LbX9? L7A`? MMCollisions:[T M@ MSteps:[T Mf[NLinear 1.01x NItimeNCl?  QNfNk?  WN~jt?NFx?[T N@C@[T NJ@NZd;O? O OStimeO㥛 ?  QOŸ́p?  W[T O@E@O|?5^?[T O@E@O|?5^?OM? PPCollisions:[T Pb@ PSteps:[T P 'AQLinear 1.5x QItimeQQ?  QQ3O>  WQy&1?QS㥛?Qy&1?Qy&1?QS㥛? Q/$? Qy&1? QV-? Qy&1? QˡE?Q9v?Qy&1? R RStimeR3 ?  QRG ?  WRS㥛?Ry&1?RS㥛?R9v?Ry&1?[T R@ RS㥛? R9v? R+? Ry&1?RS㥛?RS㥛? SSCollisions:[T S&@ SSteps:[T S@>@TLinear 2x TItimeT~jt?  QT\듟?  WT9v?TMb?TV-?TS㥛?TS㥛? TV-? TS㥛? U UStimeUOV#?  QUTh?  WUV-?[T U@U9v?[T U?U/$? Uy&1? Uy&1? VVCollisions:[T V@ VSteps:[T V@[@WLinear 4x WItimeWZӼ?  QW=0y>  WWS㥛?Wy&1?WV-?WV-?WV-? X XStimeX-C6?  QXz]ʢ>  WXy&1?X9v?X~jt?X9v?X~jt? YYCollisions:[T Y\@ YSteps:[T Y@y@ZLinear 10x ZItimeZ>T?  QZx;RG>  W[T Z@ZS㥛?Zy&1?Zy&1?ZV-?[T Z@ ZS㥛? [ [Stime[9.X?  Q[TH?  W[T [?[y&1?[9v?[S㥛?[9v?[T [@ [y&1? \\Collisions:[T \@ \Steps:[T \@_Average_Variance _Data`Quadratic 1x `Itime`Dl?  Q`>  W`K7?` rh?`K7?`M?`K7? aFailed aStimean{?  Qa l1?  WaX9v?aX9v?[T a?aX9v?[T a0@ bbCollisions:[T bM@ bSteps:[T b(A bDl? bDl?cQuadratic 1.01x cItimecO?  Qc4o.Q?  Wc rh?[T c@[T c@cDl?c rh? cDl? cDl? d dStimed4j"?  Qdt'+?  W[T d@dDl?d rh?[T d@[T d@[T d@[T d@ eeCollisions:[T eI@ eSteps:[T e@fQuadratic 1.5x fItimef<,Ԛ?  Qf4PS>  WfV-?fy&1?f;On?fy&1?fy&1? g gStimegx&1?  Qgg녧?  WgX9v?[T g?[T g@gS㥛?gS㥛? hhCollisions:[T h5@ hSteps:[T h@@iQuadratic 2x iItimei8v?  QiC6>  Wiy&1?iy&1?[T i@iS㥛?iy&1?[T i? j jStimej#۲?  QjCq?  WjS㥛?j9v?[T j@jy&1?j9v? jS㥛? kkCollisions:[T k@ kSteps:[T k7@lQuadratic 4x lItimelZӼ?  Qlw$>  WlS㥛?lV-?lX9v?l~jt?lX9v? m mStimem]K=?  Qmw$>  Wmy&1?m9v?m~jt?mX9v?m~jt? nnCollisions:[T n@ nSteps:[T n@e@oQuadratic 10x oItimeoy&1?  QoK/Da* ?  WoV-?oV-?[T o?oy&1?[T o @ oZd;O? p pStimepݝ?  Qp~>  Wp~jt?p9v?p9v?py&1?pX9v? p9v? qqCollisions:[T q`@ qSteps:[T q@tAveragetVariance tDatauDouble 1x uItimeuCl?  QuUaS?  WuX9v?ux?ubX9?uMb?ux? u/$? v vStimev$۲V?  Qv>-=?  Wvx&1?[T v0@[T v0@vCl?vˡE? vbX9? wwCollisions:[T wW@ wSteps:[T w AxDouble 1.01x xItimex8d`?  Qx>  WxˡE?xˡE?xˡE?xDl?xsh|?? y yStimeyvOjM?  QyfG?  WyˡE?ysh|??y rh?yˡE?yX9v? zzCollisions:[T zs@ zSteps:[T zn@{Double 1.5x {Itime{;On?  Q{#?  W{y&1?{S㥛?{ˡE?[T {@{A`"? {/$? | |Stime|@5?  Q|Npu?  W|ˡE?|ˡE?|y&1?[T |@|&1? |9v? }}Collisions:[T },@ }Steps:[T }@@~Double 2x ~Itime~  Wy&1?ˡE?S㥛?y&1?S㥛? y&1? Collisions:[T J@ Steps:[T A@Double 4x ItimeaW?  QGL>  Wy&1?y&1?S㥛?y&1?S㥛? V-?  Stime&1?  Qz?  WS㥛?S㥛?y&1?L7A`?y&1? ~jt? Collisions:[T ̞@ Steps:[T Q@Double 10x Itime`Qڛ?  QxN3?  WS㥛?S㥛?S㥛?[T @.028 .026  StimecD?  Qv?  Wy&1?y&1?S㥛?[T @S㥛? jt? Collisions:[T @@ Steps:[T @AverageVariance DataChained 0.25x Itime Ac]?  Q.n;e ?  W-?[T 6@"~j?[T 4@[T 4@  StimeEԸ?  Q\M nP?  Wsh|??Dl?~jt?Dl?y&1? Collisions:[T @ Steps:[T @ @Chained 0.5x Itime7R?  QgGT?  W[T 6@bX9?V-?$C?Dl? Dl? ʡE?  StimeNܪ(?  QGs.?  W[T @[T @[T @[T @ rh?  rh?[T @ Collisions:[T @ Steps:[T L@Chained 1x Itime_vO?  Q;e?  W[T .@S?Dl?[T .@[T ;@  Stime?߾?  Q0y>  W[T @[T @S㥫?[T @[T @ Collisions:[T !@ Steps:[T  @Chained 1.01x Itime%C?  QnJ?  W[T .@S?S?%C?K7? S?  Stime/$M8?  QF?  W[T @[T @S㥫?[T ?S㥫?[T @ Collisions:[T @ Steps:[T @Chained 1.5x ItimeR'?  Q"TI?  W9v?9v?9v?h|?5?S?  StimebX9ȶ?  QYD^ RM?  WL7A`?n?#~j?9v?[T @ Collisions:[T V@ Steps:[T @Chained 2x Itime"lxz,?  Qff"?>  W[T -@S?[T .@S?~jt?  Stime:v?  Qp>  W[T @[T @[T @ˡE?S㥫? Collisions:[T @ Steps:[T ̭@Chained 4x Itime1y?  QoUQ?  WS?[T 0@[T 0@[T 0@[T ?[T 0@  Stimea#?  Q |^?  W[T @/$?ˡE?S㥫?[T 0@[T @ Collisions:[T $@ Steps:[T l@Chained 10x ItimeV-?@@  Q  WV-?@@  Stime= ףp=?  Q  W[T <@ Collisions:[T `@ Steps:[T @AverageVariance DataPerfect Div 1x Itime۲V@  QXG?  Wjt@[T k@x@'1Z@Cl@ 㥛 @ Failed StimeˡE?  QL?  W9v?9v?S㥛?S㥛?y&1?[T ? Atime:G(e-@  Qrg?  W㥛 @x&1@d;O@/$@X9v@ NbX9@ Collisions:[T @ Moves:[T Ľ@Guesses:[T @K@Perfect Div 1.01x Itime=QF(@  Qr^?  Wsh|?@[T k@Cl@v@S@[T @  Stime%M8?  Q ?  Wy&1?y&1?y&1?y&1?S㥛? 9v? Atime:7B-@  Qc^M<+Z?  W[T @j@7A`@x&@T㥛 @d;O@ /$@Collisions:[T @ Moves:[T @Guesses:[T 7@Perfect Div 1.5x Itimea?  Qǖ¦M?  W[T c@ +?|?5^?~jt?uV?[T c@  Stime8B-k?  QĿ(4Y?  W[T *@9v?S㥛?y&1?S㥛? S㥛? Atime:N贁?  QTf?  W9v?"~j?[T pd@/$?S? |?5^? Collisions:[T V@ Moves:[T @Guesses:[T @Perfect Div 2x Itime@5^I ?  QUU*f?  W[T ]@;On?MbX?S?[T @\@ Cl?  Stime'e?  Qj6-  Wy&1?y&1?y&1?y&1?S㥛? y&1? Atime:mYc?  Q\Y?  Wjt?Cl?7A`?~jt?/$?[T  P@ Collisions:[T $@ Moves:[T l@Guesses:[T >@Perfect Div 10x Itime+>|]?  Q"^b?  WFx?Fx?|?5^?[T ;@NbX9? ~jt?  Stime#ћ?  Qq/>  Wy&1?S㥛?S㥛?S㥛?S㥛? S㥛? Atime:8B-k?  QO[r>M?  WV-?K7A?%C?x&1?K7A`?[T 7@ Collisions:[T `@ Moves:[T @Guesses:[T ԗ@AverageVariance DataPerfect Mult 1x ItimeoZ<@  Q92a?  Wjt@T㥛 @MbX@L7A`@jt@ 5^I @ Failed Stimet@ ?  QHJ+\>  W/$?y&1?/$?ˡE?ˡE? ˡE? Atime:UUUUU@  QrOwe?  Wd;O@x@%C@[T i@Fx@[T j@ Collisions:[T #@ Moves:[T Ľ@Guesses:[T @'@Perfect Mult 1.01x ItimeL@  Q P-?  WCl@L7A`@[T 0m@L7A`@L7A`@ 5^I @  Stime#ۢ?  Qs!?  Wy&1?/$?ˡE?y&1?ˡE? ˡE? Atime:A`"@  Q*/CX?  W~jt@[T j@|?5^@[T  k@!rh@ X9v@Collisions:[T @ Moves:[T @Guesses:[T Y@Perfect Mult 1.5x Itimev?  Q㔊O?  W[T pd@d;O?$C?Cl?S㥛? V-?  Stime0b/?  Q[>  W[T @[T @ˡE?/$?ˡE? ˡE? Atime:8B-k?  QޜU?  Ww/?v/?ʡE?[T `b@7A`? V-? Collisions:[T V@ Moves:[T @Guesses:[T @Perfect Mult 2x ItimeaWk?  Qlg?  Wv?J +?L7A`?S?Zd;?[T ]@  StimeˡE?  Qqq  WˡE?ˡE?ˡE?ˡE?ˡE? ˡE? Atime:)g>?  QK`o?  W[T [@m?/$?;On?[T \@ jt? Collisions:[T @ Moves:[T ̭@Guesses:[T @Perfect Mult 4x Itimeg?  Qjy>  WMbX9?-?-?-?X9v? -?  Stime{ͅ)?  QVӍ>  WˡE?ˡE?ˡE?ˡE?/$? /$? Atime:`,Œ_?  Q9Y?  W;On?;On?x?X9v?jt? Cl? Collisions:[T $@ Moves:[T l@Guesses:[T O@Perfect Mult 10x ItimeN?  QU3 pX?  Wrh|?V-?"~?NbX9? +?[T :@  Stime7B?  Qz/?  Wy&1?[T @J +?ˡE?A`"? /$? Atime:_,Œ?  Q_uNe?  Wx&1?|?5^? rh?X9v? +? x&1? Collisions:[T `@ Moves:[T @Guesses:[T @AverageVariance DataPerfect Reci 1x ItimeʡEs@  Q8۶p?  W'1Z@K7@'1Z@T㥛 @tV@ 5^I @  Stimeo2z[?  Q~%>  WˡE?/$?ˡE?ˡE?/$?[T @ Atime: IS*@  Q@y[8ri?  W[T j@[T Pk@sh|?@/$@[T  j@[T 0i@ Collisions:[T !@ Moves:[T Ľ@Guesses:[T @Perfect Reci 1.01x Itimex&1@  Q7@?  W~jt@[T 0m@~jt@[T 0m@`"@ bX9@  Stime鴁N?  Q9/>  WˡE?ˡE?ˡE?ˡE?[T @ ˡE? Atime:$@  Q#7q?  W7A`@[T Pj@1Zd@K7A@V-? ;On@Collisions:[T @ Moves:[T @Guesses:[T @Perfect Reci 1.5x ItimeV-?  QMbX9?V-?ʡE?bX9?/$?V-? /$?  StimeˡE?  Qqq  WˡE?ˡE?ˡE?ˡE?ˡE? ˡE? Atime:ۇϰ+@?  Qr2Œp?  Wsh|??V-?"~j?[T b@[T b@ Mb? Collisions:[T V@ Moves:[T @Guesses:[T @Perfect Reci 2x Itime ^s?  Qǡ"Y`?  WL7A`?-?MbX9?[T ]@L7A`? x?  StimeˡE?  Qqq  WˡE?ˡE?ˡE?ˡE?ˡE? ˡE? Atime:s!iJ?  Q9.Ki?  WMbX?㥛 ?[T ^@x&1?[T Z@[T Z@ Collisions:[T @ Moves:[T ̭@Guesses:[T @Perfect Reci 4x ItimeE?  Q?  WT㥛 ?[T Q@Mb?x&1?[T U@ |?5^?  StimeT}?  Qˁm&+?  WˡE?/$?/$?ˡE?[T  @ ˡE? Atime:-?  Q02}?  W +?X9v?jt?[T J@|?5^?[T S@ Collisions:[T $@ Moves:[T l@Guesses:[T @Perfect Reci 10x Itimekt?  Q @[`?  WNbX9?NbX9?NbX9?S㥛?NbX9? Pn?  Stime|]r?  Q2?  W[T @[T @ˡE?S㥫?ˡE?[T @ Atime:^s!iJ?  QF?  Wx&1?"~?x&1?}?5^I?[T 6@ |?5^? Collisions:[T `@ Moves:[T @Guesses:[T Ԙ@AverageVariance DataPerfect Rand 1x Itime1Zd@  Q_":?  W[T l@rh|@n@9v@rh|@[T l@  StimeԿm?  QU:>  W~jt?~jt?~jt?[T @~jt? y&1? Atime:7B@  Qr(O>?  W/$@/$@Cl@[T i@Cl@ "~j@ Collisions:[T !@ Moves:[T Ľ@Guesses:[T p@Perfect Rand 1.01x Itime;@  Q[_JI?  WZd;@ rh@V-@;On@V-@ ~jt@  Stime_s!iJř?  QTz>  Wy&1?S㥛?~jt?~jt?~jt? ~jt? Atime:g@  Q9,ܐ T?  Wv@1Zd@n@MbX@y&1@ sh|?@Collisions:[T @ Moves:[T @Guesses:[T @@Perfect Rand 1.5x Itime9v?  QUUEdS?  WˡE?v?ˡE?L7A`?`"? ^I +?  StimeEޖ?  Q9\v;>  W/$?~jt?~jt?~jt?/$?[T @ Atime:5^I ?  QǴR2?  W[T b@V-?|?5^?-?jt? Pn? Collisions:[T V@ Moves:[T @Guesses:[T J@Perfect Rand 2x Itime~jt?  QF>  W~jt?Pn?~jt?Pn?[T @]@[T ]@  Stime ףp= ?  Q̔>  W~jt?/$?~jt?~jt?/$? /$? Atime:Jهϰ?  QUyc>?  W[T [@oʡ?x&1?v/?h|?5?  rh? Collisions:[T @ Moves:[T ̭@Guesses:[T 4@Perfect Rand 4x ItimeK7A`?  Q8Y$>  W~jt?[T @N@[T N@S?~jt? ~jt?  StimeK~?  Q{/>  W[T @~jt?~jt?~jt?~jt? ~jt? Atime:h|?5?  Q9?  W/$?jt?oʡ?I +?|?5^?[T M@   Collisions:[T  $@  Moves:[T  l@ Guesses:[T  @ Perfect Rand 10x  Itime DDDDDD?  Q UUg\>  W K7A? Mb? K7A? Pn? K7A? K7A?    Stime o2z?  Q r:>  W S㥛? V-? S㥛? ~jt? S㥛? S㥛?  Atime: I +?  Q 伟-M?  W Cl? X9v? m? d;O? A`"? x&1?   Collisions:[T  `@  Moves:[T  @ Guesses:[T  d@T.Insertion Times       #JBInsertion TimesTable SizeTime(seconds)LinearQuadraticDoubleChainedPerfectPerfect*qqT ?  hh-;/=0T 5T H z7Thhhh/=hhAT@TD Arial/=hh Arial  8T9TDTTT    T Arial   Arial Arial ArialTthhhh/=hhhhhh/=hhTlG4+@)DTTT$1T0TT.Search Times{Gz?$@Search TimesTable SizeTime(seconds)LinearQuadraticDoubleChainedPerfectqqT v#  hh-;/=0T 5T H7Thhhh/=hhAT@TD Arial/=hh Arial  8T9TDTTT    T Arial   Arial Arial ArialTthhhh/=hhhhhh/=hhTl;,(TT     T1T(TT.Collisions      CollisionsTable SizeCollisionsLinearQuadraticDoubleChainedPerfectqqT v#  hh-;/=0T 5T Hj7Thhhh/=hhAT@TD Arial/=hh Arial  8T9TDTTT    T Arial   Arial Arial ArialTthhhh/=hhhhhh/=hhTl0;K@,()DTTT1T(TT.Probe length$+$+$+$+$+$+$+Total ProbesTable SizeNumber of probesLinearQuadraticDoubleChainedqqT v#  hh-;/=0T 5T HPU7Thhhh/=hhAT@TD Arial/=hh Arial  8T9TDTTT    T Arial   Arial Arial ArialTthhhh/=hhhhhh/=hhTl_;u@,()DTT####T1T TT-/4/4/4/4/4Perfect Hash - Varying Hash FunctionsInsertion TimesTable SizeTime(seconds)DivisionMultiplicationReciprocalRandomqqAVary Hash Fn1T v#  hh-;/=0T 5T H7Thhhh/=hhAT@TD Arial/=hh Arial  8T9TDTTT    T Arial   Arial Arial ArialTthhhh/=hhhhhh/=hhTl@;@,()DTT....T1T TT.Vary Hash Fn2/4/4/4 / 4 / 4#JBPerfect Hash - Varying Hash FunctionsCollisionsTable SizeCollisionsDivisionMultiplicationReciprocalRandomqqT v#  hh-;/=0T 5T H7Thhhh/=hhAT@TD Arial/=hh Arial  8T9TDTTT    T Arial   Arial Arial ArialTthhhh/=hhhhhh/=hhTl0;K@,()DTT.. . .T1T TT.Vary Hash Fn38=8=8=8=8=#JBPerfect Hash - Varying Hash FunctionsMovesTable SizeNumber of movesDivisionMultiplicationReciprocalRandomqqT v#  hh-;/=0T 5T H7Thhhh/=hhAT@TD Arial/=hh Arial  8T9TDTTT    T Arial   Arial Arial ArialTthhhh/=hhhhhh/=hhTl0@;K@,()DTT7777T1T TT.Vary Hash Fn48=8=8= 8 = 8 =#JBPerfect Hash - Varying Hash FunctionsGuessesTable SizeNumber of guessesDivisionMultiplicationReciprocalRandomqqT v#  hh-;/=0T 5T H7Thhhh/=hhAT@TD Arial/=hh Arial  8T9TDTTT    T Arial   Arial Arial ArialTthhhh/=hhhhhh/=hhTl07B)DTT77 7 7T1T T