{
  "Comments" : "Performs difference analysis on the list passed to it in the current test against the list passed to it from the previous test, so best used after a change.\n\nThe list passed to this filter must be of the one-line-per-item type, like those generated by the “Extract List” filter.\n\nIf the value of Type_of_Change_to_Extract is NEW then the filter extracts items on the current list that were not present on the list from the previous test.\n\nIf the value is OLD then the filter extracts items on the list from the previous test that are not present on the current list.\n\nIf the value is SAME then the filter extracts items on the list from the previous test that, even after a change, are still present on the current list.\n\nThe Type_of_Change_to_Extract variable is not case sensitive (e.g. “Old”, “OLD”, or “old” will work) but, if a value other than those specified is given, the filter defaults to extracting items on the list that are new.\n\nIf there are duplicates among the extracted items, those duplicates are removed.",
  "forChanged" : true,
  "forFailure" : false,
  "PauseUntilDate" : "0001-01-01T00:00:00Z",
  "IntroRelease" : "4026b",
  "Name" : "Extract Changes to List",
  "PluginSettings" : {
    "ScriptSource" : "shopt -s nocasematch;\n                \n                type=\"-13\"; case \"{Type_of_Change_to_Extract}\" in \"OLD\") type=$\"-23\";; \"SAME\") type=$\"-12\";; esac;\n                \n                out=$(comm $type <(echo -n \"{FilterPrior1PreviousText}\" | sort) <(echo -n \"{FilterOutputText}\" | sort));\n                \n                [[ -n $(printf $out) ]] && uniq <(printf \"$out\") || exit 98\n                \n            ",
    "ScriptInstructions" : "NEW extracts items on the current list that were not there previously.  OLD extracts items on the list from the previous test that are now absent.  SAME extracts items on the list from the previous test that are still present now. ",
    "ScriptType" : "Bourne-Again Shell: \/bin\/bash",
    "ScriptVariables" : {
      "Type_of_Change_to_Extract" : "NEW"
    },
    "ScriptSourceBase64" : "c2hvcHQgLXMgbm9jYXNlbWF0Y2g7Cgp0eXBlPSItMTMiOyBjYXNlICJ7VHlwZSBv\nZiBDaGFuZ2UgdG8gRXh0cmFjdH0iIGluICJPTEQiKSB0eXBlPSQiLTIzIjs7ICJT\nQU1FIikgdHlwZT0kIi0xMiI7OyBlc2FjOwoKb3V0PSQoY29tbSAkdHlwZSA8KGVj\naG8gLW4gJ3tGaWx0ZXJQcmlvcjFQcmV2aW91c1RleHR9JyB8IHNvcnQpIDwoZWNo\nbyAtbiAne0ZpbHRlck91dHB1dFRleHR9JyB8IHNvcnQpKTsKCltbICRvdXQgPSAq\nW15bOnNwYWNlOl1dKiBdXSAmJiB1bmlxIDwocHJpbnRmICIkb3V0IikgfHwgZXhp\ndCA5OAoK",
    "ScriptResults" : {
      "0" : "(Success; automatically detect change state)",
      "99" : "(Success; input text changed from previous check)",
      "98" : "(Success; input text unchanged from previous check)"
    }
  },
  "Identifier" : "Script Extract Changes to List",
  "IsGroup" : false,
  "LastSaveName" : "Extract Changes to List",
  "GroupIdentifier" : "",
  "AutoPauseSettings" : [

  ],
  "PluginIdentifier" : "Script",
  "useTestControls" : true,
  "NextAutoResumeDate" : "4001-01-01T00:00:00Z",
  "Mode" : 0,
  "timeoutInterval" : {
    "usingRange" : 0,
    "secondAmount" : 3,
    "representedClassName" : "DejalInterval",
    "firstAmount" : 3,
    "units" : 1,
    "version" : 1
  },
  "LastSaveDate" : "2019-11-07T03:35:21Z",
  "lookForChanges" : true,
  "NextAutoPauseDate" : "4001-01-01T00:00:00Z",
  "forUnchanged" : true,
  "DeviceIdentifier" : "E9413342-9FF0-4B01-BE45-639894573DDE"
}