public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = (Resting != null ? Resting.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ LeftSqueezing.GetHashCode();
         hashCode = (hashCode * 397) ^ RightSqueezing.GetHashCode();
         hashCode = (hashCode * 397) ^ BothSqueezing.GetHashCode();
         // FIXME: this is a bad hashcode, qualifications list is ignored due to list hashcode
         return(hashCode);
     }
 }
 protected bool Equals(PuppetToDualAnalogAnimatedBehavior other)
 {
     return(Equals(Resting, other.Resting) && LeftSqueezing.Equals(other.LeftSqueezing) && RightSqueezing.Equals(other.RightSqueezing) && BothSqueezing.Equals(other.BothSqueezing) && QualificationsOfTree.SequenceEqual(other.QualificationsOfTree));
 }