You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: easyjson.go
    path of file: ./repos/scan4all/vendor/github.com/chromedp/cdproto/input
    
    the code of the file until where you have to start completion: // Code generated by easyjson for marshaling/unmarshaling. DO NOT EDIT.

package input

import (
	json "encoding/json"
	easyjson "github.com/mailru/easyjson"
	jlexer "github.com/mailru/easyjson/jlexer"
	jwriter "github.com/mailru/easyjson/jwriter"
)

// suppress unused package warning
var (
	_ *json.RawMessage
	_ *jlexer.Lexer
	_ *jwriter.Writer
	_ easyjson.Marshaler
)

func easyjsonC5a4559bDecodeGithubComChromedpCdprotoInput(in *jlexer.Lexer, out *TouchPoint) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "x":
			out.X = float64(in.Float64())
		case "y":
			out.Y = float64(in.Float64())
		case "radiusX":
			out.RadiusX = float64(in.Float64())
		case "radiusY":
			out.RadiusY = float64(in.Float64())
		case "rotationAngle":
			out.RotationAngle = float64(in.Float64())
		case "force":
			out.Force = float64(in.Float64())
		case "tangentialPressure":
			out.TangentialPressure = float64(in.Float64())
		case "tiltX":
			out.TiltX = int64(in.Int64())
		case "tiltY":
			out.TiltY = int64(in.Int64())
		case "twist":
			out.Twist = int64(in.Int64())
		case "id":
			out.ID = float64(in.Float64())
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonC5a4559bEncodeG
    
func easyjsonC5a4559bEncodeGithubComChromedpCdprotoInput2(out *jwriter.Writer, in SynthesizeScrollGestureParams) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"x\":"
		out.RawString(prefix[1:])
		out.Float64(float64(in.X))
	}
	{
		const prefix string = ",\"y\":"
		out.RawString(prefix)
		out.Float64(float64(in.Y))
	}
	if in.XDistance != 0 {
		const prefix string = ",\"xDistance\":"
		out.RawString(prefix)
		out.Float64(float64(in.XDistance))
	}
	if in.YDistance != 0 {
		const prefix string = ",\"yDistance\":"
		out.RawString(prefix)
		out.Float64(float64(in.YDistance))
	}
	if in.XOverscroll != 0 {
		const prefix string = ",\"xOverscroll\":"
		out.RawString(prefix)
		out.Float64(float64(in.XOverscroll))
	}
	if in.YOverscroll != 0 {
		const prefix string = ",\"yOverscroll\":"
		out.RawString(prefix)
		out.Float64(float64(in.YOverscroll))
	}
	if in.PreventFling {
		const prefix string = ",\"preventFling\":"
		out.RawString(prefix)
		out.Bool(bool(in.PreventFling))
	}
	if in.Speed != 0 {
		const prefix string = ",\"speed\":"
		out.RawString(prefix)
		out.Int64(int64(in.Speed))
	}
	if in.GestureSourceType != "" {
		const prefix string = ",\"gestureSourceType\":"
		out.RawString(prefix)
		(in.GestureSourceType).MarshalEasyJSON(out)
	}
	if in.RepeatCount != 0 {
		const prefix string = ",\"repeatCount\":"
		out.RawString(prefix)
		out.Int64(int64(in.RepeatCount))
	}
	if in.RepeatDelayMs != 0 {
		const prefix string = ",\"repeatDelayMs\":"
		out.RawString(prefix)
		out.Int64(int64(in.RepeatDelayMs))
	}
	if in.InteractionMarkerName != "" {
		const prefix string = ",\"interactionMarkerName\":"
		out.RawString(prefix)
		out.String(string(in.InteractionMarkerName))
	}
	out.RawByte('}')
}