data

package
v0.0.0-...-ae432ee Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 6, 2023 License: GPL-3.0 Imports: 8 Imported by: 0

Documentation

Overview

Package data provides all the structs for the gathered data from the Webextension

Index

Constants

View Source
const (
	MouseKeyLEFT   = MouseKey(0)
	MouseKeyMIDDLE = MouseKey(1)
	MouseKeyRIGHT  = MouseKey(2)
)

MouseKeys

View Source
const (
	TaskTypeNO  = TaskType(0)
	TaskTypeSIM = TaskType(2)
	TaskTypeDYN = TaskType(3)
	TaskTypeOBJ = TaskType(4)
)

TaskTypes

Variables

This section is empty.

Functions

func BinSearch

func BinSearch(haystack []string, needle string) bool

BinSearch checks if needle is in the Haystack with BinarySearch

func Convert1DTo2D

func Convert1DTo2D(position, size uint8) (uint8, uint8)

Convert1DTo2D converts the given position number to the (x,y) coordinates in the table with the given size

func ConvertInt16ToFloat64

func ConvertInt16ToFloat64(slice []int16) []float64

ConvertInt16ToFloat64 converts an Int16 Slice to an Float64 Slice

func ConvertUint16ToFloat64

func ConvertUint16ToFloat64(slice []uint16) []float64

ConvertUint16ToFloat64 converts an Uint16 Slice to an Float64 Slice

func ConvertUint64ToFloat64

func ConvertUint64ToFloat64(slice []uint64) []float64

ConvertUint64ToFloat64 converts an Uint64 Slice to an Float64 Slice

func ConvertUint8ToFloat64

func ConvertUint8ToFloat64(slice []uint8) []float64

ConvertUint8ToFloat64 converts an Uint8 Slice to an Float64 Slice

func ExtractPaths

func ExtractPaths(checkBoxMovement, restMovement []NormalizedMouseData, clicks []NormalizedClickEvent, scrolls []NormalizedScrollEvent) (Path, []Path)

ExtractPaths extracts the Path until the Checkboxclick and the rest of the paths from the given sorted and cleaned data

func GetARFFHeader

func GetARFFHeader() arff.Header

GetARFFHeader returns the Header for an ARFF file which contains ProcessedFeatures instances

func MaxInt

func MaxInt(slice []int16) int16

MaxInt returns the Maximum number contained in the given slice

func MaxUint16

func MaxUint16(slice []uint16) uint16

MaxUint16 returns the Maximum number contained in the given slice

func MaxUint64

func MaxUint64(slice []uint64) uint64

MaxUint64 returns the Maximum number contained in the given slice

func MaxUint8

func MaxUint8(slice []uint8) uint8

MaxUint8 returns the Maximum number contained in the given slice

func Mean

func Mean(slice []float64, sum float64) float64

Mean calculates the Mean Value of the given slice

func MinInt

func MinInt(slice []int16) int16

MinInt returns the Minimum number contained in the given slice

func MinUint16

func MinUint16(slice []uint16) uint16

MinUint16 returns the Minimum number contained in the given slice

func MinUint64

func MinUint64(slice []uint64) uint64

MinUint64 returns the Minimum number contained in the given slice

func MinUint8

func MinUint8(slice []uint8) uint8

MinUint8 returns the Minimum number contained in the given slice

func RemoveConcurrentEvents

func RemoveConcurrentEvents(clicks []NormalizedClickEvent, points []NormalizedMouseData, scrolls []NormalizedScrollEvent) ([]NormalizedMouseData, []NormalizedScrollEvent)

RemoveConcurrentEvents removes events which happened at the same time. ClickEvents have priority before MouseMovements before ScrollEvents

func SumFloat

func SumFloat(slice []float64) float64

SumFloat returns the Sum of the given slice

func SumInt

func SumInt(slice []int16) int16

SumInt returns the Sum of the given slice

func SumUint16

func SumUint16(slice []uint16) uint16

SumUint16 returns the Sum of the given slice

func SumUint64

func SumUint64(slice []uint64) uint64

SumUint64 returns the Sum of the given slice

func SumUint8

func SumUint8(slice []uint8) uint8

SumUint8 returns the Sum of the given slice

Types

type BrowserInfo

type BrowserInfo struct {
	CookieEnabled bool     `json:"cookieEnabled"`
	CPUAmount     uint8    `json:"cpuNo"`
	DNT           string   `json:"dnt"` // true, false or "" (not set)
	Languages     []string `json:"lang"`
	MIMETypes     []string `json:"mimeTypes"`
	Platform      string   `json:"platform"`
	Plugins       []string `json:"plugins"`
	TimeZone      int16    `json:"timezone"`
	UserAgent     string   `json:"userAgent"`
}

BrowserInfo contains additional information about the browser

type CellEvent

type CellEvent struct {
	ID       uint8  `json:"id"`
	Time     uint64 `json:"time"`
	Selected bool   `json:"selected"`
}

CellEvent represents a Click Event on a Cell in the Task Matrix

type ClickData

type ClickData struct {
	MouseData
	Key     MouseKey `json:"key"`
	Release bool     `json:"release"` // If the Button was released or pushed
}

ClickData represents a MouseClick Event

type Data

type Data struct {
	Time          Time          `json:"Time"`
	Canvas        string        `json:"Canvas"`
	Audio         string        `json:"Audio"`
	MouseCheckbox []MouseData   `json:"MouseCheckbox"`
	MouseRest     []MouseData   `json:"MouseRest"`
	Browser       BrowserInfo   `json:"Browser"`
	Screen        ScreenInfo    `json:"Screen"`
	SessionID     string        `json:"SessionId"`
	WebGL         WebGLInfo     `json:"WebGL"`
	FramePosition FramePosition `json:"FramePosition"`
	MouseClicks   []ClickData   `json:"MouseClicks"`
	ScrollEvents  []ScrollData  `json:"ScrollEvents"`
	TaskEvents    []TaskData    `json:"TaskEvents"`
}

Data represents the whole Datafile

type FramePosition

type FramePosition struct {
	Captcha Rectangle `json:"captcha"`
	Task    Rectangle `json:"task"`
}

FramePosition represents the Positions of the Frames

type MouseData

type MouseData struct {
	X    uint16 `json:"x"`
	Y    uint16 `json:"y"`
	Time uint64 `json:"time"`
}

MouseData represents a Mouseposition at a specific moment

func (MouseData) Normalize

func (point MouseData) Normalize(screen ScreenInfo, time Time) NormalizedMouseData

Normalize normalizes the MouseData with the given Screenresolution and Time

type MouseKey

type MouseKey uint8

MouseKey represents a Key on the Mouse

type NormalizedClickEvent

type NormalizedClickEvent struct {
	NormalizedMouseData
	Key     MouseKey
	Release bool // If the Button was released or pushed
}

NormalizedClickEvent represents the ClickData relative to the Screenresolution at a specific moment

func NormalizeClickEvents

func NormalizeClickEvents(events []ClickData, screen ScreenInfo, time Time) []NormalizedClickEvent

NormalizeClickEvents normalizes all the ClickData with the given Screenresolution and Time

func RemoveDuplicateClickEvents

func RemoveDuplicateClickEvents(events []NormalizedClickEvent) []NormalizedClickEvent

RemoveDuplicateClickEvents removes identical events that are next to each other or events that have the same timestamp

func (NormalizedClickEvent) Equals

func (event NormalizedClickEvent) Equals(otherEvent NormalizedClickEvent) bool

Equals returns true if the two events are the same

type NormalizedMouseData

type NormalizedMouseData struct {
	X    float64
	Y    float64
	Time uint64
}

NormalizedMouseData represents the Mouseposition relative to the Screenresolution at a specific moment

func NormalizeMouseData

func NormalizeMouseData(points []MouseData, screen ScreenInfo, time Time) []NormalizedMouseData

NormalizeMouseData normalizes all the MouseData with the given Screenresolution and Time

func RemoveDuplicateMousePoints

func RemoveDuplicateMousePoints(points []NormalizedMouseData) []NormalizedMouseData

RemoveDuplicateMousePoints removes identical events that are next to each other or events that have the same timestamp

func (NormalizedMouseData) Equals

func (point NormalizedMouseData) Equals(otherPoint NormalizedMouseData) bool

Equals returns true if the two points are the same

type NormalizedScrollEvent

type NormalizedScrollEvent struct {
	NormalizedMouseData
	DeltaX    float64
	DeltaY    float64
	DeltaZ    float64
	DeltaMode uint8
}

NormalizedScrollEvent represents the ScrollEvent relative to the Screenresolution at a specific moment

func NormalizeScrollEvents

func NormalizeScrollEvents(events []ScrollData, screen ScreenInfo, time Time) []NormalizedScrollEvent

NormalizeScrollEvents normalizes all the ScrollData with the given Screenresolution and Time

func RemoveDuplicateScrollEvents

func RemoveDuplicateScrollEvents(events []NormalizedScrollEvent) []NormalizedScrollEvent

RemoveDuplicateScrollEvents removes identical events that are next to each other or events that have the same timestamp

func (NormalizedScrollEvent) Equals

func (event NormalizedScrollEvent) Equals(otherEvent NormalizedScrollEvent) bool

Equals returns true if the two events are the same

type Path

type Path struct {
	StartClickUp     NormalizedClickEvent
	EndClickDown     NormalizedClickEvent
	EndClickUp       NormalizedClickEvent
	ScrollEvents     []NormalizedScrollEvent
	OtherClickEvents []NormalizedClickEvent
	Movements        []NormalizedMouseData
}

Path describes a MouseMovement between two Left-Button Clicks

func RemoveSmallPaths

func RemoveSmallPaths(paths []Path) []Path

RemoveSmallPaths removes every path that has less than 4 movement events

func (Path) GetRawFeatures

func (path Path) GetRawFeatures() *PathFeatures

GetRawFeatures calculates the raw PathFeatures from the path

type PathFeatures

type PathFeatures struct {
	PairwiseDistance                 []float64
	DistanceSum                      float64
	DistanceStartEndPoint            float64
	NumberOfMovementPoints           uint16
	PairwiseVelocity                 []float64
	MeanVelocity                     float64
	PairwiseAcceleration             []float64
	MeanAcceleration                 float64
	PairwiseAngle                    []float64
	AngleBetweenMovementAndStartEnd  []float64 // Angle between Movement Point, Start Point and Click Up Point
	PairwiseAngularVelocity          []float64
	AngleStartEndPoint               float64
	PairwiseDuration                 []uint64
	DurationOfPath                   uint64 // Duration from StartClick to EndClick
	TimeBetweenClickAndMovement      uint64
	TimeBetweeenMovementAndDownClick uint64
	TimeBetweenClickAndRelease       []uint64
	NumberOfBreaks                   uint16
	BreakTimes                       []uint64
	BreakTimeTotalTimeRatio          float64
	MovementDuringClickDistance      []float64
	MovementDuringClickVelocity      []float64
	MovementDuringClickAcceleration  []float64
	MovementDuringClickAngle         []float64
	NumberOfRightClicks              uint8
	NumberOfMiddleClicks             uint8
	NumberOfScrolls                  uint8
	ScrollDX                         []float64
	ScrollDY                         []float64
	ScrollDZ                         []float64
	ScrollDM                         []uint8
	XPoints                          []float64
	YPoints                          []float64
	PairwiseXVelocity                []float64
	PairwiseXDistance                []float64
	MeanXVelocity                    float64
	SumXDistance                     float64
	PairwiseYVelocity                []float64
	PairwiseYDistance                []float64
	SumYDistance                     float64
	MeanYVelocity                    float64
	Straightness                     float64
}

PathFeatures contains the raw features extracted from a path

type ProcessedFeatures

type ProcessedFeatures struct {
	// General Data
	SessionID      string `arff:"sessionID" csv:"sessionID"`
	ProcessingTime uint64 `arff:"processingTime" csv:"processing time"`
	Canvas         string `arff:"canvasFingerprint" csv:"Canvas Fingerprint"`
	Audio          string `arff:"audioFingerprint" csv:"Audio Fingerprint"`
	// Browser Features
	CookiesEnabled uint8 `arff:"cookiesEnabled" csv:"Cookies Enabled"`
	CPUAmount      uint8 `arff:"cpuAmount" csv:"Amount of CPUs"`
	DNT            uint8 `arff:"dnt" csv:"dnt"` // 0 = false, 1 = true, 2 = not set
	TimeZone       int16 `arff:"timezone" csv:"timezone"`
	// Languages
	Lang1         string `arff:"lang1" csv:"preferred language"`
	Lang2         string `arff:"lang2" csv:"2nd preferred language"`
	Lang3         string `arff:"lang3" csv:"3rd preferred language"`
	Lang4         string `arff:"lang4" csv:"4th preferred language"`
	Lang5         string `arff:"lang5" csv:"5th preferred language"`
	Lang6         string `arff:"lang6" csv:"6th preferred language"`
	Lang7         string `arff:"lang7" csv:"7th preferred language"`
	Lang8         string `arff:"lang8" csv:"8th preferred language"`
	MoreLanguages uint8  `arff:"moreLang" csv:"More than 8 languages"` // 0 = false 1 = true
	// Mime-Types
	MIMEAppOctet     uint8 `arff:"mime-application_octet-stream" csv:"mime-application_octet-stream"`
	MIMEPlain        uint8 `arff:"mime-text_plain" csv:"mime-text_plain"`
	MIMECSS          uint8 `arff:"mime-text_css" csv:"mime-text_css"`
	MIMEHTML         uint8 `arff:"mime-text_html" csv:"mime-text_html"`
	MIMEJS           uint8 `arff:"mime-text_javascript" csv:"mime-text_javascript"`
	MIMEAPNG         uint8 `arff:"mime-image_apng" csv:"mime-image_apng"`
	MIMEBMP          uint8 `arff:"mime-image_bmp" csv:"mime-image_bmp"`
	MIMEGIF          uint8 `arff:"mime-image_gif" csv:"mime-image_gif"`
	MIMEICO          uint8 `arff:"mime-image_x-icon" csv:"mime-image_x-icon"`
	MIMEJPG          uint8 `arff:"mime-image_jpeg" csv:"mime-image_jpeg"`
	MIMEPNG          uint8 `arff:"mime-image_png" csv:"mime-image_png"`
	MIMESVG          uint8 `arff:"mime-image_svg-xml" csv:"mime-image_svg-xml"`
	MIMETIFF         uint8 `arff:"mime-image_tiff" csv:"mime-image_tiff"`
	MIMEWEBP         uint8 `arff:"mime-image_webp" csv:"mime-image_webp"`
	MIMEWAV          uint8 `arff:"mime-audio_wave" csv:"mime-audio_wave"`
	MIMEAudioWEBM    uint8 `arff:"mime-audio_webm" csv:"mime-audio_webm"`
	MIMEVideoWEBM    uint8 `arff:"mime-video_webm" csv:"mime-video_webm"`
	MIMEAudioOGG     uint8 `arff:"mime-audio_ogg" csv:"mime-audio_ogg"`
	MIMEVideoOGG     uint8 `arff:"mime-video_ogg" csv:"mime-video_ogg"`
	MIMEAppOGG       uint8 `arff:"mime-application_ogg" csv:"mime-application_ogg"`
	MIMEAppPDF       uint8 `arff:"mime-application_pdf" csv:"mime-application_pdf"`
	MIMEAppChromePDF uint8 `arff:"mime-application_chrome-pdf" csv:"mime-application_chrome-pdf"`
	MIMEForm         uint8 `arff:"mime-multipart_form-data" csv:"mime-multipart_form-data"`
	MIMEByte         uint8 `arff:"mime-multipart_byteranges" csv:"mime-multipart_byteranges"`
	// Plugins
	PluginChromePDF         uint8 `arff:"plugin-chrome-pdf" csv:"plugin-chrome-pdf"`
	PluginChromePDFViewer   uint8 `arff:"plugin-chrome-pdf-viewer" csv:"plugin-chrome-pdf-viewer"`
	PluginChromiumPDF       uint8 `arff:"plugin-chromium-pdf" csv:"plugin-chromium-pdf"`
	PluginChromiumPDFViewer uint8 `arff:"plugin-chromium-pdf-viewer" csv:"plugin-chromium-pdf-viewer"`
	PluginNativeClient      uint8 `arff:"plugin-native-client" csv:"plugin-native-client"`
	PluginMore              uint8 `arff:"plugin-more" csv:"plugin-more"`
	// Platforms
	Platform string `arff:"platform" csv:"Platform"`
	// User Agent
	BrowserName    string `arff:"browsername" csv:"browsername"`
	ChromeVersion  uint64 `arff:"chromeVersion" csv:"Chrome Version"`
	SafariVersion  uint64 `arff:"safariVersion" csv:"Safari Version"`
	IEVersion      uint64 `arff:"ieVersion" csv:"Internet Explorer Version"`
	FirefoxVersion uint64 `arff:"ffVersion" csv:"Firefox Version"`
	OperaVersion   uint64 `arff:"operaVersion" csv:"Opera Version"`
	OSName         string `arff:"osName" csv:"Operating System"`
	WindowsVersion uint64 `arff:"winVersion" csv:"Windows Version"`
	AppleVersion   uint64 `arff:"appleVersion" csv:"Apple Version"`
	LinuxVersion   uint64 `arff:"linVersion" csv:"Linux/Android Version"`
	DeviceType     string `arff:"deviceType" csv:"Device Type"`
	// WebGL Extensions
	WebGLExtMore                 uint16 `arff:"webglExtMore" csv:"Number of additional Extensions"`
	WebGLExtOESTextFloat         uint8  `arff:"webglExtOESTextFloat" csv:"OES_texture_float"`
	WebGLExtOESTextHalfFloat     uint8  `arff:"webglExtOESTextHalfFloat" csv:"OES_texture_half_float"`
	WebGLExtLose                 uint8  `arff:"webglExtLose" csv:"WEBGL_lose_context"`
	WebGLExtOESStd               uint8  `arff:"webglExtOESStd" csv:"OES_standard_derivatives"`
	WebGLExtOESVert              uint8  `arff:"webglExtOESVert" csv:"OES_vertex_array_object"`
	WebGLExtDebugRender          uint8  `arff:"webglExtDebugRender" csv:"WEBGL_debug_renderer_info"`
	WebGLExtDebugShader          uint8  `arff:"webglExtDebugShader" csv:"WEBGL_debug_shaders"`
	WebGLExtCompressTextS3TC     uint8  `arff:"webglExtCompressTextS3TC" csv:"WEBGL_compressed_texture_s3tc"`
	WebGLExtDepth                uint8  `arff:"webglExtDepth" csv:"WEBGL_depth_texture"`
	WebGLExtCompressTextPVRTC    uint8  `arff:"webglExtCompressTextPVRTC" csv:"WEBGL_compressed_texture_pvrtc"`
	WebGLExtCompressTextATC      uint8  `arff:"webglExtCompressTextATC" csv:"WEBGL_compressed_texture_atc"`
	WebGLExtOESEle               uint8  `arff:"webglExtOESEle" csv:"OES_element_index_uint"`
	WebGLExtTextFilter           uint8  `arff:"webglExtTextFilter" csv:"EXT_texture_filter_anisotropic"`
	WebGLExtFrag                 uint8  `arff:"webglExtFrag" csv:"EXT_frag_depth"`
	WebGLExtDraw                 uint8  `arff:"webglExtDraw" csv:"WEBGL_draw_buffers"`
	WebGLExtAngle                uint8  `arff:"webglExtAngle" csv:"ANGLE_instanced_arrays"`
	WebGLExtOESTextFloatLin      uint8  `arff:"webglExtOESTextFloatLin" csv:"OES_texture_float_linear"`
	WebGLExtOESTextHalfFloatLin  uint8  `arff:"webglExtOESTextHalfFloatLin" csv:"OES_texture_half_float_linear"`
	WebGLExtBlend                uint8  `arff:"webglExtBlend" csv:"EXT_blend_minmax"`
	WebGLExtShader               uint8  `arff:"webglExtShader" csv:"EXT_shader_texture_lod"`
	WebGLExtColorBuffFloat       uint8  `arff:"webglExtColorBuffFloat" csv:"EXT_color_buffer_float"`
	WebGLExtGLColorBuffFloat     uint8  `arff:"webglExtGLColorBuffFloat" csv:"WEBGL_color_buffer_float"`
	WebGLExtColorBuffHalfFloat   uint8  `arff:"webglExtColorBuffHalfFloat" csv:"EXT_color_buffer_half_float"`
	WebGLExtSrgb                 uint8  `arff:"webglExtSrgb" csv:"EXT_sRGB"`
	WebGLExtCompressTextETC1     uint8  `arff:"webglExtCompressTextETC1" csv:"WEBGL_compressed_texture_etc1"`
	WebGLExtDisjoint             uint8  `arff:"webglExtDisjoint" csv:"EXT_disjoint_timer_query"`
	WebGLExtOESFbo               uint8  `arff:"webglExtOESFbo" csv:"OES_fbo_render_mipmap"`
	WebGLExtCompressTextASTC     uint8  `arff:"webglExtCompressTextASTC" csv:"WEBGL_compressed_texture_astc"`
	WebGLExtCompressTextETC      uint8  `arff:"webglExtCompressTextETC" csv:"WEBGL_compressed_texture_etc"`
	WebGLExtCompressTextS3TCSrgb uint8  `arff:"webglExtCompressTextS3TCSrgb" csv:"WEBGL_compressed_texture_s3tc_srgb"`
	WebGLExtDisjointGL2          uint8  `arff:"webglExtDisjointGL2" csv:"EXT_disjoint_timer_query_webgl2"`
	WebGLExtFloat                uint8  `arff:"webglExtFloat" csv:"EXT_float_blend"`
	WebGLExtOVR                  uint8  `arff:"webglExtOVR" csv:"OVR_multiview2"`
	WebGLExtKHR                  uint8  `arff:"webglExtKHR" csv:"KHR_parallel_shader_compile"`
	WebGLExtTextCompressBPTC     uint8  `arff:"webglExtTextCompressBPTC" csv:"EXT_texture_compression_bptc"`
	WebGLExtTextCompressRGTC     uint8  `arff:"webglExtTextCompressRGTC" csv:"EXT_texture_compression_rgtc"`
	WebGLGCModel                 string `arff:"webglGCModel" csv:"webglGCModel"`
	WebGLGCVendor                string `arff:"webglGCVendor" csv:"webglGCVendor"`
	// Screen Resolution
	ScreenHeight uint16 `arff:"screenY" csv:"Screen Height"`
	PixelDensity uint16 `arff:"screenDensity" csv:"Pixel Density"`
	ScreenWidth  uint16 `arff:"screenX" csv:"Screen Width"`
	InnerWidth   uint16 `arff:"screenInnerX" csv:"Inner width of the screen"`
	InnerHeight  uint16 `arff:"screenInnerY" csv:"Inner height of the screen"`
	ScreenDeltaX uint16 `arff:"screenDX" csv:"Screen Delta X"`
	ScreenDeltaY uint16 `arff:"screenDY" csv:"Screen Delta Y"`
	// Frame Position
	CaptchaX      float64 `arff:"captchaX" csv:"Captchaframepos X"`
	CaptchaY      float64 `arff:"captchaY" csv:"Captchaframepos Y"`
	CaptchaWidth  float64 `arff:"captchaWidth" csv:"Captchaframepos Width"`
	CaptchaHeight float64 `arff:"captchaHeight" csv:"Captchaframepos Height"`
	TaskX         float64 `arff:"taskX" csv:"Taskframepos X"`
	TaskY         float64 `arff:"taskY" csv:"Taskframepos Y"`
	TaskWidth     float64 `arff:"taskWidth" csv:"Taskframepos Width"`
	TaskHeight    float64 `arff:"taskHeight" csv:"Taskframepos Height"`
	// Task Data
	AmountFailedTasks                  uint8   `arff:"failedTasks" csv:"failedTasks"`
	AmountTasks                        uint8   `arff:"taskAmount" csv:"taskAmount"`
	AmountNo                           uint8   `arff:"noCaptchaAmount" csv:"noCaptchaAmount"`
	AmountSimImg                       uint8   `arff:"similarImageAmount" csv:"similarImageAmount"`
	AmountDynSimImg                    uint8   `arff:"dynamicSimilarImageAmount" csv:"dynamicSimilarImageAmount"`
	AmountObjIdent                     uint8   `arff:"objectIdentificationAmount" csv:"objectIdentificationAmount"`
	AmountCandidatesStopSign           uint8   `arff:"candidatesStopSign" csv:"candidatesStopSign"`
	AmountCandidatesSpeedLimit         uint8   `arff:"candidatesSpeedLimit" csv:"candidatesSpeedLimit"`
	AmountCandidatesStreetName         uint8   `arff:"candidatesStreetName" csv:"candidatesStreetName"`
	AmountCandidatesOther              uint8   `arff:"candidatesOther" csv:"candidatesOther"`
	AmountCandidatesCar                uint8   `arff:"candidatesCar" csv:"candidatesCar"`
	AmountCandidatesBridge             uint8   `arff:"candidatesBridge" csv:"candidatesBridge"`
	AmountCandidatesRoad               uint8   `arff:"candidatesRoad" csv:"candidatesRoad"`
	AmountCandidatesBoundingbox        uint8   `arff:"candidatesBoundingBox" csv:"candidatesBoundingBox"`
	DurationLastCellEventToStop        uint64  `arff:"durationLastCellEventToStop" csv:"durationLastCellEventToStop"`
	TaskPicturesSelectedMin            uint16  `arff:"taskPicturesSelectedMin" csv:"taskPicturesSelectedMin"`
	TaskPicturesSelectedMax            uint16  `arff:"taskPicturesSelectedMax" csv:"taskPicturesSelectedMax"`
	TaskPicturesSelectedDiff           uint16  `arff:"taskPicturesSelectedDiff" csv:"taskPicturesSelectedDiff"`
	TaskPicturesSelectedSum            uint16  `arff:"taskPicturesSelectedSum" csv:"taskPicturesSelectedSum"`
	TaskPicturesSelectedMean           float64 `arff:"taskPicturesSelectedMean" csv:"taskPicturesSelectedMean"`
	TaskPicturesSelectedStdDev         float64 `arff:"taskPicturesSelectedStdDev" csv:"taskPicturesSelectedStdDev"`
	TaskPicturesSelectedSkew           float64 `arff:"taskPicturesSelectedSkew" csv:"taskPicturesSelectedSkew"`
	AmountCellEventsMin                uint16  `arff:"cellEventsMin" csv:"cellEventsMin"`
	AmountCellEventsMax                uint16  `arff:"cellEventsMax" csv:"cellEventsMax"`
	AmountCellEventsDiff               uint16  `arff:"cellEventsDiff" csv:"cellEventsDiff"`
	AmountCellEventsSum                uint16  `arff:"cellEventsSum" csv:"cellEventsSum"`
	AmountCellEventsMean               float64 `arff:"cellEventsMean" csv:"cellEventsMean"`
	AmountCellEventsStdDev             float64 `arff:"cellEventsStdDev" csv:"cellEventsStdDev"`
	AmountCellEventsSkew               float64 `arff:"cellEventsSkew" csv:"cellEventsSkew"`
	TaskDurationFirstLastEventMin      uint64  `arff:"taskDurationFirstLastEventMin" csv:"taskDurationFirstLastEventMin"`
	TaskDurationFirstLastEventMax      uint64  `arff:"taskDurationFirstLastEventMax" csv:"taskDurationFirstLastEventMax"`
	TaskDurationFirstLastEventDiff     uint64  `arff:"taskDurationFirstLastEventDiff" csv:"taskDurationFirstLastEventDiff"`
	TaskDurationFirstLastEventSum      uint64  `arff:"taskDurationFirstLastEventSum" csv:"taskDurationFirstLastEventSum"`
	TaskDurationFirstLastEventMean     float64 `arff:"taskDurationFirstLastEventMean" csv:"taskDurationFirstLastEventMean"`
	TaskDurationFirstLastEventStdDev   float64 `arff:"taskDurationFirstLastEventStdDev" csv:"taskDurationFirstLastEventStdDev"`
	TaskDurationFirstLastEventSkew     float64 `arff:"taskDurationFirstLastEventSkew" csv:"taskDurationFirstLastEventSkew"`
	TaskChangedSelectionsMin           uint16  `arff:"taskChangedSelectionsMin" csv:"taskChangedSelectionsMin"`
	TaskChangedSelectionsMax           uint16  `arff:"taskChangedSelectionsMax" csv:"taskChangedSelectionsMax"`
	TaskChangedSelectionsDiff          uint16  `arff:"taskChangedSelectionsDiff" csv:"taskChangedSelectionsDiff"`
	TaskChangedSelectionsSum           uint16  `arff:"taskChangedSelectionsSum" csv:"taskChangedSelectionsSum"`
	TaskChangedSelectionsMean          float64 `arff:"taskChangedSelectionsMean" csv:"taskChangedSelectionsMean"`
	TaskChangedSelectionsStdDev        float64 `arff:"taskChangedSelectionsStdDev" csv:"taskChangedSelectionsStdDev"`
	TaskChangedSelectionsSkew          float64 `arff:"taskChangedSelectionsSkew" csv:"taskChangedSelectionsSkew"`
	AmountDisappearingImagesMin        uint8   `arff:"amountDisappearingImagesMin" csv:"amountDisappearingImagesMin"`
	AmountDisappearingImagesMax        uint8   `arff:"amountDisappearingImagesMax" csv:"amountDisappearingImagesMax"`
	AmountDisappearingImagesDiff       uint8   `arff:"amountDisappearingImagesDiff" csv:"amountDisappearingImagesDiff"`
	AmountDisappearingImagesSum        uint8   `arff:"amountDisappearingImagesSum" csv:"amountDisappearingImagesSum"`
	AmountDisappearingImagesMean       float64 `arff:"amountDisappearingImagesMean" csv:"amountDisappearingImagesMean"`
	AmountDisappearingImagesStdDev     float64 `arff:"amountDisappearingImagesStdDev" csv:"amountDisappearingImagesStdDev"`
	AmountDisappearingImagesSkew       float64 `arff:"amountDisappearingImagesSkew" csv:"amountDisappearingImagesSkew"`
	ChosenTaskImagesXMin               uint8   `arff:"chosenTaskImagesXMin" csv:"chosenTaskImagesXMin"`
	ChosenTaskImagesXMax               uint8   `arff:"chosenTaskImagesXMax" csv:"chosenTaskImagesXMax"`
	ChosenTaskImagesXDiff              uint8   `arff:"chosenTaskImagesXDiff" csv:"chosenTaskImagesXDiff"`
	ChosenTaskImagesXSum               uint8   `arff:"chosenTaskImagesXSum" csv:"chosenTaskImagesXSum"`
	ChosenTaskImagesXMean              float64 `arff:"chosenTaskImagesXMean" csv:"chosenTaskImagesXMean"`
	ChosenTaskImagesXStdDev            float64 `arff:"chosenTaskImagesXStdDev" csv:"chosenTaskImagesXStdDev"`
	ChosenTaskImagesXSkew              float64 `arff:"chosenTaskImagesXSkew" csv:"chosenTaskImagesImagesXSkew"`
	ChosenTaskImagesYMin               uint8   `arff:"chosenTaskImagesYMin" csv:"chosenTaskImagesYMin"`
	ChosenTaskImagesYMax               uint8   `arff:"chosenTaskImagesYMax" csv:"chosenTaskImagesYMax"`
	ChosenTaskImagesYDiff              uint8   `arff:"chosenTaskImagesYDiff" csv:"chosenTaskImagesYDiff"`
	ChosenTaskImagesYSum               uint8   `arff:"chosenTaskImagesYSum" csv:"chosenTaskImagesYSum"`
	ChosenTaskImagesYMean              float64 `arff:"chosenTaskImagesYMean" csv:"chosenTaskImagesYMean"`
	ChosenTaskImagesYStdDev            float64 `arff:"chosenTaskImagesYStdDev" csv:"chosenTaskImagesYStdDev"`
	ChosenTaskImagesYSkew              float64 `arff:"chosenTaskImagesYSkew" csv:"chosenTaskImagesImagesYSkew"`
	ChosenTaskImagesYDistMin           int16   `arff:"chosenTaskImagesYDistMin" csv:"chosenTaskImagesYDistMin"`
	ChosenTaskImagesYDistMax           int16   `arff:"chosenTaskImagesYDistMax" csv:"chosenTaskImagesYDistMax"`
	ChosenTaskImagesYDistDiff          int16   `arff:"chosenTaskImagesYDistDiff" csv:"chosenTaskImagesYDistDiff"`
	ChosenTaskImagesYDistSum           int16   `arff:"chosenTaskImagesYDistSum" csv:"chosenTaskImagesYDistSum"`
	ChosenTaskImagesYDistMean          float64 `arff:"chosenTaskImagesYDistMean" csv:"chosenTaskImagesYDistMean"`
	ChosenTaskImagesYDistStdDev        float64 `arff:"chosenTaskImagesYDistStdDev" csv:"chosenTaskImagesYDistStdDev"`
	ChosenTaskImagesYDistSkew          float64 `arff:"chosenTaskImagesYDistSkew" csv:"chosenTaskImagesImagesYDistSkew"`
	ChosenTaskImagesXDistMin           int16   `arff:"chosenTaskImagesXDistMin" csv:"chosenTaskImagesXDistMin"`
	ChosenTaskImagesXDistMax           int16   `arff:"chosenTaskImagesXDistMax" csv:"chosenTaskImagesXDistMax"`
	ChosenTaskImagesXDistDiff          int16   `arff:"chosenTaskImagesXDistDiff" csv:"chosenTaskImagesXDistDiff"`
	ChosenTaskImagesXDistSum           int16   `arff:"chosenTaskImagesXDistSum" csv:"chosenTaskImagesXDistSum"`
	ChosenTaskImagesXDistMean          float64 `arff:"chosenTaskImagesXDistMean" csv:"chosenTaskImagesXDistMean"`
	ChosenTaskImagesXDistStdDev        float64 `arff:"chosenTaskImagesXDistStdDev" csv:"chosenTaskImagesXDistStdDev"`
	ChosenTaskImagesXDistSkew          float64 `arff:"chosenTaskImagesXDistSkew" csv:"chosenTaskImagesImagesXDistSkew"`
	ChosenTaskImagesPairwiseDistMin    float64 `arff:"chosenTaskImagesPairwiseDistMin" csv:"chosenTaskImagesPairwiseDistMin"`
	ChosenTaskImagesPairwiseDistMax    float64 `arff:"chosenTaskImagesPairwiseDistMax" csv:"chosenTaskImagesPairwiseDistMax"`
	ChosenTaskImagesPairwiseDistDiff   float64 `arff:"chosenTaskImagesPairwiseDistDiff" csv:"chosenTaskImagesPairwiseDistDiff"`
	ChosenTaskImagesPairwiseDistSum    float64 `arff:"chosenTaskImagesPairwiseDistSum" csv:"chosenTaskImagesPairwiseDistSum"`
	ChosenTaskImagesPairwiseDistMean   float64 `arff:"chosenTaskImagesPairwiseDistMean" csv:"chosenTaskImagesPairwiseDistMean"`
	ChosenTaskImagesPairwiseDistStdDev float64 `arff:"chosenTaskImagesPairwiseDistStdDev" csv:"chosenTaskImagesPairwiseDistStdDev"`
	ChosenTaskImagesPairwiseDistSkew   float64 `arff:"chosenTaskImagesPairwiseDistSkew" csv:"chosenTaskImagesImagesDistStartEndSkew"`
	ChosenTaskImagesDistStartEndMin    float64 `arff:"chosenTaskImagesDistStartEndMin" csv:"chosenTaskImagesDistStartEndMin"`
	ChosenTaskImagesDistStartEndMax    float64 `arff:"chosenTaskImagesDistStartEndMax" csv:"chosenTaskImagesDistStartEndMax"`
	ChosenTaskImagesDistStartEndDiff   float64 `arff:"chosenTaskImagesDistStartEndDiff" csv:"chosenTaskImagesDistStartEndDiff"`
	ChosenTaskImagesDistStartEndSum    float64 `arff:"chosenTaskImagesDistStartEndSum" csv:"chosenTaskImagesDistStartEndSum"`
	ChosenTaskImagesDistStartEndMean   float64 `arff:"chosenTaskImagesDistStartEndMean" csv:"chosenTaskImagesDistStartEndMean"`
	ChosenTaskImagesDistStartEndStdDev float64 `arff:"chosenTaskImagesDistStartEndStdDev" csv:"chosenTaskImagesDistStartEndStdDev"`
	ChosenTaskImagesDistStartEndSkew   float64 `arff:"chosenTaskImagesDistStartEndSkew" csv:"chosenTaskImagesImagesDistStartEndSkew"`
	ChosenTaskImagesDistSumMin         float64 `arff:"chosenTaskImagesDistSumMin" csv:"chosenTaskImagesDistSumMin"`
	ChosenTaskImagesDistSumMax         float64 `arff:"chosenTaskImagesDistSumMax" csv:"chosenTaskImagesDistSumMax"`
	ChosenTaskImagesDistSumDiff        float64 `arff:"chosenTaskImagesDistSumDiff" csv:"chosenTaskImagesDistSumDiff"`
	ChosenTaskImagesDistSumSum         float64 `arff:"chosenTaskImagesDistSumSum" csv:"chosenTaskImagesDistSumSum"`
	ChosenTaskImagesDistSumMean        float64 `arff:"chosenTaskImagesDistSumMean" csv:"chosenTaskImagesDistSumMean"`
	ChosenTaskImagesDistSumStdDev      float64 `arff:"chosenTaskImagesDistSumStdDev" csv:"chosenTaskImagesDistSumStdDev"`
	ChosenTaskImagesDistSumSkew        float64 `arff:"chosenTaskImagesDistSumSkew" csv:"chosenTaskImagesImagesDistSumSkew"`
	//
	// Movement
	//
	NumberOfPaths uint16 `arff:"numberOfPaths" csv:"Number of Paths including checkboxPath"`
	// Checkbox Path Features
	CheckboxPathDistanceStartEndPoint            float64 `arff:"checkBoxPathDistStartEnd" csv:"checkBoxPathDistStartEnd"`
	CheckboxPathNumberOfMovementPoints           uint16  `arff:"checkBoxPathNumMovementPoints" csv:"checkBoxPathNumMovementPoints"`
	CheckboxPathAngleStartEndPoint               float64 `arff:"checkBoxPathAngleStartEnd" csv:"checkBoxPathAngleStartEnd"`
	CheckboxPathDurationOfPath                   uint64  `arff:"checkBoxPathDurPath" csv:"checkBoxPathDurPath"`
	CheckboxPathTimeBetweenClickAndMovement      uint64  `arff:"checkBoxPathTimeClickMovement" csv:"checkBoxPathTimeClickMovement"`
	CheckboxPathTimeBetweeenMovementAndDownClick uint64  `arff:"checkBoxPathTimeMovementClick" csv:"checkBoxPathTimeMovementClick"`
	CheckboxPathNumberOfBreaks                   uint16  `arff:"checkBoxPathNoBreaks" csv:"checkBoxPathNoBreaks"`
	CheckboxPathBreakTimeTotalTimeRatio          float64 `arff:"checkBoxPathBreakRatio" csv:"checkBoxPathBreakRatio"`
	CheckboxPathNumberOfRightClicks              uint8   `arff:"checkBoxPathNoRightClick" csv:"checkBoxPathNoRightClick"`
	CheckboxPathNumberOfMiddleClicks             uint8   `arff:"checkBoxPathNoMiddleClick" csv:"checkBoxPathNoMiddleClick"`
	CheckboxPathNumberOfScrolls                  uint8   `arff:"checkBoxPathNoScrolls" csv:"checkBoxPathNoScrolls"`
	CheckboxPathStraightness                     float64 `arff:"checkBoxPathStraightness" csv:"checkBoxPathStraightness"`
	// Auto-Generated
	//
	CheckBoxPathPairwiseDistanceMin                   float64 `arff:"checkboxpathPairwiseDistanceMin" csv:"checkboxpathPairwiseDistanceMin"`
	CheckBoxPathPairwiseDistanceMax                   float64 `arff:"checkboxpathPairwiseDistanceMax" csv:"checkboxpathPairwiseDistanceMax"`
	CheckBoxPathPairwiseDistanceDiff                  float64 `arff:"checkboxpathPairwiseDistanceDiff" csv:"checkboxpathPairwiseDistanceDiff"`
	CheckBoxPathPairwiseDistanceSum                   float64 `arff:"checkboxpathPairwiseDistanceSum" csv:"checkboxpathPairwiseDistanceSum"`
	CheckBoxPathPairwiseDistanceMean                  float64 `arff:"checkboxpathPairwiseDistanceMean" csv:"checkboxpathPairwiseDistanceMean"`
	CheckBoxPathPairwiseDistanceStdDev                float64 `arff:"checkboxpathPairwiseDistanceStdDev" csv:"checkboxpathPairwiseDistanceStdDev"`
	CheckBoxPathPairwiseDistanceSkew                  float64 `arff:"checkboxpathPairwiseDistanceSkew" csv:"checkboxpathPairwiseDistanceSkew"`
	CheckBoxPathPairwiseVelocityMin                   float64 `arff:"checkboxpathPairwiseVelocityMin" csv:"checkboxpathPairwiseVelocityMin"`
	CheckBoxPathPairwiseVelocityMax                   float64 `arff:"checkboxpathPairwiseVelocityMax" csv:"checkboxpathPairwiseVelocityMax"`
	CheckBoxPathPairwiseVelocityDiff                  float64 `arff:"checkboxpathPairwiseVelocityDiff" csv:"checkboxpathPairwiseVelocityDiff"`
	CheckBoxPathPairwiseVelocitySum                   float64 `arff:"checkboxpathPairwiseVelocitySum" csv:"checkboxpathPairwiseVelocitySum"`
	CheckBoxPathPairwiseVelocityMean                  float64 `arff:"checkboxpathPairwiseVelocityMean" csv:"checkboxpathPairwiseVelocityMean"`
	CheckBoxPathPairwiseVelocityStdDev                float64 `arff:"checkboxpathPairwiseVelocityStdDev" csv:"checkboxpathPairwiseVelocityStdDev"`
	CheckBoxPathPairwiseVelocitySkew                  float64 `arff:"checkboxpathPairwiseVelocitySkew" csv:"checkboxpathPairwiseVelocitySkew"`
	CheckBoxPathPairwiseAccelerationMin               float64 `arff:"checkboxpathPairwiseAccelerationMin" csv:"checkboxpathPairwiseAccelerationMin"`
	CheckBoxPathPairwiseAccelerationMax               float64 `arff:"checkboxpathPairwiseAccelerationMax" csv:"checkboxpathPairwiseAccelerationMax"`
	CheckBoxPathPairwiseAccelerationDiff              float64 `arff:"checkboxpathPairwiseAccelerationDiff" csv:"checkboxpathPairwiseAccelerationDiff"`
	CheckBoxPathPairwiseAccelerationSum               float64 `arff:"checkboxpathPairwiseAccelerationSum" csv:"checkboxpathPairwiseAccelerationSum"`
	CheckBoxPathPairwiseAccelerationMean              float64 `arff:"checkboxpathPairwiseAccelerationMean" csv:"checkboxpathPairwiseAccelerationMean"`
	CheckBoxPathPairwiseAccelerationStdDev            float64 `arff:"checkboxpathPairwiseAccelerationStdDev" csv:"checkboxpathPairwiseAccelerationStdDev"`
	CheckBoxPathPairwiseAccelerationSkew              float64 `arff:"checkboxpathPairwiseAccelerationSkew" csv:"checkboxpathPairwiseAccelerationSkew"`
	CheckBoxPathPairwiseAngleMin                      float64 `arff:"checkboxpathPairwiseAngleMin" csv:"checkboxpathPairwiseAngleMin"`
	CheckBoxPathPairwiseAngleMax                      float64 `arff:"checkboxpathPairwiseAngleMax" csv:"checkboxpathPairwiseAngleMax"`
	CheckBoxPathPairwiseAngleDiff                     float64 `arff:"checkboxpathPairwiseAngleDiff" csv:"checkboxpathPairwiseAngleDiff"`
	CheckBoxPathPairwiseAngleSum                      float64 `arff:"checkboxpathPairwiseAngleSum" csv:"checkboxpathPairwiseAngleSum"`
	CheckBoxPathPairwiseAngleMean                     float64 `arff:"checkboxpathPairwiseAngleMean" csv:"checkboxpathPairwiseAngleMean"`
	CheckBoxPathPairwiseAngleStdDev                   float64 `arff:"checkboxpathPairwiseAngleStdDev" csv:"checkboxpathPairwiseAngleStdDev"`
	CheckBoxPathPairwiseAngleSkew                     float64 `arff:"checkboxpathPairwiseAngleSkew" csv:"checkboxpathPairwiseAngleSkew"`
	CheckBoxPathAngleBetweenMovementAndStartEndMin    float64 `arff:"checkboxpathAngleBetweenMovementAndStartEndMin" csv:"checkboxpathAngleBetweenMovementAndStartEndMin"`
	CheckBoxPathAngleBetweenMovementAndStartEndMax    float64 `arff:"checkboxpathAngleBetweenMovementAndStartEndMax" csv:"checkboxpathAngleBetweenMovementAndStartEndMax"`
	CheckBoxPathAngleBetweenMovementAndStartEndDiff   float64 `arff:"checkboxpathAngleBetweenMovementAndStartEndDiff" csv:"checkboxpathAngleBetweenMovementAndStartEndDiff"`
	CheckBoxPathAngleBetweenMovementAndStartEndSum    float64 `arff:"checkboxpathAngleBetweenMovementAndStartEndSum" csv:"checkboxpathAngleBetweenMovementAndStartEndSum"`
	CheckBoxPathAngleBetweenMovementAndStartEndMean   float64 `arff:"checkboxpathAngleBetweenMovementAndStartEndMean" csv:"checkboxpathAngleBetweenMovementAndStartEndMean"`
	CheckBoxPathAngleBetweenMovementAndStartEndStdDev float64 `arff:"checkboxpathAngleBetweenMovementAndStartEndStdDev" csv:"checkboxpathAngleBetweenMovementAndStartEndStdDev"`
	CheckBoxPathAngleBetweenMovementAndStartEndSkew   float64 `arff:"checkboxpathAngleBetweenMovementAndStartEndSkew" csv:"checkboxpathAngleBetweenMovementAndStartEndSkew"`
	CheckBoxPathPairwiseAngularVelocityMin            float64 `arff:"checkboxpathPairwiseAngularVelocityMin" csv:"checkboxpathPairwiseAngularVelocityMin"`
	CheckBoxPathPairwiseAngularVelocityMax            float64 `arff:"checkboxpathPairwiseAngularVelocityMax" csv:"checkboxpathPairwiseAngularVelocityMax"`
	CheckBoxPathPairwiseAngularVelocityDiff           float64 `arff:"checkboxpathPairwiseAngularVelocityDiff" csv:"checkboxpathPairwiseAngularVelocityDiff"`
	CheckBoxPathPairwiseAngularVelocitySum            float64 `arff:"checkboxpathPairwiseAngularVelocitySum" csv:"checkboxpathPairwiseAngularVelocitySum"`
	CheckBoxPathPairwiseAngularVelocityMean           float64 `arff:"checkboxpathPairwiseAngularVelocityMean" csv:"checkboxpathPairwiseAngularVelocityMean"`
	CheckBoxPathPairwiseAngularVelocityStdDev         float64 `arff:"checkboxpathPairwiseAngularVelocityStdDev" csv:"checkboxpathPairwiseAngularVelocityStdDev"`
	CheckBoxPathPairwiseAngularVelocitySkew           float64 `arff:"checkboxpathPairwiseAngularVelocitySkew" csv:"checkboxpathPairwiseAngularVelocitySkew"`
	CheckBoxPathPairwiseDurationMin                   uint64  `arff:"checkboxpathPairwiseDurationMin" csv:"checkboxpathPairwiseDurationMin"`
	CheckBoxPathPairwiseDurationMax                   uint64  `arff:"checkboxpathPairwiseDurationMax" csv:"checkboxpathPairwiseDurationMax"`
	CheckBoxPathPairwiseDurationDiff                  uint64  `arff:"checkboxpathPairwiseDurationDiff" csv:"checkboxpathPairwiseDurationDiff"`
	CheckBoxPathPairwiseDurationSum                   uint64  `arff:"checkboxpathPairwiseDurationSum" csv:"checkboxpathPairwiseDurationSum"`
	CheckBoxPathPairwiseDurationMean                  float64 `arff:"checkboxpathPairwiseDurationMean" csv:"checkboxpathPairwiseDurationMean"`
	CheckBoxPathPairwiseDurationStdDev                float64 `arff:"checkboxpathPairwiseDurationStdDev" csv:"checkboxpathPairwiseDurationStdDev"`
	CheckBoxPathPairwiseDurationSkew                  float64 `arff:"checkboxpathPairwiseDurationSkew" csv:"checkboxpathPairwiseDurationSkew"`
	CheckBoxPathTimeBetweenClickAndReleaseMin         uint64  `arff:"checkboxpathTimeBetweenClickAndReleaseMin" csv:"checkboxpathTimeBetweenClickAndReleaseMin"`
	CheckBoxPathTimeBetweenClickAndReleaseMax         uint64  `arff:"checkboxpathTimeBetweenClickAndReleaseMax" csv:"checkboxpathTimeBetweenClickAndReleaseMax"`
	CheckBoxPathTimeBetweenClickAndReleaseDiff        uint64  `arff:"checkboxpathTimeBetweenClickAndReleaseDiff" csv:"checkboxpathTimeBetweenClickAndReleaseDiff"`
	CheckBoxPathTimeBetweenClickAndReleaseSum         uint64  `arff:"checkboxpathTimeBetweenClickAndReleaseSum" csv:"checkboxpathTimeBetweenClickAndReleaseSum"`
	CheckBoxPathTimeBetweenClickAndReleaseMean        float64 `arff:"checkboxpathTimeBetweenClickAndReleaseMean" csv:"checkboxpathTimeBetweenClickAndReleaseMean"`
	CheckBoxPathTimeBetweenClickAndReleaseStdDev      float64 `arff:"checkboxpathTimeBetweenClickAndReleaseStdDev" csv:"checkboxpathTimeBetweenClickAndReleaseStdDev"`
	CheckBoxPathTimeBetweenClickAndReleaseSkew        float64 `arff:"checkboxpathTimeBetweenClickAndReleaseSkew" csv:"checkboxpathTimeBetweenClickAndReleaseSkew"`
	CheckBoxPathBreakTimesMin                         uint64  `arff:"checkboxpathBreakTimesMin" csv:"checkboxpathBreakTimesMin"`
	CheckBoxPathBreakTimesMax                         uint64  `arff:"checkboxpathBreakTimesMax" csv:"checkboxpathBreakTimesMax"`
	CheckBoxPathBreakTimesDiff                        uint64  `arff:"checkboxpathBreakTimesDiff" csv:"checkboxpathBreakTimesDiff"`
	CheckBoxPathBreakTimesSum                         uint64  `arff:"checkboxpathBreakTimesSum" csv:"checkboxpathBreakTimesSum"`
	CheckBoxPathBreakTimesMean                        float64 `arff:"checkboxpathBreakTimesMean" csv:"checkboxpathBreakTimesMean"`
	CheckBoxPathBreakTimesStdDev                      float64 `arff:"checkboxpathBreakTimesStdDev" csv:"checkboxpathBreakTimesStdDev"`
	CheckBoxPathBreakTimesSkew                        float64 `arff:"checkboxpathBreakTimesSkew" csv:"checkboxpathBreakTimesSkew"`
	CheckBoxPathMovementDuringClickDistanceMin        float64 `arff:"checkboxpathMovementDuringClickDistanceMin" csv:"checkboxpathMovementDuringClickDistanceMin"`
	CheckBoxPathMovementDuringClickDistanceMax        float64 `arff:"checkboxpathMovementDuringClickDistanceMax" csv:"checkboxpathMovementDuringClickDistanceMax"`
	CheckBoxPathMovementDuringClickDistanceDiff       float64 `arff:"checkboxpathMovementDuringClickDistanceDiff" csv:"checkboxpathMovementDuringClickDistanceDiff"`
	CheckBoxPathMovementDuringClickDistanceSum        float64 `arff:"checkboxpathMovementDuringClickDistanceSum" csv:"checkboxpathMovementDuringClickDistanceSum"`
	CheckBoxPathMovementDuringClickDistanceMean       float64 `arff:"checkboxpathMovementDuringClickDistanceMean" csv:"checkboxpathMovementDuringClickDistanceMean"`
	CheckBoxPathMovementDuringClickDistanceStdDev     float64 `arff:"checkboxpathMovementDuringClickDistanceStdDev" csv:"checkboxpathMovementDuringClickDistanceStdDev"`
	CheckBoxPathMovementDuringClickDistanceSkew       float64 `arff:"checkboxpathMovementDuringClickDistanceSkew" csv:"checkboxpathMovementDuringClickDistanceSkew"`
	CheckBoxPathMovementDuringClickVelocityMin        float64 `arff:"checkboxpathMovementDuringClickVelocityMin" csv:"checkboxpathMovementDuringClickVelocityMin"`
	CheckBoxPathMovementDuringClickVelocityMax        float64 `arff:"checkboxpathMovementDuringClickVelocityMax" csv:"checkboxpathMovementDuringClickVelocityMax"`
	CheckBoxPathMovementDuringClickVelocityDiff       float64 `arff:"checkboxpathMovementDuringClickVelocityDiff" csv:"checkboxpathMovementDuringClickVelocityDiff"`
	CheckBoxPathMovementDuringClickVelocitySum        float64 `arff:"checkboxpathMovementDuringClickVelocitySum" csv:"checkboxpathMovementDuringClickVelocitySum"`
	CheckBoxPathMovementDuringClickVelocityMean       float64 `arff:"checkboxpathMovementDuringClickVelocityMean" csv:"checkboxpathMovementDuringClickVelocityMean"`
	CheckBoxPathMovementDuringClickVelocityStdDev     float64 `arff:"checkboxpathMovementDuringClickVelocityStdDev" csv:"checkboxpathMovementDuringClickVelocityStdDev"`
	CheckBoxPathMovementDuringClickVelocitySkew       float64 `arff:"checkboxpathMovementDuringClickVelocitySkew" csv:"checkboxpathMovementDuringClickVelocitySkew"`
	CheckBoxPathMovementDuringClickAccelerationMin    float64 `arff:"checkboxpathMovementDuringClickAccelerationMin" csv:"checkboxpathMovementDuringCilckAccelerationMin"`
	CheckBoxPathMovementDuringClickAccelerationMax    float64 `arff:"checkboxpathMovementDuringClickAccelerationMax" csv:"checkboxpathMovementDuringCilckAccelerationMax"`
	CheckBoxPathMovementDuringClickAccelerationDiff   float64 `arff:"checkboxpathMovementDuringClickAccelerationDiff" csv:"checkboxpathMovementDuringClickAccelerationDiff"`
	CheckBoxPathMovementDuringClickAccelerationSum    float64 `arff:"checkboxpathMovementDuringClickAccelerationSum" csv:"checkboxpathMovementDuringCilckAccelerationSum"`
	CheckBoxPathMovementDuringClickAccelerationMean   float64 `arff:"checkboxpathMovementDuringClickAccelerationMean" csv:"checkboxpathMovementDuringClickAccelerationMean"`
	CheckBoxPathMovementDuringClickAccelerationStdDev float64 `arff:"checkboxpathMovementDuringClickAccelerationStdDev" csv:"checkboxpathMovementDurinlgCickAccelerationStdDev"`
	CheckBoxPathMovementDuringClickAccelerationSkew   float64 `arff:"checkboxpathMovementDuringClickAccelerationSkew" csv:"checkboxpathMovementDuringClickAccelerationSkew"`
	CheckBoxPathMovementDuringClickAngleMin           float64 `arff:"checkboxpathMovementDuringClickAngleMin" csv:"checkboxpathMovementDuringClickAngleMin"`
	CheckBoxPathMovementDuringClickAngleMax           float64 `arff:"checkboxpathMovementDuringClickAngleMax" csv:"checkboxpathMovementDuringClickAngleMax"`
	CheckBoxPathMovementDuringClickAngleDiff          float64 `arff:"checkboxpathMovementDuringClickAngleDiff" csv:"checkboxpathMovementDuringClickAngleDiff"`
	CheckBoxPathMovementDuringClickAngleSum           float64 `arff:"checkboxpathMovementDuringClickAngleSum" csv:"checkboxpathMovementDuringClickAngleSum"`
	CheckBoxPathMovementDuringClickAngleMean          float64 `arff:"checkboxpathMovementDuringClickAngleMean" csv:"checkboxpathMovementDuringClickAngleMean"`
	CheckBoxPathMovementDuringClickAngleStdDev        float64 `arff:"checkboxpathMovementDuringClickAngleStdDev" csv:"checkboxpathMovementDuringClickAngleStdDev"`
	CheckBoxPathMovementDuringClickAngleSkew          float64 `arff:"checkboxpathMovementDuringClickAngleSkew" csv:"checkboxpathMovementDuringClickAngleSkew"`
	CheckBoxPathScrollDXMin                           float64 `arff:"checkboxpathScrollDXMin" csv:"checkboxpathScrollDXMin"`
	CheckBoxPathScrollDXMax                           float64 `arff:"checkboxpathScrollDXMax" csv:"checkboxpathScrollDXMax"`
	CheckBoxPathScrollDXDiff                          float64 `arff:"checkboxpathScrollDXDiff" csv:"checkboxpathScrollDXDiff"`
	CheckBoxPathScrollDXSum                           float64 `arff:"checkboxpathScrollDXSum" csv:"checkboxpathScrollDXSum"`
	CheckBoxPathScrollDXMean                          float64 `arff:"checkboxpathScrollDXMean" csv:"checkboxpathScrollDXMean"`
	CheckBoxPathScrollDXStdDev                        float64 `arff:"checkboxpathScrollDXStdDev" csv:"checkboxpathScrollDXStdDev"`
	CheckBoxPathScrollDXSkew                          float64 `arff:"checkboxpathScrollDXSkew" csv:"checkboxpathScrollDXSkew"`
	CheckBoxPathScrollDYMin                           float64 `arff:"checkboxpathScrollDYMin" csv:"checkboxpathScrollDYMin"`
	CheckBoxPathScrollDYMax                           float64 `arff:"checkboxpathScrollDYMax" csv:"checkboxpathScrollDYMax"`
	CheckBoxPathScrollDYDiff                          float64 `arff:"checkboxpathScrollDYDiff" csv:"checkboxpathScrollDYDiff"`
	CheckBoxPathScrollDYSum                           float64 `arff:"checkboxpathScrollDYSum" csv:"checkboxpathScrollDYSum"`
	CheckBoxPathScrollDYMean                          float64 `arff:"checkboxpathScrollDYMean" csv:"checkboxpathScrollDYMean"`
	CheckBoxPathScrollDYStdDev                        float64 `arff:"checkboxpathScrollDYStdDev" csv:"checkboxpathScrollDYStdDev"`
	CheckBoxPathScrollDYSkew                          float64 `arff:"checkboxpathScrollDYSkew" csv:"checkboxpathScrollDYSkew"`
	CheckBoxPathScrollDZMin                           float64 `arff:"checkboxpathScrollDZMin" csv:"checkboxpathScrollDZMin"`
	CheckBoxPathScrollDZMax                           float64 `arff:"checkboxpathScrollDZMax" csv:"checkboxpathScrollDZMax"`
	CheckBoxPathScrollDZDiff                          float64 `arff:"checkboxpathScrollDZDiff" csv:"checkboxpathScrollDZDiff"`
	CheckBoxPathScrollDZSum                           float64 `arff:"checkboxpathScrollDZSum" csv:"checkboxpathScrollDZSum"`
	CheckBoxPathScrollDZMean                          float64 `arff:"checkboxpathScrollDZMean" csv:"checkboxpathScrollDZMean"`
	CheckBoxPathScrollDZStdDev                        float64 `arff:"checkboxpathScrollDZStdDev" csv:"checkboxpathScrollDZStdDev"`
	CheckBoxPathScrollDZSkew                          float64 `arff:"checkboxpathScrollDZSkew" csv:"checkboxpathScrollDZSkew"`
	CheckBoxPathScrollDMMin                           uint8   `arff:"checkboxpathScrollDMMin" csv:"checkboxpathScrollDMMin"`
	CheckBoxPathScrollDMMax                           uint8   `arff:"checkboxpathScrollDMMax" csv:"checkboxpathScrollDMMax"`
	CheckBoxPathScrollDMDiff                          uint8   `arff:"checkboxpathScrollDMDiff" csv:"checkboxpathScrollDMDiff"`
	CheckBoxPathScrollDMSum                           uint8   `arff:"checkboxpathScrollDMSum" csv:"checkboxpathScrollDMSum"`
	CheckBoxPathScrollDMMean                          float64 `arff:"checkboxpathScrollDMMean" csv:"checkboxpathScrollDMMean"`
	CheckBoxPathScrollDMStdDev                        float64 `arff:"checkboxpathScrollDMStdDev" csv:"checkboxpathScrollDMStdDev"`
	CheckBoxPathScrollDMSkew                          float64 `arff:"checkboxpathScrollDMSkew" csv:"checkboxpathScrollDMSkew"`
	CheckBoxPathXPointsMin                            float64 `arff:"checkboxpathXPointsMin" csv:"checkboxpathXPointsMin"`
	CheckBoxPathXPointsMax                            float64 `arff:"checkboxpathXPointsMax" csv:"checkboxpathXPointsMax"`
	CheckBoxPathXPointsDiff                           float64 `arff:"checkboxpathXPointsDiff" csv:"checkboxpathXPointsDiff"`
	CheckBoxPathXPointsSum                            float64 `arff:"checkboxpathXPointsSum" csv:"checkboxpathXPointsSum"`
	CheckBoxPathXPointsMean                           float64 `arff:"checkboxpathXPointsMean" csv:"checkboxpathXPointsMean"`
	CheckBoxPathXPointsStdDev                         float64 `arff:"checkboxpathXPointsStdDev" csv:"checkboxpathXPointsStdDev"`
	CheckBoxPathXPointsSkew                           float64 `arff:"checkboxpathXPointsSkew" csv:"checkboxpathXPointsSkew"`
	CheckBoxPathYPointsMin                            float64 `arff:"checkboxpathYPointsMin" csv:"checkboxpathYPointsMin"`
	CheckBoxPathYPointsMax                            float64 `arff:"checkboxpathYPointsMax" csv:"checkboxpathYPointsMax"`
	CheckBoxPathYPointsDiff                           float64 `arff:"checkboxpathYPointsDiff" csv:"checkboxpathYPointsDiff"`
	CheckBoxPathYPointsSum                            float64 `arff:"checkboxpathYPointsSum" csv:"checkboxpathYPointsSum"`
	CheckBoxPathYPointsMean                           float64 `arff:"checkboxpathYPointsMean" csv:"checkboxpathYPointsMean"`
	CheckBoxPathYPointsStdDev                         float64 `arff:"checkboxpathYPointsStdDev" csv:"checkboxpathYPointsStdDev"`
	CheckBoxPathYPointsSkew                           float64 `arff:"checkboxpathYPointsSkew" csv:"checkboxpathYPointsSkew"`
	CheckBoxPathPairwiseXVelocityMin                  float64 `arff:"checkboxpathPairwiseXVelocityMin" csv:"checkboxpathPairwiseXVelocityMin"`
	CheckBoxPathPairwiseXVelocityMax                  float64 `arff:"checkboxpathPairwiseXVelocityMax" csv:"checkboxpathPairwiseXVelocityMax"`
	CheckBoxPathPairwiseXVelocityDiff                 float64 `arff:"checkboxpathPairwiseXVelocityDiff" csv:"checkboxpathPairwiseXVelocityDiff"`
	CheckBoxPathPairwiseXVelocitySum                  float64 `arff:"checkboxpathPairwiseXVelocitySum" csv:"checkboxpathPairwiseXVelocitySum"`
	CheckBoxPathPairwiseXVelocityMean                 float64 `arff:"checkboxpathPairwiseXVelocityMean" csv:"checkboxpathPairwiseXVelocityMean"`
	CheckBoxPathPairwiseXVelocityStdDev               float64 `arff:"checkboxpathPairwiseXVelocityStdDev" csv:"checkboxpathPairwiseXVelocityStdDev"`
	CheckBoxPathPairwiseXVelocitySkew                 float64 `arff:"checkboxpathPairwiseXVelocitySkew" csv:"checkboxpathPairwiseXVelocitySkew"`
	CheckBoxPathPairwiseYVelocityMin                  float64 `arff:"checkboxpathPairwiseYVelocityMin" csv:"checkboxpathPairwiseYVelocityMin"`
	CheckBoxPathPairwiseYVelocityMax                  float64 `arff:"checkboxpathPairwiseYVelocityMax" csv:"checkboxpathPairwiseYVelocityMax"`
	CheckBoxPathPairwiseYVelocityDiff                 float64 `arff:"checkboxpathPairwiseYVelocityDiff" csv:"checkboxpathPairwiseYVelocityDiff"`
	CheckBoxPathPairwiseYVelocitySum                  float64 `arff:"checkboxpathPairwiseYVelocitySum" csv:"checkboxpathPairwiseYVelocitySum"`
	CheckBoxPathPairwiseYVelocityMean                 float64 `arff:"checkboxpathPairwiseYVelocityMean" csv:"checkboxpathPairwiseYVelocityMean"`
	CheckBoxPathPairwiseYVelocityStdDev               float64 `arff:"checkboxpathPairwiseYVelocityStdDev" csv:"checkboxpathPairwiseYVelocityStdDev"`
	CheckBoxPathPairwiseYVelocitySkew                 float64 `arff:"checkboxpathPairwiseYVelocitySkew" csv:"checkboxpathPairwiseYVelocitySkew"`
	CheckBoxPathPairwiseXDistanceMin                  float64 `arff:"checkboxpathPairwiseXDistanceMin" csv:"checkboxpathPairwiseXDistanceMin"`
	CheckBoxPathPairwiseXDistanceMax                  float64 `arff:"checkboxpathPairwiseXDistanceMax" csv:"checkboxpathPairwiseXDistanceMax"`
	CheckBoxPathPairwiseXDistanceDiff                 float64 `arff:"checkboxpathPairwiseXDistanceDiff" csv:"checkboxpathPairwiseXDistanceDiff"`
	CheckBoxPathPairwiseXDistanceSum                  float64 `arff:"checkboxpathPairwiseXDistanceSum" csv:"checkboxpathPairwiseXDistanceSum"`
	CheckBoxPathPairwiseXDistanceMean                 float64 `arff:"checkboxpathPairwiseXDistanceMean" csv:"checkboxpathPairwiseXDistanceMean"`
	CheckBoxPathPairwiseXDistanceStdDev               float64 `arff:"checkboxpathPairwiseXDistanceStdDev" csv:"checkboxpathPairwiseXDistanceStdDev"`
	CheckBoxPathPairwiseXDistanceSkew                 float64 `arff:"checkboxpathPairwiseXDistanceSkew" csv:"checkboxpathPairwiseXDistanceSkew"`
	CheckBoxPathPairwiseYDistanceMin                  float64 `arff:"checkboxpathPairwiseYDistanceMin" csv:"checkboxpathPairwiseYDistanceMin"`
	CheckBoxPathPairwiseYDistanceMax                  float64 `arff:"checkboxpathPairwiseYDistanceMax" csv:"checkboxpathPairwiseYDistanceMax"`
	CheckBoxPathPairwiseYDistanceDiff                 float64 `arff:"checkboxpathPairwiseYDistanceDiff" csv:"checkboxpathPairwiseYDistanceDiff"`
	CheckBoxPathPairwiseYDistanceSum                  float64 `arff:"checkboxpathPairwiseYDistanceSum" csv:"checkboxpathPairwiseYDistanceSum"`
	CheckBoxPathPairwiseYDistanceMean                 float64 `arff:"checkboxpathPairwiseYDistanceMean" csv:"checkboxpathPairwiseYDistanceMean"`
	CheckBoxPathPairwiseYDistanceStdDev               float64 `arff:"checkboxpathPairwiseYDistanceStdDev" csv:"checkboxpathPairwiseYDistanceStdDev"`
	CheckBoxPathPairwiseYDistanceSkew                 float64 `arff:"checkboxpathPairwiseYDistanceSkew" csv:"checkboxpathPairwiseYDistanceSkew"`
	// Rest Paths
	RestPathPairwiseDistanceMin                    float64 `arff:"restpathPairwiseDistanceMin" csv:"restpathPairwiseDistanceMin"`
	RestPathPairwiseDistanceMax                    float64 `arff:"restpathPairwiseDistanceMax" csv:"restpathPairwiseDistanceMax"`
	RestPathPairwiseDistanceDiff                   float64 `arff:"restpathPairwiseDistanceDiff" csv:"restpathPairwiseDistanceDiff"`
	RestPathPairwiseDistanceSum                    float64 `arff:"restpathPairwiseDistanceSum" csv:"restpathPairwiseDistanceSum"`
	RestPathPairwiseDistanceMean                   float64 `arff:"restpathPairwiseDistanceMean" csv:"restpathPairwiseDistanceMean"`
	RestPathPairwiseDistanceStdDev                 float64 `arff:"restpathPairwiseDistanceStdDev" csv:"restpathPairwiseDistanceStdDev"`
	RestPathPairwiseDistanceSkew                   float64 `arff:"restpathPairwiseDistanceSkew" csv:"restpathPairwiseDistanceSkew"`
	RestPathPairwiseVelocityMin                    float64 `arff:"restpathPairwiseVelocityMin" csv:"restpathPairwiseVelocityMin"`
	RestPathPairwiseVelocityMax                    float64 `arff:"restpathPairwiseVelocityMax" csv:"restpathPairwiseVelocityMax"`
	RestPathPairwiseVelocityDiff                   float64 `arff:"restpathPairwiseVelocityDiff" csv:"restpathPairwiseVelocityDiff"`
	RestPathPairwiseVelocitySum                    float64 `arff:"restpathPairwiseVelocitySum" csv:"restpathPairwiseVelocitySum"`
	RestPathPairwiseVelocityMean                   float64 `arff:"restpathPairwiseVelocityMean" csv:"restpathPairwiseVelocityMean"`
	RestPathPairwiseVelocityStdDev                 float64 `arff:"restpathPairwiseVelocityStdDev" csv:"restpathPairwiseVelocityStdDev"`
	RestPathPairwiseVelocitySkew                   float64 `arff:"restpathPairwiseVelocitySkew" csv:"restpathPairwiseVelocitySkew"`
	RestPathPairwiseAccelerationMin                float64 `arff:"restpathPairwiseAccelerationMin" csv:"restpathPairwiseAccelerationMin"`
	RestPathPairwiseAccelerationMax                float64 `arff:"restpathPairwiseAccelerationMax" csv:"restpathPairwiseAccelerationMax"`
	RestPathPairwiseAccelerationDiff               float64 `arff:"restpathPairwiseAccelerationDiff" csv:"restpathPairwiseAccelerationDiff"`
	RestPathPairwiseAccelerationSum                float64 `arff:"restpathPairwiseAccelerationSum" csv:"restpathPairwiseAccelerationSum"`
	RestPathPairwiseAccelerationMean               float64 `arff:"restpathPairwiseAccelerationMean" csv:"restpathPairwiseAccelerationMean"`
	RestPathPairwiseAccelerationStdDev             float64 `arff:"restpathPairwiseAccelerationStdDev" csv:"restpathPairwiseAccelerationStdDev"`
	RestPathPairwiseAccelerationSkew               float64 `arff:"restpathPairwiseAccelerationSkew" csv:"restpathPairwiseAccelerationSkew"`
	RestPathPairwiseAngleMin                       float64 `arff:"restpathPairwiseAngleMin" csv:"restpathPairwiseAngleMin"`
	RestPathPairwiseAngleMax                       float64 `arff:"restpathPairwiseAngleMax" csv:"restpathPairwiseAngleMax"`
	RestPathPairwiseAngleDiff                      float64 `arff:"restpathPairwiseAngleDiff" csv:"restpathPairwiseAngleDiff"`
	RestPathPairwiseAngleSum                       float64 `arff:"restpathPairwiseAngleSum" csv:"restpathPairwiseAngleSum"`
	RestPathPairwiseAngleMean                      float64 `arff:"restpathPairwiseAngleMean" csv:"restpathPairwiseAngleMean"`
	RestPathPairwiseAngleStdDev                    float64 `arff:"restpathPairwiseAngleStdDev" csv:"restpathPairwiseAngleStdDev"`
	RestPathPairwiseAngleSkew                      float64 `arff:"restpathPairwiseAngleSkew" csv:"restpathPairwiseAngleSkew"`
	RestPathAngleBetweenMovementAndStartEndMin     float64 `arff:"restpathAngleBetweenMovementAndStartEndMin" csv:"restpathAngleBetweenMovementAndStartEndMin"`
	RestPathAngleBetweenMovementAndStartEndMax     float64 `arff:"restpathAngleBetweenMovementAndStartEndMax" csv:"restpathAngleBetweenMovementAndStartEndMax"`
	RestPathAngleBetweenMovementAndStartEndDiff    float64 `arff:"restpathAngleBetweenMovementAndStartEndDiff" csv:"restpathAngleBetweenMovementAndStartEndDiff"`
	RestPathAngleBetweenMovementAndStartEndSum     float64 `arff:"restpathAngleBetweenMovementAndStartEndSum" csv:"restpathAngleBetweenMovementAndStartEndSum"`
	RestPathAngleBetweenMovementAndStartEndMean    float64 `arff:"restpathAngleBetweenMovementAndStartEndMean" csv:"restpathAngleBetweenMovementAndStartEndMean"`
	RestPathAngleBetweenMovementAndStartEndStdDev  float64 `arff:"restpathAngleBetweenMovementAndStartEndStdDev" csv:"restpathAngleBetweenMovementAndStartEndStdDev"`
	RestPathAngleBetweenMovementAndStartEndSkew    float64 `arff:"restpathAngleBetweenMovementAndStartEndSkew" csv:"restpathAngleBetweenMovementAndStartEndSkew"`
	RestPathPairwiseAngularVelocityMin             float64 `arff:"restpathPairwiseAngularVelocityMin" csv:"restpathPairwiseAngularVelocityMin"`
	RestPathPairwiseAngularVelocityMax             float64 `arff:"restpathPairwiseAngularVelocityMax" csv:"restpathPairwiseAngularVelocityMax"`
	RestPathPairwiseAngularVelocityDiff            float64 `arff:"restpathPairwiseAngularVelocityDiff" csv:"restpathPairwiseAngularVelocityDiff"`
	RestPathPairwiseAngularVelocitySum             float64 `arff:"restpathPairwiseAngularVelocitySum" csv:"restpathPairwiseAngularVelocitySum"`
	RestPathPairwiseAngularVelocityMean            float64 `arff:"restpathPairwiseAngularVelocityMean" csv:"restpathPairwiseAngularVelocityMean"`
	RestPathPairwiseAngularVelocityStdDev          float64 `arff:"restpathPairwiseAngularVelocityStdDev" csv:"restpathPairwiseAngularVelocityStdDev"`
	RestPathPairwiseAngularVelocitySkew            float64 `arff:"restpathPairwiseAngularVelocitySkew" csv:"restpathPairwiseAngularVelocitySkew"`
	RestPathPairwiseDurationMin                    uint64  `arff:"restpathPairwiseDurationMin" csv:"restpathPairwiseDurationMin"`
	RestPathPairwiseDurationMax                    uint64  `arff:"restpathPairwiseDurationMax" csv:"restpathPairwiseDurationMax"`
	RestPathPairwiseDurationDiff                   uint64  `arff:"restpathPairwiseDurationDiff" csv:"restpathPairwiseDurationDiff"`
	RestPathPairwiseDurationSum                    uint64  `arff:"restpathPairwiseDurationSum" csv:"restpathPairwiseDurationSum"`
	RestPathPairwiseDurationMean                   float64 `arff:"restpathPairwiseDurationMean" csv:"restpathPairwiseDurationMean"`
	RestPathPairwiseDurationStdDev                 float64 `arff:"restpathPairwiseDurationStdDev" csv:"restpathPairwiseDurationStdDev"`
	RestPathPairwiseDurationSkew                   float64 `arff:"restpathPairwiseDurationSkew" csv:"restpathPairwiseDurationSkew"`
	RestPathTimeBetweenClickAndReleaseMin          uint64  `arff:"restpathTimeBetweenClickAndReleaseMin" csv:"restpathTimeBetweenClickAndReleaseMin"`
	RestPathTimeBetweenClickAndReleaseMax          uint64  `arff:"restpathTimeBetweenClickAndReleaseMax" csv:"restpathTimeBetweenClickAndReleaseMax"`
	RestPathTimeBetweenClickAndReleaseDiff         uint64  `arff:"restpathTimeBetweenClickAndReleaseDiff" csv:"restpathTimeBetweenClickAndReleaseDiff"`
	RestPathTimeBetweenClickAndReleaseSum          uint64  `arff:"restpathTimeBetweenClickAndReleaseSum" csv:"restpathTimeBetweenClickAndReleaseSum"`
	RestPathTimeBetweenClickAndReleaseMean         float64 `arff:"restpathTimeBetweenClickAndReleaseMean" csv:"restpathTimeBetweenClickAndReleaseMean"`
	RestPathTimeBetweenClickAndReleaseStdDev       float64 `arff:"restpathTimeBetweenClickAndReleaseStdDev" csv:"restpathTimeBetweenClickAndReleaseStdDev"`
	RestPathTimeBetweenClickAndReleaseSkew         float64 `arff:"restpathTimeBetweenClickAndReleaseSkew" csv:"restpathTimeBetweenClickAndReleaseSkew"`
	RestPathBreakTimesMin                          uint64  `arff:"restpathBreakTimesMin" csv:"restpathBreakTimesMin"`
	RestPathBreakTimesMax                          uint64  `arff:"restpathBreakTimesMax" csv:"restpathBreakTimesMax"`
	RestPathBreakTimesDiff                         uint64  `arff:"restpathBreakTimesDiff" csv:"restpathBreakTimesDiff"`
	RestPathBreakTimesSum                          uint64  `arff:"restpathBreakTimesSum" csv:"restpathBreakTimesSum"`
	RestPathBreakTimesMean                         float64 `arff:"restpathBreakTimesMean" csv:"restpathBreakTimesMean"`
	RestPathBreakTimesStdDev                       float64 `arff:"restpathBreakTimesStdDev" csv:"restpathBreakTimesStdDev"`
	RestPathBreakTimesSkew                         float64 `arff:"restpathBreakTimesSkew" csv:"restpathBreakTimesSkew"`
	RestPathMovementDuringClickDistanceMin         float64 `arff:"restpathMovementDuringClickDistanceMin" csv:"restpathMovementDuringClickDistanceMin"`
	RestPathMovementDuringClickDistanceMax         float64 `arff:"restpathMovementDuringClickDistanceMax" csv:"restpathMovementDuringClickDistanceMax"`
	RestPathMovementDuringClickDistanceDiff        float64 `arff:"restpathMovementDuringClickDistanceDiff" csv:"restpathMovementDuringClickDistanceDiff"`
	RestPathMovementDuringClickDistanceSum         float64 `arff:"restpathMovementDuringClickDistanceSum" csv:"restpathMovementDuringClickDistanceSum"`
	RestPathMovementDuringClickDistanceMean        float64 `arff:"restpathMovementDuringClickDistanceMean" csv:"restpathMovementDuringClickDistanceMean"`
	RestPathMovementDuringClickDistanceStdDev      float64 `arff:"restpathMovementDuringClickDistanceStdDev" csv:"restpathMovementDuringClickDistanceStdDev"`
	RestPathMovementDuringClickDistanceSkew        float64 `arff:"restpathMovementDuringClickDistanceSkew" csv:"restpathMovementDuringClickDistanceSkew"`
	RestPathMovementDuringClickVelocityMin         float64 `arff:"restpathMovementDuringClickVelocityMin" csv:"restpathMovementDuringClickVelocityMin"`
	RestPathMovementDuringClickVelocityMax         float64 `arff:"restpathMovementDuringClickVelocityMax" csv:"restpathMovementDuringClickVelocityMax"`
	RestPathMovementDuringClickVelocityDiff        float64 `arff:"restpathMovementDuringClickVelocityDiff" csv:"restpathMovementDuringClickVelocityDiff"`
	RestPathMovementDuringClickVelocitySum         float64 `arff:"restpathMovementDuringClickVelocitySum" csv:"restpathMovementDuringClickVelocitySum"`
	RestPathMovementDuringClickVelocityMean        float64 `arff:"restpathMovementDuringClickVelocityMean" csv:"restpathMovementDuringClickVelocityMean"`
	RestPathMovementDuringClickVelocityStdDev      float64 `arff:"restpathMovementDuringClickVelocityStdDev" csv:"restpathMovementDuringClickVelocityStdDev"`
	RestPathMovementDuringClickVelocitySkew        float64 `arff:"restpathMovementDuringClickVelocitySkew" csv:"restpathMovementDuringClickVelocitySkew"`
	RestPathMovementDuringClickAccelerationMin     float64 `arff:"restpathMovementDuringClickAccelerationMin" csv:"restpathMovementDuringClickAccelerationMin"`
	RestPathMovementDuringClickAccelerationMax     float64 `arff:"restpathMovementDuringClickAccelerationMax" csv:"restpathMovementDuringClickAccelerationMax"`
	RestPathMovementDuringClickAccelerationDiff    float64 `arff:"restpathMovementDuringClickAccelerationDiff" csv:"restpathMovementDuringClickAccelerationDiff"`
	RestPathMovementDuringClickAccelerationSum     float64 `arff:"restpathMovementDuringClickAccelerationSum" csv:"restpathMovementDuringClickAccelerationSum"`
	RestPathMovementDuringClickAccelerationMean    float64 `arff:"restpathMovementDuringClickAccelerationMean" csv:"restpathMovementDuringClickAccelerationMean"`
	RestPathMovementDuringClickAccelerationStdDev  float64 `arff:"restpathMovementDuringClickAccelerationStdDev" csv:"restpathMovementDuringClickAccelerationStdDev"`
	RestPathMovementDuringClickAccelerationSkew    float64 `arff:"restpathMovementDuringClickAccelerationSkew" csv:"restpathMovementDuringClickAccelerationSkew"`
	RestPathMovementDuringClickAngleMin            float64 `arff:"restpathMovementDuringClickAngleMin" csv:"restpathMovementDuringClickAngleMin"`
	RestPathMovementDuringClickAngleMax            float64 `arff:"restpathMovementDuringClickAngleMax" csv:"restpathMovementDuringClickAngleMax"`
	RestPathMovementDuringClickAngleDiff           float64 `arff:"restpathMovementDuringClickAngleDiff" csv:"restpathMovementDuringClickAngleDiff"`
	RestPathMovementDuringClickAngleSum            float64 `arff:"restpathMovementDuringClickAngleSum" csv:"restpathMovementDuringClickAngleSum"`
	RestPathMovementDuringClickAngleMean           float64 `arff:"restpathMovementDuringClickAngleMean" csv:"restpathMovementDuringClickAngleMean"`
	RestPathMovementDuringClickAngleStdDev         float64 `arff:"restpathMovementDuringClickAngleStdDev" csv:"restpathMovementDuringClickAngleStdDev"`
	RestPathMovementDuringClickAngleSkew           float64 `arff:"restpathMovementDuringClickAngleSkew" csv:"restpathMovementDuringClickAngleSkew"`
	RestPathScrollDXMin                            float64 `arff:"restpathScrollDXMin" csv:"restpathScrollDXMin"`
	RestPathScrollDXMax                            float64 `arff:"restpathScrollDXMax" csv:"restpathScrollDXMax"`
	RestPathScrollDXDiff                           float64 `arff:"restpathScrollDXDiff" csv:"restpathScrollDXDiff"`
	RestPathScrollDXSum                            float64 `arff:"restpathScrollDXSum" csv:"restpathScrollDXSum"`
	RestPathScrollDXMean                           float64 `arff:"restpathScrollDXMean" csv:"restpathScrollDXMean"`
	RestPathScrollDXStdDev                         float64 `arff:"restpathScrollDXStdDev" csv:"restpathScrollDXStdDev"`
	RestPathScrollDXSkew                           float64 `arff:"restpathScrollDXSkew" csv:"restpathScrollDXSkew"`
	RestPathScrollDYMin                            float64 `arff:"restpathScrollDYMin" csv:"restpathScrollDYMin"`
	RestPathScrollDYMax                            float64 `arff:"restpathScrollDYMax" csv:"restpathScrollDYMax"`
	RestPathScrollDYDiff                           float64 `arff:"restpathScrollDYDiff" csv:"restpathScrollDYDiff"`
	RestPathScrollDYSum                            float64 `arff:"restpathScrollDYSum" csv:"restpathScrollDYSum"`
	RestPathScrollDYMean                           float64 `arff:"restpathScrollDYMean" csv:"restpathScrollDYMean"`
	RestPathScrollDYStdDev                         float64 `arff:"restpathScrollDYStdDev" csv:"restpathScrollDYStdDev"`
	RestPathScrollDYSkew                           float64 `arff:"restpathScrollDYSkew" csv:"restpathScrollDYSkew"`
	RestPathScrollDZMin                            float64 `arff:"restpathScrollDZMin" csv:"restpathScrollDZMin"`
	RestPathScrollDZMax                            float64 `arff:"restpathScrollDZMax" csv:"restpathScrollDZMax"`
	RestPathScrollDZDiff                           float64 `arff:"restpathScrollDZDiff" csv:"restpathScrollDZDiff"`
	RestPathScrollDZSum                            float64 `arff:"restpathScrollDZSum" csv:"restpathScrollDZSum"`
	RestPathScrollDZMean                           float64 `arff:"restpathScrollDZMean" csv:"restpathScrollDZMean"`
	RestPathScrollDZStdDev                         float64 `arff:"restpathScrollDZStdDev" csv:"restpathScrollDZStdDev"`
	RestPathScrollDZSkew                           float64 `arff:"restpathScrollDZSkew" csv:"restpathScrollDZSkew"`
	RestPathScrollDMMin                            uint8   `arff:"restpathScrollDMMin" csv:"restpathScrollDMMin"`
	RestPathScrollDMMax                            uint8   `arff:"restpathScrollDMMax" csv:"restpathScrollDMMax"`
	RestPathScrollDMDiff                           uint8   `arff:"restpathScrollDMDiff" csv:"restpathScrollDMDiff"`
	RestPathScrollDMSum                            uint8   `arff:"restpathScrollDMSum" csv:"restpathScrollDMSum"`
	RestPathScrollDMMean                           float64 `arff:"restpathScrollDMMean" csv:"restpathScrollDMMean"`
	RestPathScrollDMStdDev                         float64 `arff:"restpathScrollDMStdDev" csv:"restpathScrollDMStdDev"`
	RestPathScrollDMSkew                           float64 `arff:"restpathScrollDMSkew" csv:"restpathScrollDMSkew"`
	RestPathXPointsMin                             float64 `arff:"restpathXPointsMin" csv:"restpathXPointsMin"`
	RestPathXPointsMax                             float64 `arff:"restpathXPointsMax" csv:"restpathXPointsMax"`
	RestPathXPointsDiff                            float64 `arff:"restpathXPointsDiff" csv:"restpathXPointsDiff"`
	RestPathXPointsSum                             float64 `arff:"restpathXPointsSum" csv:"restpathXPointsSum"`
	RestPathXPointsMean                            float64 `arff:"restpathXPointsMean" csv:"restpathXPointsMean"`
	RestPathXPointsStdDev                          float64 `arff:"restpathXPointsStdDev" csv:"restpathXPointsStdDev"`
	RestPathXPointsSkew                            float64 `arff:"restpathXPointsSkew" csv:"restpathXPointsSkew"`
	RestPathYPointsMin                             float64 `arff:"restpathYPointsMin" csv:"restpathYPointsMin"`
	RestPathYPointsMax                             float64 `arff:"restpathYPointsMax" csv:"restpathYPointsMax"`
	RestPathYPointsDiff                            float64 `arff:"restpathYPointsDiff" csv:"restpathYPointsDiff"`
	RestPathYPointsSum                             float64 `arff:"restpathYPointsSum" csv:"restpathYPointsSum"`
	RestPathYPointsMean                            float64 `arff:"restpathYPointsMean" csv:"restpathYPointsMean"`
	RestPathYPointsStdDev                          float64 `arff:"restpathYPointsStdDev" csv:"restpathYPointsStdDev"`
	RestPathYPointsSkew                            float64 `arff:"restpathYPointsSkew" csv:"restpathYPointsSkew"`
	RestPathPairwiseXVelocityMin                   float64 `arff:"restpathPairwiseXVelocityMin" csv:"restpathPairwiseXVelocityMin"`
	RestPathPairwiseXVelocityMax                   float64 `arff:"restpathPairwiseXVelocityMax" csv:"restpathPairwiseXVelocityMax"`
	RestPathPairwiseXVelocityDiff                  float64 `arff:"restpathPairwiseXVelocityDiff" csv:"restpathPairwiseXVelocityDiff"`
	RestPathPairwiseXVelocitySum                   float64 `arff:"restpathPairwiseXVelocitySum" csv:"restpathPairwiseXVelocitySum"`
	RestPathPairwiseXVelocityMean                  float64 `arff:"restpathPairwiseXVelocityMean" csv:"restpathPairwiseXVelocityMean"`
	RestPathPairwiseXVelocityStdDev                float64 `arff:"restpathPairwiseXVelocityStdDev" csv:"restpathPairwiseXVelocityStdDev"`
	RestPathPairwiseXVelocitySkew                  float64 `arff:"restpathPairwiseXVelocitySkew" csv:"restpathPairwiseXVelocitySkew"`
	RestPathPairwiseYVelocityMin                   float64 `arff:"restpathPairwiseYVelocityMin" csv:"restpathPairwiseYVelocityMin"`
	RestPathPairwiseYVelocityMax                   float64 `arff:"restpathPairwiseYVelocityMax" csv:"restpathPairwiseYVelocityMax"`
	RestPathPairwiseYVelocityDiff                  float64 `arff:"restpathPairwiseYVelocityDiff" csv:"restpathPairwiseYVelocityDiff"`
	RestPathPairwiseYVelocitySum                   float64 `arff:"restpathPairwiseYVelocitySum" csv:"restpathPairwiseYVelocitySum"`
	RestPathPairwiseYVelocityMean                  float64 `arff:"restpathPairwiseYVelocityMean" csv:"restpathPairwiseYVelocityMean"`
	RestPathPairwiseYVelocityStdDev                float64 `arff:"restpathPairwiseYVelocityStdDev" csv:"restpathPairwiseYVelocityStdDev"`
	RestPathPairwiseYVelocitySkew                  float64 `arff:"restpathPairwiseYVelocitySkew" csv:"restpathPairwiseYVelocitySkew"`
	RestPathPairwiseXDistanceMin                   float64 `arff:"restpathPairwiseXDistanceMin" csv:"restpathPairwiseXDistanceMin"`
	RestPathPairwiseXDistanceMax                   float64 `arff:"restpathPairwiseXDistanceMax" csv:"restpathPairwiseXDistanceMax"`
	RestPathPairwiseXDistanceDiff                  float64 `arff:"restpathPairwiseXDistanceDiff" csv:"restpathPairwiseXDistanceDiff"`
	RestPathPairwiseXDistanceSum                   float64 `arff:"restpathPairwiseXDistanceSum" csv:"restpathPairwiseXDistanceSum"`
	RestPathPairwiseXDistanceMean                  float64 `arff:"restpathPairwiseXDistanceMean" csv:"restpathPairwiseXDistanceMean"`
	RestPathPairwiseXDistanceStdDev                float64 `arff:"restpathPairwiseXDistanceStdDev" csv:"restpathPairwiseXDistanceStdDev"`
	RestPathPairwiseXDistanceSkew                  float64 `arff:"restpathPairwiseXDistanceSkew" csv:"restpathPairwiseXDistanceSkew"`
	RestPathPairwiseYDistanceMin                   float64 `arff:"restpathPairwiseYDistanceMin" csv:"restpathPairwiseYDistanceMin"`
	RestPathPairwiseYDistanceMax                   float64 `arff:"restpathPairwiseYDistanceMax" csv:"restpathPairwiseYDistanceMax"`
	RestPathPairwiseYDistanceDiff                  float64 `arff:"restpathPairwiseYDistanceDiff" csv:"restpathPairwiseYDistanceDiff"`
	RestPathPairwiseYDistanceSum                   float64 `arff:"restpathPairwiseYDistanceSum" csv:"restpathPairwiseYDistanceSum"`
	RestPathPairwiseYDistanceMean                  float64 `arff:"restpathPairwiseYDistanceMean" csv:"restpathPairwiseYDistanceMean"`
	RestPathPairwiseYDistanceStdDev                float64 `arff:"restpathPairwiseYDistanceStdDev" csv:"restpathPairwiseYDistanceStdDev"`
	RestPathPairwiseYDistanceSkew                  float64 `arff:"restpathPairwiseYDistanceSkew" csv:"restpathPairwiseYDistanceSkew"`
	RestPathSumYDistanceMin                        float64 `arff:"restpathSumYDistanceMin" csv:"restpathSumYDistanceMin"`
	RestPathSumYDistanceMax                        float64 `arff:"restpathSumYDistanceMax" csv:"restpathSumYDistanceMax"`
	RestPathSumYDistanceDiff                       float64 `arff:"restpathSumYDistanceDiff" csv:"restpathSumYDistanceDiff"`
	RestPathSumYDistanceSum                        float64 `arff:"restpathSumYDistanceSum" csv:"restpathSumYDistanceSum"`
	RestPathSumYDistanceMean                       float64 `arff:"restpathSumYDistanceMean" csv:"restpathSumYDistanceMean"`
	RestPathSumYDistanceStdDev                     float64 `arff:"restpathSumYDistanceStdDev" csv:"restpathSumYDistanceStdDev"`
	RestPathSumYDistanceSkew                       float64 `arff:"restpathSumYDistanceSkew" csv:"restpathSumYDistanceSkew"`
	RestPathMeanYVelocityMin                       float64 `arff:"restpathMeanYVelocityMin" csv:"restpathMeanYVelocityMin"`
	RestPathMeanYVelocityMax                       float64 `arff:"restpathMeanYVelocityMax" csv:"restpathMeanYVelocityMax"`
	RestPathMeanYVelocityDiff                      float64 `arff:"restpathMeanYVelocityDiff" csv:"restpathMeanYVelocityDiff"`
	RestPathMeanYVelocitySum                       float64 `arff:"restpathMeanYVelocitySum" csv:"restpathMeanYVelocitySum"`
	RestPathMeanYVelocityMean                      float64 `arff:"restpathMeanYVelocityMean" csv:"restpathMeanYVelocityMean"`
	RestPathMeanYVelocityStdDev                    float64 `arff:"restpathMeanYVelocityStdDev" csv:"restpathMeanYVelocityStdDev"`
	RestPathMeanYVelocitySkew                      float64 `arff:"restpathMeanYVelocitySkew" csv:"restpathMeanYVelocitySkew"`
	RestPathSumXDistanceMin                        float64 `arff:"restpathSumXDistanceMin" csv:"restpathSumXDistanceMin"`
	RestPathSumXDistanceMax                        float64 `arff:"restpathSumXDistanceMax" csv:"restpathSumXDistanceMax"`
	RestPathSumXDistanceDiff                       float64 `arff:"restpathSumXDistanceDiff" csv:"restpathSumXDistanceDiff"`
	RestPathSumXDistanceSum                        float64 `arff:"restpathSumXDistanceSum" csv:"restpathSumXDistanceSum"`
	RestPathSumXDistanceMean                       float64 `arff:"restpathSumXDistanceMean" csv:"restpathSumXDistanceMean"`
	RestPathSumXDistanceStdDev                     float64 `arff:"restpathSumXDistanceStdDev" csv:"restpathSumXDistanceStdDev"`
	RestPathSumXDistanceSkew                       float64 `arff:"restpathSumXDistanceSkew" csv:"restpathSumXDistanceSkew"`
	RestPathMeanXVelocityMin                       float64 `arff:"restpathMeanXVelocityMin" csv:"restpathMeanXVelocityMin"`
	RestPathMeanXVelocityMax                       float64 `arff:"restpathMeanXVelocityMax" csv:"restpathMeanXVelocityMax"`
	RestPathMeanXVelocityDiff                      float64 `arff:"restpathMeanXVelocityDiff" csv:"restpathMeanXVelocityDiff"`
	RestPathMeanXVelocitySum                       float64 `arff:"restpathMeanXVelocitySum" csv:"restpathMeanXVelocitySum"`
	RestPathMeanXVelocityMean                      float64 `arff:"restpathMeanXVelocityMean" csv:"restpathMeanXVelocityMean"`
	RestPathMeanXVelocityStdDev                    float64 `arff:"restpathMeanXVelocityStdDev" csv:"restpathMeanXVelocityStdDev"`
	RestPathMeanXVelocitySkew                      float64 `arff:"restpathMeanXVelocitySkew" csv:"restpathMeanXVelocitySkew"`
	RestPathStraightnessMin                        float64 `arff:"restpathStraightnessMin" csv:"restpathStraightnessMin"`
	RestPathStraightnessMax                        float64 `arff:"restpathStraightnessMax" csv:"restpathStraightnessMax"`
	RestPathStraightnessDiff                       float64 `arff:"restpathStraightnessDiff" csv:"restpathStraightnessDiff"`
	RestPathStraightnessSum                        float64 `arff:"restpathStraightnessSum" csv:"restpathStraightnessSum"`
	RestPathStraightnessMean                       float64 `arff:"restpathStraightnessMean" csv:"restpathStraightnessMean"`
	RestPathStraightnessStdDev                     float64 `arff:"restpathStraightnessStdDev" csv:"restpathStraightnessStdDev"`
	RestPathStraightnessSkew                       float64 `arff:"restpathStraightnessSkew" csv:"restpathStraightnessSkew"`
	RestPathNumberOfRightClicksMin                 uint8   `arff:"restpathNumberOfRightClicksMin" csv:"restpathNumberOfRightClicksMin"`
	RestPathNumberOfRightClicksMax                 uint8   `arff:"restpathNumberOfRightClicksMax" csv:"restpathNumberOfRightClicksMax"`
	RestPathNumberOfRightClicksDiff                uint8   `arff:"restpathNumberOfRightClicksDiff" csv:"restpathNumberOfRightClicksDiff"`
	RestPathNumberOfRightClicksSum                 uint8   `arff:"restpathNumberOfRightClicksSum" csv:"restpathNumberOfRightClicksSum"`
	RestPathNumberOfRightClicksMean                float64 `arff:"restpathNumberOfRightClicksMean" csv:"restpathNumberOfRightClicksMean"`
	RestPathNumberOfRightClicksStdDev              float64 `arff:"restpathNumberOfRightClicksStdDev" csv:"restpathNumberOfRightClicksStdDev"`
	RestPathNumberOfRightClicksSkew                float64 `arff:"restpathNumberOfRightClicksSkew" csv:"restpathNumberOfRightClicksSkew"`
	RestPathNumberOfMiddleClicksMin                uint8   `arff:"restpathNumberOfMiddleClicksMin" csv:"restpathNumberOfMiddleClicksMin"`
	RestPathNumberOfMiddleClicksMax                uint8   `arff:"restpathNumberOfMiddleClicksMax" csv:"restpathNumberOfMiddleClicksMax"`
	RestPathNumberOfMiddleClicksDiff               uint8   `arff:"restpathNumberOfMiddleClicksDiff" csv:"restpathNumberOfMiddleClicksDiff"`
	RestPathNumberOfMiddleClicksSum                uint8   `arff:"restpathNumberOfMiddleClicksSum" csv:"restpathNumberOfMiddleClicksSum"`
	RestPathNumberOfMiddleClicksMean               float64 `arff:"restpathNumberOfMiddleClicksMean" csv:"restpathNumberOfMiddleClicksMean"`
	RestPathNumberOfMiddleClicksStdDev             float64 `arff:"restpathNumberOfMiddleClicksStdDev" csv:"restpathNumberOfMiddleClicksStdDev"`
	RestPathNumberOfMiddleClicksSkew               float64 `arff:"restpathNumberOfMiddleClicksSkew" csv:"restpathNumberOfMiddleClicksSkew"`
	RestPathNumberOfScrollsMin                     uint8   `arff:"restpathNumberOfScrollsMin" csv:"restpathNumberOfScrollsMin"`
	RestPathNumberOfScrollsMax                     uint8   `arff:"restpathNumberOfScrollsMax" csv:"restpathNumberOfScrollsMax"`
	RestPathNumberOfScrollsDiff                    uint8   `arff:"restpathNumberOfScrollsDiff" csv:"restpathNumberOfScrollsDiff"`
	RestPathNumberOfScrollsSum                     uint8   `arff:"restpathNumberOfScrollsSum" csv:"restpathNumberOfScrollsSum"`
	RestPathNumberOfScrollsMean                    float64 `arff:"restpathNumberOfScrollsMean" csv:"restpathNumberOfScrollsMean"`
	RestPathNumberOfScrollsStdDev                  float64 `arff:"restpathNumberOfScrollsStdDev" csv:"restpathNumberOfScrollsStdDev"`
	RestPathNumberOfScrollsSkew                    float64 `arff:"restpathNumberOfScrollsSkew" csv:"restpathNumberOfScrollsSkew"`
	RestPathBreakTimeTotalTimeRatioMin             float64 `arff:"restpathBreakTimeTotalTimeRatioMin" csv:"restpathBreakTimeTotalTimeRatioMin"`
	RestPathBreakTimeTotalTimeRatioMax             float64 `arff:"restpathBreakTimeTotalTimeRatioMax" csv:"restpathBreakTimeTotalTimeRatioMax"`
	RestPathBreakTimeTotalTimeRatioDiff            float64 `arff:"restpathBreakTimeTotalTimeRatioDiff" csv:"restpathBreakTimeTotalTimeRatioDiff"`
	RestPathBreakTimeTotalTimeRatioSum             float64 `arff:"restpathBreakTimeTotalTimeRatioSum" csv:"restpathBreakTimeTotalTimeRatioSum"`
	RestPathBreakTimeTotalTimeRatioMean            float64 `arff:"restpathBreakTimeTotalTimeRatioMean" csv:"restpathBreakTimeTotalTimeRatioMean"`
	RestPathBreakTimeTotalTimeRatioStdDev          float64 `arff:"restpathBreakTimeTotalTimeRatioStdDev" csv:"restpathBreakTimeTotalTimeRatioStdDev"`
	RestPathBreakTimeTotalTimeRatioSkew            float64 `arff:"restpathBreakTimeTotalTimeRatioSkew" csv:"restpathBreakTimeTotalTimeRatioSkew"`
	RestPathNumberOfBreaksMin                      uint16  `arff:"restpathNumberOfBreaksMin" csv:"restpathNumberOfBreaksMin"`
	RestPathNumberOfBreaksMax                      uint16  `arff:"restpathNumberOfBreaksMax" csv:"restpathNumberOfBreaksMax"`
	RestPathNumberOfBreaksDiff                     uint16  `arff:"restpathNumberOfBreaksDiff" csv:"restpathNumberOfBreaksDiff"`
	RestPathNumberOfBreaksSum                      uint16  `arff:"restpathNumberOfBreaksSum" csv:"restpathNumberOfBreaksSum"`
	RestPathNumberOfBreaksMean                     float64 `arff:"restpathNumberOfBreaksMean" csv:"restpathNumberOfBreaksMean"`
	RestPathNumberOfBreaksStdDev                   float64 `arff:"restpathNumberOfBreaksStdDev" csv:"restpathNumberOfBreaksStdDev"`
	RestPathNumberOfBreaksSkew                     float64 `arff:"restpathNumberOfBreaksSkew" csv:"restpathNumberOfBreaksSkew"`
	RestPathDurationOfPathMin                      uint64  `arff:"restpathDurationOfPathMin" csv:"restpathDurationOfPathMin"`
	RestPathDurationOfPathMax                      uint64  `arff:"restpathDurationOfPathMax" csv:"restpathDurationOfPathMax"`
	RestPathDurationOfPathDiff                     uint64  `arff:"restpathDurationOfPathDiff" csv:"restpathDurationOfPathDiff"`
	RestPathDurationOfPathSum                      uint64  `arff:"restpathDurationOfPathSum" csv:"restpathDurationOfPathSum"`
	RestPathDurationOfPathMean                     float64 `arff:"restpathDurationOfPathMean" csv:"restpathDurationOfPathMean"`
	RestPathDurationOfPathStdDev                   float64 `arff:"restpathDurationOfPathStdDev" csv:"restpathDurationOfPathStdDev"`
	RestPathDurationOfPathSkew                     float64 `arff:"restpathDurationOfPathSkew" csv:"restpathDurationOfPathSkew"`
	RestPathTimeBetweenClickAndMovementMin         uint64  `arff:"restpathTimeBetweenClickAndMovementMin" csv:"restpathTimeBetweenClickAndMovementMin"`
	RestPathTimeBetweenClickAndMovementMax         uint64  `arff:"restpathTimeBetweenClickAndMovementMax" csv:"restpathTimeBetweenClickAndMovementMax"`
	RestPathTimeBetweenClickAndMovementDiff        uint64  `arff:"restpathTimeBetweenClickAndMovementDiff" csv:"restpathTimeBetweenClickAndMovementDiff"`
	RestPathTimeBetweenClickAndMovementSum         uint64  `arff:"restpathTimeBetweenClickAndMovementSum" csv:"restpathTimeBetweenClickAndMovementSum"`
	RestPathTimeBetweenClickAndMovementMean        float64 `arff:"restpathTimeBetweenClickAndMovementMean" csv:"restpathTimeBetweenClickAndMovementMean"`
	RestPathTimeBetweenClickAndMovementStdDev      float64 `arff:"restpathTimeBetweenClickAndMovementStdDev" csv:"restpathTimeBetweenClickAndMovementStdDev"`
	RestPathTimeBetweenClickAndMovementSkew        float64 `arff:"restpathTimeBetweenClickAndMovementSkew" csv:"restpathTimeBetweenClickAndMovementSkew"`
	RestPathTimeBetweeenMovementAndDownClickMin    uint64  `arff:"restpathTimeBetweeenMovementAndDownClickMin" csv:"restpathTimeBetweeenMovementAndDownClickMin"`
	RestPathTimeBetweeenMovementAndDownClickMax    uint64  `arff:"restpathTimeBetweeenMovementAndDownClickMax" csv:"restpathTimeBetweeenMovementAndDownClickMax"`
	RestPathTimeBetweeenMovementAndDownClickDiff   uint64  `arff:"restpathTimeBetweeenMovementAndDownClickDiff" csv:"restpathTimeBetweeenMovementAndDownClickDiff"`
	RestPathTimeBetweeenMovementAndDownClickSum    uint64  `arff:"restpathTimeBetweeenMovementAndDownClickSum" csv:"restpathTimeBetweeenMovementAndDownClickSum"`
	RestPathTimeBetweeenMovementAndDownClickMean   float64 `arff:"restpathTimeBetweeenMovementAndDownClickMean" csv:"restpathTimeBetweeenMovementAndDownClickMean"`
	RestPathTimeBetweeenMovementAndDownClickStdDev float64 `arff:"restpathTimeBetweeenMovementAndDownClickStdDev" csv:"restpathTimeBetweeenMovementAndDownClickStdDev"`
	RestPathTimeBetweeenMovementAndDownClickSkew   float64 `arff:"restpathTimeBetweeenMovementAndDownClickSkew" csv:"restpathTimeBetweeenMovementAndDownClickSkew"`
	RestPathAngleStartEndPointMin                  float64 `arff:"restpathAngleStartEndPointMin" csv:"restpathAngleStartEndPointMin"`
	RestPathAngleStartEndPointMax                  float64 `arff:"restpathAngleStartEndPointMax" csv:"restpathAngleStartEndPointMax"`
	RestPathAngleStartEndPointDiff                 float64 `arff:"restpathAngleStartEndPointDiff" csv:"restpathAngleStartEndPointDiff"`
	RestPathAngleStartEndPointSum                  float64 `arff:"restpathAngleStartEndPointSum" csv:"restpathAngleStartEndPointSum"`
	RestPathAngleStartEndPointMean                 float64 `arff:"restpathAngleStartEndPointMean" csv:"restpathAngleStartEndPointMean"`
	RestPathAngleStartEndPointStdDev               float64 `arff:"restpathAngleStartEndPointStdDev" csv:"restpathAngleStartEndPointStdDev"`
	RestPathAngleStartEndPointSkew                 float64 `arff:"restpathAngleStartEndPointSkew" csv:"restpathAngleStartEndPointSkew"`
	RestPathMeanAccelerationMin                    float64 `arff:"restpathMeanAccelerationMin" csv:"restpathMeanAccelerationMin"`
	RestPathMeanAccelerationMax                    float64 `arff:"restpathMeanAccelerationMax" csv:"restpathMeanAccelerationMax"`
	RestPathMeanAccelerationDiff                   float64 `arff:"restpathMeanAccelerationDiff" csv:"restpathMeanAccelerationDiff"`
	RestPathMeanAccelerationSum                    float64 `arff:"restpathMeanAccelerationSum" csv:"restpathMeanAccelerationSum"`
	RestPathMeanAccelerationMean                   float64 `arff:"restpathMeanAccelerationMean" csv:"restpathMeanAccelerationMean"`
	RestPathMeanAccelerationStdDev                 float64 `arff:"restpathMeanAccelerationStdDev" csv:"restpathMeanAccelerationStdDev"`
	RestPathMeanAccelerationSkew                   float64 `arff:"restpathMeanAccelerationSkew" csv:"restpathMeanAccelerationSkew"`
	RestPathMeanVelocityMin                        float64 `arff:"restpathMeanVelocityMin" csv:"restpathMeanVelocityMin"`
	RestPathMeanVelocityMax                        float64 `arff:"restpathMeanVelocityMax" csv:"restpathMeanVelocityMax"`
	RestPathMeanVelocityDiff                       float64 `arff:"restpathMeanVelocityDiff" csv:"restpathMeanVelocityDiff"`
	RestPathMeanVelocitySum                        float64 `arff:"restpathMeanVelocitySum" csv:"restpathMeanVelocitySum"`
	RestPathMeanVelocityMean                       float64 `arff:"restpathMeanVelocityMean" csv:"restpathMeanVelocityMean"`
	RestPathMeanVelocityStdDev                     float64 `arff:"restpathMeanVelocityStdDev" csv:"restpathMeanVelocityStdDev"`
	RestPathMeanVelocitySkew                       float64 `arff:"restpathMeanVelocitySkew" csv:"restpathMeanVelocitySkew"`
	RestPathDistanceStartEndPointMin               float64 `arff:"restpathDistanceStartEndPointMin" csv:"restpathDistanceStartEndPointMin"`
	RestPathDistanceStartEndPointMax               float64 `arff:"restpathDistanceStartEndPointMax" csv:"restpathDistanceStartEndPointMax"`
	RestPathDistanceStartEndPointDiff              float64 `arff:"restpathDistanceStartEndPointDiff" csv:"restpathDistanceStartEndPointDiff"`
	RestPathDistanceStartEndPointSum               float64 `arff:"restpathDistanceStartEndPointSum" csv:"restpathDistanceStartEndPointSum"`
	RestPathDistanceStartEndPointMean              float64 `arff:"restpathDistanceStartEndPointMean" csv:"restpathDistanceStartEndPointMean"`
	RestPathDistanceStartEndPointStdDev            float64 `arff:"restpathDistanceStartEndPointStdDev" csv:"restpathDistanceStartEndPointStdDev"`
	RestPathDistanceStartEndPointSkew              float64 `arff:"restpathDistanceStartEndPointSkew" csv:"restpathDistanceStartEndPointSkew"`
	RestPathDistanceSumMin                         float64 `arff:"restpathDistanceSumMin" csv:"restpathDistanceSumMin"`
	RestPathDistanceSumMax                         float64 `arff:"restpathDistanceSumMax" csv:"restpathDistanceSumMax"`
	RestPathDistanceSumDiff                        float64 `arff:"restpathDistanceSumDiff" csv:"restpathDistanceSumDiff"`
	RestPathDistanceSumSum                         float64 `arff:"restpathDistanceSumSum" csv:"restpathDistanceSumSum"`
	RestPathDistanceSumMean                        float64 `arff:"restpathDistanceSumMean" csv:"restpathDistanceSumMean"`
	RestPathDistanceSumStdDev                      float64 `arff:"restpathDistanceSumStdDev" csv:"restpathDistanceSumStdDev"`
	RestPathDistanceSumSkew                        float64 `arff:"restpathDistanceSumSkew" csv:"restpathDistanceSumSkew"`
	RestPathNumberOfMovementPointsMin              uint16  `arff:"restpathNumberOfMovementPointsMin" csv:"restpathNumberOfMovementPointsMin"`
	RestPathNumberOfMovementPointsMax              uint16  `arff:"restpathNumberOfMovementPointsMax" csv:"restpathNumberOfMovementPointsMax"`
	RestPathNumberOfMovementPointsDiff             uint16  `arff:"restpathNumberOfMovementPointsDiff" csv:"restpathNumberOfMovementPointsDiff"`
	RestPathNumberOfMovementPointsSum              uint16  `arff:"restpathNumberOfMovementPointsSum" csv:"restpathNumberOfMovementPointsSum"`
	RestPathNumberOfMovementPointsMean             float64 `arff:"restpathNumberOfMovementPointsMean" csv:"restpathNumberOfMovementPointsMean"`
	RestPathNumberOfMovementPointsStdDev           float64 `arff:"restpathNumberOfMovementPointsStdDev" csv:"restpathNumberOfMovementPointsStdDev"`
	RestPathNumberOfMovementPointsSkew             float64 `arff:"restpathNumberOfMovementPointsSkew" csv:"restpathNumberOfMovementPointsSkew"`
}

ProcessedFeatures contains all the extracted and calculated features from the raw data set

func ExtractFeatures

func ExtractFeatures(data *Data) *ProcessedFeatures

ExtractFeatures extracts the Features from the raw data

func (*ProcessedFeatures) AddCheckBoxFeatures

func (features *ProcessedFeatures) AddCheckBoxFeatures(path *PathFeatures)

AddCheckBoxFeatures adds the features of the CheckboxPath to the FeatureSet

func (*ProcessedFeatures) ExtractBrowserFeatures

func (features *ProcessedFeatures) ExtractBrowserFeatures(data *Data)

ExtractBrowserFeatures extracts the BrowserInfo Features from the raw data and stores it

func (*ProcessedFeatures) ExtractFramePosition

func (features *ProcessedFeatures) ExtractFramePosition(pinfo FramePosition, sinfo ScreenInfo)

ExtractFramePosition saves the information about the frame rectangles

func (*ProcessedFeatures) ExtractGraphicCardInformation

func (features *ProcessedFeatures) ExtractGraphicCardInformation(data WebGLInfo)

ExtractGraphicCardInformation extracts the graphic card vendor and model from the given WebGL Info

func (*ProcessedFeatures) ExtractLanguages

func (features *ProcessedFeatures) ExtractLanguages(binfo BrowserInfo)

ExtractLanguages extracts the Languages from the BrowserInfo and saves it

func (*ProcessedFeatures) ExtractMIMETypes

func (features *ProcessedFeatures) ExtractMIMETypes(binfo BrowserInfo)

ExtractMIMETypes extractes the MIME Types from the BrowserInfo and saves it

func (*ProcessedFeatures) ExtractMouseData

func (features *ProcessedFeatures) ExtractMouseData(data *Data)

ExtractMouseData extracts relevant MouseMovement Features

func (*ProcessedFeatures) ExtractPlatform

func (features *ProcessedFeatures) ExtractPlatform(binfo BrowserInfo)

ExtractPlatform checks if the given platform is listed, if not sets it to ""

func (*ProcessedFeatures) ExtractPlugins

func (features *ProcessedFeatures) ExtractPlugins(data BrowserInfo)

ExtractPlugins extracts the Plugins from the Browserinfo and turns them into features

func (*ProcessedFeatures) ExtractScreenInfo

func (features *ProcessedFeatures) ExtractScreenInfo(sinfo ScreenInfo)

ExtractScreenInfo saves the information about the screen

func (*ProcessedFeatures) ExtractTaskData

func (features *ProcessedFeatures) ExtractTaskData(data []TaskData, t Time)

ExtractTaskData extracts relevant Features from the given tasks

func (*ProcessedFeatures) ExtractUserAgentInformation

func (features *ProcessedFeatures) ExtractUserAgentInformation(binfo BrowserInfo)

ExtractUserAgentInformation extracts the User Agent Informations and stores it

func (*ProcessedFeatures) ExtractWebGLExtensions

func (features *ProcessedFeatures) ExtractWebGLExtensions(winfo WebGLInfo)

ExtractWebGLExtensions extracts the supported WebGL Extensions saves them

func (*ProcessedFeatures) GenerateCheckboxCalculation

func (features *ProcessedFeatures) GenerateCheckboxCalculation(path *PathFeatures)

GenerateCheckboxCalculation calculates the features from the checkbox movement path; Auto-generated

func (*ProcessedFeatures) GenerateRestCalculation

func (features *ProcessedFeatures) GenerateRestCalculation(paths []*PathFeatures)

GenerateRestCalculation caluclates and stores the Features of the RestPath; Auto-generated

type Rectangle

type Rectangle struct {
	X      float64 `json:"x"`
	Y      float64 `json:"y"`
	Width  float64 `json:"width"`
	Height float64 `json:"height"`
}

Rectangle represents a Rectangle. Position (x|y) is the top left corner of the Rectangle.

func (Rectangle) Normalize

func (rect Rectangle) Normalize(screen ScreenInfo) Rectangle

Normalize normalizes the Rectangle relative to the ScreenDimension

type ScreenInfo

type ScreenInfo struct {
	Height       uint16 `json:"height"`
	PixelDensity uint16 `json:"density"`
	Width        uint16 `json:"width"`
	InnerWidth   uint16 `json:"innerw"`
	InnerHeight  uint16 `json:"innerh"`
	DeltaX       uint16 `json:"deltax"` // Difference between screenX and clientX
	DeltaY       uint16 `json:"deltay"` // Difference between screenY and clientY
}

ScreenInfo contains information about the screen and the document size

func (ScreenInfo) Length

func (screen ScreenInfo) Length() float64

Length returns the vector length of the screen

type ScrollData

type ScrollData struct {
	MouseData
	DeltaX    float64 `json:"deltaX"`
	DeltaY    float64 `json:"deltaY"`
	DeltaZ    float64 `json:"deltaZ"`
	DeltaMode uint8   `json:"deltaMode"`
}

ScrollData represents a Wheel Event

type TaskData

type TaskData struct {
	Candidate string      `json:"candidate"`
	Term      string      `json:"term"`
	Type      TaskType    `json:"type"`
	Failed    bool        `json:"failed"`
	Solved    bool        `json:"solved"`
	Events    []CellEvent `json:"events"`
	Selected  [][]bool    `json:"selected"`
	Images    []string    `json:"images"` // Data URIs of the used images
}

TaskData represents the Data which is collected per Task

type TaskType

type TaskType uint8

TaskType represents the Type of a ReCaptcha Task

type Time

type Time struct {
	Start uint64 `json:"start"`
	End   uint64 `json:"end"`
}

Time represents Start and End time of the ReCaptcha

type WebGLInfo

type WebGLInfo struct {
	Extensions []string `json:"webglExtensions"`
	GcModel    string   `json:"gcModel"`
	GcVendor   string   `json:"gcVendor"`
}

WebGLInfo represents the Information about the Graphic Card

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL