anchor.diff:    TrieDepth64Bits            = (sizeof(Int64) * BitsPerByte) div BitsForChildIndexPerBucket;
     TrieDepthPointerSize       = (sizeof(Pointer) * BitsPerByte) div BitsForChildIndexPerBucket;
     ChildrenPerBucket          = BitsForChildIndexPerBucket * BitsForChildIndexPerBucket;
  -
  -  ChildIndexShiftArray : array[TrieDepth16Bits..TrieDepth64Bits, 0..ChildrenPerBucket - 1] of Byte =
  -    ((12, 8,   4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0),
  -     (16, 12,  8,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0),
  -     (20, 16, 12,  8,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0),
  -     (24, 20, 16, 12,  8,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0),
  -     (28, 24, 20, 16, 12,  8,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0),
  -     (32, 28, 24, 20, 16, 12,  8,  4,  0,  0,  0,  0,  0,  0,  0,  0),
  -     (36, 32, 28, 24, 20, 16, 12,  8,  4,  0,  0,  0,  0,  0,  0,  0),
  -     (40, 36, 32, 28, 24, 20, 16, 12,  8,  4,  0,  0,  0,  0,  0,  0),
  -     (44, 40, 36, 32, 28, 24, 20, 16, 12,  8,  4,  0,  0,  0,  0,  0),
  -     (48, 44, 40, 36, 32, 28, 24, 20, 16, 12,  8,  4,  0,  0,  0,  0),
  -     (52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12,  8,  4,  0,  0,  0),
  -     (56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12,  8,  4,  0,  0),
  -     (60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12,  8,  4,  0));
  -  CleanChildIndexMask : array[0..ChildrenPerBucket - 1] of _Int64 =
  -    ($FFFFFFFFFFFFFFF0, $FFFFFFFFFFFFFF0F, $FFFFFFFFFFFFF0FF, $FFFFFFFFFFFF0FFF,
  -     $FFFFFFFFFFF0FFFF, $FFFFFFFFFF0FFFFF, $FFFFFFFFF0FFFFFF, $FFFFFFFF0FFFFFFF,
  -     $FFFFFFF0FFFFFFFF, $FFFFFF0FFFFFFFFF, $FFFFF0FFFFFFFFFF, $FFFF0FFFFFFFFFFF,
  -     $FFF0FFFFFFFFFFFF, $FF0FFFFFFFFFFFFF, $F0FFFFFFFFFFFFFF, $0FFFFFFFFFFFFFFF);
   
   type
     PTrieLeafNode = ^TTrieLeafNode;
  
positive.code:     FOnFreeTrieNode(ANode, Level);
  end;
  
  function THashedContainer.GetBitFieldIndex(const Data; Level: Byte): Byte;
  begin
    {$IFNDEF FPC}
  
negative.code:   {$ENDIF}
    case FHashSize of
      1..sizeof(Word) * BitsPerByte :
        Result := (Word(Data) shr ChildIndexShift(FHashSize, Level)) and BucketMask;
      sizeof(Word) * BitsPerByte + 1..sizeof(Cardinal) * BitsPerByte :
        Result := (Integer(Data) shr ChildIndexShift(FHashSize, Level)) and BucketMask;
      sizeof(Cardinal) * BitsPerByte + 1..sizeof(Int64) * BitsPerByte :
        Result := (Int64(Data) shr ChildIndexShift(FHashSize, Level)) and BucketMask;
      else RaiseHashSizeError;
    end;
  end;
  