anchor.diff:   if assigned(Key) and (Key.CountInstructions>0) then begin
     result:=HashData(@Key.Instructions[0],Key.CountInstructions*sizeof(PFLREInstruction));
     result:=result xor ((longword(Key.CountInstructions) shr 16) or (longword(Key.CountInstructions) shl 16));
  -  result:=result xor HashData(@Key.IndirectInstructions[0],Key.CountIndirectInstructions*sizeof(longint));
  -  result:=result xor ((longword(Key.CountIndirectInstructions) shr 16) or (longword(Key.CountIndirectInstructions) shl 16));
  +  result:=result xor HashData(@Key.WorkQueueItems[0],Key.CountWorkQueueItems*sizeof(longint));
  +  result:=result xor ((longword(Key.CountWorkQueueItems) shr 16) or (longword(Key.CountWorkQueueItems) shl 16));
     result:=result xor ((Key.Flags shl 19) or (Key.Flags shr 13));
     if result=0 then begin
      result:=$ffffffff;
  
positive.code:        StatePoolSize:TFLREPtrUInt;
         StatePoolSizePowerOfTwo:TFLREPtrUInt;
         WorkQueues:TFLREDFAWorkQueues;
         QueueInstructionArray:TFLREIndirectInstructions;
         QueueStack:TFLREIndirectInstructions;
  
         constructor Create(const AThreadLocalStorageInstance:TFLREThreadLocalStorageInstance;const AReversed:boolean);
         destructor Destroy; override;
  
negative.code:  result:=GetState;
   result^.Instructions:=TakeOverFrom^.Instructions;
   result^.CountInstructions:=TakeOverFrom^.CountInstructions;
   result^.WorkQueueItems:=TakeOverFrom^.WorkQueueItems;
   result^.CountWorkQueueItems:=TakeOverFrom^.CountWorkQueueItems;
   result^.Flags:=TakeOverFrom^.Flags;
   TakeOverFrom^.Instructions:=nil;
   TakeOverFrom^.CountInstructions:=0;
   TakeOverFrom^.WorkQueueItems:=nil;
   TakeOverFrom^.CountWorkQueueItems:=0;
   TakeOverFrom^.Flags:=0;
  end;
  
  