public function validate($validator)
    {
        // Baily Early (if tags are used):
        
        if ($this->usesTags()) {
            return true;
        }
        
        // Call Parent Method (if not multiple):
        
        if (!$this->isMultiple()) {
            return parent::validate($validator);
        }
        
        // Obtain User Values:
        
        $values = $this->getValueArray();
        
        // Detect Invalid Values:
        
        $invalid = array_filter(
            $values,
            function ($userValue) {
                foreach ($this->getValidValues() as $formValue) {
                    if ($this->isSelectedValue($formValue, $userValue)) {
                        return false;
                    }
                }
                return true;
            }
        );
        
        // Answer Success (if none invalid):
        
        if (empty($invalid)) {
            return true;
        }
        
        // Define Validation Error:
        
        $validator->validationError(
            $this->getName(),
            _t(
                __CLASS__ . '.INVALIDOPTIONS',
                'Please select values within the list provided. Invalid option(s) {values} given.',
                [
                    'values' => implode(', ', $invalid)
                ]
            ),
            'validation'
        );
        
        // Answer Failure (invalid values detected):
        
        return false;
    }