code: func (b Backend) ProcessEvents(events ...*auditinternal.Event) bool {
  	for _, event := range events {
  		if event == nil {
  			continue
  		}
  		attr, err := ev.NewAttributes(event)
  		if err != nil {
  			audit.HandlePluginError(PluginName, err, event)
  			continue
  		}
  		level, stages := b.policyChecker.LevelAndStages(attr)
  		if level == auditinternal.LevelNone {
  			continue
  		}
  		// make shallow copy before modifying to satisfy interface definition
  		ev := *event
  		e, err := policy.EnforcePolicy(&ev, level, stages)
  		if err != nil {
  			audit.HandlePluginError(PluginName, err, event)
  			continue
  		}
  		if e == nil {
  			continue
  		}
  		b.delegateBackend.ProcessEvents(e)
  	}
  	// Returning true regardless of results, since dynamic audit backends
  	// can never cause apiserver request to fail.
  	return true
  }
docs: // ProcessEvents enforces policy on a shallow copy of the given event
  // dropping any sections that don't conform