func ParseMultipartForm(r *http.Request, maxMemory int64) error {
	if err := r.ParseMultipartForm(maxMemory); err != nil {
		return err
	}
	if rvi := r.Context().Value(defaultContextIdentifier); rvi != nil {
		rv := rvi.(*requestVars)
		if !rv.formParsed {
			for _, p := range rv.params {
				r.Form.Add(p.key, p.value)
			}
			rv.formParsed = true
		}
	}
	return nil
}
ParseMultipartForm calls the underlying http.Request ParseMultipartForm
but also adds the URL params to the request Form as if they were defined
as query params i.e. ?id=13&ok=true but does not add the params to the
http.Request.URL.RawQuery for SEO purposes
package pure
import (
	"io"
	"net/http"
	"net/url"
	"strings"
	httpext "github.com/go-playground/pkg/v5/net/http"
	urlext "github.com/go-playground/pkg/v5/net/url"
)
func RequestVars(r *http.Request) ReqVars {
	rv := r.Context().Value(defaultContextIdentifier)
	if rv == nil {
		return new(requestVars)
	}
	return rv.(*requestVars)
}
func AcceptedLanguages(r *http.Request) (languages []string) {
	return httpext.AcceptedLanguages(r)
}
func Attachment(w http.ResponseWriter, r io.Reader, filename string) (err error) {
	return httpext.Attachment(w, r, filename)
}
func Inline(w http.ResponseWriter, r io.Reader, filename string) (err error) {
	return httpext.Inline(w, r, filename)
}
func ClientIP(r *http.Request) (clientIP string) {
	return httpext.ClientIP(r)
}
func JSONStream(w http.ResponseWriter, status int, i interface{}) error {
	return httpext.JSONStream(w, status, i)
}
func JSON(w http.ResponseWriter, status int, i interface{}) error {
	return httpext.JSON(w, status, i)
}
func JSONBytes(w http.ResponseWriter, status int, b []byte) (err error) {
	return httpext.JSONBytes(w, status, b)
}
func JSONP(w http.ResponseWriter, status int, i interface{}, callback string) error {
	return httpext.JSONP(w, status, i, callback)
}
func XML(w http.ResponseWriter, status int, i interface{}) error {
	return httpext.XML(w, status, i)
}
func XMLBytes(w http.ResponseWriter, status int, b []byte) (err error) {
	return httpext.XMLBytes(w, status, b)
}
func ParseForm(r *http.Request) error {
	if err := r.ParseForm(); err != nil {
		return err
	}
	if rvi := r.Context().Value(defaultContextIdentifier); rvi != nil {
		rv := rvi.(*requestVars)
		if !rv.formParsed {
			for _, p := range rv.params {
				r.Form.Add(p.key, p.value)
			}
			rv.formParsed = true
		}
	}
	return nil
}