LookForAbandoned,
DateTimeOriginalThenMinimumDateTime and IsNotUniqueAndNeedsReview
This commit is contained in:
@ -3,6 +3,7 @@ using Phares.Shared;
|
||||
using ShellProgressBar;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Text.RegularExpressions;
|
||||
using View_by_Distance.Distance.Models;
|
||||
using View_by_Distance.Face.Models;
|
||||
using View_by_Distance.FaceParts.Models;
|
||||
@ -14,6 +15,7 @@ using View_by_Distance.Property.Models;
|
||||
using View_by_Distance.Resize.Models;
|
||||
using View_by_Distance.Shared.Models;
|
||||
using View_by_Distance.Shared.Models.Methods;
|
||||
using WindowsShortcutFactory;
|
||||
|
||||
namespace View_by_Distance.Instance;
|
||||
|
||||
@ -267,34 +269,19 @@ public partial class DlibDotNet
|
||||
return result;
|
||||
}
|
||||
|
||||
private bool? GetIsFocusModel(ReadOnlyDictionary<int, List<LocationContainer<MetadataExtractor.Directory>>> idToLocationContainers, MappingFromItem mappingFromItem)
|
||||
private bool? GetIsFocusModel(Shared.Models.Property? property)
|
||||
{
|
||||
bool? result;
|
||||
string? model;
|
||||
List<LocationContainer<MetadataExtractor.Directory>>? locationContainers;
|
||||
IReadOnlyList<MetadataExtractor.Directory> directories;
|
||||
if (string.IsNullOrEmpty(_Configuration.FocusModel))
|
||||
result = null;
|
||||
else if (property is null || string.IsNullOrEmpty(property.Model))
|
||||
result = null;
|
||||
else
|
||||
{
|
||||
if (!idToLocationContainers.TryGetValue(mappingFromItem.Id, out locationContainers) || !locationContainers.Any())
|
||||
result = false;
|
||||
else
|
||||
{
|
||||
directories = locationContainers.First().Directories;
|
||||
model = Metadata.Models.Stateless.Methods.IMetadata.GetModel(directories);
|
||||
if (model is null)
|
||||
directories = MetadataExtractor.ImageMetadataReader.ReadMetadata(mappingFromItem.ResizedFileHolder.FullName);
|
||||
model = Metadata.Models.Stateless.Methods.IMetadata.GetModel(directories);
|
||||
result = model is not null && model.Contains(_Configuration.FocusModel);
|
||||
if (result.Value)
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
result = property.Model.Contains(_Configuration.FocusModel);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void SetMapping(ReadOnlyDictionary<int, List<LocationContainer<MetadataExtractor.Directory>>> idToLocationContainers, MapLogic mapLogic, Item item, bool? isFocusRelativePath, bool? isIgnoreRelativePath, MappingFromItem mappingFromItem, List<MappingFromPhotoPrism>? mappingFromPhotoPrismCollection, List<Shared.Models.Face> faces)
|
||||
private void SetMapping(MapLogic mapLogic, Item item, bool? isFocusRelativePath, bool? isIgnoreRelativePath, MappingFromItem mappingFromItem, List<MappingFromPhotoPrism>? mappingFromPhotoPrismCollection, List<Shared.Models.Face> faces)
|
||||
{
|
||||
Mapping mapping;
|
||||
int faceAreaPermyriad;
|
||||
@ -304,7 +291,7 @@ public partial class DlibDotNet
|
||||
string deterministicHashCodeKey;
|
||||
MappingFromFilter mappingFromFilter;
|
||||
MappingFromLocation? mappingFromLocation;
|
||||
bool? isFocusModel = GetIsFocusModel(idToLocationContainers, mappingFromItem);
|
||||
bool? isFocusModel = GetIsFocusModel(item.Property);
|
||||
foreach (Shared.Models.Face face in faces)
|
||||
{
|
||||
if (item.Property?.Id is null || face.FaceEncoding is null || face.Location is null || face.OutputResolution is null)
|
||||
@ -329,7 +316,7 @@ public partial class DlibDotNet
|
||||
}
|
||||
}
|
||||
|
||||
private Mapping GetMapping(ReadOnlyDictionary<int, List<LocationContainer<MetadataExtractor.Directory>>> idToLocationContainers, MapLogic mapLogic, Item item, bool? isFocusRelativePath, bool? isIgnoreRelativePath, MappingFromItem mappingFromItem)
|
||||
private Mapping GetMapping(MapLogic mapLogic, Item item, bool? isFocusRelativePath, bool? isIgnoreRelativePath, MappingFromItem mappingFromItem)
|
||||
{
|
||||
Mapping result;
|
||||
bool? inSkipCollection;
|
||||
@ -339,7 +326,7 @@ public partial class DlibDotNet
|
||||
string deterministicHashCodeKey;
|
||||
MappingFromFilter mappingFromFilter;
|
||||
MappingFromLocation? mappingFromLocation;
|
||||
bool? isFocusModel = GetIsFocusModel(idToLocationContainers, mappingFromItem);
|
||||
bool? isFocusModel = GetIsFocusModel(item.Property);
|
||||
if (item.Property?.Id is null)
|
||||
{
|
||||
inSkipCollection = null;
|
||||
@ -461,7 +448,7 @@ public partial class DlibDotNet
|
||||
if (_AppSettings.MaxDegreeOfParallelism < 2)
|
||||
ticks = LogDelta(ticks, nameof(D_Face.GetFaces));
|
||||
List<(Shared.Models.Face, FileInfo?, string, bool Saved)> faceCollection = _Faces.SaveFaces(_FaceParts.FileNameExtension, dResultsFullGroupDirectory, subFileTuples, parseExceptions, mappingFromItem, facesDirectory, faces);
|
||||
SetMapping(idToLocationContainers, mapLogic, item, isFocusRelativePath, isIgnoreRelativePath, mappingFromItem, mappingFromPhotoPrismCollection, faces);
|
||||
SetMapping(mapLogic, item, isFocusRelativePath, isIgnoreRelativePath, mappingFromItem, mappingFromPhotoPrismCollection, faces);
|
||||
if (_Configuration.CopyFacesAndSaveFaceLandmarkForOutputResolutions.Contains(outputResolution))
|
||||
_FaceParts.CopyFacesAndSaveFaceLandmarkImage(facePartsCollectionDirectory, mappingFromItem, faceCollection);
|
||||
if (_AppSettings.MaxDegreeOfParallelism < 2)
|
||||
@ -663,8 +650,8 @@ public partial class DlibDotNet
|
||||
if (!filteredItems.Any())
|
||||
continue;
|
||||
sourceDirectoryChanges.Clear();
|
||||
anyNullOrNoIsUniqueFileName = filteredItems.Any(l => !l.IsUniqueFileName);
|
||||
totalSeconds = (int)Math.Floor(new TimeSpan(DateTime.Now.Ticks - ticks).TotalSeconds);
|
||||
anyNullOrNoIsUniqueFileName = filteredItems.Any(l => l.IsUniqueFileName is null || !l.IsUniqueFileName.Value);
|
||||
message = $"{i + 1:000} [{filteredItems.Length:000} collectionB] / {containersLength:000} - {total} / {t} total collectionB - {totalSeconds} total second(s) - {outputResolution} - {container.SourceDirectory}";
|
||||
if (_Configuration.LoadOrCreateThenSaveImageFacesResultsForOutputResolutions.Contains(outputResolution))
|
||||
_Faces.SetAngleBracketCollection(dResultsFullGroupDirectory, container.SourceDirectory);
|
||||
@ -929,7 +916,7 @@ public partial class DlibDotNet
|
||||
}
|
||||
}
|
||||
|
||||
private Mapping[] GetMappings(Property.Models.Configuration propertyConfiguration, Container[] containers, MapLogic mapLogic, ReadOnlyDictionary<int, List<LocationContainer<MetadataExtractor.Directory>>> idToLocationContainers, bool distinctItems)
|
||||
private Mapping[] GetMappings(Property.Models.Configuration propertyConfiguration, Container[] containers, MapLogic mapLogic, bool distinctItems)
|
||||
{
|
||||
Mapping[] results;
|
||||
int count = 0;
|
||||
@ -976,7 +963,7 @@ public partial class DlibDotNet
|
||||
}
|
||||
if (!anyValidFaces)
|
||||
{
|
||||
mapping = GetMapping(idToLocationContainers, mapLogic, item, isFocusRelativePath, isIgnoreRelativePath, mappingFromItem);
|
||||
mapping = GetMapping(mapLogic, item, isFocusRelativePath, isIgnoreRelativePath, mappingFromItem);
|
||||
mappingCollection.Add(mapping);
|
||||
}
|
||||
}
|
||||
@ -985,6 +972,95 @@ public partial class DlibDotNet
|
||||
return results;
|
||||
}
|
||||
|
||||
private static void Verify(string eDistanceContentDirectory, List<Item> distinctFilteredItems)
|
||||
{
|
||||
#if VerifyItem
|
||||
bool found;
|
||||
List<Item> notFound = new();
|
||||
foreach (Item item in distinctFilteredItems)
|
||||
{
|
||||
found = false;
|
||||
if (item.Property?.Id is null)
|
||||
continue;
|
||||
foreach (Mapping mapping in distinctFilteredMappingCollection)
|
||||
{
|
||||
if (mapping.MappingFromItem.Id != item.Property.Id.Value)
|
||||
continue;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
if (!found)
|
||||
notFound.Add(item);
|
||||
}
|
||||
if (notFound.Any())
|
||||
throw new NotSupportedException();
|
||||
#endif
|
||||
string model;
|
||||
string fileName;
|
||||
string directory;
|
||||
bool? isWrongYear;
|
||||
List<DateTime> dateTimes;
|
||||
List<string> distinct = new();
|
||||
WindowsShortcut windowsShortcut;
|
||||
List<(string, string, string)> collection = new();
|
||||
foreach (Item item in distinctFilteredItems)
|
||||
{
|
||||
if (item.Property?.Id is null || item.ImageFileHolder.LastWriteTime is null)
|
||||
continue;
|
||||
if (item.IsNotUniqueAndNeedsReview is null || !item.IsNotUniqueAndNeedsReview.Value)
|
||||
continue;
|
||||
directory = Path.Combine($"{eDistanceContentDirectory[..^1]}{nameof(item.IsNotUniqueAndNeedsReview)})", item.ImageFileHolder.NameWithoutExtension);
|
||||
fileName = Path.Combine(directory, $"{item.ImageFileHolder.Length} {item.ImageFileHolder.LastWriteTime.Value.Ticks}.lnk");
|
||||
collection.Add((item.ImageFileHolder.FullName, directory, fileName));
|
||||
if (distinct.Contains(directory))
|
||||
continue;
|
||||
distinct.Add(directory);
|
||||
}
|
||||
foreach (Item item in distinctFilteredItems)
|
||||
{
|
||||
if (item.Property?.Id is null || item.Property.DateTimeOriginal is null)
|
||||
continue;
|
||||
dateTimes = item.Property.GetDateTimes();
|
||||
(isWrongYear, _) = Shared.Models.Stateless.Methods.IProperty.IsWrongYear(item.ImageFileHolder, item.Property.DateTimeOriginal, dateTimes);
|
||||
if (isWrongYear is null || !isWrongYear.Value)
|
||||
continue;
|
||||
// Remove-Item -LiteralPath "\\?\D:\Tmp\a\EX-Z70 "
|
||||
model = string.IsNullOrEmpty(item.Property.Model) ? "Unknown" : Regex.Replace(item.Property.Model.Trim(), @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_");
|
||||
directory = Path.Combine($"{eDistanceContentDirectory[..^1]}{nameof(Item)})", item.Property.DateTimeOriginal.Value.Year.ToString(), model);
|
||||
fileName = item.IsNotUniqueAndNeedsReview is not null && item.IsNotUniqueAndNeedsReview.Value ? Path.Combine(directory, $"{item.ImageFileHolder.Name} {item.ImageFileHolder.Length}.lnk") : Path.Combine(directory, $"{item.ImageFileHolder.Name}.lnk");
|
||||
collection.Add((item.ImageFileHolder.FullName, directory, fileName));
|
||||
if (distinct.Contains(directory))
|
||||
continue;
|
||||
distinct.Add(directory);
|
||||
}
|
||||
#if Mapping
|
||||
foreach (Mapping mapping in distinctFilteredMappingCollection)
|
||||
{
|
||||
if (mapping.MappingFromItem.IsWrongYear is null || !mapping.MappingFromItem.IsWrongYear.Value)
|
||||
continue;
|
||||
directory = Path.Combine($"{eDistanceContentDirectory[..^1]}{nameof(Mapping)})", mapping.MappingFromItem.MinimumDateTime.Year.ToString());
|
||||
fileName = Path.Combine(directory, $"{mapping.MappingFromItem.ResizedFileHolder.Name}.lnk");
|
||||
collection.Add((mapping.MappingFromItem.ResizedFileHolder.FullName, directory, fileName));
|
||||
if (distinct.Contains(directory))
|
||||
continue;
|
||||
distinct.Add(directory);
|
||||
}
|
||||
#endif
|
||||
foreach (string distinctDirectory in distinct)
|
||||
{
|
||||
if (!Directory.Exists(distinctDirectory))
|
||||
_ = Directory.CreateDirectory(distinctDirectory);
|
||||
}
|
||||
foreach ((string path, string checkDirectory, string checkFile) in collection)
|
||||
{
|
||||
if (File.Exists(checkFile))
|
||||
continue;
|
||||
windowsShortcut = new() { Path = path };
|
||||
windowsShortcut.Save(checkFile);
|
||||
windowsShortcut.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
private void Search(long ticks, string argZero, string propertyRoot)
|
||||
{
|
||||
int t;
|
||||
@ -1048,13 +1124,15 @@ public partial class DlibDotNet
|
||||
ReadOnlyDictionary<int, List<LocationContainer<MetadataExtractor.Directory>>> idToLocationContainers = mapLogic.GetIdToLocationContainers();
|
||||
fileNameToCollection = !Directory.Exists(fPhotoPrismSingletonDirectory) ? fileNameToCollection = new() : F_PhotoPrism.GetFileNameToCollection(fPhotoPrismSingletonDirectory);
|
||||
FullDoWork(argZero, propertyRoot, ticks, aResultsFullGroupDirectory, bResultsFullGroupDirectory, t, containers, propertyLogic, metadata, eDistanceContentDirectory, fileNameToCollection, idToLocationContainers, mapLogic);
|
||||
LookForAbandoned(bResultsFullGroupDirectory, containers, idToLocationContainers);
|
||||
if (_Configuration.LookForAbandoned)
|
||||
LookForAbandoned(bResultsFullGroupDirectory, containers, idToLocationContainers);
|
||||
_Distance.Clear();
|
||||
if (!personKeyToIds.Any())
|
||||
personKeyToIds = mapLogic.GetPersonKeyToIds();
|
||||
Mapping[] distinctFilteredMappingCollection = GetMappings(_Configuration.PropertyConfiguration, containers, mapLogic, idToLocationContainers, distinctItems: true);
|
||||
List<Item> distinctFilteredItems = Shared.Models.Stateless.Methods.IContainer.GetItems(_Configuration.PropertyConfiguration, containers, distinctItems: true, filterItems: true);
|
||||
Verify(eDistanceContentDirectory, distinctFilteredItems);
|
||||
List<Shared.Models.Face> distinctFilteredFaces = Map.Models.Stateless.Methods.IMapLogic.GetFaces(distinctFilteredItems);
|
||||
Mapping[] distinctFilteredMappingCollection = GetMappings(_Configuration.PropertyConfiguration, containers, mapLogic, distinctItems: true);
|
||||
int totalNotMapped = mapLogic.UpdateMappingFromPerson(distinctFilteredMappingCollection);
|
||||
string json = System.Text.Json.JsonSerializer.Serialize(distinctFilteredMappingCollection);
|
||||
File.WriteAllText(Path.Combine(eDistanceContentDirectory, $"{ticks}.json"), json);
|
||||
|
@ -36,6 +36,7 @@ public class Configuration
|
||||
[Display(Name = "Load Or Create Then Save Image Faces Results"), Required] public string[] LoadOrCreateThenSaveImageFacesResultsForOutputResolutions { get; set; }
|
||||
[Display(Name = "Location Digits"), Required] public int? LocationDigits { get; set; }
|
||||
[Display(Name = "Location Factor"), Required] public int? LocationFactor { get; set; }
|
||||
[Display(Name = "Look for Abandoned"), Required] public bool? LookForAbandoned { get; set; }
|
||||
[Display(Name = "Mapping Default Name"), Required] public string MappingDefaultName { get; set; }
|
||||
[Display(Name = "Mapping Use Deterministic Hash Code Unknown Face Key Value Pairs for Add to Mapping"), Required] public bool? MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping { get; set; }
|
||||
[Display(Name = "Mapping Use Deterministic Hash Code Unknown Face Key Value Pairs for Save Mapping"), Required] public bool? MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping { get; set; }
|
||||
@ -146,6 +147,8 @@ public class Configuration
|
||||
throw new NullReferenceException(nameof(configuration.LocationDigits));
|
||||
if (configuration.LocationFactor is null)
|
||||
throw new NullReferenceException(nameof(configuration.LocationFactor));
|
||||
if (configuration.LookForAbandoned is null)
|
||||
throw new NullReferenceException(nameof(configuration.LookForAbandoned));
|
||||
if (configuration.MappingDefaultName is null)
|
||||
throw new NullReferenceException(nameof(configuration.MappingDefaultName));
|
||||
if (configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping is null)
|
||||
@ -256,6 +259,7 @@ public class Configuration
|
||||
configuration.LoadOrCreateThenSaveImageFacesResultsForOutputResolutions,
|
||||
configuration.LocationDigits.Value,
|
||||
configuration.LocationFactor.Value,
|
||||
configuration.LookForAbandoned.Value,
|
||||
configuration.MappingDefaultName,
|
||||
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping.Value,
|
||||
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping.Value,
|
||||
|
@ -35,6 +35,7 @@ public class Configuration
|
||||
public string[] LoadOrCreateThenSaveImageFacesResultsForOutputResolutions { init; get; }
|
||||
public int LocationDigits { init; get; }
|
||||
public int LocationFactor { init; get; }
|
||||
public bool LookForAbandoned { init; get; }
|
||||
public string MappingDefaultName { init; get; }
|
||||
public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping { init; get; }
|
||||
public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping { init; get; }
|
||||
@ -111,6 +112,7 @@ public class Configuration
|
||||
string[] loadOrCreateThenSaveImageFacesResultsForOutputResolutions,
|
||||
int locationDigits,
|
||||
int locationFactor,
|
||||
bool lookForAbandoned,
|
||||
string mappingDefaultName,
|
||||
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping,
|
||||
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping,
|
||||
@ -186,6 +188,7 @@ public class Configuration
|
||||
LoadOrCreateThenSaveImageFacesResultsForOutputResolutions = loadOrCreateThenSaveImageFacesResultsForOutputResolutions;
|
||||
LocationDigits = locationDigits;
|
||||
LocationFactor = locationFactor;
|
||||
LookForAbandoned = lookForAbandoned;
|
||||
MappingDefaultName = mappingDefaultName;
|
||||
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping;
|
||||
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping;
|
||||
|
@ -20,6 +20,7 @@
|
||||
"xFocusDirectory": "/Hawaii 2022",
|
||||
"FocusModel": "",
|
||||
"xFocusModel": "NIKON D3400",
|
||||
"LookForAbandoned": false,
|
||||
"xGenealogicalDataCommunicationFile": "",
|
||||
"GenealogicalDataCommunicationFile": "D:/5) Other Small/RootsMagic/Code-638160743318283885/638160743318283885-Export.ged.cln",
|
||||
"PersonCharactersCopyCount": 0,
|
||||
@ -110,230 +111,6 @@
|
||||
"Scanned Prints",
|
||||
"Slide in Name Order Originals (622)",
|
||||
"Slides Pictures"
|
||||
],
|
||||
"VerifyToSeason": [
|
||||
". 2000",
|
||||
". 2001",
|
||||
". 2002",
|
||||
". 2003",
|
||||
". 2004",
|
||||
". 2005",
|
||||
". 2006",
|
||||
". 2007",
|
||||
". 2008",
|
||||
". 2009",
|
||||
". 2010",
|
||||
". 2011",
|
||||
". 2012",
|
||||
". 2013",
|
||||
". 2014",
|
||||
". 2015",
|
||||
". 2016",
|
||||
". 2017",
|
||||
". 2018",
|
||||
". 2019",
|
||||
". 2020",
|
||||
". 2021",
|
||||
". 2022",
|
||||
". 2023",
|
||||
". 2024",
|
||||
". 2025",
|
||||
". 2026",
|
||||
". 2027",
|
||||
". 2028",
|
||||
". 2029",
|
||||
"2000.0 Winter",
|
||||
"2002.1 Spring",
|
||||
"2002.4 Winter",
|
||||
"2003.0 Winter",
|
||||
"2003.1 Spring",
|
||||
"2003.3 Fall",
|
||||
"2003.4 Winter",
|
||||
"2004.0 Winter",
|
||||
"2005.1 Spring",
|
||||
"2005.2 Summer",
|
||||
"2005.3 Fall",
|
||||
"2005.4 Winter",
|
||||
"2006.0 Winter",
|
||||
"2006.1 Spring",
|
||||
"2006.3 Fall",
|
||||
"2007.0 Winter",
|
||||
"2007.2 Summer Logan Michael",
|
||||
"2007.2 Summer",
|
||||
"2007.3 Fall Logan Michael",
|
||||
"2007.4 Winter Logan Michael",
|
||||
"2008.0 Winter Logan Michael",
|
||||
"2008.1 Spring Logan Michael",
|
||||
"2008.2 Summer Logan Michael",
|
||||
"2008.2 Summer",
|
||||
"2008.3 Fall Logan Michael",
|
||||
"2009.0 Winter Logan Michael",
|
||||
"2009.0 Winter",
|
||||
"2009.1 Spring Logan Michael",
|
||||
"2009.1 Spring",
|
||||
"2009.2 Summer Logan Michael",
|
||||
"2009.2 Summer",
|
||||
"2009.3 Fall Logan Michael",
|
||||
"2009.3 Fall",
|
||||
"2009.4 Winter Logan Michael",
|
||||
"2009.4 Winter",
|
||||
"2010.0 Winter Logan Michael",
|
||||
"2010.0 Winter",
|
||||
"2010.1 Spring Logan Michael",
|
||||
"2010.1 Spring",
|
||||
"2010.2 Summer",
|
||||
"2010.3 Fall Logan Michael",
|
||||
"2010.3 Fall",
|
||||
"2010.4 Winter",
|
||||
"2011.0 Winter",
|
||||
"2011.1 Spring",
|
||||
"2011.2 Summer",
|
||||
"2011.3 Fall",
|
||||
"2011.4 Winter",
|
||||
"2012.0 Winter Chelsea 2012",
|
||||
"2012.0 Winter Chelsea",
|
||||
"2012.0 Winter",
|
||||
"2012.1 Spring Chelsea",
|
||||
"2012.1 Spring",
|
||||
"2012.2 Summer Chelsea",
|
||||
"2012.2 Summer",
|
||||
"2012.3 Fall Chelsea",
|
||||
"2012.3 Fall",
|
||||
"2012.4 Winter Chelsea",
|
||||
"2012.4 Winter",
|
||||
"2013.0 Winter Chelsea 2013",
|
||||
"2013.0 Winter Chelsea",
|
||||
"2013.0 Winter",
|
||||
"2013.1 Spring",
|
||||
"2013.2 Summer Chelsea",
|
||||
"2013.2 Summer",
|
||||
"2013.3 Fall Chelsea",
|
||||
"2013.3 Fall",
|
||||
"2013.4 Winter",
|
||||
"2014.0 Winter",
|
||||
"2014.1 Spring",
|
||||
"2014.2 Summer",
|
||||
"2014.3 Fall",
|
||||
"2014.4 Winter",
|
||||
"2015.0 Winter",
|
||||
"2015.1 Spring",
|
||||
"2015.2 Summer",
|
||||
"2015.3 Fall",
|
||||
"2015.4 Winter",
|
||||
"2016.0 Winter",
|
||||
"2016.1 Spring",
|
||||
"2016.2 Summer",
|
||||
"2016.3 Fall",
|
||||
"2016.4 Winter",
|
||||
"2017.1 Spring",
|
||||
"2017.2 Summer",
|
||||
"2017.3 Fall",
|
||||
"2017.4 Winter",
|
||||
"2018.0 Winter",
|
||||
"2018.1 Spring",
|
||||
"2018.3 Fall",
|
||||
"2018.4 Winter",
|
||||
"2019.0 Winter",
|
||||
"2019.1 Spring",
|
||||
"2019.2 Summer",
|
||||
"2019.3 Fall",
|
||||
"2019.4 Winter",
|
||||
"2020.0 Winter",
|
||||
"2020.1 Spring",
|
||||
"2020.2 Summer",
|
||||
"2020.3 Fall",
|
||||
"2020.4 Winter",
|
||||
"2021.1 Spring",
|
||||
"2021.2 Summer",
|
||||
"2021.3 Fall",
|
||||
"2021.4 Winter",
|
||||
"2022.0 Winter",
|
||||
"2022.1 Spring",
|
||||
"Anthem 2015",
|
||||
"April 2010",
|
||||
"April 2013",
|
||||
"December 2006",
|
||||
"December 2010",
|
||||
"Fall 2005",
|
||||
"Fall 2015",
|
||||
"Fall 2016",
|
||||
"Fall 2017",
|
||||
"Fall 2018",
|
||||
"Fall 2019",
|
||||
"Fall 2020",
|
||||
"Fall 2021",
|
||||
"February 2010",
|
||||
"January 2015",
|
||||
"July 2010",
|
||||
"June 2010",
|
||||
"Kids 2005",
|
||||
"March 2013",
|
||||
"May 2010",
|
||||
"May 2011",
|
||||
"May 2013",
|
||||
"October 2005",
|
||||
"October 2014",
|
||||
"Spring 2013",
|
||||
"Spring 2014",
|
||||
"Spring 2016",
|
||||
"Spring 2018",
|
||||
"Spring 2019",
|
||||
"Spring 2020",
|
||||
"Summer 2011",
|
||||
"Summer 2012",
|
||||
"Summer 2013",
|
||||
"Summer 2014",
|
||||
"Summer 2015",
|
||||
"Summer 2016",
|
||||
"Summer 2017",
|
||||
"Summer 2018",
|
||||
"Summer 2020",
|
||||
"Summer 2021",
|
||||
"Winter 2015",
|
||||
"Winter 2016",
|
||||
"Winter 2017",
|
||||
"Winter 2018",
|
||||
"Winter 2019-2020",
|
||||
"Winter 2020",
|
||||
"zzz 2005.0 Winter Tracy Pictures",
|
||||
"zzz 2005.1 Spring Tracy Pictures",
|
||||
"zzz 2005.2 Summer Tracy Pictures",
|
||||
"zzz 2005.3 Fall Tracy Pictures",
|
||||
"zzz 2005.4 Winter Tracy Pictures",
|
||||
"zzz 2006.1 Spring Tracy Pictures",
|
||||
"zzz 2007.0 Winter Tracy Pictures",
|
||||
"zzz 2007.2 Summer Tracy Pictures",
|
||||
"zzz 2008.0 Winter Tracy Pictures",
|
||||
"zzz 2008.2 Summer Tracy Pictures",
|
||||
"zzz 2009.0 Winter Tracy Pictures",
|
||||
"zzz 2009.2 Summer Tracy Pictures",
|
||||
"zzz 2009.3 Fall Tracy Pictures",
|
||||
"zzz 2009.4 Winter Tracy Pictures",
|
||||
"zzz 2010.0 Winter Tracy Pictures",
|
||||
"zzz 2010.1 Spring Tracy Pictures",
|
||||
"zzz 2010.2 Summer Tracy Pictures",
|
||||
"zzz 2010.3 Fall Tracy Pictures",
|
||||
"zzz 2011.0 Winter Tracy Pictures",
|
||||
"zzz 2011.1 Spring Tracy Pictures",
|
||||
"zzz 2011.2 Summer Tracy Pictures",
|
||||
"zzz 2011.3 Fall Tracy Pictures",
|
||||
"zzz 2011.4 Winter Tracy Pictures",
|
||||
"zzz 2012.0 Winter Tracy Pictures",
|
||||
"zzz 2012.1 Spring Tracy Pictures",
|
||||
"zzz 2012.2 Summer Tracy Pictures",
|
||||
"zzz 2012.3 Fall Tracy Pictures",
|
||||
"zzz 2012.4 Winter Tracy Pictures",
|
||||
"zzz 2013.0 Winter Tracy Pictures",
|
||||
"zzz 2013.1 Spring Tracy Pictures",
|
||||
"zzz 2013.2 Summer Tracy Pictures",
|
||||
"zzz 2013.3 Fall Tracy Pictures",
|
||||
"zzz 2013.4 Winter Tracy Pictures",
|
||||
"zzz 2014.0 Winter Tracy Pictures",
|
||||
"zzz 2014.1 Spring Tracy Pictures",
|
||||
"zzz 2014.2 Summer Tracy Pictures",
|
||||
"zzz 2014.3 Fall Tracy Pictures",
|
||||
"zzz 2014.4 Winter Tracy Pictures",
|
||||
"zzz 2015.0 Winter Tracy Pictures"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -73,6 +73,7 @@
|
||||
"GenealogicalDataCommunicationFile": "",
|
||||
"LocationDigits": 9,
|
||||
"LocationFactor": 10000,
|
||||
"LookForAbandoned": true,
|
||||
"MappingDefaultName": "John Doe~25",
|
||||
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping": false,
|
||||
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping": false,
|
||||
|
Reference in New Issue
Block a user