anchor.diff:  	Spaces = length([C || << C >> <= Key, C =:= 32]),
   	Number div Spaces.
   
  --spec hixie76_location(atom(), binary(), inet:ip_port(), binary())
  +-spec hixie76_location(atom(), binary(), inet:ip_port(), binary(), binary())
   	-> binary().
  -hixie76_location(Protocol, Host, Port, Path) ->
  -	<< (hixie76_location_protocol(Protocol))/binary, "://", Host/binary,
  -		(hixie76_location_port(ssl, Port))/binary, Path/binary >>.
  +hixie76_location(Protocol, Host, Port, Path, <<>>) ->
  +    << (hixie76_location_protocol(Protocol))/binary, "://", Host/binary,
  +       (hixie76_location_port(ssl, Port))/binary, Path/binary>>;
  +hixie76_location(Protocol, Host, Port, Path, QS) ->
  +    << (hixie76_location_protocol(Protocol))/binary, "://", Host/binary,
  +       (hixie76_location_port(ssl, Port))/binary, Path/binary, "?", QS/binary >>.
   
   -spec hixie76_location_protocol(atom()) -> binary().
   hixie76_location_protocol(ssl) -> <<"wss">>;
  
positive.code: 
  -spec hixie76_location_port(atom(), inet:ip_port()) -> binary().
  hixie76_location_port(ssl, 443) ->
  	<<"">>;
  hixie76_location_port(_, 80) ->
  	<<"">>;
  hixie76_location_port(_, Port) ->
  	<<":", (list_to_binary(integer_to_list(Port)))/binary>>.
  
  
negative.code: -spec websocket_handshake(#state{}, #http_req{}, any()) -> ok.
  websocket_handshake(State=#state{version=0, origin=Origin,
  		challenge=Challenge}, Req=#http_req{transport=Transport,
  		raw_host=Host, port=Port, raw_path=Path, raw_qs=QS}, HandlerState) ->
  	Location = hixie76_location(Transport:name(), Host, Port, Path, QS),
  	{ok, Req2} = cowboy_http_req:reply(
  		<<"101 WebSocket Protocol Handshake">>,
  		[{<<"Connection">>, <<"Upgrade">>},
  