function(str, deep) {
      var result = object.extended(), split;
      str = str && str.toString ? str.toString() : '';
      str.replace(/^.*?\?/, '').split('&').forEach(function(p) {
        var split = p.split('=');
        if(split.length !== 2) return;
        setParamsObject(result, split[0], decodeURIComponent(split[1]), deep);
      });
      return result;
    }
function(str, deep) {
      var result = object.extended(), split;
      str = str && str.toString ? str.toString() : '';
      str.replace(/^.*?\?/, '').split('&').forEach(function(p) {
        var split = p.split('=');
        if(split.length !== 2) return;
        setParamsObject(result, split[0], decodeURIComponent(split[1]), deep);
      });
      return result;
    }
function ( str , deep ) { var result = object . extended ( ) , split ; str = str && str . toString ? str . toString ( ) : '' ; str . replace ( / ^.*?\? / , '' ) . split ( '&' ) . forEach ( function ( p ) { var split = p . split ( '=' ) ; if ( split . length !== 2 ) return ; setParamsObject ( result , split [ 0 ] , decodeURIComponent ( split [ 1 ] ) , deep ) ; } ) ; return result ; }
*
@method Object.fromQueryString(<str>, [deep] = true)
@returns Object
@short Converts the query string of a URL into an object.
@extra If [deep] is %false%, conversion will only accept shallow params (ie. no object or arrays with %[]% syntax) as these are not universally supported.
@example

Object.fromQueryString('foo=bar&broken=wear') -> { foo: 'bar', broken: 'wear' }
Object.fromQueryString('foo[]=1&foo[]=2')     -> { foo: [1,2] }

*
* @method Object . fromQueryString ( <str > [ deep ] = true ) @returns Object @short Converts the query string of a URL into an object . @extra If [ deep ] is %false% conversion will only accept shallow params ( ie . no object or arrays with % [] % syntax ) as these are not universally supported . @example