anchor.diff:    [#{addr   := #{family := Fam, addr := PAddr},
        length := PLen} = Prefix|Prefixes],
     #{length := SPLen} = SPrefix) when (Fam =:= inet6) ->
  -    %% d("shortest_matching_prefix(~w) -> entry with"
  -    %%   "~n   Addr:   ~p"
  -    %%   "~n   PAddr:  ~p"
  -    %%   "~n   PLen:   ~p"
  -    %%   "~n   SPLen:  ~p", [Fam, Addr, PAddr, PLen, SPLen]),
       Mask = <<(16#FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF bsl (128 - PLen)):128>>,
  -    %% d("shortest_matching_prefix(inet) -> entry with"
  -    %%   "~n   Mask: ~w", [Mask]),
       case masked_eq(Mask, ipv6_to_bin(Addr), ipv6_to_bin(PAddr)) of
           true ->
  -            %% d("shortest_matching_prefix(~w) -> equal", [Fam]),
               if
                   (SPLen =:= undefined) ->
  -                    %% d("shortest_matching_prefix(~w) -> "
  -                    %%   "initial shortest (prefix) found", [Fam]),
                       shortest_matching_prefix(UCAddr, Prefixes, Prefix);
                   (PLen < SPLen) ->
  -                    %% d("shortest_matching_prefix(~w) -> "
  -                    %%   "new shortest (prefix) found", [Fam]),
                       shortest_matching_prefix(UCAddr, Prefixes, Prefix);
                  true ->
                       shortest_matching_prefix(UCAddr, Prefixes, SPrefix)
               end;
           false ->
  -            %% d("shortest_matching_prefix(~w) -> not equal", [Fam]),
               shortest_matching_prefix(UCAddr, Prefixes, SPrefix)
       end;
   shortest_matching_prefix(UCAddr, [_Prefix|Prefixes], SPrefix) ->
  -    %% d("shortest_matching_prefix -> entry when skipping: "
  -    %%   "~n   UCAddr:  ~p"
  -    %%   "~n   Prefix:  ~p"
  -    %%   "~n   SPrefix: ~p", [UCAddr, _Prefix, SPrefix]),
       shortest_matching_prefix(UCAddr, Prefixes, SPrefix).
   
   masked_eq(<<M:32>>,
             <<A:32>>,
             <<PA:32>>) ->
  -    %% d("masked_eq -> entry with"
  -    %%   "~n   M:  ~w"
  -    %%   "~n   A:  ~w"
  -    %%   "~n   PA: ~w", [M, A, PA]),
       (A band M) =:= (PA band M);
   %% masked_eq(<<M1:8,  M2:8,  M3:8,  M4:8>>,
   %%           <<A1:8,  A2:8,  A3:8,  A4:8>>,
   %%           <<PA1:8, PA2:8, PA3:8, PA4:8>>) ->
  -%%     %% d("masked_eq -> entry with"
  -%%     %%   "~n   M1:  ~w"
  -%%     %%   "~n   M2:  ~w"
  -%%     %%   "~n   M3:  ~w"
  -%%     %%   "~n   M4:  ~w"
  -%%     %%   "~n   A1:  ~w"
  -%%     %%   "~n   A2:  ~w"
  -%%     %%   "~n   A3:  ~w"
  -%%     %%   "~n   A4:  ~w"
  -%%     %%   "~n   PA1: ~w"
  -%%     %%   "~n   PA2: ~w"
  -%%     %%   "~n   PA3: ~w"
  -%%     %%   "~n   PA4: ~w", [M1,  M2,  M3,  M4,
  -%%     %%                    A1,  A2,  A3,  A4,
  -%%     %%                    PA1, PA2, PA3, PA4]),
   %%     ((A1 band M1) =:= (PA1 band M1)) andalso
   %%                                        ((A2 band M2) =:= (PA2 band M2)) andalso
   %%                                                                           ((A3 band M3) =:= (PA3 band M3)) andalso
  
positive.code:                 %% Class D: 224-239
                  32
          end,
      %% d("shortest_matching_prefix(inet) -> Shortest: ~p", [Shortest]),
      #{addr => Addr, length => Shortest};
  shortest_matching_prefix(#{addr := #{family := inet6} = Addr}, [],
                           #{length := undefined}) ->
      %% Just play it safe
      %% d("shortest_matching_prefix(inet6) -> entry when play it safe"),
      #{addr => Addr, length => 128};
  shortest_matching_prefix(_UCAddr, [], SPrefix) ->
      %% d("shortest_matching_prefix -> entry when done:"
      %%   "~n   SPrefix: ~p", [SPrefix]),
      SPrefix;
  shortest_matching_prefix(
    #{addr := #{family  := Fam, addr := Addr}} = UCAddr,
  
negative.code: 
  win_getifaddrs_mask(#{addr   := #{addr := _Addr, family := inet = Fam},
                        length := Len}) ->
      <<M1:8, M2:8, M3:8, M4:8>> = <<(16#FFFFFFFF bsl (32 - Len)):32>>,
      #{addr   => {M1, M2, M3, M4},
        family => Fam,
        port   => 0};
  win_getifaddrs_mask(#{addr   := #{addr := _Addr, family := inet6 = Fam},
                        length := Len}) ->
      <<M1:16, M2:16, M3:16, M4:16, M5:16, M6:16, M7:16, M8:16>> =
          <<(16#FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF bsl (128 - Len)):128>>,
      #{addr     => {M1, M2, M3, M4, M5, M6, M7, M8},
        family   => Fam,
        flowinfo => 0,
  