anchor.diff:  
     /// The [setPreviousContent] method...
     bool setPreviousContent (PreviousContentMapping aPreviousContent) {
  -    if (aPreviousContent.section != section) {
  +    if (aPreviousContent?.section != section) {
         return false;
       }
   
  -    if (hasCrossListing) {
  -      ;
  -    }
  -
  -    _previousContent = aPreviousContent;
  -    hasPreviousContent = true;
  -
  -    return true;
  +    if (_requestedSections.canUsePreviousContent (this, aPreviousContent)) {
  +      _previousContent = aPreviousContent;
  +      hasPreviousContent = true;
  +
  +      return true;
  +    }
  +
  +    return false;
     }
   
     /// The [setCrossListing] method...
     bool setCrossListing (CrossListing aCrossListing) {
  -    if (aCrossListing.sections.contains (section)) {
  -      ;
  -    }
  -
  -    if (hasPreviousContent) {
  -      ;
  -    }
  -
  -    _crossListing = aCrossListing;
  -    hasCrossListing = true;
  -
  -    return true;
  -  }
  -}
  -
  -/////////////////////////////////////////////////////////////////////
  +    if (!aCrossListing.sections.contains (section)) {
  +      return false;
  +    }
  +
  +    if (_requestedSections.canUseCrossListing (this, aCrossListing)) {
  +      _crossListing = aCrossListing;
  +      hasCrossListing = true;
  +
  +      return true;
  +    }
  +
  +    return false;
  +  }
  +}
  +
  +////////////////////////////////////////////////////////////////////////////////
  +
  +/// The [_RequestedSectionRegistry] class...
  +class _RequestedSectionRegistry extends JsProxy {
  +  static _RequestedSectionRegistry _instance;
  +
  +  @reflectable
  +  List<RequestedSection> get requestedSections => _requestedSections;
  +
  +  List<RequestedSection> _requestedSections;
  +
  +  /// The [_RequestedSectionRegistry] constructor...
  +  factory _RequestedSectionRegistry() {
  +    return _instance ??= new _RequestedSectionRegistry._internal();
  +  }
  +
  +  _RequestedSectionRegistry._internal() {
  +    _requestedSections = new List<RequestedSection>();
  +  }
  +
  +  /// The [addRequestedSection] method...
  +  void addRequestedSection (RequestedSection requestedSection) {
  +    if (null != requestedSection) {
  +      requestedSections.add (requestedSection);
  +    }
  +  }
  +
  +  /// The [removeRequestedSection] method...
  +  bool removeRequestedSection (RequestedSection requestedSection) {
  +    return requestedSections.remove (requestedSection);
  +  }
  +
  +  /// The [canUsePreviousContent] method...
  +  bool canUsePreviousContent (RequestedSection forSection, PreviousContentMapping previousContent) {
  +    if (!forSection.hasCrossListing) {
  +      return true;
  +    }
  +
  +    if (requestedSections.contains (forSection)) {
  +      List<RequestedSection> requestedList = requestedSections.where (
  +        (requestedSection) => requestedSection.crossListing == forSection.crossListing
  +      );
  +
  +      if (requestedList.any ((requested) => requested.hasPreviousContent)) {
  +        if (requestedList.every ((pcRequested) => pcRequested.previousContent == previousContent)) {
  +          return true;
  +        }
  +      } else {
  +        return true;
  +      }
  +    }
  +
  +    return false;
  +  }
  +
  +  /// The [canUseCrossListing] method...
  +  bool canUseCrossListing (RequestedSection forSection, CrossListing crossListing) {
  +    if (!forSection.hasPreviousContent) {
  +      return true;
  +    }
  +
  +    if (requestedSections.contains (forSection)) {
  +      List<RequestedSection> requestedList = requestedSections.where (
  +        (requestedSection) => requestedSection.crossListing == crossListing
  +      );
  +
  +      var pcRequested = requestedList.first.previousContent;
  +
  +      if (requestedList.every ((requested) => requested.previousContent == pcRequested)) {
  +        return true;
  +      }
  +    }
  +
  +    return false;
  +  }
  +}
  +
  +////////////////////////////////////////////////////////////////////////////////
   
   /// The [UserInformation] class...
   class UserInformation extends JsProxy {
  
positive.code: 
      hasCrossListing = false;
      hasPreviousContent = false;
    }
  
    /// The [setSection] method...
    void setSection (BannerSection aSection) {
      _section = aSection;
  
      _crossListing = null;
      _previousContent = null;
  
negative.code:   PreviousContentMapping get previousContent => _previousContent;
  
    PreviousContentMapping _previousContent;
  
    _RequestedSectionRegistry _requestedSections;
  
    /// The [RequestedSection] constructor...
    RequestedSection (BannerSection aSection) {
  