diff options
| author | Roy Ben-Shabat <Roy.mail.net@gmail.com> | 2023-05-10 14:47:51 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy.mail.net@gmail.com> | 2023-05-10 14:47:51 +0300 |
| commit | 5c378ccb814defda8e73dae4296b82117869cec4 (patch) | |
| tree | af424439df7ca9320751808f1385f16b37851114 /Software/Visual_Studio | |
| parent | 067fffda79f588672990d1e7b0e08766b5f0a172 (diff) | |
| parent | 0bb3af54358fd768c21e2c835b7fd82d1868f71d (diff) | |
| download | Tango-5c378ccb814defda8e73dae4296b82117869cec4.tar.gz Tango-5c378ccb814defda8e73dae4296b82117869cec4.zip | |
Merge branch 'eureka' of https://twinetfs.visualstudio.com/Tango/_git/Tango into eureka
Diffstat (limited to 'Software/Visual_Studio')
57 files changed, 2416 insertions, 998 deletions
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/FSESettings.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/FSESettings.cs index 3c5b4c24a..ef87747f8 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/FSESettings.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/FSESettings.cs @@ -189,6 +189,11 @@ namespace Tango.FSE.Common public StatisticsStreamingConfiguration StatisticsStreamingConfig { get; set; } /// <summary> + /// Gets or sets the last type of the connected machine. + /// </summary> + public int LastConnectedMachineType { get; set; } + + /// <summary> /// Initializes a new instance of the <see cref="FSESettings"/> class. /// </summary> public FSESettings() diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/BugReporting/DefaultBugReporter.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/BugReporting/DefaultBugReporter.cs index 2f4d75b37..e902bfded 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/BugReporting/DefaultBugReporter.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/BugReporting/DefaultBugReporter.cs @@ -162,6 +162,7 @@ namespace Tango.FSE.UI.BugReporting item.State = State.New; item.Type = WorkItemType.Bug; item.Environment = AuthenticationProvider.CurrentEnvironment.Description; + item.MachineType = (MachineType)Settings.LastConnectedMachineType; bool hasPPCLogs = false; bool hasFirmwareLogs = false; diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Connection/DefaultMachineProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Connection/DefaultMachineProvider.cs index 745211705..e45e95a62 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Connection/DefaultMachineProvider.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Connection/DefaultMachineProvider.cs @@ -557,6 +557,8 @@ namespace Tango.FSE.UI.Connection protected virtual void OnMachineConnected(IExternalBridgeClient machineOperator) { + Settings.LastConnectedMachineType = (int)machineOperator.MachineType; + MachineConnected?.Invoke(this, new MachineConnectedEventArgs() { MachineOperator = machineOperator, diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml index eb6f50bbe..8730355cc 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml @@ -106,8 +106,8 @@ <ComboBox ItemsSource="{Binding Conditions}" SelectedItem="{Binding ActiveRML.MediaCondition,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox>--> - <TextBlock Text="Linear Density:" Margin="0 40 0 0" ></TextBlock> - <mahapps:NumericUpDown Margin="0 40 0 0" Minimum="0" Maximum="9999" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.FiberSize,Mode=TwoWay}" FontSize="16"></mahapps:NumericUpDown> + <TextBlock Text="Linear Density:" ></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="9999" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.FiberSize,Mode=TwoWay}" FontSize="16"></mahapps:NumericUpDown> <TextBlock Text="Linear Density Unit:" ></TextBlock> <ComboBox ItemsSource="{Binding LinearMassDensityUnits}" SelectedItem="{Binding ActiveRML.LinearMassDensityUnit,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox> @@ -121,15 +121,10 @@ </ComboBox.ItemTemplate> </ComboBox> - <TextBlock Text="Filament count per plies:" ></TextBlock> - <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.PliesPerFiber,Mode=TwoWay}"></mahapps:NumericUpDown> - <TextBlock Text="Count (den):" ></TextBlock> <TextBlock Text="{Binding ActiveRML.DencityCount}" Foreground="Blue" ></TextBlock> - <TextBlock Text="Fiber count:" ></TextBlock> - <TextBlock Text="{Binding ActiveRML.FiberCount}" Foreground="Blue" ></TextBlock> - + <!--<TextBlock Text="Fiber Shape:" ></TextBlock> <ComboBox ItemsSource="{Binding FiberShapes}" SelectedItem="{Binding ActiveRML.FiberShape,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox>--> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs index 25dfc2dc8..6ae71d50d 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs @@ -9,6 +9,7 @@ using Tango.BL; using Tango.Integration.Operation; using Tango.Logging; using Tango.MachineStudio.Common.Web; +using Tango.PMR.Common; using Tango.PMR.Printing; using Tango.Settings; using Tango.Transport.Adapters; @@ -178,6 +179,8 @@ namespace Tango.MachineStudio.Common /// </summary> public MachineStudioTheme Theme { get; set; } + public int LastConnectedMachineType { get; set; } + /// <summary> /// Initializes a new instance of the <see cref="MachineStudio"/> class. /// </summary> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs index feed9e193..2efe4c719 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs @@ -395,10 +395,14 @@ namespace Tango.MachineStudio.UI.StudioApplication throw new NullReferenceException($"The specified machine '{connectedMachine.SerialNumber}' could not be found on the database."); } + //Adjust Dryer Buffer Length Mode + ProcessParametersTable.DryerBufferMode = Machine.Type; + connectedMachine.SetMachine(Machine); ConnectedMachine = connectedMachine; var settings = SettingsManager.Default.GetOrCreate<MachineStudioSettings>(); ConnectedMachine.JobUploadStrategy = settings.JobUploadStrategy; + settings.LastConnectedMachineType = Machine.MachineType; } else { diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/TFS/TeamFoundationServiceExtendedClient.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/TFS/TeamFoundationServiceExtendedClient.cs index b716ed1fb..7a0a9414c 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/TFS/TeamFoundationServiceExtendedClient.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/TFS/TeamFoundationServiceExtendedClient.cs @@ -152,6 +152,8 @@ namespace Tango.MachineStudio.UI.TFS throw LogManager.Default.Log(new AuthenticationException($"User '{user_email}' is not part of the Tango VSTS team. Please contact your administrator.")); } + var settings = SettingsManager.Default.GetOrCreate<MachineStudioSettings>(); + item.CreatedBy = currentUser; item.ChangedBy = currentUser; item.AuthorizedAs = currentUser; @@ -161,7 +163,8 @@ namespace Tango.MachineStudio.UI.TFS item.Severity = Severity.Medium; item.State = State.New; item.Type = WorkItemType.Bug; - item.Environment = SettingsManager.Default.GetOrCreate<MachineStudioSettings>().DeploymentSlot.ToDescription(); + item.Environment = settings.DeploymentSlot.ToDescription(); + item.MachineType = (MachineType)settings.LastConnectedMachineType; foreach (var window in Application.Current.Windows.OfType<Window>().Where(x => !String.IsNullOrWhiteSpace(x.Title))) { diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml index aac712f59..3eeb5f901 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml @@ -12,7 +12,7 @@ xmlns:tfs="clr-namespace:Tango.TFS;assembly=Tango.TFS" xmlns:tfss="clr-namespace:Tango.MachineStudio.UI.TFS" xmlns:local="clr-namespace:Tango.MachineStudio.UI.Views" - mc:Ignorable="d" Width="530" Height="660" Background="{StaticResource Dialog.Background}" d:DataContext="{d:DesignInstance Type=vm:ReportIssueViewVM, IsDesignTimeCreatable=False}" Foreground="{StaticResource MainWindow.Foreground}"> + mc:Ignorable="d" Width="530" Height="700" Background="{StaticResource Dialog.Background}" d:DataContext="{d:DesignInstance Type=vm:ReportIssueViewVM, IsDesignTimeCreatable=False}" Foreground="{StaticResource MainWindow.Foreground}"> <UserControl.Resources> <converters:EnumToItemsSourceConverter x:Key="EnumToItemsSourceConverter" /> @@ -44,6 +44,11 @@ </DockPanel> <DockPanel Margin="0 10 0 0"> + <materialDesign:PackIcon Kind="Settings" Width="24" Height="24" VerticalAlignment="Center" Margin="0 0 10 0" /> + <ComboBox materialDesign:HintAssist.Hint="Machine Type" materialDesign:HintAssist.IsFloating="True" ItemsSource="{Binding Source={x:Type tfs:MachineType},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding WorkItem.MachineType}" SelectedValuePath="Value" DisplayMemberPath="DisplayName"></ComboBox> + </DockPanel> + + <DockPanel Margin="0 10 0 0"> <materialDesign:PackIcon Kind="Account" Width="24" Height="24" VerticalAlignment="Center" Margin="0 0 10 0" /> <autoComplete:AutoCompleteTextBox Provider="{StaticResource TeamMembersProvider}" SelectedItem="{Binding WorkItem.AssignedTo,Mode=TwoWay}" DisplayMember="DisplayName" materialDesign:HintAssist.Hint="Assigned To" materialDesign:HintAssist.IsFloating="True"></autoComplete:AutoCompleteTextBox> </DockPanel> @@ -83,7 +88,7 @@ <materialDesign:PackIcon Kind="Tag" Width="24" Height="24" VerticalAlignment="Center" Margin="0 0 10 0" /> <TextBlock VerticalAlignment="Center"><Run>Tags</Run> <Run FontSize="10" Foreground="Gray">(highlight selected tags)</Run></TextBlock> </DockPanel> - <ScrollViewer Margin="30 0 0 0" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" Height="120"> + <ScrollViewer Margin="30 0 0 0" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" Height="100"> <ItemsControl ItemsSource="{Binding SelectedTags}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.BugReporting/TFS/TeamFoundationServicePPCClient.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.BugReporting/TFS/TeamFoundationServicePPCClient.cs index b84d11c37..c21d56f2a 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.BugReporting/TFS/TeamFoundationServicePPCClient.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.BugReporting/TFS/TeamFoundationServicePPCClient.cs @@ -15,6 +15,7 @@ using Tango.Core.ExtensionMethods; using Tango.Core.Helpers; using Tango.Settings; using Tango.PPC.Common; +using Tango.PPC.Common.Build; namespace Tango.PPC.BugReporting.TFS { @@ -22,6 +23,7 @@ namespace Tango.PPC.BugReporting.TFS { private IPPCApplicationManager _applicationManager; private IMachineProvider _machineProvider; + private IBuildProvider _buildProvider; public Project Project { get; private set; } @@ -33,6 +35,7 @@ namespace Tango.PPC.BugReporting.TFS { _applicationManager = TangoIOC.Default.GetInstance<IPPCApplicationManager>(); _machineProvider = TangoIOC.Default.GetInstance<IMachineProvider>(); + _buildProvider = TangoIOC.Default.GetInstance<IBuildProvider>(); _applicationManager.ApplicationReady += ApplicationManager_ApplicationReady; } @@ -82,7 +85,7 @@ namespace Tango.PPC.BugReporting.TFS { item.Title = title; - item.Area = Project.GetAreaByName("PPC"); + item.Area = _buildProvider.IsEureka ? Project.GetAreaByName("Twine X4") : Project.GetAreaByName("PPC"); item.Iteration = Project.Iterations.FirstOrDefault(); item.CreatedBy = createdBy; @@ -99,6 +102,8 @@ namespace Tango.PPC.BugReporting.TFS item.Type = WorkItemType.Bug; item.Environment = SettingsManager.Default.GetOrCreate<PPCSettings>().DeploymentSlot.ToDescription(); + item.MachineType = _buildProvider.IsEureka ? MachineType.TwineX4 : MachineType.TS1800; + FileLogger appFileLogger = LogManager.Default.RegisteredLoggers.FirstOrDefault(x => x.GetType() == typeof(FileLogger)) as FileLogger; FileLogger embeddedFileLogger = MachineOperator.EmbeddedLogManager.RegisteredLoggers.FirstOrDefault(x => x.GetType() == typeof(FileLogger)) as FileLogger; diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/LengthToWeightConverter.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/LengthToWeightConverter.cs index e523ad73e..e36dd3c63 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/LengthToWeightConverter.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/LengthToWeightConverter.cs @@ -17,8 +17,8 @@ namespace Tango.PPC.Jobs.Converters { double length = System.Convert.ToDouble(values[0]); double coef = System.Convert.ToDouble(values[1]); - int spools = System.Convert.ToInt32(values[2]); - var weight = ((double)length * spools * coef) / (1000);//(g) + //int spools = System.Convert.ToInt32(values[2]); + var weight = ((double)length * coef) / (1000);//(g) return weight; } catch (Exception ex) diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/JobModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/JobModel.cs index 24589566c..00dcf6f8b 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/JobModel.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/JobModel.cs @@ -381,14 +381,22 @@ namespace Tango.PPC.Jobs.Models { if (_copies != value) { - _copies = value; - RaisePropertyChangedAuto(); if (NumberSpools>=4) { - NumberOfUnits = _copies / NumberSpools; + if(value < NumberSpools) + _copies = NumberSpools; + else + { + int coeff = (int)(value + NumberSpools - 1) / NumberSpools; + _copies = coeff * NumberSpools; + } + NumberOfUnits = (int)value / NumberSpools; RaisePropertyChanged(nameof(LengthIncludingNumberOfUnits)); RaisePropertyChanged(nameof(LengthIncludingNumberOfUnitsAndSpools)); } + else + _copies = value; + RaisePropertyChangedAuto(); } } } @@ -1101,11 +1109,11 @@ namespace Tango.PPC.Jobs.Models Copies = coeff * NumberSpools; } } - + #endregion #region collapsed mode actions - + public void InsertWhiteGapToSelectedSegments() { if (false == Segments.ToList().Any(x => x.IsSelected)) diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs index a02005776..14a09fe57 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs @@ -271,7 +271,17 @@ namespace Tango.PPC.Jobs.ViewModels } } } - + + private bool _showAdvanced; + + public bool ShowAdvanced + { + get { return _showAdvanced; } + set { _showAdvanced = value; + RaisePropertyChangedAuto();} + } + + #endregion #region Commands @@ -530,6 +540,7 @@ namespace Tango.PPC.Jobs.ViewModels IsFullMode = true; DyeCommand.RaiseCanExecuteChanged(); + ShowAdvanced = Settings.ShowAdvancedOptions; } catch (Exception ex) { diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobEurekaView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobEurekaView.xaml index 5782d77a2..369544e9f 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobEurekaView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobEurekaView.xaml @@ -959,7 +959,7 @@ </Grid.RowDefinitions> <Grid Grid.Row="0"> <DockPanel x:Name="ColorPropertiesPanel" VerticalAlignment="Top" > - <StackPanel x:Name="AdvansedOptions" DockPanel.Dock="Right" Orientation="Horizontal" VerticalAlignment="Top" Margin="0 5 18 0" Height="55" HorizontalAlignment="Right" Width="Auto"> + <StackPanel x:Name="AdvansedOptions" DockPanel.Dock="Right" Orientation="Horizontal" VerticalAlignment="Top" Margin="0 5 18 0" Height="55" HorizontalAlignment="Right" Width="Auto" Visibility="{Binding ShowAdvanced, Converter={StaticResource BooleanToVisibilityConverter}}"> <TextBlock FontSize="20" VerticalAlignment="Center" >Advanced Options</TextBlock> <touch:TouchToggleSlider Style="{StaticResource TangoToggleButtonGreenAccent}" Height="28" CornerRadius="14" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="10 0 0 0" Width="54" IsChecked="{Binding IsBasicMode, Converter={StaticResource BooleanInverseConverter}, Mode=TwoWay}"></touch:TouchToggleSlider> </StackPanel> @@ -1204,8 +1204,7 @@ <MultiBinding Converter="{StaticResource LengthToWeightConverter}" StringFormat="0.##" > <Binding Path="JobModel.Length" Mode="OneWay"/> <Binding Path="JobModel.GramPerLength" Mode="OneWay"/> - <Binding Path="JobModel.NumberSpools" Mode="OneWay"/> - </MultiBinding> + </MultiBinding> </Run.Text> </Run> <Run Text="g" FontWeight="DemiBold"></Run> @@ -1222,8 +1221,7 @@ <MultiBinding Converter="{StaticResource LengthToWeightConverter}" StringFormat="0.##" > <Binding Path="JobModel.LengthIncludingNumberOfUnitsAndSpools" Mode="OneWay"/> <Binding Path="JobModel.GramPerLength" Mode="OneWay"/> - <Binding Path="JobModel.NumberSpools" Mode="OneWay"/> - </MultiBinding> + </MultiBinding> </Run.Text> </Run> <Run Text="g" FontWeight="DemiBold"></Run> @@ -1267,8 +1265,7 @@ <MultiBinding Converter="{StaticResource LengthToWeightConverter}" StringFormat="0.##" > <Binding Path="JobModel.Length" Mode="OneWay"/> <Binding Path="JobModel.GramPerLength" Mode="OneWay"/> - <Binding Path="JobModel.NumberSpools" Mode="OneWay"/> - </MultiBinding> + </MultiBinding> </Run.Text> </Run> <Run Text="g" FontWeight="DemiBold"></Run> @@ -1289,8 +1286,7 @@ <MultiBinding Converter="{StaticResource LengthToWeightConverter}" StringFormat="0.##" > <Binding Path="JobModel.LengthIncludingNumberOfUnitsAndSpools" Mode="OneWay"/> <Binding Path="JobModel.GramPerLength" Mode="OneWay"/> - <Binding Path="JobModel.NumberSpools" Mode="OneWay"/> - </MultiBinding> + </MultiBinding> </Run.Text> </Run> <Run Text="g" FontWeight="DemiBold"></Run> @@ -1318,7 +1314,6 @@ <MultiBinding Converter="{StaticResource LengthToWeightConverter}" StringFormat="0.##" > <Binding Path="JobModel.LengthIncludingNumberOfUnits" Mode="OneWay"/> <Binding Path="JobModel.GramPerLength" Mode="OneWay"/> - <Binding Path="JobModel.NumberSpools" Mode="OneWay"/> </MultiBinding> </Run.Text> </Run> @@ -1350,13 +1345,13 @@ </Style> </touch:TouchIconButton.Style> </touch:TouchIconButton>--> - <touch:TouchTextBox Margin="20 0 40 0" MaxWidth="410" Text="{Binding JobModel.Name,FallbackValue='Job Name'}" ToolTip="{Binding JobModel.Name}" VerticalAlignment="Center" FontSize="{StaticResource TangoHeaderFontSize}" FontWeight="SemiBold"></touch:TouchTextBox> - <touch:TouchButton Margin="0 0 0 0" VerticalAlignment="Center" Width="50" Height="50" HorizontalAlignment="Left" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding EditJobDetailsCommand}" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" + <touch:TouchTextBox Margin="20 6 240 0" Text="{Binding JobModel.Name,FallbackValue='Job Name'}" ToolTip="{Binding JobModel.Name}" VerticalAlignment="Center" FontSize="{StaticResource TangoHeaderFontSize}" FontWeight="SemiBold"></touch:TouchTextBox> + <!--<touch:TouchButton Margin="0 0 0 0" VerticalAlignment="Center" Width="50" Height="50" HorizontalAlignment="Left" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding EditJobDetailsCommand}" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" components:TransformationHelper.TransformWhenPressed ="False"> <Border Height="24" Width="24" Margin="0 0 0 0" BorderThickness="0" Background="Transparent" HorizontalAlignment="Center"> <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/job_details.png"/> </Border> - </touch:TouchButton> + </touch:TouchButton>--> </DockPanel> <Canvas ClipToBounds="False" HorizontalAlignment="Right" Width="200"> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml index 2a7d968aa..6475869dd 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml @@ -460,6 +460,11 @@ <touch:TouchNumericTextBox Minimum="0" Maximum="10" KeyboardContainer="{Binding ElementName=Container}" Value="{Binding Settings.FineTuningMinLimitdL}" Margin="0 0 100 0" DockPanel.Dock="Right" HorizontalAlignment="Right" Width="90" HasDecimalPoint="True"></touch:TouchNumericTextBox> </DockPanel> + <DockPanel Margin="0 20 0 0" TextElement.FontSize="{StaticResource TangoDefaultFontSize}"> + <TextBlock VerticalAlignment="Center">Show advanced options (Multi-segments & Gradients) in the Job Editor</TextBlock> + <touch:TouchToggleSlider IsChecked="{Binding Settings.ShowAdvancedOptions}" Margin="0 0 100 0" DockPanel.Dock="Right" Style="{StaticResource TangoToggleButtonGrayAccent}" HorizontalAlignment="Right" Width="90"></touch:TouchToggleSlider> + </DockPanel> + <DockPanel Margin="0 20 0 0"> <touch:TouchIcon VerticalAlignment="Top" Icon="InformationOutline" Foreground="{StaticResource TangoGrayTextBrush}"></touch:TouchIcon> <TextBlock Margin="10 0 0 0" VerticalAlignment="Top" TextWrapping="Wrap" FontSize="{StaticResource TangoSmallFontSize}" Foreground="{StaticResource TangoGrayTextBrush}"> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs index a5fb92959..93fde75a5 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs @@ -124,6 +124,10 @@ namespace Tango.PPC.Common.Connection MachineOperator.EnableJobLiquidQuantityValidation = settings.EnableJobLiquidQuantityValidation; (MachineOperator.JobRunsLogger as BasicJobRunsLogger).CreateJobRunsFiles = true; + +#if Eureka + ProcessParametersTable.DryerBufferMode = BL.Enumerations.MachineTypes.Eureka; +#endif } private void MachineOperator_StatusChanged(object sender, MachineStatuses status) diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityConverter.cs index e697c1c6a..a9b3ff8bc 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityConverter.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityConverter.cs @@ -15,7 +15,7 @@ namespace Tango.PPC.Common.Converters { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { - return (BuildType)value == (BuildType)parameter ? Visibility.Visible : Visibility.Collapsed; + return (BuildType)value == (BuildType)Enum.Parse(typeof(BuildType), parameter.ToStringSafe()) ? Visibility.Visible : Visibility.Collapsed; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityInverseConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityInverseConverter.cs index a603a6d52..744d0d975 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityInverseConverter.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityInverseConverter.cs @@ -15,7 +15,7 @@ namespace Tango.PPC.Common.Converters { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { - return (BuildType)value == (BuildType)parameter ? Visibility.Collapsed : Visibility.Visible; + return (BuildType)value == (BuildType)Enum.Parse(typeof(BuildType), parameter.ToStringSafe()) ? Visibility.Collapsed : Visibility.Visible; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs index 8a5c04588..41e103ca0 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs @@ -355,6 +355,11 @@ namespace Tango.PPC.Common public double FineTuningMinLimitdL { get; set; } /// <summary> + /// Gets or sets a value indicating whether [show advanced options]. + /// </summary> + public bool ShowAdvancedOptions { get; set; } + + /// <summary> /// Gets or sets a value indicating whether to force full screen mode on TwineX4. /// </summary> public bool ForceTouchMode { get; set; } @@ -433,6 +438,7 @@ namespace Tango.PPC.Common ScreenSaverStartDuration = 5; EnableScreenSaver = true; EnableRemoteJobUpload = true; + ShowAdvancedOptions = false; } } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml index 5f8cabcca..da4e63b51 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml @@ -72,8 +72,8 @@ <localConverter:EventTypeDescriptionConverter x:Key="EventTypeDescriptionConverter" /> <localConverter:EventTypeTitleConverter x:Key="EventTypeTitleConverter" /> <localConverter:IsEurekaToBooleanConverter x:Key="IsEurekaToBooleanConverter" /> - <localConverter:BuildTypeToVisibilityConverter x:Key="IsEurekaToVisibilityConverter" /> - <localConverter:BuildTypeToVisibilityInverseConverter x:Key="IsEurekaToVisibilityInverseConverter" /> + <localConverter:BuildTypeToVisibilityConverter x:Key="BuildTypeToVisibilityConverter" /> + <localConverter:BuildTypeToVisibilityInverseConverter x:Key="BuildTypeToVisibilityInverseConverter" /> <Style TargetType="FrameworkElement"> <Setter Property="TextElement.FontFamily" Value="{StaticResource TangoFlexoFontFamily}"></Setter> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml index 559266d28..39c032145 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml @@ -11,60 +11,20 @@ <UserControl.Resources> </UserControl.Resources> - <Grid> - <Grid> - <Grid.ColumnDefinitions> - <ColumnDefinition Width="1*"/> - <ColumnDefinition Width="Auto"/> - </Grid.ColumnDefinitions> - <Grid> - <Grid.RowDefinitions> - <RowDefinition Height="Auto" /> - <RowDefinition Height="1*" /> - </Grid.RowDefinitions> - - <ItemsControl ClipToBounds="False" ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka},Path=RunningJobStatus.CurrentUnitSegments}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DisplayMarkers,Converter={StaticResource BooleanToVisibilityConverter}}"> - <ItemsControl.ItemsPanel> - <ItemsPanelTemplate> - <StackPanel Orientation="Horizontal" ClipToBounds="False"></StackPanel> - </ItemsPanelTemplate> - </ItemsControl.ItemsPanel> - <ItemsControl.ItemTemplate> - <DataTemplate> - <Grid> - <Grid.Width> - <MultiBinding Converter="{StaticResource SegmentLengthToWidthConverter}"> - <Binding RelativeSource="{RelativeSource AncestorType=UserControl}" Path="RunningJobStatus.CurrentUnitTotalProgress"></Binding> - <Binding RelativeSource="{RelativeSource AncestorType=ItemsControl}" Path="ActualWidth"></Binding> - <Binding Path="LengthWithFactor"></Binding> - </MultiBinding> - </Grid.Width> + <touch:SliderContentControl x:Name="slider_control" ThumbColor="{StaticResource TangoPrimaryAccentColor}" + Height="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka}, Path=HeightSlider}" + ThumbHeight="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka}, Path=ThumbHeight}" + Width="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka}, Path=Width}" + + Minimum="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka}, Path=MinimumValue}" + Maximum="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka}, Path=MaximumValue}" + MouseDown="SliderContentControl_MouseDown" TouchDown="SliderContentControl_TouchDown"> - <TextBlock HorizontalAlignment="Center" FontSize="{StaticResource TangoSmallFontSize}"> - <TextBlock.Style> - <Style TargetType="TextBlock"> - <Setter Property="Visibility" Value="Visible"></Setter> - <Style.Triggers> - <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=Grid},Path=ActualWidth,Converter={StaticResource SmallerThanToBooleanConverter},ConverterParameter=20}" Value="True"> - <Setter Property="Visibility" Value="Collapsed"></Setter> - </DataTrigger> - </Style.Triggers> - </Style> - </TextBlock.Style> - <Run Text="{Binding LengthWithFactor,Mode=OneWay,StringFormat=N0}"></Run><Run Text="m"></Run> - </TextBlock> - </Grid> - </DataTemplate> - </ItemsControl.ItemTemplate> - </ItemsControl> - <Border Grid.Row="1" x:Name="brush_border" ClipToBounds="False" CornerRadius="10" Margin="0 5 0 0" Background="{StaticResource TangoLightForegroundBrush}"> - <!--<Border.Background> - <ImageBrush ImageSource="../Images/JobView/transparent_small.jpg" Stretch="None" TileMode="Tile" AlignmentX="Left" ViewportUnits="Absolute" Viewport="0,0,94,30" /> - </Border.Background>--> - <Border.Clip> - <RectangleGeometry RadiusX="10" RadiusY="10"> + <Border x:Name="brush_border" ClipToBounds="False" CornerRadius="7" Margin="0 0 0 0" Background="{StaticResource TangoLightForegroundBrush}"> + <Border.Clip> + <RectangleGeometry RadiusX="7" RadiusY="7"> <RectangleGeometry.Rect> <MultiBinding Converter="{StaticResource WidthHeightToRectConverter}"> <Binding ElementName="brush_border" Path="ActualWidth" /> @@ -73,54 +33,32 @@ </RectangleGeometry.Rect> </RectangleGeometry> </Border.Clip> - <Grid> - <ItemsControl ClipToBounds="False" ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka},Path=RunningJobStatus.CurrentUnitSegments}"> - <ItemsControl.ItemsPanel> - <ItemsPanelTemplate> - <StackPanel Orientation="Horizontal" ClipToBounds="False"></StackPanel> - </ItemsPanelTemplate> - </ItemsControl.ItemsPanel> - <ItemsControl.ItemTemplate> - <DataTemplate> - <Grid> - <Grid.Width> - <MultiBinding Converter="{StaticResource SegmentLengthToWidthConverter}"> - <Binding RelativeSource="{RelativeSource AncestorType=UserControl}" Path="RunningJobStatus.CurrentUnitTotalProgress"></Binding> - <Binding RelativeSource="{RelativeSource AncestorType=ItemsControl}" Path="ActualWidth"></Binding> - <Binding Path="LengthWithFactor"></Binding> - </MultiBinding> - </Grid.Width> - <Rectangle Fill="{Binding SegmentBrush}"></Rectangle> - </Grid> - </DataTemplate> - </ItemsControl.ItemTemplate> - </ItemsControl> - - <Rectangle Stroke="{StaticResource TangoGrayBrush}" StrokeThickness="1" StrokeDashArray="5 5 5 5" RadiusX="8" RadiusY="8" /> - </Grid> - </Border> - </Grid> - - <!--<Grid Grid.Column="1" VerticalAlignment="Bottom"> - <Grid.Style> - <Style TargetType="Grid"> - <Setter Property="Visibility" Value="Collapsed"></Setter> - <Style.Triggers> - <MultiDataTrigger> - <MultiDataTrigger.Conditions> - <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka},Path=Job.JobType}" Value="{x:Static enumerations:JobTypes.Embroidery}" /> - <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka},Path=IsActive}" Value="False" /> - </MultiDataTrigger.Conditions> - <Setter Property="Visibility" Value="Visible"></Setter> - </MultiDataTrigger> - </Style.Triggers> - </Style> - </Grid.Style> + <Grid> + <ItemsControl ClipToBounds="False" ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka},Path=RunningJobStatus.CurrentUnitSegments, Delay=100}"> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <StackPanel Orientation="Horizontal" ClipToBounds="False"></StackPanel> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + <ItemsControl.ItemTemplate> + <DataTemplate> + <Grid> + <Grid.Width> + <MultiBinding Converter="{StaticResource SegmentLengthToWidthConverter}"> + <Binding RelativeSource="{RelativeSource AncestorType=UserControl}" Path="RunningJobStatus.CurrentUnitTotalProgress"></Binding> + <Binding RelativeSource="{RelativeSource AncestorType=ItemsControl}" Path="ActualWidth"></Binding> + <Binding Path="LengthWithFactor"></Binding> + </MultiBinding> + </Grid.Width> + <Rectangle Fill="{Binding SegmentBrush}"></Rectangle> + </Grid> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> - <TextBlock Margin="10 0 0 -2" VerticalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}"> - <Run Text="x"></Run><Run Text="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka},Path=Job.NumberOfUnits}"></Run> - </TextBlock> - </Grid>--> - </Grid> + <Rectangle Stroke="{StaticResource TangoGrayBrush}" StrokeThickness="1" StrokeDashArray="5 5 5 5" RadiusX="7" RadiusY="7" /> + </Grid> + </Border> + </touch:SliderContentControl> </Grid> </UserControl> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml.cs index db6a8c178..29efaad72 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml.cs @@ -66,6 +66,62 @@ namespace Tango.PPC.UI.Controls public static readonly DependencyProperty RunningJobStatusProperty = DependencyProperty.Register("RunningJobStatus", typeof(RunningJobStatus), typeof(RunningJobViewerEureka), new PropertyMetadata(null)); + public double MinimumValue + { + get { return (double)GetValue(MinimumValueProperty); } + set { SetValue(MinimumValueProperty, value); } + } + /// <summary> + /// The minimum value property + /// </summary> + public static readonly DependencyProperty MinimumValueProperty = + DependencyProperty.RegisterAttached("MinimumValue", typeof(double), typeof(RunningJobViewerEureka), + new FrameworkPropertyMetadata(0.0)); + public double MaximumValue + { + get { return (double)GetValue(MaximumValueProperty); } + set + { + SetValue(MaximumValueProperty, value); + } + } + /// <summary> + /// The maximum value property + /// </summary> + public static readonly DependencyProperty MaximumValueProperty = + DependencyProperty.RegisterAttached("MaximumValue", typeof(double), typeof(RunningJobViewerEureka), + new FrameworkPropertyMetadata(100.0, 0)); + + public double SliderValue + { + get { return (double)GetValue(SliderValueProperty); } + set { SetValue(SliderValueProperty, value); } + } + + // Using a DependencyProperty as the backing store for SliderValue. This enables animation, styling, binding, etc... + public static readonly DependencyProperty SliderValueProperty = + DependencyProperty.Register("SliderValue", typeof(double), typeof(RunningJobViewerEureka), new FrameworkPropertyMetadata((double)0.0, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, (d, e) => (d as RunningJobViewerEureka).OnSliderValueChanged())); + + public double HeightSlider + { + get { return (double)GetValue(HeightSliderProperty); } + set { SetValue(HeightSliderProperty, value); } + } + + // Using a DependencyProperty as the backing store for HeightSlider. This enables animation, styling, binding, etc... + public static readonly DependencyProperty HeightSliderProperty = + DependencyProperty.Register("HeightSlider", typeof(double), typeof(RunningJobViewerEureka), new FrameworkPropertyMetadata(0.0)); + + public double ThumbHeight + { + get { return (double)GetValue(ThumbHeightProperty); } + set { SetValue(ThumbHeightProperty, value); } + } + + // Using a DependencyProperty as the backing store for ThumbHeight. This enables animation, styling, binding, etc... + public static readonly DependencyProperty ThumbHeightProperty = + DependencyProperty.Register("ThumbHeight", typeof(double), typeof(RunningJobViewerEureka), new FrameworkPropertyMetadata(0.0)); + /// <summary> /// Initializes a new instance of the <see cref="RunningJobViewerEureka"/> class. /// </summary> @@ -73,5 +129,21 @@ namespace Tango.PPC.UI.Controls { InitializeComponent(); } + + private void SliderContentControl_MouseDown(object sender, MouseButtonEventArgs e) + { + e.Handled = true; + } + + private void SliderContentControl_TouchDown(object sender, TouchEventArgs e) + { + e.Handled = true; + } + + private void OnSliderValueChanged() + { + if(slider_control != null) + slider_control.Value = SliderValue; + } } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Intro.wmv b/Software/Visual_Studio/PPC/Tango.PPC.UI/Intro.wmv Binary files differnew file mode 100644 index 000000000..7f4a8dd66 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Intro.wmv diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/EurekaNavigationManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/EurekaNavigationManager.cs new file mode 100644 index 000000000..63332e889 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/EurekaNavigationManager.cs @@ -0,0 +1,606 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Media; +using Tango.Core; +using Tango.Core.Commands; +using Tango.Core.DI; +using Tango.PPC.Common; +using Tango.PPC.Common.Modules; +using Tango.PPC.Common.Navigation; +using Tango.PPC.Common.Notifications; +using Tango.PPC.Common.Threading; +using Tango.PPC.UI.Views; +using Tango.PPC.UI.ViewsContracts; +using Tango.SharedUI.Controls; + +namespace Tango.PPC.UI.Navigation +{ + /// <summary> + /// Represents the default PPC navigation manager. + /// </summary> + /// <seealso cref="Tango.PPC.Common.Navigation.INavigationManager" /> + public class EurekaNavigationManager : ExtendedObject, INavigationManager + { + //private event Action<Object, Object> NavigationCycleCompleted; + //private event Action<Object, Object> BeforeNavigationCycleCompleted; + private class AwaitingVMResult + { + public PPCViewModel FromVM { get; set; } + public PPCViewModel ToVM { get; set; } + public Action Action { get; set; } + } + + private List<AwaitingVMResult> _awaitingVMResults; + private IDispatcherProvider _dispatcherProvider; + private IPPCModuleLoader _moduleLoader; + private INotificationProvider _notificationProvider; + private String _lastFullPath; + private bool _preventHistory; + private bool _navigating_back; + + public event EventHandler<PPCViewModel> CurrentVMChanged; + + private Stack<String> _navigationHistory; + + private Object _currentVM; + /// <summary> + /// Gets the current view model. + /// </summary> + public PPCViewModel CurrentVM + { + set + { + var previous = _currentVM; + _currentVM = value; + + var vm = _currentVM as PPCViewModel; + + if (_currentVM != previous && vm != null) + { + CurrentVMChanged?.Invoke(this, vm); + } + } + get + { + return _currentVM as PPCViewModel; + } + } + + private IPPCModule _currentModule; + /// <summary> + /// Gets or sets the current module. + /// </summary> + public IPPCModule CurrentModule + { + get { return _currentModule; } + private set { _currentModule = value; RaisePropertyChangedAuto(); } + } + + /// <summary> + /// Navigates to the previous view. + /// </summary> + public RelayCommand NavigateBackCommand { get; private set; } + + /// <summary> + /// Navigates to the specified full path in command parameter. + /// </summary> + public RelayCommand<String> NavigateToCommand { get; private set; } + + /// <summary> + /// Initializes a new instance of the <see cref="DefaultNavigationManager"/> class. + /// </summary> + /// <param name="moduleLoader">The module loader.</param> + public EurekaNavigationManager(IPPCModuleLoader moduleLoader, IDispatcherProvider dispatcherProvider, INotificationProvider notificationProvider) + { + IsBackEnabled = true; + _awaitingVMResults = new List<AwaitingVMResult>(); + _navigationHistory = new Stack<String>(); + _moduleLoader = moduleLoader; + _notificationProvider = notificationProvider; + + NavigateToCommand = new RelayCommand<string>(async (x) => await NavigateTo(x)); + NavigateBackCommand = new RelayCommand(async () => await NavigateBack()); + + _dispatcherProvider = dispatcherProvider; + } + + /// <summary> + /// Navigates to the specified PPC view. + /// </summary> + /// <param name="view">The view.</param> + public Task<bool> NavigateTo(NavigationView view, bool pushToHistory = true) + { + pushToHistory = false; + if (view == NavigationView.HomeModule) + { + _navigationHistory.Clear(); + _lastFullPath = null; + + var firstModule = _moduleLoader.UserModules.FirstOrDefault(); + + if (firstModule != null) + { + var moduleAtt = firstModule.GetType().GetCustomAttribute<PPCModuleAttribute>(); + + if (moduleAtt != null) + { + return NavigateTo(firstModule.GetType(), pushToHistory, moduleAtt.HomeViewName); + } + else + { + return NavigateTo(firstModule.GetType(), pushToHistory); + } + } + else + { + return NavigateTo(NavigationView.NoPermissionsView); + } + } + else + { + + LogManager.Log($"Navigating to: {view.ToString()}..."); + + var fromView = GetMainNavigationControl().SelectedElement; + FrameworkElement toView = null; + + toView = GetMainNavigationControl().NavigateTo(view.ToString(), (Action)(() => + { + CurrentVM = toView.DataContext as PPCViewModel; + NotifyOnNavigated(fromView.DataContext, toView.DataContext); + + })); + + NotifyOnBeforeNavigated(fromView.DataContext, toView.DataContext); + + return Task.FromResult(true); + } + } + + /// <summary> + /// Navigates to the specified PPC view with the specified receive object. + /// </summary> + /// <param name="view">The view.</param> + /// <param name="obj"></param> + /// <param name="pushToHistory"></param> + /// <returns></returns> + public Task<bool> NavigateWithObject<TPass>(NavigationView view, TPass obj, bool pushToHistory = true) + { + LogManager.Log($"Navigating to: {view.ToString()}, with object {typeof(TPass).Name}..."); + GetMainNavigationControl().NavigateTo(view.ToString()); + INavigationObjectReceiver<TPass> receiver = GetMainNavigationControl().Elements.FirstOrDefault(x => (x.GetType().Name == view.ToString() || NavigationControl.GetNavigationName(x) == view.ToString()) && x.DataContext is INavigationObjectReceiver<TPass>).DataContext as INavigationObjectReceiver<TPass>; + + if (receiver != null) + { + receiver.OnNavigatedToWithObject(obj); + } + + return Task.FromResult(true); + } + + /// <summary> + /// Navigates to the specified module. + /// </summary> + /// <typeparam name="T"></typeparam> + public Task<bool> NavigateTo<T>(bool pushToHistory = true) where T : IPPCModule + { + return NavigateTo(typeof(T)); + } + + /// <summary> + /// Navigates to the specified module using the view path (e.g MainView.JobsView). + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="viewPath">The view path.</param> + public Task<bool> NavigateTo<T>(string viewPath, bool pushToHistory = true) where T : IPPCModule + { + return NavigateTo<T>(pushToHistory, viewPath.Split('.')); + } + + /// <summary> + /// Navigates to the specified module using the view path (e.g MainView,JobsView). + /// This method makes it easy to do stuff like NavigateTo(nameof(MainView),nameof(JobsView)); + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="viewPath">The view path.</param> + public Task<bool> NavigateTo<T>(bool pushToHistory = true, params String[] viewPath) where T : IPPCModule + { + return NavigateTo(typeof(T), pushToHistory, viewPath); + } + + /// <summary> + /// Navigates to the specified module and view by full path (e.g Jobs.JobsView). + /// </summary> + /// <param name="fullPath">The full path.</param> + public async Task<bool> NavigateTo(String fullPath, bool pushToHistory = true, Action<PPCViewModel, PPCViewModel> onNavigating = null, Action<PPCViewModel, PPCViewModel> onNavigated = null) + { + if (_lastFullPath != null && !_lastFullPath.Contains("JobsV2Module")) + { + pushToHistory = false; + } + + try + { + IsNavigating = true; + + String[] path = fullPath.Split('.'); + var module = _moduleLoader.UserModules.SingleOrDefault(x => x.GetType().Name == path[0] || x.Name == path[0]); + + if (module == null) + { + await _notificationProvider.ShowError("The specified module was not loaded."); + IsNavigating = false; + return false; + } + + if (path.Length == 1 && path[0] == CurrentModule.Name) + { + IsNavigating = false; + return true; + } + + LogManager.Log($"Navigating to: {fullPath}..."); + + var fromVM = CurrentVM; + + if (CurrentVM != null && CurrentVM is INavigationBlocker) + { + if (_navigating_back) + { + if (!await (CurrentVM as INavigationBlocker).OnNavigateBackRequest()) + { + IsNavigating = false; + return false; + } + } + else + { + if (!await (CurrentVM as INavigationBlocker).OnNavigateOutRequest()) + { + IsNavigating = false; + return false; + } + } + } + + + + if (pushToHistory && _lastFullPath != null && !_preventHistory) + { + _navigationHistory.Push(_lastFullPath); + RaisePropertyChanged(nameof(CanNavigateBack)); + } + + _lastFullPath = fullPath; + + GetMainNavigationControl().NavigateTo(NavigationView.LayoutView.ToString()); + var navigationControl = GetLayoutNavigationControl(); + CurrentModule = module; + var moduleView = navigationControl.NavigateTo(module.Name); + + CurrentVM = moduleView.DataContext as PPCViewModel; + + if (path.Length > 1) + { + var moduleNavigation = moduleView.FindChildOffline<NavigationControl>(); + + if (moduleNavigation != null) + { + moduleNavigation.RegisterForLoadedOrNow(async (x, e) => + { + var lastView = moduleNavigation.GetElement(path.Last()); + + if (lastView != null) + { + onNavigating?.Invoke(fromVM as PPCViewModel, lastView.DataContext as PPCViewModel); + } + + foreach (var view in path.Skip(1)) + { + await Task.Delay(100); + + FrameworkElement v = null; + + v = moduleNavigation.NavigateTo(view, () => + { + if (v != null) + { + NotifyOnNavigated(fromVM, v.DataContext); + onNavigated?.Invoke(fromVM as PPCViewModel, v.DataContext as PPCViewModel); + NotifyAwaitingVMResults(fromVM as PPCViewModel, v.DataContext as PPCViewModel); + } + }); + + NotifyOnBeforeNavigated(fromVM, v.DataContext); + + if (v != null) + { + CurrentVM = v.DataContext as PPCViewModel; + + if (view != path.Last()) + { + moduleNavigation = v.FindChildOffline<NavigationControl>(); + } + } + else + { + throw LogManager.Log(new ArgumentNullException("Could not navigate to " + fullPath)); + } + } + }); + } + else + { + onNavigating?.Invoke(fromVM as PPCViewModel, CurrentVM as PPCViewModel); + + NotifyOnBeforeNavigated(fromVM, CurrentVM); + + await Task.Delay(navigationControl.TransitionDuration.TimeSpan); + + NotifyOnNavigated(fromVM, CurrentVM); + + onNavigated?.Invoke(fromVM as PPCViewModel, CurrentVM as PPCViewModel); + NotifyAwaitingVMResults(fromVM as PPCViewModel, CurrentVM as PPCViewModel); + } + } + else + { + NotifyOnBeforeNavigated(fromVM, CurrentVM); + + onNavigating?.Invoke(fromVM as PPCViewModel, CurrentVM as PPCViewModel); + + await Task.Delay(navigationControl.TransitionDuration.TimeSpan); + + NotifyOnNavigated(fromVM, CurrentVM); + + onNavigated?.Invoke(fromVM as PPCViewModel, CurrentVM as PPCViewModel); + NotifyAwaitingVMResults(fromVM as PPCViewModel, CurrentVM as PPCViewModel); + } + + return true; + } + catch (Exception ex) + { + IsNavigating = false; + LogManager.Log(ex, $"Error navigating to '{fullPath}'."); + await _notificationProvider.ShowError($"Error navigating to '{fullPath}'."); + return false; + } + } + + /// <summary> + /// Navigates for result. + /// </summary> + /// <typeparam name="TModule">The type of the module.</typeparam> + /// <typeparam name="TView">The type of the view.</typeparam> + /// <typeparam name="TResult">The type of the result.</typeparam> + /// <typeparam name="TObject">The type of the object.</typeparam> + /// <param name="obj">The object.</param> + /// <param name="pushToHistory">if set to <c>true</c> [push to history].</param> + /// <returns></returns> + public async Task<TResult> NavigateForResult<TModule, TView, TResult, TObject>(TObject obj, bool pushToHistory = true) + where TModule : IPPCModule + { + TaskCompletionSource<TResult> source = new TaskCompletionSource<TResult>(); + + var fromVM = CurrentVM; + + await NavigateTo(typeof(TModule).Name + "." + typeof(TView).Name, pushToHistory, (from, to) => + { + _awaitingVMResults.Add(new AwaitingVMResult() + { + FromVM = fromVM as PPCViewModel, + ToVM = to as PPCViewModel, + Action = () => + { + if (to is INavigationResultProvider<TResult, TObject>) + { + source.SetResult((to as INavigationResultProvider<TResult, TObject>).GetNavigationResult()); + } + } + }); + + if (to is INavigationResultProvider<TResult, TObject>) + { + (to as INavigationResultProvider<TResult, TObject>).OnNavigationObjectReceived(obj); + } + }); + + return await source.Task; + } + + /// <summary> + /// Navigates to the specified module and view with the specified object. + /// </summary> + /// <typeparam name="TModule">The type of the module.</typeparam> + /// <typeparam name="TView">The type of the view.</typeparam> + /// <typeparam name="TPass">The type of the pass.</typeparam> + /// <param name="obj">The object.</param> + /// <param name="pushToHistory">if set to <c>true</c> [push to history].</param> + /// <returns></returns> + public Task<bool> NavigateWithObject<TModule, TView, TPass>(TPass obj, bool pushToHistory = true) where TModule : IPPCModule + { + return NavigateTo(typeof(TModule).Name + "." + typeof(TView).Name, pushToHistory, (fromVM, toVM) => + { + if (toVM is INavigationObjectReceiver<TPass>) + { + (toVM as INavigationObjectReceiver<TPass>).OnNavigatedToWithObject(obj); + } + }); + } + + private Task<bool> NavigateTo(Type moduleType, bool pushToHistory = true, params String[] viewPath) + { + if (viewPath != null && viewPath.Length > 0) + { + return NavigateTo(moduleType.Name + "." + String.Join(".", viewPath), pushToHistory); + } + else + { + return NavigateTo(moduleType.Name, pushToHistory); + } + } + + /// <summary> + /// Gets a value indicating whether the navigation system is able to navigate to the previous view. + /// </summary> + public bool CanNavigateBack + { + get { return _navigationHistory.Count > 0; } + } + + private bool _isBackEnabled; + /// <summary> + /// Gets a value indicating whether the back should be enabled. + /// </summary> + public bool IsBackEnabled + { + get { return _isBackEnabled; } + set { _isBackEnabled = value; RaisePropertyChangedAuto(); } + } + + private bool _isNavigating; + /// <summary> + /// Gets or sets a value indicating whether the navigation system is currently navigating. + /// </summary> + public bool IsNavigating + { + get { return _isNavigating; } + set + { + _isNavigating = value; + RaisePropertyChangedAuto(); + } + } + + /// <summary> + /// Navigates to the previous view if <see cref="P:Tango.PPC.Common.Navigation.INavigationManager.CanNavigateBack" /> is true. + /// </summary> + public async Task<bool> NavigateBack() + { + LogManager.Log("Navigating back..."); + + _navigating_back = true; + + if (_navigationHistory.Count > 0) + { + String first = _navigationHistory.Pop(); + _preventHistory = true; + + if (await NavigateTo(first)) + { + RaisePropertyChanged(nameof(CanNavigateBack)); + _preventHistory = false; + _navigating_back = false; + return true; + } + else + { + _navigationHistory.Push(first); + _preventHistory = false; + _navigating_back = false; + RaisePropertyChanged(nameof(CanNavigateBack)); + return false; + } + } + else + { + await NavigateTo(NavigationView.HomeModule); + RaisePropertyChanged(nameof(CanNavigateBack)); + _preventHistory = false; + _navigating_back = false; + return true; + } + } + + /// <summary> + /// Clears the navigation back history. + /// </summary> + public void ClearHistory() + { + LogManager.Log("Navigation history cleared."); + _navigationHistory.Clear(); + RaisePropertyChanged(nameof(CanNavigateBack)); + } + + /// <summary> + /// Clears the navigation back history except the specified view type. + /// </summary> + /// <typeparam name="T"></typeparam> + public void ClearHistoryExcept<T>() + { + LogManager.Log($"Navigation history cleared except for {typeof(T).Name}."); + + var history_list = _navigationHistory.ToList(); + history_list = history_list.Where(x => x.Contains(typeof(T).Name)).Distinct().ToList(); + _navigationHistory.Clear(); + + foreach (var item in history_list) + { + _navigationHistory.Push(item); + } + + RaisePropertyChanged(nameof(CanNavigateBack)); + } + + private void NotifyOnBeforeNavigated(object fromVM, object toVM) + { + if (fromVM == toVM) return; + + if (fromVM is PPCViewModel) + { + (fromVM as PPCViewModel)?.OnBeforeNavigatedFrom(); + } + + if (toVM is PPCViewModel) + { + (toVM as PPCViewModel)?.OnBeforeNavigatedTo(); + } + } + + private void NotifyOnNavigated(object fromVM, object toVM) + { + IsNavigating = false; + + if (fromVM == toVM) return; + + if (fromVM is PPCViewModel) + { + (fromVM as PPCViewModel)?.OnNavigatedFrom(); + } + + if (toVM is PPCViewModel) + { + (toVM as PPCViewModel)?.OnNavigatedTo(); + (toVM as PPCViewModel)?.OnNavigatedTo(fromVM as PPCViewModel); + } + } + + private void NotifyAwaitingVMResults(PPCViewModel fromVM, PPCViewModel toVM) + { + var awaiter = _awaitingVMResults.SingleOrDefault(x => x.FromVM == toVM && x.ToVM == fromVM); + if (awaiter != null) + { + _awaitingVMResults.Remove(awaiter); + awaiter.Action(); + } + } + + private NavigationControl GetLayoutNavigationControl() + { + return TangoIOC.Default.GetInstance<ILayoutView>().GetNavigationControl(); + } + + private NavigationControl GetMainNavigationControl() + { + return TangoIOC.Default.GetInstance<IMainView>().GetNavigationControl(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj b/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj index 7772c1f55..40693b98f 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj @@ -130,6 +130,9 @@ <Reference Include="PresentationCore" /> <Reference Include="PresentationFramework" /> <Reference Include="WindowsFormsIntegration" /> + <Reference Include="WPFMediaKit, Version=2.2.0.0, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\..\packages\WPFMediaKit.2.2.0\lib\WPFMediaKit.dll</HintPath> + </Reference> </ItemGroup> <ItemGroup> <ApplicationDefinition Include="App.xaml"> @@ -230,6 +233,7 @@ <Compile Include="Helpers\DpiHelper.cs" /> <Compile Include="InternalModule.cs" /> <Compile Include="Modules\DefaultPPCModuleLoader.cs" /> + <Compile Include="Navigation\EurekaNavigationManager.cs" /> <Compile Include="Navigation\DefaultNavigationManager.cs" /> <Compile Include="Notifications\DefaultNotificationProvider.cs" /> <Compile Include="Notifications\DialogAndView.cs" /> @@ -607,6 +611,7 @@ <Resource Include="Images\Overview Icons\Waste.png" /> <Resource Include="Images\Overview Icons\Feeder4.png" /> <Resource Include="Manifests\eureka_debug.xml" /> + <Content Include="Intro.wmv" /> <Content Include="Manifests\release.xml" /> <Content Include="Manifests\debug.xml" /> <None Include="firmware_package.tfp"> @@ -615,7 +620,9 @@ <None Include="GetVersionTag.bat"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> - <None Include="packages.config" /> + <None Include="packages.config"> + <SubType>Designer</SubType> + </None> <None Include="Properties\Settings.settings"> <Generator>SettingsSingleFileGenerator</Generator> <LastGenOutput>Settings.Designer.cs</LastGenOutput> @@ -852,6 +859,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\System.Data.SQLite.Core.1.0.108.0\build\net46\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\System.Data.SQLite.Core.1.0.108.0\build\net46\System.Data.SQLite.Core.targets'))" /> + <Error Condition="!Exists('..\..\packages\WPFMediaKit.2.2.0\build\WPFMediaKit.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WPFMediaKit.2.2.0\build\WPFMediaKit.targets'))" /> </Target> <PropertyGroup> <PostBuildEvent>RD /S /Q "$(TargetDir)cs\" @@ -929,7 +937,10 @@ if $(ConfigurationName) == Eureka del WebRtc.NET.pdb if $(ConfigurationName) == Debug copy /Y "$(TargetDir)Packages" "$(TargetDir)" -if $(ConfigurationName) == Debug "rc.exe" "$(TargetPath)" --set-version-string "Comments" "Debug Tag"</PostBuildEvent> +if $(ConfigurationName) == Debug "rc.exe" "$(TargetPath)" --set-version-string "Comments" "Debug Tag" + +if $(ConfigurationName) == Eureka_Debug copy /Y "$(ProjectDir)Intro.wmv" "$(TargetDir)" +if $(ConfigurationName) == Eureka copy /Y "$(ProjectDir)Intro.wmv" "$(TargetDir)"</PostBuildEvent> </PropertyGroup> <PropertyGroup> <PreBuildEvent>copy /Y "$(ProjectDir)Manifests\$(ConfigurationName).xml" "$(ProjectDir)app.manifest" @@ -937,7 +948,8 @@ if $(ConfigurationName) == Debug "rc.exe" "$(TargetPath)" --set-version-string " </PropertyGroup> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> + <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> </VisualStudio> </ProjectExtensions> + <Import Project="..\..\packages\WPFMediaKit.2.2.0\build\WPFMediaKit.targets" Condition="Exists('..\..\packages\WPFMediaKit.2.2.0\build\WPFMediaKit.targets')" /> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs index c7dd0b67c..251eeb1ec 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs @@ -128,7 +128,14 @@ namespace Tango.PPC.UI TangoIOC.Default.Register<INotificationProvider, DefaultNotificationProvider>(); TangoIOC.Default.Register<IAuthenticationProvider, DefaultAuthenticationProvider>(); TangoIOC.Default.Register<IPPCModuleLoader, DefaultPPCModuleLoader>(); - TangoIOC.Default.Register<INavigationManager, DefaultNavigationManager>(); + if (buildProvider.IsEureka) + { + TangoIOC.Default.Register<INavigationManager, EurekaNavigationManager>(); + } + else + { + TangoIOC.Default.Register<INavigationManager, DefaultNavigationManager>(); + } TangoIOC.Default.Register<IMachineProvider, DefaultMachineProvider>(); TangoIOC.Default.Register<IEventLogger, DefaultEventLogger>(); TangoIOC.Default.Register<IMachineDataSynchronizer, DefaultMachineDataSynchronizer>(); diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoginViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoginViewVM.cs index ec316989f..07b58e55f 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoginViewVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoginViewVM.cs @@ -13,6 +13,7 @@ using Tango.PPC.Common.Authentication; using Tango.BL.Entities; using Tango.BL.Enumerations; using Tango.Logging; +using Tango.PPC.UI.Views; namespace Tango.PPC.UI.ViewModels { @@ -95,6 +96,14 @@ namespace Tango.PPC.UI.ViewModels if (!AuthenticationProvider.AuthenticationRequired) { LogManager.Log("Application is ready! Navigating to home module..."); + + if (BuildProvider.IsEureka) + { + var secondsPassed = (DateTime.Now - LoadingView.VideoStartTime).TotalSeconds; + var secondsToHold = Math.Max(10 - secondsPassed, 0); + await Task.Delay(TimeSpan.FromSeconds(secondsToHold)); + } + await NavigationManager.NavigateTo(NavigationView.HomeModule); IsLoading = false; } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineStatusViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineStatusViewVM.cs index 2a851e007..fba49ced3 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineStatusViewVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineStatusViewVM.cs @@ -6,8 +6,10 @@ using System.Threading.Tasks; using Tango.BL.Entities; using Tango.BL.Enumerations; using Tango.Core.Commands; +using Tango.Core.DI; using Tango.Integration.Operation; using Tango.PPC.Common; +using Tango.PPC.Common.Diagnostics; using Tango.PPC.Jobs; using Tango.PPC.Jobs.NavigationObjects; using Tango.PPC.Jobs.Views; @@ -19,7 +21,11 @@ namespace Tango.PPC.UI.ViewModels { #region Properties - private JobHandler _handler; + [TangoInject] + public IDiagnosticsFrameProvider DefaultDiagnosticsFrameProvider { get; set; } + + + private JobHandler _handler; private Job _job; /// <summary> @@ -230,8 +236,15 @@ namespace Tango.PPC.UI.ViewModels { MachineProvider.MachineOperator.PrintingStarted += MachineOperator_PrintingStarted; MachineProvider.MachineOperator.PrintingEnded += MachineOperator_PrintingEnded; + + //DefaultDiagnosticsFrameProvider.FrameReceived += DefaultDiagnosticsFrameProvider_FrameReceived; } - + + private void DefaultDiagnosticsFrameProvider_FrameReceived(object sender, PMR.Diagnostics.StartDiagnosticsResponse e) + { + var frame = e; + } + private void MachineOperator_PrintingStarted(object sender, PrintingEventArgs e) { _handler = e.JobHandler; diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml index 146d4b50d..3ed91e5db 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml @@ -9,47 +9,16 @@ xmlns:global="clr-namespace:Tango.PPC.UI" xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" xmlns:local="clr-namespace:Tango.PPC.UI.Views" + xmlns:mediaKit="clr-namespace:WPFMediaKit.DirectShow.Controls;assembly=WPFMediaKit" mc:Ignorable="d" d:DesignHeight="1280" d:DesignWidth="800" Background="{StaticResource TangoPrimaryBackgroundBrush}" d:DataContext="{d:DesignInstance Type=vm:LoadingViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.LoadingView}"> <Grid> - <StackPanel HorizontalAlignment="Center"> - <!--<Image gif:ImageBehavior.EnableAnimation="{Binding IsLoading}" gif:ImageBehavior.AnimatedSource="/Images/Twine_Loading_GIF.gif" Margin="100 100 100 0" RenderTransformOrigin="0.5,0.5" RenderOptions.BitmapScalingMode="Fant" Height="382"> - <Image.Style> - <Style TargetType="Image"> - <Setter Property="RenderTransform"> - <Setter.Value> - <ScaleTransform ScaleX="1" ScaleY="1" /> - </Setter.Value> - </Setter> - <Setter Property="Effect"> - <Setter.Value> - <fx:DisplaySettingEffect SaturationLevel="0" /> - </Setter.Value> - </Setter> - <Style.Triggers> - <DataTrigger Binding="{Binding IsLoading}" Value="True"> - <DataTrigger.EnterActions> - <BeginStoryboard> - <Storyboard> - <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" Duration="00:00:1" To="1.010" AutoReverse="True" RepeatBehavior="10x" /> - <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" Duration="00:00:1" To="1.010" AutoReverse="True" RepeatBehavior="10x" /> - <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Effect.SaturationLevel" Duration="00:00:3" AutoReverse="True" RepeatBehavior="3x"> - <LinearDoubleKeyFrame KeyTime="00:00:00" Value="0" /> - <LinearDoubleKeyFrame KeyTime="00:00:2" Value="1" /> - <LinearDoubleKeyFrame KeyTime="00:00:3" Value="6" /> - </DoubleAnimationUsingKeyFrames> - </Storyboard> - </BeginStoryboard> - </DataTrigger.EnterActions> - </DataTrigger> - </Style.Triggers> - </Style> - </Image.Style> - </Image>--> - + <Grid x:Name="videoPlayerGrid" Visibility="{Binding BuildProvider.BuildType,Converter={StaticResource BuildTypeToVisibilityConverter},ConverterParameter='Eureka'}"> + <mediaKit:MediaUriElement x:Name="videoPlayer" Stretch="Uniform" LoadedBehavior="Manual" /> + </Grid> + <StackPanel HorizontalAlignment="Center" Visibility="{Binding BuildProvider.BuildType,Converter={StaticResource BuildTypeToVisibilityConverter},ConverterParameter='TS1800'}"> + <Grid Margin="0 0 0 0"> - <!--<Image Source="/Images/machine.png" Stretch="Uniform" Width="250" RenderOptions.BitmapScalingMode="Fant"></Image> - <touch:TouchBusyIndicator Width="350" Height="350" IsIndeterminate="{Binding IsLoading}" />--> <touch:TouchGifAnimation Source="/Images/loading_anim2.gif" EnableAnimation="{Binding IsLoading}" Margin="0 200 0 0" /> </Grid> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml.cs index a1214a0df..4616ea438 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml.cs @@ -12,6 +12,9 @@ using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; +using Tango.Core.DI; +using Tango.PPC.Common.Application; +using Tango.PPC.Common.Build; namespace Tango.PPC.UI.Views { @@ -20,9 +23,22 @@ namespace Tango.PPC.UI.Views /// </summary> public partial class LoadingView : UserControl { + public static DateTime VideoStartTime { get; set; } + public LoadingView() { InitializeComponent(); + + var buildProvider = TangoIOC.Default.GetInstance<IBuildProvider>(); + var appManager = TangoIOC.Default.GetInstance<IPPCApplicationManager>(); + + if (buildProvider.IsEureka) + { + VideoStartTime = DateTime.Now; + videoPlayer.Source = new Uri(appManager.StartPath + "\\Intro.wmv", UriKind.Absolute); + videoPlayer.MediaOpened += (_, __) => VideoStartTime = DateTime.Now; + videoPlayer.Play(); + } } } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml index 1e528765e..66bc6f580 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml @@ -593,19 +593,18 @@ <TextBlock Text="Total Job Progress" FontWeight="DemiBold" Margin="15 10 0 0" FontSize="{StaticResource TangoComboBoxItemFontSize}" VerticalAlignment="Top"></TextBlock> <Rectangle Height="2" Fill="{StaticResource TangoLightBorderBrush}" Width="1010" VerticalAlignment="Top" Margin="15 20 0 0"></Rectangle> </StackPanel> - <Grid Margin="0 10 0 0"> - <locaControls:RunningJobViewerEureka Height="14" DisplayMarkers="False" IsActive="True" Job="{Binding Job}" RunningJobStatus="{Binding RunningJobStatus}" /> - - + <Grid Margin="0 22 0 0"> + <locaControls:RunningJobViewerEureka ThumbHeight="16" HeightSlider="14" DisplayMarkers="False" IsActive="True" Job="{Binding Job}" + RunningJobStatus="{Binding RunningJobStatus}" + MaximumValue="{Binding RunningJobStatus.TotalProgressMinusSettingUp, FallbackValue=100,TargetNullValue=100}" + MinimumValue="0" + SliderValue="{Binding RunningJobStatus.ProgressMinusSettingUp, TargetNullValue=0, FallbackValue=0}"/> + + <!--<TextBlock Margin="0 0 -50 0" VerticalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}" HorizontalAlignment="Right"> <Run Text="x"></Run><Run Text="{Binding RunningJobStatus.RemainingUnits}"></Run> </TextBlock>--> - </Grid> - <touch:MultiRangeSlider x:Name="PART_LowerSlider" Height="30" Margin="0 0 0 0" Foreground="{StaticResource TangoDarkForegroundBrush}" - IsSnapToTickEnabled="True" TickFrequency="1" VerticalAlignment="Center" Maximum="{Binding RunningJobStatus.TotalProgressMinusSettingUp}" Minimum="0" IsEnabled="False" - MaximumValue ="{Binding RunningJobStatus.TotalProgressMinusSettingUp}" - Value ="{Binding RunningJobStatus.ProgressMinusSettingUp}"/> - + </Grid> <UniformGrid DockPanel.Dock="Bottom" Columns="4" Rows="1" HorizontalAlignment="Left" Margin="0 10 0 0" Height="Auto" VerticalAlignment="Top" Width="840"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> <Image Source="../Images/Job Issues/job_length.png" Stretch="None" VerticalAlignment="Top" HorizontalAlignment="Left"/> @@ -810,10 +809,34 @@ <RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="100"></RowDefinition> </Grid.RowDefinitions> - <Grid> - <DockPanel Margin="0 10 0 0"> - <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" DockPanel.Dock="Right" Margin="0 0 0 0"> - <Image Source="../Images/Job Issues/ttime_left.png" Stretch="Fill" VerticalAlignment="Top" Height="32" Width="32"/> + <Grid Margin="0 10 0 0"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="1*"/> + <ColumnDefinition Width="400"/> + <ColumnDefinition Width="Auto"/> + </Grid.ColumnDefinitions> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" > + <Image Margin="0 2 0 0" Source="../Images/Job Issues/job_length.png" Stretch="Uniform" VerticalAlignment="Top" HorizontalAlignment="Left" Width="Auto" Height="32" /> + <TextBlock Margin="20 10 0 0" Width="50" FontWeight="SemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}" > + <TextBlock.Text> + <MultiBinding Converter="{StaticResource LengthWithSpoolsConverter}" StringFormat="0.##" TargetNullValue='-' FallbackValue='-' Mode="OneWay"> + <Binding Path="RunningJobStatus.ProgressMinusSettingUp" Mode="OneWay"/> + <Binding Path="Job.Spools" Mode="OneWay"/> + </MultiBinding> + </TextBlock.Text> + </TextBlock> + </StackPanel> + <!--<Grid Grid.Column="1" Margin="20 8 20 0" VerticalAlignment="Top" Height="20">--> + <locaControls:RunningJobViewerEureka Grid.Column="1" Margin="20 12 20 0" VerticalAlignment="Top" ThumbHeight="16" Height="14" HeightSlider="14" DisplayMarkers="False" IsActive="True" Job="{Binding Job}" + RunningJobStatus="{Binding RunningJobStatus}" + MaximumValue="{Binding RunningJobStatus.TotalProgressMinusSettingUp, FallbackValue=100,TargetNullValue=100}" + MinimumValue="0" + SliderValue="{Binding RunningJobStatus.ProgressMinusSettingUp, TargetNullValue=0, FallbackValue=0, Delay=100}"/> + + <!--</Grid>--> + + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Grid.Column="2" Margin="0 0 0 0"> + <Image Margin="0 2 0 0" Source="../Images/Job Issues/ttime_left.png" Stretch="Uniform" VerticalAlignment="Top" Height="32"/> <TextBlock Margin="15 10 0 0" FontWeight="Light" FontSize="{StaticResource TangoComboBoxItemFontSize}" HorizontalAlignment="Center"> <Run Text="{Binding RunningJobStatus.RemainingTime,Converter={StaticResource TimeSpanToTwoDigitsTimeConverter},FallbackValue=5}"></Run> <Run FontSize="16" Text="{Binding RunningJobStatus.RemainingTime,Converter={StaticResource TimeSpanToLabelConverter},FallbackValue=min}"></Run> @@ -835,27 +858,8 @@ </touch:TouchButton> </StackPanel> - <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" DockPanel.Dock="Left"> - <Image Source="../Images/Job Issues/job_length.png" Stretch="UniformToFill" VerticalAlignment="Top" HorizontalAlignment="Left" Width="32" Height="32"/> - <TextBlock Margin="20 10 0 0" Width="50" FontWeight="SemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}" > - <TextBlock.Text> - <MultiBinding Converter="{StaticResource LengthWithSpoolsConverter}" StringFormat="0.##" TargetNullValue='-' FallbackValue='-' Mode="OneWay"> - <Binding Path="RunningJobStatus.ProgressMinusSettingUp" Mode="OneWay"/> - <Binding Path="Job.Spools" Mode="OneWay"/> - </MultiBinding> - </TextBlock.Text> - </TextBlock> - </StackPanel> - <StackPanel Orientation="Vertical" Margin="30 8 30 0" > - <locaControls:RunningJobViewerEureka Height="16" DisplayMarkers="False" IsActive="True" Job="{Binding Job}" RunningJobStatus="{Binding RunningJobStatus}" /> - - <touch:MultiRangeSlider x:Name="PART_LowerSlider1" Height="26" Margin="0 0 0 0" Foreground="{StaticResource TangoDarkForegroundBrush}" - IsSnapToTickEnabled="True" TickFrequency="1" VerticalAlignment="Center" Maximum="{Binding RunningJobStatus.TotalProgressMinusSettingUp}" Minimum="0" IsEnabled="False" - MaximumValue ="{Binding RunningJobStatus.TotalProgressMinusSettingUp}" Value ="{Binding RunningJobStatus.ProgressMinusSettingUp}"/> - - </StackPanel> - </DockPanel> - <Border Height="2" Background="{StaticResource TangoLightBorderBrush}" VerticalAlignment="Bottom" Margin="0 2 0 0" CornerRadius="2"></Border> + + <Border Height="2" Grid.ColumnSpan="012" Background="{StaticResource TangoLightBorderBrush}" VerticalAlignment="Bottom" Margin="0 2 0 0" CornerRadius="2"></Border> </Grid> <Grid Grid.Row="1" Margin="0 28 0 0"> <StackPanel Orientation="Vertical"> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/packages.config b/Software/Visual_Studio/PPC/Tango.PPC.UI/packages.config index ec7ec1e3a..9e3e48198 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/packages.config +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/packages.config @@ -11,4 +11,5 @@ <package id="System.Data.SQLite.Core" version="1.0.108.0" targetFramework="net46" /> <package id="System.Data.SQLite.EF6" version="1.0.108.0" targetFramework="net46" /> <package id="System.Data.SQLite.Linq" version="1.0.108.0" targetFramework="net46" /> + <package id="WPFMediaKit" version="2.2.0" targetFramework="net461" /> </packages>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTOBase.cs index 7fdc91308..9ee86e42a 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTOBase.cs @@ -541,5 +541,13 @@ namespace Tango.BL.DTO get; set; } + /// <summary> + /// e tunnel temp + /// </summary> + public Double ETunnelTemp + { + get; set; + } + } } diff --git a/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTable.cs b/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTable.cs index 0a78dbc93..1dadd61c8 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTable.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTable.cs @@ -5,6 +5,7 @@ using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.BL.Enumerations; using Tango.Core.ExtensionMethods; namespace Tango.BL.Entities @@ -13,6 +14,10 @@ namespace Tango.BL.Entities { public event EventHandler DyeingSpeedMinInkUptakeChanged; + [NotMapped] + [JsonIgnore] + public static MachineTypes DryerBufferMode { get; set; } + public const double DRYER_METERS_PER_CYCLE = 0.76; public const double DRYER_TO_SPOOL_LENGTH_METERS = 0.9; @@ -35,7 +40,17 @@ namespace Tango.BL.Entities [JsonIgnore] public double DryerBufferLengthMeters { - get { return (DryerBufferLength * DRYER_METERS_PER_CYCLE) + DRYER_TO_SPOOL_LENGTH_METERS; } + get + { + if (DryerBufferMode == MachineTypes.TS1800) + { + return (DryerBufferLength * DRYER_METERS_PER_CYCLE) + DRYER_TO_SPOOL_LENGTH_METERS; + } + else + { + return DryerBufferLength; + } + } } /// <summary> diff --git a/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTableBase.cs b/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTableBase.cs index c45ee73e9..3fe1cacee 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTableBase.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTableBase.cs @@ -155,6 +155,8 @@ namespace Tango.BL.Entities public event EventHandler<Double> ESpare5Changed; + public event EventHandler<Double> ETunnelTempChanged; + public event EventHandler<ProcessParametersTablesGroup> ProcessParametersTablesGroupChanged; protected String _name; @@ -2018,7 +2020,7 @@ namespace Tango.BL.Entities [StringFormat("0.0")] - [PropertyIndex(64)] + [PropertyIndex(65)] public Double ESpare1 { @@ -2049,7 +2051,7 @@ namespace Tango.BL.Entities [StringFormat("0.0")] - [PropertyIndex(65)] + [PropertyIndex(66)] public Double ESpare2 { @@ -2080,7 +2082,7 @@ namespace Tango.BL.Entities [StringFormat("0.0")] - [PropertyIndex(66)] + [PropertyIndex(67)] public Double ESpare3 { @@ -2111,7 +2113,7 @@ namespace Tango.BL.Entities [StringFormat("0.0")] - [PropertyIndex(67)] + [PropertyIndex(68)] public Double ESpare4 { @@ -2142,7 +2144,7 @@ namespace Tango.BL.Entities [StringFormat("0.0")] - [PropertyIndex(68)] + [PropertyIndex(69)] public Double ESpare5 { @@ -2163,6 +2165,37 @@ namespace Tango.BL.Entities } } + protected Double _etunneltemp; + + /// <summary> + /// Gets or sets the processparameterstablebase e tunnel temp. + /// </summary> + + [Column("E_TUNNEL_TEMP")] + + [StringFormat("0.0")] + + [PropertyIndex(64)] + + public Double ETunnelTemp + { + get + { + return _etunneltemp; + } + + set + { + if (_etunneltemp != value) + { + _etunneltemp = value; + + OnETunnelTempChanged(value); + + } + } + } + protected ProcessParametersTablesGroup _processparameterstablesgroup; /// <summary> @@ -2772,6 +2805,15 @@ namespace Tango.BL.Entities } /// <summary> + /// Called when the ETunnelTemp has changed. + /// </summary> + protected virtual void OnETunnelTempChanged(Double etunneltemp) + { + ETunnelTempChanged?.Invoke(this, etunneltemp); + RaisePropertyChanged(nameof(ETunnelTemp)); + } + + /// <summary> /// Called when the ProcessParametersTablesGroup has changed. /// </summary> protected virtual void OnProcessParametersTablesGroupChanged(ProcessParametersTablesGroup processparameterstablesgroup) diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/EventTypeGroups.cs b/Software/Visual_Studio/Tango.BL/Enumerations/EventTypeGroups.cs index 5ff1766d9..b8c9e677e 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/EventTypeGroups.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/EventTypeGroups.cs @@ -43,6 +43,8 @@ namespace Tango.BL.Enumerations [Description("Transport")] Transport = 11, [Description("Jobs")] - Jobs = 12 + Jobs = 12, + [Description("Safety")] + Safety = 13 } } diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs index b7ee724e8..93732c9f3 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs @@ -254,6 +254,24 @@ namespace Tango.BL.Enumerations RFID_READER_MALFUNCTION_WASTE_SLOT_2 = 2024, /// <summary> + /// (Communication failure. Cannot execute job) + /// </summary> + [Description("Communication failure. Cannot execute job")] + I2C3_COMMUNICATION_FAILURE = 2025, + + /// <summary> + /// (Communication failure. Cannot execute job) + /// </summary> + [Description("Communication failure. Cannot execute job")] + I2C4_COMMUNICATION_FAILURE = 2026, + + /// <summary> + /// (Communication failure. Cannot execute job) + /// </summary> + [Description("Communication failure. Cannot execute job")] + I2C_COMMUNICATION_FAILURE = 2027, + + /// <summary> /// (Thread break. Cannot execute job) /// </summary> [Description("Thread break. Cannot execute job")] @@ -1322,6 +1340,42 @@ namespace Tango.BL.Enumerations DYEING_HEAD_COVER_IS_OPEN = 5099, /// <summary> + /// (Dyeing head voltage is too low. Cannot execute job) + /// </summary> + [Description("Dyeing head voltage is too low. Cannot execute job")] + DYEING_HEAD_VOLTAGE_1_TOO_LOW = 5100, + + /// <summary> + /// (Dyeing head voltage is too low. Cannot execute job) + /// </summary> + [Description("Dyeing head voltage is too low. Cannot execute job")] + DYEING_HEAD_VOLTAGE_2_TOO_LOW = 5101, + + /// <summary> + /// (Dyeing head voltage is too low. Cannot execute job) + /// </summary> + [Description("Dyeing head voltage is too low. Cannot execute job")] + DYEING_HEAD_VOLTAGE_3_TOO_LOW = 5102, + + /// <summary> + /// (Dyeing head voltage break. Cannot execute job) + /// </summary> + [Description("Dyeing head voltage break. Cannot execute job")] + DYEING_HEAD_VOLTAGE_1_BREAK = 5103, + + /// <summary> + /// (Dyeing head voltage break. Cannot execute job) + /// </summary> + [Description("Dyeing head voltage break. Cannot execute job")] + DYEING_HEAD_VOLTAGE_2_BREAK = 5104, + + /// <summary> + /// (Dyeing head voltage break. Cannot execute job) + /// </summary> + [Description("Dyeing head voltage break. Cannot execute job")] + DYEING_HEAD_VOLTAGE_3_BREAK = 5105, + + /// <summary> /// (The temperature in the mixer is too high. Cannot execute job) /// </summary> [Description("The temperature in the mixer is too high. Cannot execute job")] @@ -2174,6 +2228,66 @@ namespace Tango.BL.Enumerations MID_TANK_10_FILL_TIMEOUT = 8039, /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_1_MALFUNCTION = 8040, + + /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_2_MALFUNCTION = 8041, + + /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_3_MALFUNCTION = 8042, + + /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_4_MALFUNCTION = 8043, + + /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_5_MALFUNCTION = 8044, + + /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_6_MALFUNCTION = 8045, + + /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_7_MALFUNCTION = 8046, + + /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_8_MALFUNCTION = 8047, + + /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_9_MALFUNCTION = 8048, + + /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_10_MALFUNCTION = 8049, + + /// <summary> /// (Cannot detect air filter. Cannot execute job ) /// </summary> [Description("Cannot detect air filter. Cannot execute job ")] @@ -2330,16 +2444,16 @@ namespace Tango.BL.Enumerations NO_WASTE_CARTRIDGE_AVAILABLE = 10002, /// <summary> - /// (Both waste cartridges are full. Cannot execute job. Please replace waste cartridges) + /// (Waste tank is full. Please perform waste emptying) /// </summary> - [Description("Both waste cartridges are full. Cannot execute job. Please replace waste cartridges")] - ALL_WASTE_CARTRIDGES_FULL = 10003, + [Description("Waste tank is full. Please perform waste emptying")] + WASTE_TANK_FULL = 10003, /// <summary> - /// (Cannot detect waste cartridge. Cannot execute job ) + /// (Cartridges not inserted properly. Cannot execute job ) /// </summary> - [Description("Cannot detect waste cartridge. Cannot execute job ")] - WASTE_CARTRIDGE_PRESENCE_SENSOR_TIMEOUT = 10004, + [Description("Cartridges not inserted properly. Cannot execute job ")] + CARTRIDGES_NOT_INSERTED_PROPERLY = 10004, /// <summary> /// (Cannot identify waste cartridge. Cannot execute job ) @@ -3044,6 +3158,12 @@ namespace Tango.BL.Enumerations E_TEMPERATURE_MEASUREMENT_ERROR = 108035, /// <summary> + /// (Dryer internal temperature is too low. Cannot execute job) + /// </summary> + [Description("Dryer internal temperature is too low. Cannot execute job")] + E_DRYER_INTERNAL_TEMPERATURE_TOO_LOW = 108036, + + /// <summary> /// (Dyeing head zone current is out of range. Cannot execute job) /// </summary> [Description("Dyeing head zone current is out of range. Cannot execute job")] @@ -3230,10 +3350,10 @@ namespace Tango.BL.Enumerations E_DYEING_HEAD_CLEANER_MOTOR_MALFUNCTION = 110010, /// <summary> - /// (Dryer blower has stopped. Cannot execute job.) + /// (No suction. Cannot execute job.) /// </summary> - [Description("Dryer blower has stopped. Cannot execute job.")] - E_DRYER_BLOWER_STOPPED = 111000, + [Description("No suction. Cannot execute job.")] + E_NO_SUCTION = 111000, /// <summary> /// (Dryer blower flow is too low. Cannot execute job) @@ -3260,6 +3380,12 @@ namespace Tango.BL.Enumerations E_AIR_FILTER_CLOGGED = 111004, /// <summary> + /// (No circulation flow in blower. Cannot execute job) + /// </summary> + [Description("No circulation flow in blower. Cannot execute job")] + E_NO_CIRCULATION_FLOW_IN_DRYER = 111005, + + /// <summary> /// (Pressure in @ ink line too high. Cannot execute job) /// </summary> [Description("Pressure in @ ink line too high. Cannot execute job")] diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/MidTankTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/MidTankTypes.cs index b1255d8ff..b6a497dee 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/MidTankTypes.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/MidTankTypes.cs @@ -37,5 +37,11 @@ namespace Tango.BL.Enumerations [Description("No Mid Tank")] NoMidTank = 3, + /// <summary> + /// (Eureka 5L Jerrican) + /// </summary> + [Description("Eureka 5L Jerrican")] + Eureka5LJerrican = 4, + } } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/PROCESS_PARAMETERS_TABLES.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/PROCESS_PARAMETERS_TABLES.cs index 414049e23..08830d36d 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/PROCESS_PARAMETERS_TABLES.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/PROCESS_PARAMETERS_TABLES.cs @@ -82,6 +82,7 @@ namespace Tango.DAL.Remote.DB public double E_SPARE3 { get; set; } public double E_SPARE4 { get; set; } public double E_SPARE5 { get; set; } + public double E_TUNNEL_TEMP { get; set; } public virtual PROCESS_PARAMETERS_TABLES_GROUPS PROCESS_PARAMETERS_TABLES_GROUPS { get; set; } } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx index 770d321c4..8bed67ce6 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx @@ -1121,6 +1121,7 @@ <Property Name="E_SPARE3" Type="float" Nullable="false" /> <Property Name="E_SPARE4" Type="float" Nullable="false" /> <Property Name="E_SPARE5" Type="float" Nullable="false" /> + <Property Name="E_TUNNEL_TEMP" Type="float" Nullable="false" /> </EntityType> <EntityType Name="PROCESS_PARAMETERS_TABLES_GROUPS"> <Key> @@ -6815,6 +6816,7 @@ <Property Name="E_SPARE3" Type="Double" Nullable="false" /> <Property Name="E_SPARE4" Type="Double" Nullable="false" /> <Property Name="E_SPARE5" Type="Double" Nullable="false" /> + <Property Name="E_TUNNEL_TEMP" Type="Double" Nullable="false" /> <NavigationProperty Name="PROCESS_PARAMETERS_TABLES_GROUPS" Relationship="RemoteModel.FK_PROCESS_PARAMETERS_TABLES_PROCESS_PARAMETERS_TABLES_GROUPS" FromRole="PROCESS_PARAMETERS_TABLES" ToRole="PROCESS_PARAMETERS_TABLES_GROUPS" /> </EntityType> <EntityType Name="PROCESS_PARAMETERS_TABLES_GROUPS"> @@ -10201,6 +10203,7 @@ <EntitySetMapping Name="PROCESS_PARAMETERS_TABLES"> <EntityTypeMapping TypeName="RemoteModel.PROCESS_PARAMETERS_TABLES"> <MappingFragment StoreEntitySet="PROCESS_PARAMETERS_TABLES"> + <ScalarProperty Name="E_TUNNEL_TEMP" ColumnName="E_TUNNEL_TEMP" /> <ScalarProperty Name="E_SPARE5" ColumnName="E_SPARE5" /> <ScalarProperty Name="E_SPARE4" ColumnName="E_SPARE4" /> <ScalarProperty Name="E_SPARE3" ColumnName="E_SPARE3" /> diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram index 5e08c09f4..3a81d86f0 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram @@ -5,102 +5,102 @@ <!-- Diagram content (shape and connector positions) --> <edmx:Diagrams> <Diagram DiagramId="f9ae01d708754bbd997add25a4bacc79" Name="Diagram1" ZoomLevel="87"> - <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="14.875" /> - <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="5.625" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="4.5" PointY="76.875" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="4.5" PointY="66.375" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="4.5" PointY="69.25" /> - <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="3.75" PointY="7.75" /> - <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="18" PointY="20.125" /> - <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="36.625" /> - <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="13.375" /> - <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="6.75" PointY="39.625" /> - <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="27.75" /> - <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="16.625" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="53.5" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="0.75" PointY="48" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="3" PointY="46.75" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="5.25" PointY="23.625" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_PROCESS_INK_UPTAKE" Width="1.5" PointX="5.75" PointY="7.75" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="28.75" /> - <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="6.75" PointY="69.125" /> - <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="1.75" /> - <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="35.375" /> - <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="11.25" PointY="79.625" /> - <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="4.5" PointY="84.125" /> - <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="6.75" PointY="83.5" /> - <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="4.5" PointY="63.375" /> - <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="79.375" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="33.75" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="19.875" /> - <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="31.625" /> - <EntityTypeShape EntityType="RemoteModel.GBD" Width="1.5" PointX="0.75" PointY="39.875" /> - <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="8.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="11.5" PointY="89" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="13.75" PointY="79.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="9.5" PointY="64" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="11.75" PointY="67.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="9.5" PointY="85" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="11.75" PointY="71.875" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="12.5" PointY="83.875" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="14.75" PointY="69.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="12.5" PointY="64" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="14.75" PointY="62" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="4.5" PointY="60" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="6.75" PointY="64.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="4.5" PointY="72.25" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="4.5" PointY="80" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="6.75" PointY="74.75" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="6.75" PointY="36.25" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="9" PointY="40.625" /> - <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="18.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="20.125" /> - <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="24.25" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="3" PointY="12.375" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="5.25" PointY="19.875" /> - <EntityTypeShape EntityType="RemoteModel.LUB" Width="1.5" PointX="0.75" PointY="10" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="5.75" PointY="11.75" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="8.25" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="6.75" PointY="79.75" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="9" PointY="67.5" /> - <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="44.75" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="30.75" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="43.25" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="27.875" /> - <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="6.75" PointY="44.75" /> - <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="3.75" PointY="3.625" /> - <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="49.125" /> - <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="48.375" /> - <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="54.125" /> - <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="13.75" PointY="16" /> - <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="16" PointY="16.125" /> - <EntityTypeShape EntityType="RemoteModel.RML_EXTENSION_TEST_WASHING_RESULTS" Width="1.5" PointX="16" PointY="5" /> - <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="17.625" /> - <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="8.25" PointY="23.5" /> - <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="1" /> - <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="1.125" /> - <EntityTypeShape EntityType="RemoteModel.RUBBING_RESULTS" Width="1.5" PointX="5.75" PointY="15.75" /> - <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="15.75" PointY="23.75" /> - <EntityTypeShape EntityType="RemoteModel.SEGMENTS_GROUPS" Width="1.5" PointX="13.5" PointY="24" /> - <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="6" PointY="3.875" /> - <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="11.25" PointY="35.25" /> - <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="8.25" PointY="20.125" /> - <EntityTypeShape EntityType="RemoteModel.SITES_SPOOL_TYPES" Width="1.5" PointX="11.25" PointY="4.75" /> - <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="9" PointY="5.25" /> - <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="11.25" PointY="40.125" /> - <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="3.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="16.75" PointY="11.75" /> - <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="44.625" /> - <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="18.75" PointY="11.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="5.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="13.75" PointY="8.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="20.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="18.75" PointY="15.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="13.75" PointY="19.75" /> - <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="10.75" /> - <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="12.125" /> - <EntityTypeShape EntityType="RemoteModel.WASHING_TEST_MATERIALS" Width="1.5" PointX="13.75" PointY="5.5" /> - <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="32.25" /> + <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="12.375" /> + <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="73" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="77.125" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="98.5" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="91" /> + <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="5.75" PointY="10.625" /> + <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="18" PointY="22.125" /> + <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="26" /> + <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="36.5" /> + <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="3" PointY="47.375" /> + <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="21.75" /> + <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="30.25" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="101.625" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="0.75" PointY="7.125" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="3" PointY="0.75" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="5.25" PointY="25.625" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_PROCESS_INK_UPTAKE" Width="1.5" PointX="7.75" PointY="10.625" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="36" /> + <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="0.75" PointY="82.875" /> + <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="69.125" /> + <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="29.75" /> + <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="5.25" PointY="69.375" /> + <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="0.75" PointY="106.875" /> + <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="3" PointY="106.25" /> + <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="88" /> + <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="66.25" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="33.5" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="39.75" /> + <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="33.625" /> + <EntityTypeShape EntityType="RemoteModel.GBD" Width="1.5" PointX="0.75" PointY="45.875" /> + <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="2.75" PointY="12.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="1.5" PointY="118.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="3.75" PointY="99.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="7.5" PointY="100.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="9.75" PointY="94.375" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="1.5" PointY="114.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="3.75" PointY="93.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="7.5" PointY="84.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="9.75" PointY="84.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="4.5" PointY="81.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="6.75" PointY="92.75" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="1.5" PointY="110.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="3.75" PointY="89.375" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="93.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="4.5" PointY="85.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="6.75" PointY="88.5" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="3" PointY="40.75" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="5.25" PointY="45.125" /> + <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="16.75" PointY="2.625" /> + <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="22" /> + <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="12.125" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="3" PointY="7.5" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="8.25" PointY="25.875" /> + <EntityTypeShape EntityType="RemoteModel.LUB" Width="1.5" PointX="0.75" PointY="21" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="13.75" PointY="11.625" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="18.125" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="0.75" PointY="65.5" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="3" PointY="57.25" /> + <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="39.625" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="18" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="42.75" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="15.125" /> + <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="3" PointY="44" /> + <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="51.125" /> + <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="4.25" /> + <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="50.25" /> + <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="56.125" /> + <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="5.75" PointY="6.875" /> + <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="8" PointY="7" /> + <EntityTypeShape EntityType="RemoteModel.RML_EXTENSION_TEST_WASHING_RESULTS" Width="1.5" PointX="8" PointY="2.875" /> + <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="19.625" /> + <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="8.25" PointY="21.375" /> + <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="8.125" /> + <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="8.25" /> + <EntityTypeShape EntityType="RemoteModel.RUBBING_RESULTS" Width="1.5" PointX="16.75" PointY="13.625" /> + <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="15.75" PointY="25.75" /> + <EntityTypeShape EntityType="RemoteModel.SEGMENTS_GROUPS" Width="1.5" PointX="13.5" PointY="26" /> + <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="35.75" /> + <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="5.25" PointY="66.25" /> + <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="5.25" PointY="30.125" /> + <EntityTypeShape EntityType="RemoteModel.SITES_SPOOL_TYPES" Width="1.5" PointX="14.25" PointY="30.125" /> + <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="6" PointY="16" /> + <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="8.25" PointY="40.375" /> + <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="2.75" PointY="16.625" /> + <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="16.75" PointY="17.625" /> + <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="39.5" /> + <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="13.75" PointY="19.625" /> + <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="18.75" PointY="2.625" /> + <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="18.75" PointY="5.625" /> + <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="18.75" PointY="8.625" /> + <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="18.75" PointY="13.625" /> + <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="18.75" PointY="18.625" /> + <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="14.75" /> + <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="16.25" /> + <EntityTypeShape EntityType="RemoteModel.WASHING_TEST_MATERIALS" Width="1.5" PointX="5.75" PointY="3.375" /> + <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="32.875" /> <AssociationConnector Association="RemoteModel.FK_ACTION_LOGS_USERS" /> <AssociationConnector Association="RemoteModel.FK_ORGANIZATIONS_ADDRESSES" /> <AssociationConnector Association="RemoteModel.FK_USERS_ADDRESSES" /> diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs index 82f7a6c7a..9d21471e6 100644 --- a/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs +++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs @@ -22,7 +22,7 @@ namespace Tango.PMR.Diagnostics { static EventTypeReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( - "Cg9FdmVudFR5cGUucHJvdG8SFVRhbmdvLlBNUi5EaWFnbm9zdGljcyqUqgEK", + "Cg9FdmVudFR5cGUucHJvdG8SFVRhbmdvLlBNUi5EaWFnbm9zdGljcyqirwEK", "CUV2ZW50VHlwZRIICgROb25lEAASEQoMUkVRVUVTVF9TRU5UEOgHEhYKEVJF", "U1BPTlNFX1JFQ0VJVkVEEOkHEhMKDlJFUVVFU1RfRkFJTEVEEOoHEhoKFUFQ", "UExJQ0FUSU9OX0VYQ0VQVElPThDrBxIcChdBUFBMSUNBVElPTl9JTkZPUk1B", @@ -48,466 +48,481 @@ namespace Tango.PMR.Diagnostics { "IgodVEVNUEVSQVRVUkVfTUVBU1VSRU1FTlRfRVJST1IQ5Q8SJQogUkZJRF9S", "RUFERVJfTUFMRlVOQ1RJT05fSU5LX1NMT1QQ5g8SKQokUkZJRF9SRUFERVJf", "TUFMRlVOQ1RJT05fV0FTVEVfU0xPVF8xEOcPEikKJFJGSURfUkVBREVSX01B", - "TEZVTkNUSU9OX1dBU1RFX1NMT1RfMhDoDxIRCgxUSFJFQURfQlJFQUsQuBcS", - "MQosVEhSRUFEX1RFTlNJT05fQ09OVFJPTF9GQUlMVVJFX0ZFRURFUl9EQU5D", - "RVIQuRcSHwoaV0lOREVSX0NPTkVfRE9FU19OT1RfRVhJU1QQuhcSHQoYRkVF", - "REVSX01PVE9SX01BTEZVTkNUSU9OELsXEiMKHlJJR0hUX0xPQURFUl9NT1RP", - "Ul9NQUxGVU5DVElPThC8FxIdChhQVUxMRVJfTU9UT1JfTUFMRlVOQ1RJT04Q", - "vRcSIgodTEVGVF9MT0FERVJfTU9UT1JfTUFMRlVOQ1RJT04QvhcSHQoYV0lO", - "REVSX01PVE9SX01BTEZVTkNUSU9OEL8XEhwKF1NDUkVXX01PVE9SX01BTEZV", - "TkNUSU9OEMAXEiIKHUxPQURJTkdfQVJNX01PVE9SX01BTEZVTkNUSU9OEMEX", - "EiEKHEZFRURFUl9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQwhcSJwoiUklHSFRf", - "TE9BREVSX01PVE9SX09WRVJURU1QRVJBVFVSRRDDFxIhChxQVUxMRVJfTU9U", - "T1JfT1ZFUlRFTVBFUkFUVVJFEMQXEiYKIUxFRlRfTE9BREVSX01PVE9SX09W", - "RVJURU1QRVJBVFVSRRDFFxIhChxXSU5ERVJfTU9UT1JfT1ZFUlRFTVBFUkFU", - "VVJFEMYXEiAKG1NDUkVXX01PVE9SX09WRVJURU1QRVJBVFVSRRDHFxImCiFM", - "T0FESU5HX0FSTV9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQyBcSFwoSRkVFREVS", - "X01PVE9SX1NUQUxMEMkXEh0KGFJJR0hUX0xPQURFUl9NT1RPUl9TVEFMTBDK", - "FxIXChJQVUxMRVJfTU9UT1JfU1RBTEwQyxcSHAoXTEVGVF9MT0FERVJfTU9U", - "T1JfU1RBTEwQzBcSFwoSV0lOREVSX01PVE9SX1NUQUxMEM0XEhYKEVNDUkVX", - "X01PVE9SX1NUQUxMEM4XEhwKF0xPQURJTkdfQVJNX01PVE9SX1NUQUxMEM8X", - "Eh4KGUZFRURFUl9NT1RPUl9VTkRFUlZPTFRBR0UQ0BcSJAofUklHSFRfTE9B", - "REVSX01PVE9SX1VOREVSVk9MVEFHRRDRFxIeChlQVUxMRVJfTU9UT1JfVU5E", - "RVJWT0xUQUdFENIXEiMKHkxFRlRfTE9BREVSX01PVE9SX1VOREVSVk9MVEFH", - "RRDTFxIeChlXSU5ERVJfTU9UT1JfVU5ERVJWT0xUQUdFENQXEh0KGFNDUkVX", - "X01PVE9SX1VOREVSVk9MVEFHRRDVFxIjCh5MT0FESU5HX0FSTV9NT1RPUl9V", - "TkRFUlZPTFRBR0UQ1hcSFAoPTFRGVV9VUF9USU1FT1VUENcXEhYKEUxURlVf", - "RE9XTl9USU1FT1VUENgXEhQKD1JURlVfVVBfVElNRU9VVBDZFxIWChFSVEZV", - "X0RPV05fVElNRU9VVBDaFxIeChlTQ1JFV19NT1RPUl9MSU1JVF9USU1FT1VU", - "ENsXEiQKH1dJTkRFUl9EQU5DRVJfTU9UT1JfTUFMRlVOQ1RJT04Q3BcSJAof", - "UFVMTEVSX0RBTkNFUl9NT1RPUl9NQUxGVU5DVElPThDdFxIkCh9GRUVERVJf", - "REFOQ0VSX01PVE9SX01BTEZVTkNUSU9OEN4XEigKI1dJTkRFUl9EQU5DRVJf", - "TU9UT1JfT1ZFUlRFTVBFUkFUVVJFEN8XEigKI1BVTExFUl9EQU5DRVJfTU9U", - "T1JfT1ZFUlRFTVBFUkFUVVJFEOAXEigKI0ZFRURFUl9EQU5DRVJfTU9UT1Jf", - "T1ZFUlRFTVBFUkFUVVJFEOEXEh4KGVdJTkRFUl9EQU5DRVJfTU9UT1JfU1RB", - "TEwQ4hcSHgoZUFVMTEVSX0RBTkNFUl9NT1RPUl9TVEFMTBDjFxIeChlGRUVE", - "RVJfREFOQ0VSX01PVE9SX1NUQUxMEOQXEiUKIFdJTkRFUl9EQU5DRVJfTU9U", - "T1JfVU5ERVJWT0xUQUdFEOUXEiUKIFBVTExFUl9EQU5DRVJfTU9UT1JfVU5E", - "RVJWT0xUQUdFEOYXEiUKIEZFRURFUl9EQU5DRVJfTU9UT1JfVU5ERVJWT0xU", - "QUdFEOcXEjEKLFRIUkVBRF9URU5TSU9OX0NPTlRST0xfRkFJTFVSRV9QVUxM", - "RVJfREFOQ0VSEOgXEjEKLFRIUkVBRF9URU5TSU9OX0NPTlRST0xfRkFJTFVS", - "RV9XSU5ERVJfREFOQ0VSEOkXEiUKIE1BQ0hJTkVfU1RBVEVfTk9fVEhSRUFE", - "X0RFVEVDVEVEEOoXEhkKFFRIUkVBRF9MT0FESU5HX0VSUk9SEOsXEh8KGk5P", - "X0NPTU1VTklDQVRJT05fV0lUSF9CVFNSEOwXEhUKEEJUU1JfTUFMRlVOQ1RJ", - "T04Q7RcSIQocVEVOU0lPTl9JTl9CVFNSX09VVF9PRl9SQU5HRRDuFxIYChNH", - "UklQUEVSX01BTEZVTkNUSU9OEO8XEhwKF0RSWUVSX01PVE9SX01BTEZVTkNU", - "SU9OEKAfEiAKG0RSWUVSX01PVE9SX09WRVJURU1QRVJBVFVSRRChHxIWChFE", - "UllFUl9NT1RPUl9TVEFMTBCiHxIdChhEUllFUl9NT1RPUl9VTkRFUlZPTFRB", - "R0UQox8SFAoPRFJZRVJfRE9PUl9PUEVOEKQfEiEKHERSWUVSX1pPTkVfMV9P", - "VkVSVEVNUEVSQVRVUkUQpR8SIQocRFJZRVJfWk9ORV8yX09WRVJURU1QRVJB", - "VFVSRRCmHxIkCh9EUllFUl9aT05FXzFfVU5ERVJURU1QRVJBVFVSRV9BEKcf", - "EiQKH0RSWUVSX1pPTkVfMV9VTkRFUlRFTVBFUkFUVVJFX0IQqB8SJAofRFJZ", - "RVJfWk9ORV8yX1VOREVSVEVNUEVSQVRVUkVfQhCpHxIZChREUllFUl9USEVS", - "TUFMX0NVVE9GRhCqHxIuCilEUllFUl9IRUFURVJTX1pPTkVfMV9DVVJSRU5U", - "X09VVF9PRl9SQU5HRRCrHxIuCilEUllFUl9IRUFURVJTX1pPTkVfMl9DVVJS", - "RU5UX09VVF9PRl9SQU5HRRCsHxIsCidEUllFUl9IRUFURVJTX1pPTkVfMV9D", - "VVJSRU5UX0xPT1BfQlJFQUsQrR8SLAonRFJZRVJfSEVBVEVSU19aT05FXzJf", - "Q1VSUkVOVF9MT09QX0JSRUFLEK4fEhoKFURSWUVSX0ZBTl9SUE1fVE9PX0xP", - "VxCvHxIWChFEUllFUl9GQU5fU1RPUFBFRBCwHxIgChtEUllFUl9MSURfTU9U", - "T1JfTUFMRlVOQ1RJT04QsR8SJAofRFJZRVJfTElEX01PVE9SX09WRVJURU1Q", - "RVJBVFVSRRCyHxIaChVEUllFUl9MSURfTU9UT1JfU1RBTEwQsx8SIQocRFJZ", - "RVJfTElEX01PVE9SX1VOREVSVk9MVEFHRRC0HxIkCh9EUllFUl9aT05FXzJf", - "VU5ERVJURU1QRVJBVFVSRV9BELUfEicKIkRZRUlOR19IRUFEX1pPTkVfMV9P", - "VkVSVEVNUEVSQVRVUkUQiCcSJwoiRFlFSU5HX0hFQURfWk9ORV8yX09WRVJU", - "RU1QRVJBVFVSRRCJJxInCiJEWUVJTkdfSEVBRF9aT05FXzNfT1ZFUlRFTVBF", - "UkFUVVJFEIonEicKIkRZRUlOR19IRUFEX1pPTkVfNF9PVkVSVEVNUEVSQVRV", - "UkUQiycSJwoiRFlFSU5HX0hFQURfWk9ORV81X09WRVJURU1QRVJBVFVSRRCM", - "JxInCiJEWUVJTkdfSEVBRF9aT05FXzZfT1ZFUlRFTVBFUkFUVVJFEI0nEioK", - "JURZRUlOR19IRUFEX1pPTkVfMV9VTkRFUlRFTVBFUkFUVVJFX0EQjicSKgol", - "RFlFSU5HX0hFQURfWk9ORV8yX1VOREVSVEVNUEVSQVRVUkVfQRCPJxIqCiVE", - "WUVJTkdfSEVBRF9aT05FXzNfVU5ERVJURU1QRVJBVFVSRV9BEJAnEioKJURZ", - "RUlOR19IRUFEX1pPTkVfNF9VTkRFUlRFTVBFUkFUVVJFX0EQkScSKgolRFlF", - "SU5HX0hFQURfWk9ORV81X1VOREVSVEVNUEVSQVRVUkVfQRCSJxIqCiVEWUVJ", - "TkdfSEVBRF9aT05FXzZfVU5ERVJURU1QRVJBVFVSRV9BEJMnEioKJURZRUlO", - "R19IRUFEX1pPTkVfMV9VTkRFUlRFTVBFUkFUVVJFX0IQlCcSKgolRFlFSU5H", - "X0hFQURfWk9ORV8yX1VOREVSVEVNUEVSQVRVUkVfQhCVJxIqCiVEWUVJTkdf", - "SEVBRF9aT05FXzNfVU5ERVJURU1QRVJBVFVSRV9CEJYnEioKJURZRUlOR19I", - "RUFEX1pPTkVfNF9VTkRFUlRFTVBFUkFUVVJFX0IQlycSKgolRFlFSU5HX0hF", - "QURfWk9ORV81X1VOREVSVEVNUEVSQVRVUkVfQhCYJxIqCiVEWUVJTkdfSEVB", - "RF9aT05FXzZfVU5ERVJURU1QRVJBVFVSRV9CEJknEiwKJ0RZRUlOR19IRUFE", - "X1pPTkVfMV9DVVJSRU5UX09VVF9PRl9SQU5HRRCaJxIsCidEWUVJTkdfSEVB", - "RF9aT05FXzJfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQmycSLAonRFlFSU5HX0hF", - "QURfWk9ORV8zX0NVUlJFTlRfT1VUX09GX1JBTkdFEJwnEiwKJ0RZRUlOR19I", - "RUFEX1pPTkVfNF9DVVJSRU5UX09VVF9PRl9SQU5HRRCdJxIsCidEWUVJTkdf", - "SEVBRF9aT05FXzVfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQnicSKgolRFlFSU5H", - "X0hFQURfWk9ORV8xX0NVUlJFTlRfTE9PUF9CUkVBSxCfJxIqCiVEWUVJTkdf", - "SEVBRF9aT05FXzJfQ1VSUkVOVF9MT09QX0JSRUFLEKAnEioKJURZRUlOR19I", - "RUFEX1pPTkVfM19DVVJSRU5UX0xPT1BfQlJFQUsQoScSKgolRFlFSU5HX0hF", - "QURfWk9ORV80X0NVUlJFTlRfTE9PUF9CUkVBSxCiJxIqCiVEWUVJTkdfSEVB", - "RF9aT05FXzVfQ1VSUkVOVF9MT09QX0JSRUFLEKMnEh8KGkRZRUlOR19IRUFE", - "X1RIRVJNQUxfQ1VUT0ZGEKQnEiMKHkRZRUlOR19IRUFEX0NPVkVSX09QRU5f", - "VElNRU9VVBClJxIkCh9EWUVJTkdfSEVBRF9DT1ZFUl9DTE9TRV9USU1FT1VU", - "EKYnEigKI0RZRUlOR19IRUFEX0NPVkVSX01PVE9SX01BTEZVTkNUSU9OEKcn", - "EiwKJ0RZRUlOR19IRUFEX0NPVkVSX01PVE9SX09WRVJURU1QRVJBVFVSRRCo", - "JxIiCh1EWUVJTkdfSEVBRF9DT1ZFUl9NT1RPUl9TVEFMTBCpJxIpCiREWUVJ", - "TkdfSEVBRF9DT1ZFUl9NT1RPUl9VTkRFUlZPTFRBR0UQqicSNQowRFlFSU5H", - "X0hFQURfQ0xFQU5JTkdfTUVDSEFOSVNNX01PVE9SX01BTEZVTkNUSU9OEKsn", - "EjkKNERZRUlOR19IRUFEX0NMRUFOSU5HX01FQ0hBTklTTV9NT1RPUl9PVkVS", - "VEVNUEVSQVRVUkUQrCcSLwoqRFlFSU5HX0hFQURfQ0xFQU5JTkdfTUVDSEFO", - "SVNNX01PVE9SX1NUQUxMEK0nEjYKMURZRUlOR19IRUFEX0NMRUFOSU5HX01F", - "Q0hBTklTTV9NT1RPUl9VTkRFUlZPTFRBR0UQricSMAorRFlFSU5HX0hFQURf", - "Q0xFQU5JTkdfSEVBRF9NT1RPUl9NQUxGVU5DVElPThCvJxI0Ci9EWUVJTkdf", - "SEVBRF9DTEVBTklOR19IRUFEX01PVE9SX09WRVJURU1QRVJBVFVSRRCwJxIq", - "CiVEWUVJTkdfSEVBRF9DTEVBTklOR19IRUFEX01PVE9SX1NUQUxMELEnEjEK", - "LERZRUlOR19IRUFEX0NMRUFOSU5HX0hFQURfTU9UT1JfVU5ERVJWT0xUQUdF", - "ELInEicKIkRZRUlOR19IRUFEX1pPTkVfN19PVkVSVEVNUEVSQVRVUkUQsycS", - "JwoiRFlFSU5HX0hFQURfWk9ORV84X09WRVJURU1QRVJBVFVSRRC0JxInCiJE", - "WUVJTkdfSEVBRF9aT05FXzlfT1ZFUlRFTVBFUkFUVVJFELUnEigKI0RZRUlO", - "R19IRUFEX1pPTkVfMTBfT1ZFUlRFTVBFUkFUVVJFELYnEigKI0RZRUlOR19I", - "RUFEX1pPTkVfMTFfT1ZFUlRFTVBFUkFUVVJFELcnEigKI0RZRUlOR19IRUFE", - "X1pPTkVfMTJfT1ZFUlRFTVBFUkFUVVJFELgnEioKJURZRUlOR19IRUFEX1pP", - "TkVfN19VTkRFUlRFTVBFUkFUVVJFX0EQuScSKgolRFlFSU5HX0hFQURfWk9O", - "RV84X1VOREVSVEVNUEVSQVRVUkVfQRC6JxIqCiVEWUVJTkdfSEVBRF9aT05F", - "XzlfVU5ERVJURU1QRVJBVFVSRV9BELsnEisKJkRZRUlOR19IRUFEX1pPTkVf", - "MTBfVU5ERVJURU1QRVJBVFVSRV9BELwnEisKJkRZRUlOR19IRUFEX1pPTkVf", - "MTFfVU5ERVJURU1QRVJBVFVSRV9BEL0nEisKJkRZRUlOR19IRUFEX1pPTkVf", - "MTJfVU5ERVJURU1QRVJBVFVSRV9BEL4nEioKJURZRUlOR19IRUFEX1pPTkVf", - "N19VTkRFUlRFTVBFUkFUVVJFX0IQvycSKgolRFlFSU5HX0hFQURfWk9ORV84", - "X1VOREVSVEVNUEVSQVRVUkVfQhDAJxIqCiVEWUVJTkdfSEVBRF9aT05FXzlf", - "VU5ERVJURU1QRVJBVFVSRV9CEMEnEisKJkRZRUlOR19IRUFEX1pPTkVfMTBf", - "VU5ERVJURU1QRVJBVFVSRV9CEMInEisKJkRZRUlOR19IRUFEX1pPTkVfMTFf", - "VU5ERVJURU1QRVJBVFVSRV9CEMMnEisKJkRZRUlOR19IRUFEX1pPTkVfMTJf", - "VU5ERVJURU1QRVJBVFVSRV9CEMQnEiwKJ0RZRUlOR19IRUFEX1pPTkVfNl9D", - "VVJSRU5UX09VVF9PRl9SQU5HRRDFJxIsCidEWUVJTkdfSEVBRF9aT05FXzdf", - "Q1VSUkVOVF9PVVRfT0ZfUkFOR0UQxicSLAonRFlFSU5HX0hFQURfWk9ORV84", - "X0NVUlJFTlRfT1VUX09GX1JBTkdFEMcnEiwKJ0RZRUlOR19IRUFEX1pPTkVf", - "OV9DVVJSRU5UX09VVF9PRl9SQU5HRRDIJxItCihEWUVJTkdfSEVBRF9aT05F", - "XzEwX0NVUlJFTlRfT1VUX09GX1JBTkdFEMknEi0KKERZRUlOR19IRUFEX1pP", - "TkVfMTFfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQyicSLQooRFlFSU5HX0hFQURf", - "Wk9ORV8xMl9DVVJSRU5UX09VVF9PRl9SQU5HRRDLJxIqCiVEWUVJTkdfSEVB", - "RF9aT05FXzZfQ1VSUkVOVF9MT09QX0JSRUFLEMwnEioKJURZRUlOR19IRUFE", - "X1pPTkVfN19DVVJSRU5UX0xPT1BfQlJFQUsQzScSKgolRFlFSU5HX0hFQURf", - "Wk9ORV84X0NVUlJFTlRfTE9PUF9CUkVBSxDOJxIqCiVEWUVJTkdfSEVBRF9a", - "T05FXzlfQ1VSUkVOVF9MT09QX0JSRUFLEM8nEisKJkRZRUlOR19IRUFEX1pP", - "TkVfMTBfQ1VSUkVOVF9MT09QX0JSRUFLENAnEisKJkRZRUlOR19IRUFEX1pP", - "TkVfMTFfQ1VSUkVOVF9MT09QX0JSRUFLENEnEisKJkRZRUlOR19IRUFEX1pP", - "TkVfMTJfQ1VSUkVOVF9MT09QX0JSRUFLENInEikKJERZRUlOR19IRUFEX0JM", - "T1dFUl8xX09WRVJURU1QRVJBVFVSRRDTJxIpCiREWUVJTkdfSEVBRF9CTE9X", - "RVJfMl9PVkVSVEVNUEVSQVRVUkUQ1CcSLAonRFlFSU5HX0hFQURfQkxPV0VS", - "XzFfVU5ERVJURU1QRVJBVFVSRV9BENUnEiwKJ0RZRUlOR19IRUFEX0JMT1dF", - "Ul8yX1VOREVSVEVNUEVSQVRVUkVfQRDWJxIsCidEWUVJTkdfSEVBRF9CTE9X", - "RVJfMV9VTkRFUlRFTVBFUkFUVVJFX0IQ1ycSLAonRFlFSU5HX0hFQURfQkxP", - "V0VSXzJfVU5ERVJURU1QRVJBVFVSRV9CENgnEi4KKURZRUlOR19IRUFEX0JM", - "T1dFUl8xX0NVUlJFTlRfT1VUX09GX1JBTkdFENknEi4KKURZRUlOR19IRUFE", - "X0JMT1dFUl8yX0NVUlJFTlRfT1VUX09GX1JBTkdFENonEiwKJ0RZRUlOR19I", - "RUFEX0JMT1dFUl8xX0NVUlJFTlRfTE9PUF9CUkVBSxDbJxIsCidEWUVJTkdf", - "SEVBRF9CTE9XRVJfMl9DVVJSRU5UX0xPT1BfQlJFQUsQ3CcSJQogRFlFSU5H", - "X0hFQURfQkxPV0VSXzFfRkFOX1NUT1BQRUQQ3ScSJQogRFlFSU5HX0hFQURf", - "QkxPV0VSXzJfRkFOX1NUT1BQRUQQ3icSKQokRFlFSU5HX0hFQURfQkxPV0VS", - "XzFfRkFOX1JQTV9UT09fTE9XEN8nEikKJERZRUlOR19IRUFEX0JMT1dFUl8y", - "X0ZBTl9SUE1fVE9PX0xPVxDgJxIqCiVEWUVJTkdfSEVBRF9SSUdIVF9BQ1RV", - "QVRPUl9VUF9USU1FT1VUEOEnEikKJERZRUlOR19IRUFEX0xFRlRfQUNUVUFU", - "T1JfVVBfVElNRU9VVBDiJxIsCidEWUVJTkdfSEVBRF9SSUdIVF9BQ1RVQVRP", - "Ul9ET1dOX1RJTUVPVVQQ4ycSKwomRFlFSU5HX0hFQURfTEVGVF9BQ1RVQVRP", - "Ul9ET1dOX1RJTUVPVVQQ5CcSJwoiRFlFSU5HX0hFQURfQkxPV0VSXzFfRkxP", - "V19UT09fSElHSBDlJxInCiJEWUVJTkdfSEVBRF9CTE9XRVJfMl9GTE9XX1RP", - "T19ISUdIEOYnEiYKIURZRUlOR19IRUFEX0JMT1dFUl8xX0ZMT1dfVE9PX0xP", - "VxDnJxImCiFEWUVJTkdfSEVBRF9CTE9XRVJfMl9GTE9XX1RPT19MT1cQ6CcS", - "IAobRFlFSU5HX0hFQURfQVJDX0xJRF9JU19PUEVOEOknEiMKHkRZRUlOR19I", - "RUFEX1RVTk5FTF9MSURfSVNfT1BFThDqJxIeChlEWUVJTkdfSEVBRF9DT1ZF", - "Ul9JU19PUEVOEOsnEhoKFU1JWEVSX09WRVJURU1QRVJBVFVSRRDwLhIdChhN", - "SVhFUl9VTkRFUlRFTVBFUkFUVVJFX0EQ8S4SHQoYTUlYRVJfVU5ERVJURU1Q", - "RVJBVFVSRV9CEPIuEhkKFE1JWEVSX1RIRVJNQUxfQ1VUT0ZGEPMuEh8KGk1J", - "WEVSX0NVUlJFTlRfT1VUX09GX1JBTkdFEPQuEh0KGE1JWEVSX0NVUlJFTlRf", - "TE9PUF9CUkVBSxD1LhIdChhESVNQRU5TRVJfMV9PVkVSUFJFU1NVUkUQ2DYS", - "HQoYRElTUEVOU0VSXzJfT1ZFUlBSRVNTVVJFENk2Eh0KGERJU1BFTlNFUl8z", - "X09WRVJQUkVTU1VSRRDaNhIdChhESVNQRU5TRVJfNF9PVkVSUFJFU1NVUkUQ", - "2zYSHQoYRElTUEVOU0VSXzVfT1ZFUlBSRVNTVVJFENw2Eh0KGERJU1BFTlNF", - "Ul82X09WRVJQUkVTU1VSRRDdNhIdChhESVNQRU5TRVJfN19PVkVSUFJFU1NV", - "UkUQ3jYSHQoYRElTUEVOU0VSXzhfT1ZFUlBSRVNTVVJFEN82Eh4KGURJU1BF", - "TlNFUl8xX1VOREVSUFJFU1NVUkUQ4DYSHgoZRElTUEVOU0VSXzJfVU5ERVJQ", - "UkVTU1VSRRDhNhIeChlESVNQRU5TRVJfM19VTkRFUlBSRVNTVVJFEOI2Eh4K", - "GURJU1BFTlNFUl80X1VOREVSUFJFU1NVUkUQ4zYSHgoZRElTUEVOU0VSXzVf", - "VU5ERVJQUkVTU1VSRRDkNhIeChlESVNQRU5TRVJfNl9VTkRFUlBSRVNTVVJF", - "EOU2Eh4KGURJU1BFTlNFUl83X1VOREVSUFJFU1NVUkUQ5jYSHgoZRElTUEVO", - "U0VSXzhfVU5ERVJQUkVTU1VSRRDnNhIWChFESVNQRU5TRVJfMV9FTVBUWRDo", - "NhIWChFESVNQRU5TRVJfMl9FTVBUWRDpNhIWChFESVNQRU5TRVJfM19FTVBU", - "WRDqNhIWChFESVNQRU5TRVJfNF9FTVBUWRDrNhIWChFESVNQRU5TRVJfNV9F", - "TVBUWRDsNhIWChFESVNQRU5TRVJfNl9FTVBUWRDtNhIWChFESVNQRU5TRVJf", - "N19FTVBUWRDuNhIWChFESVNQRU5TRVJfOF9FTVBUWRDvNhIfChpESVNQRU5T", - "RVJfMV9SRUZJTExfRkFJTFVSRRDwNhIfChpESVNQRU5TRVJfMl9SRUZJTExf", - "RkFJTFVSRRDxNhIfChpESVNQRU5TRVJfM19SRUZJTExfRkFJTFVSRRDyNhIf", - "ChpESVNQRU5TRVJfNF9SRUZJTExfRkFJTFVSRRDzNhIfChpESVNQRU5TRVJf", - "NV9SRUZJTExfRkFJTFVSRRD0NhIfChpESVNQRU5TRVJfNl9SRUZJTExfRkFJ", - "TFVSRRD1NhIfChpESVNQRU5TRVJfN19SRUZJTExfRkFJTFVSRRD2NhIfChpE", - "SVNQRU5TRVJfOF9SRUZJTExfRkFJTFVSRRD3NhIiCh1ESVNQRU5TRVJfMV9N", - "T1RPUl9NQUxGVU5DVElPThD4NhIiCh1ESVNQRU5TRVJfMl9NT1RPUl9NQUxG", - "VU5DVElPThD5NhIiCh1ESVNQRU5TRVJfM19NT1RPUl9NQUxGVU5DVElPThD6", - "NhIiCh1ESVNQRU5TRVJfNF9NT1RPUl9NQUxGVU5DVElPThD7NhIiCh1ESVNQ", - "RU5TRVJfNV9NT1RPUl9NQUxGVU5DVElPThD8NhIiCh1ESVNQRU5TRVJfNl9N", - "T1RPUl9NQUxGVU5DVElPThD9NhIiCh1ESVNQRU5TRVJfN19NT1RPUl9NQUxG", - "VU5DVElPThD+NhIiCh1ESVNQRU5TRVJfOF9NT1RPUl9NQUxGVU5DVElPThD/", - "NhImCiFESVNQRU5TRVJfMV9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQgDcSJgoh", - "RElTUEVOU0VSXzJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEIE3EiYKIURJU1BF", - "TlNFUl8zX01PVE9SX09WRVJURU1QRVJBVFVSRRCCNxImCiFESVNQRU5TRVJf", - "NF9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQgzcSJgohRElTUEVOU0VSXzVfTU9U", - "T1JfT1ZFUlRFTVBFUkFUVVJFEIQ3EiYKIURJU1BFTlNFUl82X01PVE9SX09W", - "RVJURU1QRVJBVFVSRRCFNxImCiFESVNQRU5TRVJfN19NT1RPUl9PVkVSVEVN", - "UEVSQVRVUkUQhjcSJgohRElTUEVOU0VSXzhfTU9UT1JfT1ZFUlRFTVBFUkFU", - "VVJFEIc3EhwKF0RJU1BFTlNFUl8xX01PVE9SX1NUQUxMEIg3EhwKF0RJU1BF", - "TlNFUl8yX01PVE9SX1NUQUxMEIk3EhwKF0RJU1BFTlNFUl8zX01PVE9SX1NU", - "QUxMEIo3EhwKF0RJU1BFTlNFUl80X01PVE9SX1NUQUxMEIs3EhwKF0RJU1BF", - "TlNFUl81X01PVE9SX1NUQUxMEIw3EhwKF0RJU1BFTlNFUl82X01PVE9SX1NU", - "QUxMEI03EhwKF0RJU1BFTlNFUl83X01PVE9SX1NUQUxMEI43EhwKF0RJU1BF", - "TlNFUl84X01PVE9SX1NUQUxMEI83EiMKHkRJU1BFTlNFUl8xX01PVE9SX1VO", - "REVSVk9MVEFHRRCQNxIjCh5ESVNQRU5TRVJfMl9NT1RPUl9VTkRFUlZPTFRB", - "R0UQkTcSIwoeRElTUEVOU0VSXzNfTU9UT1JfVU5ERVJWT0xUQUdFEJI3EiMK", - "HkRJU1BFTlNFUl80X01PVE9SX1VOREVSVk9MVEFHRRCTNxIjCh5ESVNQRU5T", - "RVJfNV9NT1RPUl9VTkRFUlZPTFRBR0UQlDcSIwoeRElTUEVOU0VSXzZfTU9U", - "T1JfVU5ERVJWT0xUQUdFEJU3EiMKHkRJU1BFTlNFUl83X01PVE9SX1VOREVS", - "Vk9MVEFHRRCWNxIjCh5ESVNQRU5TRVJfOF9NT1RPUl9VTkRFUlZPTFRBR0UQ", - "lzcSIQocRElTUEVOU0VSXzFfVVBQRVJfSEFSRF9MSU1JVBCYNxIhChxESVNQ", - "RU5TRVJfMl9VUFBFUl9IQVJEX0xJTUlUEJk3EiEKHERJU1BFTlNFUl8zX1VQ", - "UEVSX0hBUkRfTElNSVQQmjcSIQocRElTUEVOU0VSXzRfVVBQRVJfSEFSRF9M", - "SU1JVBCbNxIhChxESVNQRU5TRVJfNV9VUFBFUl9IQVJEX0xJTUlUEJw3EiEK", - "HERJU1BFTlNFUl82X1VQUEVSX0hBUkRfTElNSVQQnTcSIQocRElTUEVOU0VS", - "XzdfVVBQRVJfSEFSRF9MSU1JVBCeNxIhChxESVNQRU5TRVJfOF9VUFBFUl9I", - "QVJEX0xJTUlUEJ83EiEKHERJU1BFTlNFUl8xX0xPV0VSX0hBUkRfTElNSVQQ", - "oDcSIQocRElTUEVOU0VSXzJfTE9XRVJfSEFSRF9MSU1JVBChNxIhChxESVNQ", - "RU5TRVJfM19MT1dFUl9IQVJEX0xJTUlUEKI3EiEKHERJU1BFTlNFUl80X0xP", - "V0VSX0hBUkRfTElNSVQQozcSIQocRElTUEVOU0VSXzVfTE9XRVJfSEFSRF9M", - "SU1JVBCkNxIhChxESVNQRU5TRVJfNl9MT1dFUl9IQVJEX0xJTUlUEKU3EiEK", - "HERJU1BFTlNFUl83X0xPV0VSX0hBUkRfTElNSVQQpjcSIQocRElTUEVOU0VS", - "XzhfTE9XRVJfSEFSRF9MSU1JVBCnNxIeChlESVNQRU5TRVJfMV9ISUdIX1BS", - "RVNTVVJFEKg3Eh4KGURJU1BFTlNFUl8yX0hJR0hfUFJFU1NVUkUQqTcSHgoZ", - "RElTUEVOU0VSXzNfSElHSF9QUkVTU1VSRRCqNxIeChlESVNQRU5TRVJfNF9I", - "SUdIX1BSRVNTVVJFEKs3Eh4KGURJU1BFTlNFUl81X0hJR0hfUFJFU1NVUkUQ", - "rDcSHgoZRElTUEVOU0VSXzZfSElHSF9QUkVTU1VSRRCtNxIeChlESVNQRU5T", - "RVJfN19ISUdIX1BSRVNTVVJFEK43Eh4KGURJU1BFTlNFUl84X0hJR0hfUFJF", - "U1NVUkUQrzcSHQoYRElTUEVOU0VSXzlfT1ZFUlBSRVNTVVJFELA3Eh4KGURJ", - "U1BFTlNFUl85X1VOREVSUFJFU1NVUkUQsTcSHgoZRElTUEVOU0VSXzEwX09W", - "RVJQUkVTU1VSRRCyNxIfChpESVNQRU5TRVJfMTBfVU5ERVJQUkVTU1VSRRCz", - "NxIkCh9ESVNQRU5TRVJfOV9NT1RPUl8xX01BTEZVTkNUSU9OELQ3EiQKH0RJ", - "U1BFTlNFUl85X01PVE9SXzJfTUFMRlVOQ1RJT04QtTcSJQogRElTUEVOU0VS", - "XzEwX01PVE9SXzFfTUFMRlVOQ1RJT04QtjcSJQogRElTUEVOU0VSXzEwX01P", - "VE9SXzJfTUFMRlVOQ1RJT04QtzcSGQoUTUlEX1RBTktfMV9MT1dfTEVWRUwQ", - "wD4SGQoUTUlEX1RBTktfMl9MT1dfTEVWRUwQwT4SGQoUTUlEX1RBTktfM19M", - "T1dfTEVWRUwQwj4SGQoUTUlEX1RBTktfNF9MT1dfTEVWRUwQwz4SGQoUTUlE", - "X1RBTktfNV9MT1dfTEVWRUwQxD4SGQoUTUlEX1RBTktfNl9MT1dfTEVWRUwQ", - "xT4SGQoUTUlEX1RBTktfN19MT1dfTEVWRUwQxj4SGQoUTUlEX1RBTktfOF9M", - "T1dfTEVWRUwQxz4SFQoQTUlEX1RBTktfMV9FTVBUWRDIPhIVChBNSURfVEFO", - "S18yX0VNUFRZEMk+EhUKEE1JRF9UQU5LXzNfRU1QVFkQyj4SFQoQTUlEX1RB", - "TktfNF9FTVBUWRDLPhIVChBNSURfVEFOS181X0VNUFRZEMw+EhUKEE1JRF9U", - "QU5LXzZfRU1QVFkQzT4SFQoQTUlEX1RBTktfN19FTVBUWRDOPhIVChBNSURf", - "VEFOS184X0VNUFRZEM8+EhgKE01JRF9UQU5LXzFfT1ZFUkZMT1cQ0D4SGAoT", - "TUlEX1RBTktfMl9PVkVSRkxPVxDRPhIYChNNSURfVEFOS18zX09WRVJGTE9X", - "ENI+EhgKE01JRF9UQU5LXzRfT1ZFUkZMT1cQ0z4SGAoTTUlEX1RBTktfNV9P", - "VkVSRkxPVxDUPhIYChNNSURfVEFOS182X09WRVJGTE9XENU+EhgKE01JRF9U", - "QU5LXzdfT1ZFUkZMT1cQ1j4SGAoTTUlEX1RBTktfOF9PVkVSRkxPVxDXPhIc", - "ChdNSURfVEFOS18xX0ZJTExfVElNRU9VVBDYPhIcChdNSURfVEFOS18yX0ZJ", - "TExfVElNRU9VVBDZPhIcChdNSURfVEFOS18zX0ZJTExfVElNRU9VVBDaPhIc", - "ChdNSURfVEFOS180X0ZJTExfVElNRU9VVBDbPhIcChdNSURfVEFOS181X0ZJ", - "TExfVElNRU9VVBDcPhIcChdNSURfVEFOS182X0ZJTExfVElNRU9VVBDdPhIc", - "ChdNSURfVEFOS183X0ZJTExfVElNRU9VVBDePhIcChdNSURfVEFOS184X0ZJ", - "TExfVElNRU9VVBDfPhIZChRNSURfVEFOS185X0xPV19MRVZFTBDgPhIVChBN", - "SURfVEFOS185X0VNUFRZEOE+EhgKE01JRF9UQU5LXzlfT1ZFUkZMT1cQ4j4S", - "HAoXTUlEX1RBTktfOV9GSUxMX1RJTUVPVVQQ4z4SGgoVTUlEX1RBTktfMTBf", - "TE9XX0xFVkVMEOQ+EhYKEU1JRF9UQU5LXzEwX0VNUFRZEOU+EhkKFE1JRF9U", - "QU5LXzEwX09WRVJGTE9XEOY+Eh0KGE1JRF9UQU5LXzEwX0ZJTExfVElNRU9V", - "VBDnPhIdChhBSVJfRklMVEVSX05PVF9JTlNUQUxMRUQQqEYSFwoSQUlSX0ZJ", - "TFRFUl9DTE9HR0VEEKlGEiUKIFdBU1RFX0NPTlRBSU5FUl9FTVBUWUlOR19U", - "SU1FT1VUEKpGEhQKD05PX0FJUl9QUkVTU1VSRRCrRhIdChhXQVNURV9DT05U", - "QUlORVJfT1ZFUkZMT1cQrEYSGgoVVk9DX1NFTlNPUl9BTEFSTV9USU1FEK1G", - "EhgKE0NISUxMRVJfRFJZX0NPTlRBQ1QQrkYSGgoVSU5TVUZGSUNJRU5UX0FJ", - "Ul9GTE9XEK9GEhsKFlZPQ19TRU5TT1JfQUxBUk1fU0xPUEUQsEYSHQoYUFJF", - "X0NPT0xFUl9GQU5fMV9TVE9QUEVEELFGEh0KGFBSRV9DT09MRVJfRkFOXzJf", - "U1RPUFBFRBCyRhIZChRDT09MRVJfRkFOXzFfU1RPUFBFRBCzRhIZChRDT09M", - "RVJfRkFOXzJfU1RPUFBFRBC0RhIZChRDT09MRVJfRkFOXzNfU1RPUFBFRBC1", - "RhIZChRDT09MRVJfRkFOXzRfU1RPUFBFRBC2RhIhChxQUkVfQ09PTEVSX0ZB", - "Tl8xX1JQTV9UT09fTE9XELdGEiEKHFBSRV9DT09MRVJfRkFOXzJfUlBNX1RP", - "T19MT1cQuEYSHQoYQ09PTEVSX0ZBTl8xX1JQTV9UT09fTE9XELlGEh0KGENP", - "T0xFUl9GQU5fMl9SUE1fVE9PX0xPVxC6RhIdChhDT09MRVJfRkFOXzNfUlBN", - "X1RPT19MT1cQu0YSHQoYQ09PTEVSX0ZBTl80X1JQTV9UT09fTE9XELxGEiAK", - "G0NPT0xFUl9URU1QRVJBVFVSRV9UT09fSElHSBC9RhIfChpDT09MRVJfVEVN", - "UEVSQVRVUkVfVE9PX0xPVxC+RhIqCiVJTktfQ0FSVFJJREdFX1BSRVNFTkNF", - "X1NFTlNPUl9USU1FT1VUEJBOEh8KGklOS19DQVJUUklER0VfUkZJRF9USU1F", - "T1VUEJFOEiEKHE5PX1dBU1RFX0NBUlRSSURHRV9BVkFJTEFCTEUQkk4SHgoZ", - "QUxMX1dBU1RFX0NBUlRSSURHRVNfRlVMTBCTThIsCidXQVNURV9DQVJUUklE", - "R0VfUFJFU0VOQ0VfU0VOU09SX1RJTUVPVVQQlE4SIQocV0FTVEVfQ0FSVFJJ", - "REdFX1JGSURfVElNRU9VVBCVThIqCiVJTktfQ0FSVFJJREdFX1JGSURfVEFH", - "X0NBTk5PVF9CRV9SRUFEEJZOEiwKJ1dBU1RFX0NBUlRSSURHRV9SRklEX1RB", - "R19DQU5OT1RfQkVfUkVBRBCXThIoCiNJTktfQ0FSVFJJREdFX1JGSURfVEFH", - "X0lTX05PVF9WQUxJRBCYThIqCiVXQVNURV9DQVJUUklER0VfUkZJRF9UQUdf", - "SVNfTk9UX1ZBTElEEJlOEigKI0lOS19DQVJUUklER0VfQVVUSEVOVElDQVRJ", - "T05fRkFJTEVEEJpOEioKJVdBU1RFX0NBUlRSSURHRV9BVVRIRU5USUNBVElP", - "Tl9GQUlMRUQQm04SHQoYSU5LX0NBUlRSSURHRV9JU19CTE9DS0VEEJxOEh8K", - "GldBU1RFX0NBUlRSSURHRV9JU19CTE9DS0VEEJ1OEi0KKElOS19DQVJUUklE", - "R0VfUkZJRF9UQUdfQ0FOTk9UX0JFX1VQREFURUQQnk4SLwoqV0FTVEVfQ0FS", - "VFJJREdFX1JGSURfVEFHX0NBTk5PVF9CRV9VUERBVEVEEJ9OEiAKG0lOS19J", - "Tl9DQVJUUklER0VfSVNfRVhQSVJFRBCgThIUCg5FX1JFUVVFU1RfU0VOVBCI", - "lQYSGQoTRV9SRVNQT05TRV9SRUNFSVZFRBCJlQYSFgoQRV9SRVFVRVNUX0ZB", - "SUxFRBCKlQYSHQoXRV9BUFBMSUNBVElPTl9FWENFUFRJT04Qi5UGEh8KGUVf", - "QVBQTElDQVRJT05fSU5GT1JNQVRJT04QjJUGEhsKFUVfQVBQTElDQVRJT05f", - "U1RBUlRFRBCNlQYSHgoYRV9BUFBMSUNBVElPTl9URVJNSU5BVEVEEI6VBhIZ", - "ChNFX1JFQ09SRElOR19TVEFSVEVEEI+VBhIZChNFX1JFQ09SRElOR19TVE9Q", - "UEVEEJCVBhISCgxFX0pPQl9TVEFUVVMQkZUGEhMKDUVfSk9CX1NUQVJURUQQ", - "kpUGEhMKDUVfSk9CX0FCT1JURUQQk5UGEhIKDEVfSk9CX0ZBSUxFRBCUlQYS", - "FQoPRV9KT0JfQ09NUExFVEVEEJWVBhIcChZFX1BPV0VSX1VQX0JJVF9GQUlM", - "VVJFEPCcBhIhChtFX01BQ0hJTkVfU1RBVEVfTk9fQ0ZHX0ZJTEUQ8ZwGEiYK", - "IEVfTUFDSElORV9TVEFURV9IV19DT05GSUdfRkFJTEVEEPKcBhIjCh1FX01B", - "Q0hJTkVfU1RBVEVfTk9fRkxBU0hfRklMRRDznAYSJAoeRV9NQUNISU5FX1NU", - "QVRFX05PX0FMQVJNU19GSUxFEPScBhIlCh9FX0VNRVJHRU5DWV9QVVNIX0JV", - "VFRPTl9QUkVTU0VEENmkBhIXChFFX0RSWUVSX0RPT1JfT1BFThDapAYSHAoW", - "RV9EUllFUl9USEVSTUFMX0NVVE9GRhDbpAYSHQoXRV9UVU5ORUxfVEhFUk1B", - "TF9DVVRPRkYQ3KQGEiIKHEVfRFlFSU5HX0hFQURfVEhFUk1BTF9DVVRPRkYQ", - "3aQGEhwKFkVfTUlYRVJfVEhFUk1BTF9DVVRPRkYQ3qQGEiIKHEVfTFVCUklD", - "QVRJT05fVEhFUk1BTF9DVVRPRkYQ36QGEh4KGEVfVFVOTkVMX0FJUl9GTE9X", - "X1NXSVRDSBDgpAYSGwoVRV9XSFNfQUlSX0ZMT1dfU1dJVENIEOGkBhIeChhF", - "X0FJUl9GSUxURVJfTk9UX1BSRVNFTlQQ4qQGEhgKEkVfVU5JTlRFTkRFRF9S", - "RVNFVBDArAYSHgoYRV9TRF9DQVJEX05PVF9SRVNQT05ESU5HEMGsBhIkCh5F", - "X05PX0NPTU1VTklDQVRJT05fV0lUSF9CVFNSXzEQqLQGEiQKHkVfTk9fQ09N", - "TVVOSUNBVElPTl9XSVRIX0JUU1JfMhCptAYSJAoeRV9OT19DT01NVU5JQ0FU", - "SU9OX1dJVEhfQlRTUl8zEKq0BhIkCh5FX05PX0NPTU1VTklDQVRJT05fV0lU", - "SF9CVFNSXzQQq7QGEikKI0VfTk9fQ09NTVVOSUNBVElPTl9XSVRIX0RSWUVS", - "X0JPQVJEEKy0BhIvCilFX05PX0NPTU1VTklDQVRJT05fV0lUSF9EWUVJTkdf", - "SEVBRF9CT0FSRBCttAYSLAomRV9OT19DT01NVU5JQ0FUSU9OX1dJVEhfV0lO", - "REVSXzFfQk9BUkQQrrQGEiwKJkVfTk9fQ09NTVVOSUNBVElPTl9XSVRIX1dJ", - "TkRFUl8yX0JPQVJEEK+0BhIsCiZFX05PX0NPTU1VTklDQVRJT05fV0lUSF9X", - "SU5ERVJfM19CT0FSRBCwtAYSLAomRV9OT19DT01NVU5JQ0FUSU9OX1dJVEhf", - "V0lOREVSXzRfQk9BUkQQsbQGEikKI0VfTk9fQ09NTVVOSUNBVElPTl9XSVRI", - "X0lEU18xX0JPQVJEELK0BhIpCiNFX05PX0NPTU1VTklDQVRJT05fV0lUSF9J", - "RFNfMl9CT0FSRBCztAYSKQojRV9OT19DT01NVU5JQ0FUSU9OX1dJVEhfSURT", - "XzNfQk9BUkQQtLQGEikKI0VfTk9fQ09NTVVOSUNBVElPTl9XSVRIX0lEU180", - "X0JPQVJEELW0BhIsCiZFX05PX0NPTU1VTklDQVRJT05fV0lUSF9NSURfVEFO", - "S19CT0FSRBC2tAYSJwohRV9OT19DT01NVU5JQ0FUSU9OX1dJVEhfV0hTX0JP", - "QVJEELe0BhItCidFX05PX0NPTU1VTklDQVRJT05fV0lUSF9MVUJSSUNBTlRf", - "Qk9BUkQQuLQGEigKIkVfTk9fQ09NTVVOSUNBVElPTl9XSVRIX01BSU5fQk9B", - "UkQQubQGEhYKEEVfTEVGVF9ET09SX09QRU4QkLwGEhcKEUVfUklHSFRfRE9P", - "Ul9PUEVOEJG8BhIVCg9FX1RPUF9ET09SX09QRU4QkrwGEhoKFEVfVFVOTkVM", - "X0xJRF9JU19PUEVOEJO8BhIXChFFX0FSQ19MSURfSVNfT1BFThCUvAYSGgoU", - "RV9CVFNSXzFfTUFMRlVOQ1RJT04Q+MMGEhoKFEVfQlRTUl8yX01BTEZVTkNU", - "SU9OEPnDBhIaChRFX0JUU1JfM19NQUxGVU5DVElPThD6wwYSGgoURV9CVFNS", - "XzRfTUFMRlVOQ1RJT04Q+8MGEikKI0VfVEVOU0lPTl9JTl9CVFNSXzFfSVNf", - "T1VUX09GX1JBTkdFEPzDBhIpCiNFX1RFTlNJT05fSU5fQlRTUl8yX0lTX09V", - "VF9PRl9SQU5HRRD9wwYSKQojRV9URU5TSU9OX0lOX0JUU1JfM19JU19PVVRf", - "T0ZfUkFOR0UQ/sMGEikKI0VfVEVOU0lPTl9JTl9CVFNSXzRfSVNfT1VUX09G", - "X1JBTkdFEP/DBhIUCg5FX1RIUkVBRF9CUkVBSxCAxAYSKAoiRV9EQU5DRVJf", - "MV9URU5TSU9OX0NPTlRST0xfRkFJTFVSRRCBxAYSKAoiRV9EQU5DRVJfMl9U", - "RU5TSU9OX0NPTlRST0xfRkFJTFVSRRCCxAYSKAoiRV9EQU5DRVJfM19URU5T", - "SU9OX0NPTlRST0xfRkFJTFVSRRCDxAYSKAoiRV9EQU5DRVJfNF9URU5TSU9O", - "X0NPTlRST0xfRkFJTFVSRRCExAYSHAoWRV9USFJFQURfTE9BRElOR19FUlJP", - "UhCFxAYSGwoVRV9HUklQUEVSX01BTEZVTkNUSU9OEIbEBhIWChBFX1RIUkVB", - "RF9NSVNTSU5HEIfEBhIqCiRFX0RZRUlOR19IRUFEX1pPTkVfMV9PVkVSVEVN", - "UEVSQVRVUkUQ4MsGEioKJEVfRFlFSU5HX0hFQURfWk9ORV8yX09WRVJURU1Q", - "RVJBVFVSRRDhywYSKgokRV9EWUVJTkdfSEVBRF9aT05FXzNfT1ZFUlRFTVBF", - "UkFUVVJFEOLLBhIfChlFX01JWEVSXzFfT1ZFUlRFTVBFUkFUVVJFEOPLBhIf", - "ChlFX01JWEVSXzJfT1ZFUlRFTVBFUkFUVVJFEOTLBhIeChhFX1RVTk5FTF9P", - "VkVSVEVNUEVSQVRVUkUQ5csGEiYKIEVfRFJZRVJfSEVBVEVSXzFfT1ZFUlRF", - "TVBFUkFUVVJFEOfLBhImCiBFX0RSWUVSX0hFQVRFUl8yX09WRVJURU1QRVJB", - "VFVSRRDoywYSJgogRV9EUllFUl9IRUFURVJfM19PVkVSVEVNUEVSQVRVUkUQ", - "6csGEiEKG0VfTFVCUklDQU5UX09WRVJURU1QRVJBVFVSRRDqywYSLQonRV9E", - "WUVJTkdfSEVBRF9aT05FXzFfVU5ERVJURU1QRVJBVFVSRV9BEOvLBhItCidF", - "X0RZRUlOR19IRUFEX1pPTkVfMl9VTkRFUlRFTVBFUkFUVVJFX0EQ7MsGEi0K", - "J0VfRFlFSU5HX0hFQURfWk9ORV8zX1VOREVSVEVNUEVSQVRVUkVfQRDtywYS", - "IgocRV9NSVhFUl8xX1VOREVSVEVNUEVSQVRVUkVfQRDuywYSIgocRV9NSVhF", - "Ul8yX1VOREVSVEVNUEVSQVRVUkVfQRDvywYSIQobRV9UVU5ORUxfVU5ERVJU", - "RU1QRVJBVFVSRV9BEPDLBhIpCiNFX0RSWUVSX0hFQVRFUl8xX1VOREVSVEVN", - "UEVSQVRVUkVfQRDxywYSKQojRV9EUllFUl9IRUFURVJfMl9VTkRFUlRFTVBF", - "UkFUVVJFX0EQ8ssGEikKI0VfRFJZRVJfSEVBVEVSXzNfVU5ERVJURU1QRVJB", - "VFVSRV9BEPPLBhIkCh5FX0xVQlJJQ0FOVF9VTkRFUlRFTVBFUkFUVVJFX0EQ", - "9MsGEiwKJkVfRFlFSU5HX0hFQURfWk9ORV8xX1VORFJURU1QRVJBVFVSRV9C", - "EPXLBhItCidFX0RZRUlOR19IRUFEX1pPTkVfMl9VTkRFUlRFTVBFUkFUVVJF", - "X0IQ9ssGEi0KJ0VfRFlFSU5HX0hFQURfWk9ORV8zX1VOREVSVEVNUEVSQVRV", - "UkVfQhD3ywYSIgocRV9NSVhFUl8xX1VOREVSVEVNUEVSQVRVUkVfQhD4ywYS", - "IgocRV9NSVhFUl8yX1VOREVSVEVNUEVSQVRVUkVfQhD5ywYSIQobRV9UVU5O", - "RUxfVU5ERVJURU1QRVJBVFVSRV9CEPrLBhIpCiNFX0RSWUVSX0hFQVRFUl8x", - "X1VOREVSVEVNUEVSQVRVUkVfQhD7ywYSKQojRV9EUllFUl9IRUFURVJfMl9V", - "TkRFUlRFTVBFUkFUVVJFX0IQ/MsGEikKI0VfRFJZRVJfSEVBVEVSXzNfVU5E", - "RVJURU1QRVJBVFVSRV9CEP3LBhIkCh5FX0xVQlJJQ0FOVF9VTkRFUlRFTVBF", - "UkFUVVJFX0IQ/ssGEiwKJkVfV0hTXzFfQ09PTEVSX1RFTVBFUkFUVVJFX0lT", - "X1RPT19ISUdIEP/LBhIrCiVFX1dIU18xX0NPT0xFUl9URU1QRVJBVFVSRV9J", - "U19UT09fTE9XEIDMBhIsCiZFX1dIU18yX0NPT0xFUl9URU1QRVJBVFVSRV9J", - "U19UT09fSElHSBCBzAYSKwolRV9XSFNfMl9DT09MRVJfVEVNUEVSQVRVUkVf", - "SVNfVE9PX0xPVxCCzAYSJQofRV9URU1QRVJBVFVSRV9NRUFTVVJFTUVOVF9F", - "UlJPUhCDzAYSLwopRV9EWUVJTkdfSEVBRF9aT05FXzFfQ1VSUkVOVF9PVVRf", - "T0ZfUkFOR0UQyNMGEi8KKUVfRFlFSU5HX0hFQURfWk9ORV8yX0NVUlJFTlRf", - "T1VUX09GX1JBTkdFEMnTBhIvCilFX0RZRUlOR19IRUFEX1pPTkVfM19DVVJS", - "RU5UX09VVF9PRl9SQU5HRRDK0wYSKwolRV9NSVhFUl8xX0hFQVRFUl9DVVJS", - "RU5UX09VVF9PRl9SQU5HRRDL0wYSKwolRV9NSVhFUl8yX0hFQVRFUl9DVVJS", - "RU5UX09VVF9PRl9SQU5HRRDM0wYSKgokRV9UVU5ORUxfSEVBVEVSX0NVUlJF", - "TlRfT1VUX09GX1JBTkdFEM3TBhIrCiVFX0RSWUVSX0hFQVRFUl8xX0NVUlJF", - "TlRfT1VUX09GX1JBTkdFEM7TBhIrCiVFX0RSWUVSX0hFQVRFUl8yX0NVUlJF", - "TlRfT1VUX09GX1JBTkdFEM/TBhIrCiVFX0RSWUVSX0hFQVRFUl8zX0NVUlJF", - "TlRfT1VUX09GX1JBTkdFENDTBhItCidFX0xVQlJJQ0FOVF9IRUFURVJfQ1VS", - "UkVOVF9PVVRfT0ZfUkFOR0UQ0dMGEi0KJ0VfRFlFSU5HX0hFQURfWk9ORV8x", - "X0NVUlJFTlRfTE9PUF9CUkVBSxDS0wYSLQonRV9EWUVJTkdfSEVBRF9aT05F", - "XzJfQ1VSUkVOVF9MT09QX0JSRUFLENPTBhItCidFX0RZRUlOR19IRUFEX1pP", - "TkVfM19DVVJSRU5UX0xPT1BfQlJFQUsQ1NMGEikKI0VfTUlYRVJfMV9IRUFU", - "RVJfQ1VSUkVOVF9MT09QX0JSRUFLENXTBhIpCiNFX01JWEVSXzJfSEVBVEVS", - "X0NVUlJFTlRfTE9PUF9CUkVBSxDW0wYSKAoiRV9UVU5ORUxfSEVBVEVSX0NV", - "UlJFTlRfTE9PUF9CUkVBSxDX0wYSKQojRV9EUllFUl9IRUFURVJfMV9DVVJS", - "RU5UX0xPT1BfQlJFQUsQ2NMGEikKI0VfRFJZRVJfSEVBVEVSXzJfQ1VSUkVO", - "VF9MT09QX0JSRUFLENnTBhIpCiNFX0RSWUVSX0hFQVRFUl8zX0NVUlJFTlRf", - "TE9PUF9CUkVBSxDa0wYSKwolRV9MVUJSSUNBTlRfSEVBVEVSX0NVUlJFTlRf", - "TE9PUF9CUkVBSxDb0wYSJAoeRV9EUllFUl9NQUlOX01PVE9SX01BTEZVTkNU", - "SU9OELDbBhIuCihFX0RSWUVSX1RIUkVBRF9MT0FESU5HX01PVE9SX01BTEZV", - "TkNUSU9OELHbBhIiChxFX1dJTkRFUl8xX01PVE9SX01BTEZVTkNUSU9OELLb", - "BhIiChxFX1dJTkRFUl8yX01PVE9SX01BTEZVTkNUSU9OELPbBhIiChxFX1dJ", - "TkRFUl8zX01PVE9SX01BTEZVTkNUSU9OELTbBhIiChxFX1dJTkRFUl80X01P", - "VE9SX01BTEZVTkNUSU9OELXbBhIiChxFX0RBTkNFUl8xX01PVE9SX01BTEZV", - "TkNUSU9OELbbBhIiChxFX0RBTkNFUl8yX01PVE9SX01BTEZVTkNUSU9OELfb", - "BhIiChxFX0RBTkNFUl8zX01PVE9SX01BTEZVTkNUSU9OELjbBhIiChxFX0RB", - "TkNFUl80X01PVE9SX01BTEZVTkNUSU9OELnbBhItCidFX0RZRUlOR19IRUFE", - "X0NMRUFORVJfTU9UT1JfTUFMRlVOQ1RJT04QutsGEhwKFkVfRFJZRVJfQkxP", - "V0VSX1NUT1BQRUQQmOMGEiEKG0VfRFJZRVJfQkxPV0VSX0ZMT1dfVE9PX0xP", - "VxCZ4wYSIgocRV9UVU5ORUxfQkxPV0VSX0ZMT1dfVE9PX0xPVxCa4wYSIAoa", - "RV9JTlNVRkZJQ0lFTlRfV0hTX1NVQ1RJT04Qm+MGEhoKFEVfQUlSX0ZJTFRF", - "Ul9DTE9HR0VEEJzjBhIkCh5FX0lOS19MSU5FXzFfUFJFU1NVUkVfVE9PX0hJ", - "R0gQgOsGEiQKHkVfSU5LX0xJTkVfMl9QUkVTU1VSRV9UT09fSElHSBCB6wYS", - "JAoeRV9JTktfTElORV8zX1BSRVNTVVJFX1RPT19ISUdIEILrBhIkCh5FX0lO", - "S19MSU5FXzRfUFJFU1NVUkVfVE9PX0hJR0gQg+sGEiQKHkVfSU5LX0xJTkVf", - "NV9QUkVTU1VSRV9UT09fSElHSBCE6wYSJAoeRV9JTktfTElORV82X1BSRVNT", - "VVJFX1RPT19ISUdIEIXrBhIkCh5FX0lOS19MSU5FXzdfUFJFU1NVUkVfVE9P", - "X0hJR0gQhusGEiQKHkVfSU5LX0xJTkVfOF9QUkVTU1VSRV9UT09fSElHSBCH", - "6wYSJAoeRV9JTktfTElORV85X1BSRVNTVVJFX1RPT19ISUdIEIjrBhIlCh9F", - "X0lOS19MSU5FXzEwX1BSRVNTVVJFX1RPT19ISUdIEInrBhIjCh1FX0lOS19M", - "SU5FXzFfUFJFU1NVUkVfVE9PX0xPVxCK6wYSIwodRV9JTktfTElORV8yX1BS", - "RVNTVVJFX1RPT19MT1cQi+sGEiMKHUVfSU5LX0xJTkVfM19QUkVTU1VSRV9U", - "T09fTE9XEIzrBhIjCh1FX0lOS19MSU5FXzRfUFJFU1NVUkVfVE9PX0xPVxCN", - "6wYSIwodRV9JTktfTElORV81X1BSRVNTVVJFX1RPT19MT1cQjusGEiMKHUVf", - "SU5LX0xJTkVfNl9QUkVTU1VSRV9UT09fTE9XEI/rBhIjCh1FX0lOS19MSU5F", - "XzdfUFJFU1NVUkVfVE9PX0xPVxCQ6wYSIwodRV9JTktfTElORV84X1BSRVNT", - "VVJFX1RPT19MT1cQkesGEiMKHUVfSU5LX0xJTkVfOV9QUkVTU1VSRV9UT09f", - "TE9XEJLrBhIkCh5FX0lOS19MSU5FXzEwX1BSRVNTVVJFX1RPT19MT1cQk+sG", - "Eh4KGEVfSU5LX1BVTVBfMV9NQUxGVU5DVElPThCU6wYSHgoYRV9JTktfUFVN", - "UF8yX01BTEZVTkNUSU9OEJXrBhIeChhFX0lOS19QVU1QXzNfTUFMRlVOQ1RJ", - "T04QlusGEh4KGEVfSU5LX1BVTVBfNF9NQUxGVU5DVElPThCX6wYSHgoYRV9J", - "TktfUFVNUF81X01BTEZVTkNUSU9OEJjrBhIeChhFX0lOS19QVU1QXzZfTUFM", - "RlVOQ1RJT04QmesGEh4KGEVfSU5LX1BVTVBfN19NQUxGVU5DVElPThCa6wYS", - "HgoYRV9JTktfUFVNUF84X01BTEZVTkNUSU9OEJvrBhIeChhFX0lOS19QVU1Q", - "XzlfTUFMRlVOQ1RJT04QnOsGEh8KGUVfSU5LX1BVTVBfMTBfTUFMRlVOQ1RJ", - "T04QnesGEh8KGUVfSU5LX1BVTVBfMTFfTUFMRlVOQ1RJT04QnusGEh8KGUVf", - "SU5LX1BVTVBfMTJfTUFMRlVOQ1RJT04Qn+sGEh8KGUVfSU5LX1BVTVBfMTNf", - "TUFMRlVOQ1RJT04QoOsGEh8KGUVfSU5LX1BVTVBfMTRfTUFMRlVOQ1RJT04Q", - "oesGEh8KGUVfSU5LX1BVTVBfMTVfTUFMRlVOQ1RJT04QousGEiUKH0VfSU5L", - "X0xJTkVfMV9NSURfVEFOS19MT1dfTEVWRUwQo+sGEiUKH0VfSU5LX0xJTkVf", - "Ml9NSURfVEFOS19MT1dfTEVWRUwQpOsGEiUKH0VfSU5LX0xJTkVfM19NSURf", - "VEFOS19MT1dfTEVWRUwQpesGEiUKH0VfSU5LX0xJTkVfNF9NSURfVEFOS19M", - "T1dfTEVWRUwQpusGEiUKH0VfSU5LX0xJTkVfNV9NSURfVEFOS19MT1dfTEVW", - "RUwQp+sGEiUKH0VfSU5LX0xJTkVfNl9NSURfVEFOS19MT1dfTEVWRUwQqOsG", - "EiUKH0VfSU5LX0xJTkVfN19NSURfVEFOS19MT1dfTEVWRUwQqesGEiUKH0Vf", - "SU5LX0xJTkVfOF9NSURfVEFOS19MT1dfTEVWRUwQqusGEiUKH0VfSU5LX0xJ", - "TkVfOV9NSURfVEFOS19MT1dfTEVWRUwQq+sGEiYKIEVfSU5LX0xJTkVfMTBf", - "TUlEX1RBTktfTE9XX0xFVkVMEKzrBhIoCiJFX0lOS19MSU5FXzFfTUlEX1RB", - "TktfRklMTF9USU1FT1VUEK3rBhIoCiJFX0lOS19MSU5FXzJfTUlEX1RBTktf", - "RklMTF9USU1FT1VUEK7rBhIoCiJFX0lOS19MSU5FXzNfTUlEX1RBTktfRklM", - "TF9USU1FT1VUEK/rBhIoCiJFX0lOS19MSU5FXzRfTUlEX1RBTktfRklMTF9U", - "SU1FT1VUELDrBhIoCiJFX0lOS19MSU5FXzVfTUlEX1RBTktfRklMTF9USU1F", - "T1VUELHrBhIoCiJFX0lOS19MSU5FXzZfTUlEX1RBTktfRklMTF9USU1FT1VU", - "ELLrBhIoCiJFX0lOS19MSU5FXzdfTUlEX1RBTktfRklMTF9USU1FT1VUELPr", - "BhIoCiJFX0lOS19MSU5FXzhfTUlEX1RBTktfRklMTF9USU1FT1VUELTrBhIo", - "CiJFX0lOS19MSU5FXzlfTUlEX1RBTktfRklMTF9USU1FT1VUELXrBhIpCiNF", - "X0lOS19MSU5FXzEwX01JRF9UQU5LX0ZJTExfVElNRU9VVBC26wYSJwohRV9J", - "TktfTElORV8xX01JRF9UQU5LX01BTEZVTkNUSU9OELfrBhInCiFFX0lOS19M", - "SU5FXzJfTUlEX1RBTktfTUFMRlVOQ1RJT04QuOsGEicKIUVfSU5LX0xJTkVf", - "M19NSURfVEFOS19NQUxGVU5DVElPThC56wYSJwohRV9JTktfTElORV80X01J", - "RF9UQU5LX01BTEZVTkNUSU9OELrrBhInCiFFX0lOS19MSU5FXzVfTUlEX1RB", - "TktfTUFMRlVOQ1RJT04Qu+sGEicKIUVfSU5LX0xJTkVfNl9NSURfVEFOS19N", - "QUxGVU5DVElPThC86wYSJwohRV9JTktfTElORV83X01JRF9UQU5LX01BTEZV", - "TkNUSU9OEL3rBhInCiFFX0lOS19MSU5FXzhfTUlEX1RBTktfTUFMRlVOQ1RJ", - "T04QvusGEicKIUVfSU5LX0xJTkVfOV9NSURfVEFOS19NQUxGVU5DVElPThC/", - "6wYSKAoiRV9JTktfTElORV8xMF9NSURfVEFOS19NQUxGVU5DVElPThDA6wZC", - "IQofY29tLnR3aW5lLnRhbmdvLnBtci5kaWFnbm9zdGljc2IGcHJvdG8z")); + "TEZVTkNUSU9OX1dBU1RFX1NMT1RfMhDoDxIfChpJMkMzX0NPTU1VTklDQVRJ", + "T05fRkFJTFVSRRDpDxIfChpJMkM0X0NPTU1VTklDQVRJT05fRkFJTFVSRRDq", + "DxIeChlJMkNfQ09NTVVOSUNBVElPTl9GQUlMVVJFEOsPEhEKDFRIUkVBRF9C", + "UkVBSxC4FxIxCixUSFJFQURfVEVOU0lPTl9DT05UUk9MX0ZBSUxVUkVfRkVF", + "REVSX0RBTkNFUhC5FxIfChpXSU5ERVJfQ09ORV9ET0VTX05PVF9FWElTVBC6", + "FxIdChhGRUVERVJfTU9UT1JfTUFMRlVOQ1RJT04QuxcSIwoeUklHSFRfTE9B", + "REVSX01PVE9SX01BTEZVTkNUSU9OELwXEh0KGFBVTExFUl9NT1RPUl9NQUxG", + "VU5DVElPThC9FxIiCh1MRUZUX0xPQURFUl9NT1RPUl9NQUxGVU5DVElPThC+", + "FxIdChhXSU5ERVJfTU9UT1JfTUFMRlVOQ1RJT04QvxcSHAoXU0NSRVdfTU9U", + "T1JfTUFMRlVOQ1RJT04QwBcSIgodTE9BRElOR19BUk1fTU9UT1JfTUFMRlVO", + "Q1RJT04QwRcSIQocRkVFREVSX01PVE9SX09WRVJURU1QRVJBVFVSRRDCFxIn", + "CiJSSUdIVF9MT0FERVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEMMXEiEKHFBV", + "TExFUl9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQxBcSJgohTEVGVF9MT0FERVJf", + "TU9UT1JfT1ZFUlRFTVBFUkFUVVJFEMUXEiEKHFdJTkRFUl9NT1RPUl9PVkVS", + "VEVNUEVSQVRVUkUQxhcSIAobU0NSRVdfTU9UT1JfT1ZFUlRFTVBFUkFUVVJF", + "EMcXEiYKIUxPQURJTkdfQVJNX01PVE9SX09WRVJURU1QRVJBVFVSRRDIFxIX", + "ChJGRUVERVJfTU9UT1JfU1RBTEwQyRcSHQoYUklHSFRfTE9BREVSX01PVE9S", + "X1NUQUxMEMoXEhcKElBVTExFUl9NT1RPUl9TVEFMTBDLFxIcChdMRUZUX0xP", + "QURFUl9NT1RPUl9TVEFMTBDMFxIXChJXSU5ERVJfTU9UT1JfU1RBTEwQzRcS", + "FgoRU0NSRVdfTU9UT1JfU1RBTEwQzhcSHAoXTE9BRElOR19BUk1fTU9UT1Jf", + "U1RBTEwQzxcSHgoZRkVFREVSX01PVE9SX1VOREVSVk9MVEFHRRDQFxIkCh9S", + "SUdIVF9MT0FERVJfTU9UT1JfVU5ERVJWT0xUQUdFENEXEh4KGVBVTExFUl9N", + "T1RPUl9VTkRFUlZPTFRBR0UQ0hcSIwoeTEVGVF9MT0FERVJfTU9UT1JfVU5E", + "RVJWT0xUQUdFENMXEh4KGVdJTkRFUl9NT1RPUl9VTkRFUlZPTFRBR0UQ1BcS", + "HQoYU0NSRVdfTU9UT1JfVU5ERVJWT0xUQUdFENUXEiMKHkxPQURJTkdfQVJN", + "X01PVE9SX1VOREVSVk9MVEFHRRDWFxIUCg9MVEZVX1VQX1RJTUVPVVQQ1xcS", + "FgoRTFRGVV9ET1dOX1RJTUVPVVQQ2BcSFAoPUlRGVV9VUF9USU1FT1VUENkX", + "EhYKEVJURlVfRE9XTl9USU1FT1VUENoXEh4KGVNDUkVXX01PVE9SX0xJTUlU", + "X1RJTUVPVVQQ2xcSJAofV0lOREVSX0RBTkNFUl9NT1RPUl9NQUxGVU5DVElP", + "ThDcFxIkCh9QVUxMRVJfREFOQ0VSX01PVE9SX01BTEZVTkNUSU9OEN0XEiQK", + "H0ZFRURFUl9EQU5DRVJfTU9UT1JfTUFMRlVOQ1RJT04Q3hcSKAojV0lOREVS", + "X0RBTkNFUl9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQ3xcSKAojUFVMTEVSX0RB", + "TkNFUl9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQ4BcSKAojRkVFREVSX0RBTkNF", + "Ul9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQ4RcSHgoZV0lOREVSX0RBTkNFUl9N", + "T1RPUl9TVEFMTBDiFxIeChlQVUxMRVJfREFOQ0VSX01PVE9SX1NUQUxMEOMX", + "Eh4KGUZFRURFUl9EQU5DRVJfTU9UT1JfU1RBTEwQ5BcSJQogV0lOREVSX0RB", + "TkNFUl9NT1RPUl9VTkRFUlZPTFRBR0UQ5RcSJQogUFVMTEVSX0RBTkNFUl9N", + "T1RPUl9VTkRFUlZPTFRBR0UQ5hcSJQogRkVFREVSX0RBTkNFUl9NT1RPUl9V", + "TkRFUlZPTFRBR0UQ5xcSMQosVEhSRUFEX1RFTlNJT05fQ09OVFJPTF9GQUlM", + "VVJFX1BVTExFUl9EQU5DRVIQ6BcSMQosVEhSRUFEX1RFTlNJT05fQ09OVFJP", + "TF9GQUlMVVJFX1dJTkRFUl9EQU5DRVIQ6RcSJQogTUFDSElORV9TVEFURV9O", + "T19USFJFQURfREVURUNURUQQ6hcSGQoUVEhSRUFEX0xPQURJTkdfRVJST1IQ", + "6xcSHwoaTk9fQ09NTVVOSUNBVElPTl9XSVRIX0JUU1IQ7BcSFQoQQlRTUl9N", + "QUxGVU5DVElPThDtFxIhChxURU5TSU9OX0lOX0JUU1JfT1VUX09GX1JBTkdF", + "EO4XEhgKE0dSSVBQRVJfTUFMRlVOQ1RJT04Q7xcSHAoXRFJZRVJfTU9UT1Jf", + "TUFMRlVOQ1RJT04QoB8SIAobRFJZRVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJF", + "EKEfEhYKEURSWUVSX01PVE9SX1NUQUxMEKIfEh0KGERSWUVSX01PVE9SX1VO", + "REVSVk9MVEFHRRCjHxIUCg9EUllFUl9ET09SX09QRU4QpB8SIQocRFJZRVJf", + "Wk9ORV8xX09WRVJURU1QRVJBVFVSRRClHxIhChxEUllFUl9aT05FXzJfT1ZF", + "UlRFTVBFUkFUVVJFEKYfEiQKH0RSWUVSX1pPTkVfMV9VTkRFUlRFTVBFUkFU", + "VVJFX0EQpx8SJAofRFJZRVJfWk9ORV8xX1VOREVSVEVNUEVSQVRVUkVfQhCo", + "HxIkCh9EUllFUl9aT05FXzJfVU5ERVJURU1QRVJBVFVSRV9CEKkfEhkKFERS", + "WUVSX1RIRVJNQUxfQ1VUT0ZGEKofEi4KKURSWUVSX0hFQVRFUlNfWk9ORV8x", + "X0NVUlJFTlRfT1VUX09GX1JBTkdFEKsfEi4KKURSWUVSX0hFQVRFUlNfWk9O", + "RV8yX0NVUlJFTlRfT1VUX09GX1JBTkdFEKwfEiwKJ0RSWUVSX0hFQVRFUlNf", + "Wk9ORV8xX0NVUlJFTlRfTE9PUF9CUkVBSxCtHxIsCidEUllFUl9IRUFURVJT", + "X1pPTkVfMl9DVVJSRU5UX0xPT1BfQlJFQUsQrh8SGgoVRFJZRVJfRkFOX1JQ", + "TV9UT09fTE9XEK8fEhYKEURSWUVSX0ZBTl9TVE9QUEVEELAfEiAKG0RSWUVS", + "X0xJRF9NT1RPUl9NQUxGVU5DVElPThCxHxIkCh9EUllFUl9MSURfTU9UT1Jf", + "T1ZFUlRFTVBFUkFUVVJFELIfEhoKFURSWUVSX0xJRF9NT1RPUl9TVEFMTBCz", + "HxIhChxEUllFUl9MSURfTU9UT1JfVU5ERVJWT0xUQUdFELQfEiQKH0RSWUVS", + "X1pPTkVfMl9VTkRFUlRFTVBFUkFUVVJFX0EQtR8SJwoiRFlFSU5HX0hFQURf", + "Wk9ORV8xX09WRVJURU1QRVJBVFVSRRCIJxInCiJEWUVJTkdfSEVBRF9aT05F", + "XzJfT1ZFUlRFTVBFUkFUVVJFEIknEicKIkRZRUlOR19IRUFEX1pPTkVfM19P", + "VkVSVEVNUEVSQVRVUkUQiicSJwoiRFlFSU5HX0hFQURfWk9ORV80X09WRVJU", + "RU1QRVJBVFVSRRCLJxInCiJEWUVJTkdfSEVBRF9aT05FXzVfT1ZFUlRFTVBF", + "UkFUVVJFEIwnEicKIkRZRUlOR19IRUFEX1pPTkVfNl9PVkVSVEVNUEVSQVRV", + "UkUQjScSKgolRFlFSU5HX0hFQURfWk9ORV8xX1VOREVSVEVNUEVSQVRVUkVf", + "QRCOJxIqCiVEWUVJTkdfSEVBRF9aT05FXzJfVU5ERVJURU1QRVJBVFVSRV9B", + "EI8nEioKJURZRUlOR19IRUFEX1pPTkVfM19VTkRFUlRFTVBFUkFUVVJFX0EQ", + "kCcSKgolRFlFSU5HX0hFQURfWk9ORV80X1VOREVSVEVNUEVSQVRVUkVfQRCR", + "JxIqCiVEWUVJTkdfSEVBRF9aT05FXzVfVU5ERVJURU1QRVJBVFVSRV9BEJIn", + "EioKJURZRUlOR19IRUFEX1pPTkVfNl9VTkRFUlRFTVBFUkFUVVJFX0EQkycS", + "KgolRFlFSU5HX0hFQURfWk9ORV8xX1VOREVSVEVNUEVSQVRVUkVfQhCUJxIq", + "CiVEWUVJTkdfSEVBRF9aT05FXzJfVU5ERVJURU1QRVJBVFVSRV9CEJUnEioK", + "JURZRUlOR19IRUFEX1pPTkVfM19VTkRFUlRFTVBFUkFUVVJFX0IQlicSKgol", + "RFlFSU5HX0hFQURfWk9ORV80X1VOREVSVEVNUEVSQVRVUkVfQhCXJxIqCiVE", + "WUVJTkdfSEVBRF9aT05FXzVfVU5ERVJURU1QRVJBVFVSRV9CEJgnEioKJURZ", + "RUlOR19IRUFEX1pPTkVfNl9VTkRFUlRFTVBFUkFUVVJFX0IQmScSLAonRFlF", + "SU5HX0hFQURfWk9ORV8xX0NVUlJFTlRfT1VUX09GX1JBTkdFEJonEiwKJ0RZ", + "RUlOR19IRUFEX1pPTkVfMl9DVVJSRU5UX09VVF9PRl9SQU5HRRCbJxIsCidE", + "WUVJTkdfSEVBRF9aT05FXzNfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQnCcSLAon", + "RFlFSU5HX0hFQURfWk9ORV80X0NVUlJFTlRfT1VUX09GX1JBTkdFEJ0nEiwK", + "J0RZRUlOR19IRUFEX1pPTkVfNV9DVVJSRU5UX09VVF9PRl9SQU5HRRCeJxIq", + "CiVEWUVJTkdfSEVBRF9aT05FXzFfQ1VSUkVOVF9MT09QX0JSRUFLEJ8nEioK", + "JURZRUlOR19IRUFEX1pPTkVfMl9DVVJSRU5UX0xPT1BfQlJFQUsQoCcSKgol", + "RFlFSU5HX0hFQURfWk9ORV8zX0NVUlJFTlRfTE9PUF9CUkVBSxChJxIqCiVE", + "WUVJTkdfSEVBRF9aT05FXzRfQ1VSUkVOVF9MT09QX0JSRUFLEKInEioKJURZ", + "RUlOR19IRUFEX1pPTkVfNV9DVVJSRU5UX0xPT1BfQlJFQUsQoycSHwoaRFlF", + "SU5HX0hFQURfVEhFUk1BTF9DVVRPRkYQpCcSIwoeRFlFSU5HX0hFQURfQ09W", + "RVJfT1BFTl9USU1FT1VUEKUnEiQKH0RZRUlOR19IRUFEX0NPVkVSX0NMT1NF", + "X1RJTUVPVVQQpicSKAojRFlFSU5HX0hFQURfQ09WRVJfTU9UT1JfTUFMRlVO", + "Q1RJT04QpycSLAonRFlFSU5HX0hFQURfQ09WRVJfTU9UT1JfT1ZFUlRFTVBF", + "UkFUVVJFEKgnEiIKHURZRUlOR19IRUFEX0NPVkVSX01PVE9SX1NUQUxMEKkn", + "EikKJERZRUlOR19IRUFEX0NPVkVSX01PVE9SX1VOREVSVk9MVEFHRRCqJxI1", + "CjBEWUVJTkdfSEVBRF9DTEVBTklOR19NRUNIQU5JU01fTU9UT1JfTUFMRlVO", + "Q1RJT04QqycSOQo0RFlFSU5HX0hFQURfQ0xFQU5JTkdfTUVDSEFOSVNNX01P", + "VE9SX09WRVJURU1QRVJBVFVSRRCsJxIvCipEWUVJTkdfSEVBRF9DTEVBTklO", + "R19NRUNIQU5JU01fTU9UT1JfU1RBTEwQrScSNgoxRFlFSU5HX0hFQURfQ0xF", + "QU5JTkdfTUVDSEFOSVNNX01PVE9SX1VOREVSVk9MVEFHRRCuJxIwCitEWUVJ", + "TkdfSEVBRF9DTEVBTklOR19IRUFEX01PVE9SX01BTEZVTkNUSU9OEK8nEjQK", + "L0RZRUlOR19IRUFEX0NMRUFOSU5HX0hFQURfTU9UT1JfT1ZFUlRFTVBFUkFU", + "VVJFELAnEioKJURZRUlOR19IRUFEX0NMRUFOSU5HX0hFQURfTU9UT1JfU1RB", + "TEwQsScSMQosRFlFSU5HX0hFQURfQ0xFQU5JTkdfSEVBRF9NT1RPUl9VTkRF", + "UlZPTFRBR0UQsicSJwoiRFlFSU5HX0hFQURfWk9ORV83X09WRVJURU1QRVJB", + "VFVSRRCzJxInCiJEWUVJTkdfSEVBRF9aT05FXzhfT1ZFUlRFTVBFUkFUVVJF", + "ELQnEicKIkRZRUlOR19IRUFEX1pPTkVfOV9PVkVSVEVNUEVSQVRVUkUQtScS", + "KAojRFlFSU5HX0hFQURfWk9ORV8xMF9PVkVSVEVNUEVSQVRVUkUQticSKAoj", + "RFlFSU5HX0hFQURfWk9ORV8xMV9PVkVSVEVNUEVSQVRVUkUQtycSKAojRFlF", + "SU5HX0hFQURfWk9ORV8xMl9PVkVSVEVNUEVSQVRVUkUQuCcSKgolRFlFSU5H", + "X0hFQURfWk9ORV83X1VOREVSVEVNUEVSQVRVUkVfQRC5JxIqCiVEWUVJTkdf", + "SEVBRF9aT05FXzhfVU5ERVJURU1QRVJBVFVSRV9BELonEioKJURZRUlOR19I", + "RUFEX1pPTkVfOV9VTkRFUlRFTVBFUkFUVVJFX0EQuycSKwomRFlFSU5HX0hF", + "QURfWk9ORV8xMF9VTkRFUlRFTVBFUkFUVVJFX0EQvCcSKwomRFlFSU5HX0hF", + "QURfWk9ORV8xMV9VTkRFUlRFTVBFUkFUVVJFX0EQvScSKwomRFlFSU5HX0hF", + "QURfWk9ORV8xMl9VTkRFUlRFTVBFUkFUVVJFX0EQvicSKgolRFlFSU5HX0hF", + "QURfWk9ORV83X1VOREVSVEVNUEVSQVRVUkVfQhC/JxIqCiVEWUVJTkdfSEVB", + "RF9aT05FXzhfVU5ERVJURU1QRVJBVFVSRV9CEMAnEioKJURZRUlOR19IRUFE", + "X1pPTkVfOV9VTkRFUlRFTVBFUkFUVVJFX0IQwScSKwomRFlFSU5HX0hFQURf", + "Wk9ORV8xMF9VTkRFUlRFTVBFUkFUVVJFX0IQwicSKwomRFlFSU5HX0hFQURf", + "Wk9ORV8xMV9VTkRFUlRFTVBFUkFUVVJFX0IQwycSKwomRFlFSU5HX0hFQURf", + "Wk9ORV8xMl9VTkRFUlRFTVBFUkFUVVJFX0IQxCcSLAonRFlFSU5HX0hFQURf", + "Wk9ORV82X0NVUlJFTlRfT1VUX09GX1JBTkdFEMUnEiwKJ0RZRUlOR19IRUFE", + "X1pPTkVfN19DVVJSRU5UX09VVF9PRl9SQU5HRRDGJxIsCidEWUVJTkdfSEVB", + "RF9aT05FXzhfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQxycSLAonRFlFSU5HX0hF", + "QURfWk9ORV85X0NVUlJFTlRfT1VUX09GX1JBTkdFEMgnEi0KKERZRUlOR19I", + "RUFEX1pPTkVfMTBfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQyScSLQooRFlFSU5H", + "X0hFQURfWk9ORV8xMV9DVVJSRU5UX09VVF9PRl9SQU5HRRDKJxItCihEWUVJ", + "TkdfSEVBRF9aT05FXzEyX0NVUlJFTlRfT1VUX09GX1JBTkdFEMsnEioKJURZ", + "RUlOR19IRUFEX1pPTkVfNl9DVVJSRU5UX0xPT1BfQlJFQUsQzCcSKgolRFlF", + "SU5HX0hFQURfWk9ORV83X0NVUlJFTlRfTE9PUF9CUkVBSxDNJxIqCiVEWUVJ", + "TkdfSEVBRF9aT05FXzhfQ1VSUkVOVF9MT09QX0JSRUFLEM4nEioKJURZRUlO", + "R19IRUFEX1pPTkVfOV9DVVJSRU5UX0xPT1BfQlJFQUsQzycSKwomRFlFSU5H", + "X0hFQURfWk9ORV8xMF9DVVJSRU5UX0xPT1BfQlJFQUsQ0CcSKwomRFlFSU5H", + "X0hFQURfWk9ORV8xMV9DVVJSRU5UX0xPT1BfQlJFQUsQ0ScSKwomRFlFSU5H", + "X0hFQURfWk9ORV8xMl9DVVJSRU5UX0xPT1BfQlJFQUsQ0icSKQokRFlFSU5H", + "X0hFQURfQkxPV0VSXzFfT1ZFUlRFTVBFUkFUVVJFENMnEikKJERZRUlOR19I", + "RUFEX0JMT1dFUl8yX09WRVJURU1QRVJBVFVSRRDUJxIsCidEWUVJTkdfSEVB", + "RF9CTE9XRVJfMV9VTkRFUlRFTVBFUkFUVVJFX0EQ1ScSLAonRFlFSU5HX0hF", + "QURfQkxPV0VSXzJfVU5ERVJURU1QRVJBVFVSRV9BENYnEiwKJ0RZRUlOR19I", + "RUFEX0JMT1dFUl8xX1VOREVSVEVNUEVSQVRVUkVfQhDXJxIsCidEWUVJTkdf", + "SEVBRF9CTE9XRVJfMl9VTkRFUlRFTVBFUkFUVVJFX0IQ2CcSLgopRFlFSU5H", + "X0hFQURfQkxPV0VSXzFfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQ2ScSLgopRFlF", + "SU5HX0hFQURfQkxPV0VSXzJfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQ2icSLAon", + "RFlFSU5HX0hFQURfQkxPV0VSXzFfQ1VSUkVOVF9MT09QX0JSRUFLENsnEiwK", + "J0RZRUlOR19IRUFEX0JMT1dFUl8yX0NVUlJFTlRfTE9PUF9CUkVBSxDcJxIl", + "CiBEWUVJTkdfSEVBRF9CTE9XRVJfMV9GQU5fU1RPUFBFRBDdJxIlCiBEWUVJ", + "TkdfSEVBRF9CTE9XRVJfMl9GQU5fU1RPUFBFRBDeJxIpCiREWUVJTkdfSEVB", + "RF9CTE9XRVJfMV9GQU5fUlBNX1RPT19MT1cQ3ycSKQokRFlFSU5HX0hFQURf", + "QkxPV0VSXzJfRkFOX1JQTV9UT09fTE9XEOAnEioKJURZRUlOR19IRUFEX1JJ", + "R0hUX0FDVFVBVE9SX1VQX1RJTUVPVVQQ4ScSKQokRFlFSU5HX0hFQURfTEVG", + "VF9BQ1RVQVRPUl9VUF9USU1FT1VUEOInEiwKJ0RZRUlOR19IRUFEX1JJR0hU", + "X0FDVFVBVE9SX0RPV05fVElNRU9VVBDjJxIrCiZEWUVJTkdfSEVBRF9MRUZU", + "X0FDVFVBVE9SX0RPV05fVElNRU9VVBDkJxInCiJEWUVJTkdfSEVBRF9CTE9X", + "RVJfMV9GTE9XX1RPT19ISUdIEOUnEicKIkRZRUlOR19IRUFEX0JMT1dFUl8y", + "X0ZMT1dfVE9PX0hJR0gQ5icSJgohRFlFSU5HX0hFQURfQkxPV0VSXzFfRkxP", + "V19UT09fTE9XEOcnEiYKIURZRUlOR19IRUFEX0JMT1dFUl8yX0ZMT1dfVE9P", + "X0xPVxDoJxIgChtEWUVJTkdfSEVBRF9BUkNfTElEX0lTX09QRU4Q6ScSIwoe", + "RFlFSU5HX0hFQURfVFVOTkVMX0xJRF9JU19PUEVOEOonEh4KGURZRUlOR19I", + "RUFEX0NPVkVSX0lTX09QRU4Q6ycSIgodRFlFSU5HX0hFQURfVk9MVEFHRV8x", + "X1RPT19MT1cQ7CcSIgodRFlFSU5HX0hFQURfVk9MVEFHRV8yX1RPT19MT1cQ", + "7ScSIgodRFlFSU5HX0hFQURfVk9MVEFHRV8zX1RPT19MT1cQ7icSIAobRFlF", + "SU5HX0hFQURfVk9MVEFHRV8xX0JSRUFLEO8nEiAKG0RZRUlOR19IRUFEX1ZP", + "TFRBR0VfMl9CUkVBSxDwJxIgChtEWUVJTkdfSEVBRF9WT0xUQUdFXzNfQlJF", + "QUsQ8ScSGgoVTUlYRVJfT1ZFUlRFTVBFUkFUVVJFEPAuEh0KGE1JWEVSX1VO", + "REVSVEVNUEVSQVRVUkVfQRDxLhIdChhNSVhFUl9VTkRFUlRFTVBFUkFUVVJF", + "X0IQ8i4SGQoUTUlYRVJfVEhFUk1BTF9DVVRPRkYQ8y4SHwoaTUlYRVJfQ1VS", + "UkVOVF9PVVRfT0ZfUkFOR0UQ9C4SHQoYTUlYRVJfQ1VSUkVOVF9MT09QX0JS", + "RUFLEPUuEh0KGERJU1BFTlNFUl8xX09WRVJQUkVTU1VSRRDYNhIdChhESVNQ", + "RU5TRVJfMl9PVkVSUFJFU1NVUkUQ2TYSHQoYRElTUEVOU0VSXzNfT1ZFUlBS", + "RVNTVVJFENo2Eh0KGERJU1BFTlNFUl80X09WRVJQUkVTU1VSRRDbNhIdChhE", + "SVNQRU5TRVJfNV9PVkVSUFJFU1NVUkUQ3DYSHQoYRElTUEVOU0VSXzZfT1ZF", + "UlBSRVNTVVJFEN02Eh0KGERJU1BFTlNFUl83X09WRVJQUkVTU1VSRRDeNhId", + "ChhESVNQRU5TRVJfOF9PVkVSUFJFU1NVUkUQ3zYSHgoZRElTUEVOU0VSXzFf", + "VU5ERVJQUkVTU1VSRRDgNhIeChlESVNQRU5TRVJfMl9VTkRFUlBSRVNTVVJF", + "EOE2Eh4KGURJU1BFTlNFUl8zX1VOREVSUFJFU1NVUkUQ4jYSHgoZRElTUEVO", + "U0VSXzRfVU5ERVJQUkVTU1VSRRDjNhIeChlESVNQRU5TRVJfNV9VTkRFUlBS", + "RVNTVVJFEOQ2Eh4KGURJU1BFTlNFUl82X1VOREVSUFJFU1NVUkUQ5TYSHgoZ", + "RElTUEVOU0VSXzdfVU5ERVJQUkVTU1VSRRDmNhIeChlESVNQRU5TRVJfOF9V", + "TkRFUlBSRVNTVVJFEOc2EhYKEURJU1BFTlNFUl8xX0VNUFRZEOg2EhYKEURJ", + "U1BFTlNFUl8yX0VNUFRZEOk2EhYKEURJU1BFTlNFUl8zX0VNUFRZEOo2EhYK", + "EURJU1BFTlNFUl80X0VNUFRZEOs2EhYKEURJU1BFTlNFUl81X0VNUFRZEOw2", + "EhYKEURJU1BFTlNFUl82X0VNUFRZEO02EhYKEURJU1BFTlNFUl83X0VNUFRZ", + "EO42EhYKEURJU1BFTlNFUl84X0VNUFRZEO82Eh8KGkRJU1BFTlNFUl8xX1JF", + "RklMTF9GQUlMVVJFEPA2Eh8KGkRJU1BFTlNFUl8yX1JFRklMTF9GQUlMVVJF", + "EPE2Eh8KGkRJU1BFTlNFUl8zX1JFRklMTF9GQUlMVVJFEPI2Eh8KGkRJU1BF", + "TlNFUl80X1JFRklMTF9GQUlMVVJFEPM2Eh8KGkRJU1BFTlNFUl81X1JFRklM", + "TF9GQUlMVVJFEPQ2Eh8KGkRJU1BFTlNFUl82X1JFRklMTF9GQUlMVVJFEPU2", + "Eh8KGkRJU1BFTlNFUl83X1JFRklMTF9GQUlMVVJFEPY2Eh8KGkRJU1BFTlNF", + "Ul84X1JFRklMTF9GQUlMVVJFEPc2EiIKHURJU1BFTlNFUl8xX01PVE9SX01B", + "TEZVTkNUSU9OEPg2EiIKHURJU1BFTlNFUl8yX01PVE9SX01BTEZVTkNUSU9O", + "EPk2EiIKHURJU1BFTlNFUl8zX01PVE9SX01BTEZVTkNUSU9OEPo2EiIKHURJ", + "U1BFTlNFUl80X01PVE9SX01BTEZVTkNUSU9OEPs2EiIKHURJU1BFTlNFUl81", + "X01PVE9SX01BTEZVTkNUSU9OEPw2EiIKHURJU1BFTlNFUl82X01PVE9SX01B", + "TEZVTkNUSU9OEP02EiIKHURJU1BFTlNFUl83X01PVE9SX01BTEZVTkNUSU9O", + "EP42EiIKHURJU1BFTlNFUl84X01PVE9SX01BTEZVTkNUSU9OEP82EiYKIURJ", + "U1BFTlNFUl8xX01PVE9SX09WRVJURU1QRVJBVFVSRRCANxImCiFESVNQRU5T", + "RVJfMl9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQgTcSJgohRElTUEVOU0VSXzNf", + "TU9UT1JfT1ZFUlRFTVBFUkFUVVJFEII3EiYKIURJU1BFTlNFUl80X01PVE9S", + "X09WRVJURU1QRVJBVFVSRRCDNxImCiFESVNQRU5TRVJfNV9NT1RPUl9PVkVS", + "VEVNUEVSQVRVUkUQhDcSJgohRElTUEVOU0VSXzZfTU9UT1JfT1ZFUlRFTVBF", + "UkFUVVJFEIU3EiYKIURJU1BFTlNFUl83X01PVE9SX09WRVJURU1QRVJBVFVS", + "RRCGNxImCiFESVNQRU5TRVJfOF9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQhzcS", + "HAoXRElTUEVOU0VSXzFfTU9UT1JfU1RBTEwQiDcSHAoXRElTUEVOU0VSXzJf", + "TU9UT1JfU1RBTEwQiTcSHAoXRElTUEVOU0VSXzNfTU9UT1JfU1RBTEwQijcS", + "HAoXRElTUEVOU0VSXzRfTU9UT1JfU1RBTEwQizcSHAoXRElTUEVOU0VSXzVf", + "TU9UT1JfU1RBTEwQjDcSHAoXRElTUEVOU0VSXzZfTU9UT1JfU1RBTEwQjTcS", + "HAoXRElTUEVOU0VSXzdfTU9UT1JfU1RBTEwQjjcSHAoXRElTUEVOU0VSXzhf", + "TU9UT1JfU1RBTEwQjzcSIwoeRElTUEVOU0VSXzFfTU9UT1JfVU5ERVJWT0xU", + "QUdFEJA3EiMKHkRJU1BFTlNFUl8yX01PVE9SX1VOREVSVk9MVEFHRRCRNxIj", + "Ch5ESVNQRU5TRVJfM19NT1RPUl9VTkRFUlZPTFRBR0UQkjcSIwoeRElTUEVO", + "U0VSXzRfTU9UT1JfVU5ERVJWT0xUQUdFEJM3EiMKHkRJU1BFTlNFUl81X01P", + "VE9SX1VOREVSVk9MVEFHRRCUNxIjCh5ESVNQRU5TRVJfNl9NT1RPUl9VTkRF", + "UlZPTFRBR0UQlTcSIwoeRElTUEVOU0VSXzdfTU9UT1JfVU5ERVJWT0xUQUdF", + "EJY3EiMKHkRJU1BFTlNFUl84X01PVE9SX1VOREVSVk9MVEFHRRCXNxIhChxE", + "SVNQRU5TRVJfMV9VUFBFUl9IQVJEX0xJTUlUEJg3EiEKHERJU1BFTlNFUl8y", + "X1VQUEVSX0hBUkRfTElNSVQQmTcSIQocRElTUEVOU0VSXzNfVVBQRVJfSEFS", + "RF9MSU1JVBCaNxIhChxESVNQRU5TRVJfNF9VUFBFUl9IQVJEX0xJTUlUEJs3", + "EiEKHERJU1BFTlNFUl81X1VQUEVSX0hBUkRfTElNSVQQnDcSIQocRElTUEVO", + "U0VSXzZfVVBQRVJfSEFSRF9MSU1JVBCdNxIhChxESVNQRU5TRVJfN19VUFBF", + "Ul9IQVJEX0xJTUlUEJ43EiEKHERJU1BFTlNFUl84X1VQUEVSX0hBUkRfTElN", + "SVQQnzcSIQocRElTUEVOU0VSXzFfTE9XRVJfSEFSRF9MSU1JVBCgNxIhChxE", + "SVNQRU5TRVJfMl9MT1dFUl9IQVJEX0xJTUlUEKE3EiEKHERJU1BFTlNFUl8z", + "X0xPV0VSX0hBUkRfTElNSVQQojcSIQocRElTUEVOU0VSXzRfTE9XRVJfSEFS", + "RF9MSU1JVBCjNxIhChxESVNQRU5TRVJfNV9MT1dFUl9IQVJEX0xJTUlUEKQ3", + "EiEKHERJU1BFTlNFUl82X0xPV0VSX0hBUkRfTElNSVQQpTcSIQocRElTUEVO", + "U0VSXzdfTE9XRVJfSEFSRF9MSU1JVBCmNxIhChxESVNQRU5TRVJfOF9MT1dF", + "Ul9IQVJEX0xJTUlUEKc3Eh4KGURJU1BFTlNFUl8xX0hJR0hfUFJFU1NVUkUQ", + "qDcSHgoZRElTUEVOU0VSXzJfSElHSF9QUkVTU1VSRRCpNxIeChlESVNQRU5T", + "RVJfM19ISUdIX1BSRVNTVVJFEKo3Eh4KGURJU1BFTlNFUl80X0hJR0hfUFJF", + "U1NVUkUQqzcSHgoZRElTUEVOU0VSXzVfSElHSF9QUkVTU1VSRRCsNxIeChlE", + "SVNQRU5TRVJfNl9ISUdIX1BSRVNTVVJFEK03Eh4KGURJU1BFTlNFUl83X0hJ", + "R0hfUFJFU1NVUkUQrjcSHgoZRElTUEVOU0VSXzhfSElHSF9QUkVTU1VSRRCv", + "NxIdChhESVNQRU5TRVJfOV9PVkVSUFJFU1NVUkUQsDcSHgoZRElTUEVOU0VS", + "XzlfVU5ERVJQUkVTU1VSRRCxNxIeChlESVNQRU5TRVJfMTBfT1ZFUlBSRVNT", + "VVJFELI3Eh8KGkRJU1BFTlNFUl8xMF9VTkRFUlBSRVNTVVJFELM3EiQKH0RJ", + "U1BFTlNFUl85X01PVE9SXzFfTUFMRlVOQ1RJT04QtDcSJAofRElTUEVOU0VS", + "XzlfTU9UT1JfMl9NQUxGVU5DVElPThC1NxIlCiBESVNQRU5TRVJfMTBfTU9U", + "T1JfMV9NQUxGVU5DVElPThC2NxIlCiBESVNQRU5TRVJfMTBfTU9UT1JfMl9N", + "QUxGVU5DVElPThC3NxIZChRNSURfVEFOS18xX0xPV19MRVZFTBDAPhIZChRN", + "SURfVEFOS18yX0xPV19MRVZFTBDBPhIZChRNSURfVEFOS18zX0xPV19MRVZF", + "TBDCPhIZChRNSURfVEFOS180X0xPV19MRVZFTBDDPhIZChRNSURfVEFOS181", + "X0xPV19MRVZFTBDEPhIZChRNSURfVEFOS182X0xPV19MRVZFTBDFPhIZChRN", + "SURfVEFOS183X0xPV19MRVZFTBDGPhIZChRNSURfVEFOS184X0xPV19MRVZF", + "TBDHPhIVChBNSURfVEFOS18xX0VNUFRZEMg+EhUKEE1JRF9UQU5LXzJfRU1Q", + "VFkQyT4SFQoQTUlEX1RBTktfM19FTVBUWRDKPhIVChBNSURfVEFOS180X0VN", + "UFRZEMs+EhUKEE1JRF9UQU5LXzVfRU1QVFkQzD4SFQoQTUlEX1RBTktfNl9F", + "TVBUWRDNPhIVChBNSURfVEFOS183X0VNUFRZEM4+EhUKEE1JRF9UQU5LXzhf", + "RU1QVFkQzz4SGAoTTUlEX1RBTktfMV9PVkVSRkxPVxDQPhIYChNNSURfVEFO", + "S18yX09WRVJGTE9XENE+EhgKE01JRF9UQU5LXzNfT1ZFUkZMT1cQ0j4SGAoT", + "TUlEX1RBTktfNF9PVkVSRkxPVxDTPhIYChNNSURfVEFOS181X09WRVJGTE9X", + "ENQ+EhgKE01JRF9UQU5LXzZfT1ZFUkZMT1cQ1T4SGAoTTUlEX1RBTktfN19P", + "VkVSRkxPVxDWPhIYChNNSURfVEFOS184X09WRVJGTE9XENc+EhwKF01JRF9U", + "QU5LXzFfRklMTF9USU1FT1VUENg+EhwKF01JRF9UQU5LXzJfRklMTF9USU1F", + "T1VUENk+EhwKF01JRF9UQU5LXzNfRklMTF9USU1FT1VUENo+EhwKF01JRF9U", + "QU5LXzRfRklMTF9USU1FT1VUENs+EhwKF01JRF9UQU5LXzVfRklMTF9USU1F", + "T1VUENw+EhwKF01JRF9UQU5LXzZfRklMTF9USU1FT1VUEN0+EhwKF01JRF9U", + "QU5LXzdfRklMTF9USU1FT1VUEN4+EhwKF01JRF9UQU5LXzhfRklMTF9USU1F", + "T1VUEN8+EhkKFE1JRF9UQU5LXzlfTE9XX0xFVkVMEOA+EhUKEE1JRF9UQU5L", + "XzlfRU1QVFkQ4T4SGAoTTUlEX1RBTktfOV9PVkVSRkxPVxDiPhIcChdNSURf", + "VEFOS185X0ZJTExfVElNRU9VVBDjPhIaChVNSURfVEFOS18xMF9MT1dfTEVW", + "RUwQ5D4SFgoRTUlEX1RBTktfMTBfRU1QVFkQ5T4SGQoUTUlEX1RBTktfMTBf", + "T1ZFUkZMT1cQ5j4SHQoYTUlEX1RBTktfMTBfRklMTF9USU1FT1VUEOc+EhsK", + "Fk1JRF9UQU5LXzFfTUFMRlVOQ1RJT04Q6D4SGwoWTUlEX1RBTktfMl9NQUxG", + "VU5DVElPThDpPhIbChZNSURfVEFOS18zX01BTEZVTkNUSU9OEOo+EhsKFk1J", + "RF9UQU5LXzRfTUFMRlVOQ1RJT04Q6z4SGwoWTUlEX1RBTktfNV9NQUxGVU5D", + "VElPThDsPhIbChZNSURfVEFOS182X01BTEZVTkNUSU9OEO0+EhsKFk1JRF9U", + "QU5LXzdfTUFMRlVOQ1RJT04Q7j4SGwoWTUlEX1RBTktfOF9NQUxGVU5DVElP", + "ThDvPhIbChZNSURfVEFOS185X01BTEZVTkNUSU9OEPA+EhwKF01JRF9UQU5L", + "XzEwX01BTEZVTkNUSU9OEPE+Eh0KGEFJUl9GSUxURVJfTk9UX0lOU1RBTExF", + "RBCoRhIXChJBSVJfRklMVEVSX0NMT0dHRUQQqUYSJQogV0FTVEVfQ09OVEFJ", + "TkVSX0VNUFRZSU5HX1RJTUVPVVQQqkYSFAoPTk9fQUlSX1BSRVNTVVJFEKtG", + "Eh0KGFdBU1RFX0NPTlRBSU5FUl9PVkVSRkxPVxCsRhIaChVWT0NfU0VOU09S", + "X0FMQVJNX1RJTUUQrUYSGAoTQ0hJTExFUl9EUllfQ09OVEFDVBCuRhIaChVJ", + "TlNVRkZJQ0lFTlRfQUlSX0ZMT1cQr0YSGwoWVk9DX1NFTlNPUl9BTEFSTV9T", + "TE9QRRCwRhIdChhQUkVfQ09PTEVSX0ZBTl8xX1NUT1BQRUQQsUYSHQoYUFJF", + "X0NPT0xFUl9GQU5fMl9TVE9QUEVEELJGEhkKFENPT0xFUl9GQU5fMV9TVE9Q", + "UEVEELNGEhkKFENPT0xFUl9GQU5fMl9TVE9QUEVEELRGEhkKFENPT0xFUl9G", + "QU5fM19TVE9QUEVEELVGEhkKFENPT0xFUl9GQU5fNF9TVE9QUEVEELZGEiEK", + "HFBSRV9DT09MRVJfRkFOXzFfUlBNX1RPT19MT1cQt0YSIQocUFJFX0NPT0xF", + "Ul9GQU5fMl9SUE1fVE9PX0xPVxC4RhIdChhDT09MRVJfRkFOXzFfUlBNX1RP", + "T19MT1cQuUYSHQoYQ09PTEVSX0ZBTl8yX1JQTV9UT09fTE9XELpGEh0KGENP", + "T0xFUl9GQU5fM19SUE1fVE9PX0xPVxC7RhIdChhDT09MRVJfRkFOXzRfUlBN", + "X1RPT19MT1cQvEYSIAobQ09PTEVSX1RFTVBFUkFUVVJFX1RPT19ISUdIEL1G", + "Eh8KGkNPT0xFUl9URU1QRVJBVFVSRV9UT09fTE9XEL5GEioKJUlOS19DQVJU", + "UklER0VfUFJFU0VOQ0VfU0VOU09SX1RJTUVPVVQQkE4SHwoaSU5LX0NBUlRS", + "SURHRV9SRklEX1RJTUVPVVQQkU4SIQocTk9fV0FTVEVfQ0FSVFJJREdFX0FW", + "QUlMQUJMRRCSThIUCg9XQVNURV9UQU5LX0ZVTEwQk04SJQogQ0FSVFJJREdF", + "U19OT1RfSU5TRVJURURfUFJPUEVSTFkQlE4SIQocV0FTVEVfQ0FSVFJJREdF", + "X1JGSURfVElNRU9VVBCVThIqCiVJTktfQ0FSVFJJREdFX1JGSURfVEFHX0NB", + "Tk5PVF9CRV9SRUFEEJZOEiwKJ1dBU1RFX0NBUlRSSURHRV9SRklEX1RBR19D", + "QU5OT1RfQkVfUkVBRBCXThIoCiNJTktfQ0FSVFJJREdFX1JGSURfVEFHX0lT", + "X05PVF9WQUxJRBCYThIqCiVXQVNURV9DQVJUUklER0VfUkZJRF9UQUdfSVNf", + "Tk9UX1ZBTElEEJlOEigKI0lOS19DQVJUUklER0VfQVVUSEVOVElDQVRJT05f", + "RkFJTEVEEJpOEioKJVdBU1RFX0NBUlRSSURHRV9BVVRIRU5USUNBVElPTl9G", + "QUlMRUQQm04SHQoYSU5LX0NBUlRSSURHRV9JU19CTE9DS0VEEJxOEh8KGldB", + "U1RFX0NBUlRSSURHRV9JU19CTE9DS0VEEJ1OEi0KKElOS19DQVJUUklER0Vf", + "UkZJRF9UQUdfQ0FOTk9UX0JFX1VQREFURUQQnk4SLwoqV0FTVEVfQ0FSVFJJ", + "REdFX1JGSURfVEFHX0NBTk5PVF9CRV9VUERBVEVEEJ9OEiAKG0lOS19JTl9D", + "QVJUUklER0VfSVNfRVhQSVJFRBCgThIUCg5FX1JFUVVFU1RfU0VOVBCIlQYS", + "GQoTRV9SRVNQT05TRV9SRUNFSVZFRBCJlQYSFgoQRV9SRVFVRVNUX0ZBSUxF", + "RBCKlQYSHQoXRV9BUFBMSUNBVElPTl9FWENFUFRJT04Qi5UGEh8KGUVfQVBQ", + "TElDQVRJT05fSU5GT1JNQVRJT04QjJUGEhsKFUVfQVBQTElDQVRJT05fU1RB", + "UlRFRBCNlQYSHgoYRV9BUFBMSUNBVElPTl9URVJNSU5BVEVEEI6VBhIZChNF", + "X1JFQ09SRElOR19TVEFSVEVEEI+VBhIZChNFX1JFQ09SRElOR19TVE9QUEVE", + "EJCVBhISCgxFX0pPQl9TVEFUVVMQkZUGEhMKDUVfSk9CX1NUQVJURUQQkpUG", + "EhMKDUVfSk9CX0FCT1JURUQQk5UGEhIKDEVfSk9CX0ZBSUxFRBCUlQYSFQoP", + "RV9KT0JfQ09NUExFVEVEEJWVBhIcChZFX1BPV0VSX1VQX0JJVF9GQUlMVVJF", + "EPCcBhIhChtFX01BQ0hJTkVfU1RBVEVfTk9fQ0ZHX0ZJTEUQ8ZwGEiYKIEVf", + "TUFDSElORV9TVEFURV9IV19DT05GSUdfRkFJTEVEEPKcBhIjCh1FX01BQ0hJ", + "TkVfU1RBVEVfTk9fRkxBU0hfRklMRRDznAYSJAoeRV9NQUNISU5FX1NUQVRF", + "X05PX0FMQVJNU19GSUxFEPScBhIlCh9FX0VNRVJHRU5DWV9QVVNIX0JVVFRP", + "Tl9QUkVTU0VEENmkBhIXChFFX0RSWUVSX0RPT1JfT1BFThDapAYSHAoWRV9E", + "UllFUl9USEVSTUFMX0NVVE9GRhDbpAYSHQoXRV9UVU5ORUxfVEhFUk1BTF9D", + "VVRPRkYQ3KQGEiIKHEVfRFlFSU5HX0hFQURfVEhFUk1BTF9DVVRPRkYQ3aQG", + "EhwKFkVfTUlYRVJfVEhFUk1BTF9DVVRPRkYQ3qQGEiIKHEVfTFVCUklDQVRJ", + "T05fVEhFUk1BTF9DVVRPRkYQ36QGEh4KGEVfVFVOTkVMX0FJUl9GTE9XX1NX", + "SVRDSBDgpAYSGwoVRV9XSFNfQUlSX0ZMT1dfU1dJVENIEOGkBhIeChhFX0FJ", + "Ul9GSUxURVJfTk9UX1BSRVNFTlQQ4qQGEhgKEkVfVU5JTlRFTkRFRF9SRVNF", + "VBDArAYSHgoYRV9TRF9DQVJEX05PVF9SRVNQT05ESU5HEMGsBhIkCh5FX05P", + "X0NPTU1VTklDQVRJT05fV0lUSF9CVFNSXzEQqLQGEiQKHkVfTk9fQ09NTVVO", + "SUNBVElPTl9XSVRIX0JUU1JfMhCptAYSJAoeRV9OT19DT01NVU5JQ0FUSU9O", + "X1dJVEhfQlRTUl8zEKq0BhIkCh5FX05PX0NPTU1VTklDQVRJT05fV0lUSF9C", + "VFNSXzQQq7QGEikKI0VfTk9fQ09NTVVOSUNBVElPTl9XSVRIX0RSWUVSX0JP", + "QVJEEKy0BhIvCilFX05PX0NPTU1VTklDQVRJT05fV0lUSF9EWUVJTkdfSEVB", + "RF9CT0FSRBCttAYSLAomRV9OT19DT01NVU5JQ0FUSU9OX1dJVEhfV0lOREVS", + "XzFfQk9BUkQQrrQGEiwKJkVfTk9fQ09NTVVOSUNBVElPTl9XSVRIX1dJTkRF", + "Ul8yX0JPQVJEEK+0BhIsCiZFX05PX0NPTU1VTklDQVRJT05fV0lUSF9XSU5E", + "RVJfM19CT0FSRBCwtAYSLAomRV9OT19DT01NVU5JQ0FUSU9OX1dJVEhfV0lO", + "REVSXzRfQk9BUkQQsbQGEikKI0VfTk9fQ09NTVVOSUNBVElPTl9XSVRIX0lE", + "U18xX0JPQVJEELK0BhIpCiNFX05PX0NPTU1VTklDQVRJT05fV0lUSF9JRFNf", + "Ml9CT0FSRBCztAYSKQojRV9OT19DT01NVU5JQ0FUSU9OX1dJVEhfSURTXzNf", + "Qk9BUkQQtLQGEikKI0VfTk9fQ09NTVVOSUNBVElPTl9XSVRIX0lEU180X0JP", + "QVJEELW0BhIsCiZFX05PX0NPTU1VTklDQVRJT05fV0lUSF9NSURfVEFOS19C", + "T0FSRBC2tAYSJwohRV9OT19DT01NVU5JQ0FUSU9OX1dJVEhfV0hTX0JPQVJE", + "ELe0BhItCidFX05PX0NPTU1VTklDQVRJT05fV0lUSF9MVUJSSUNBTlRfQk9B", + "UkQQuLQGEigKIkVfTk9fQ09NTVVOSUNBVElPTl9XSVRIX01BSU5fQk9BUkQQ", + "ubQGEhYKEEVfTEVGVF9ET09SX09QRU4QkLwGEhcKEUVfUklHSFRfRE9PUl9P", + "UEVOEJG8BhIVCg9FX1RPUF9ET09SX09QRU4QkrwGEhoKFEVfVFVOTkVMX0xJ", + "RF9JU19PUEVOEJO8BhIXChFFX0FSQ19MSURfSVNfT1BFThCUvAYSGgoURV9C", + "VFNSXzFfTUFMRlVOQ1RJT04Q+MMGEhoKFEVfQlRTUl8yX01BTEZVTkNUSU9O", + "EPnDBhIaChRFX0JUU1JfM19NQUxGVU5DVElPThD6wwYSGgoURV9CVFNSXzRf", + "TUFMRlVOQ1RJT04Q+8MGEikKI0VfVEVOU0lPTl9JTl9CVFNSXzFfSVNfT1VU", + "X09GX1JBTkdFEPzDBhIpCiNFX1RFTlNJT05fSU5fQlRTUl8yX0lTX09VVF9P", + "Rl9SQU5HRRD9wwYSKQojRV9URU5TSU9OX0lOX0JUU1JfM19JU19PVVRfT0Zf", + "UkFOR0UQ/sMGEikKI0VfVEVOU0lPTl9JTl9CVFNSXzRfSVNfT1VUX09GX1JB", + "TkdFEP/DBhIUCg5FX1RIUkVBRF9CUkVBSxCAxAYSKAoiRV9EQU5DRVJfMV9U", + "RU5TSU9OX0NPTlRST0xfRkFJTFVSRRCBxAYSKAoiRV9EQU5DRVJfMl9URU5T", + "SU9OX0NPTlRST0xfRkFJTFVSRRCCxAYSKAoiRV9EQU5DRVJfM19URU5TSU9O", + "X0NPTlRST0xfRkFJTFVSRRCDxAYSKAoiRV9EQU5DRVJfNF9URU5TSU9OX0NP", + "TlRST0xfRkFJTFVSRRCExAYSHAoWRV9USFJFQURfTE9BRElOR19FUlJPUhCF", + "xAYSGwoVRV9HUklQUEVSX01BTEZVTkNUSU9OEIbEBhIWChBFX1RIUkVBRF9N", + "SVNTSU5HEIfEBhIqCiRFX0RZRUlOR19IRUFEX1pPTkVfMV9PVkVSVEVNUEVS", + "QVRVUkUQ4MsGEioKJEVfRFlFSU5HX0hFQURfWk9ORV8yX09WRVJURU1QRVJB", + "VFVSRRDhywYSKgokRV9EWUVJTkdfSEVBRF9aT05FXzNfT1ZFUlRFTVBFUkFU", + "VVJFEOLLBhIfChlFX01JWEVSXzFfT1ZFUlRFTVBFUkFUVVJFEOPLBhIfChlF", + "X01JWEVSXzJfT1ZFUlRFTVBFUkFUVVJFEOTLBhIeChhFX1RVTk5FTF9PVkVS", + "VEVNUEVSQVRVUkUQ5csGEiYKIEVfRFJZRVJfSEVBVEVSXzFfT1ZFUlRFTVBF", + "UkFUVVJFEOfLBhImCiBFX0RSWUVSX0hFQVRFUl8yX09WRVJURU1QRVJBVFVS", + "RRDoywYSJgogRV9EUllFUl9IRUFURVJfM19PVkVSVEVNUEVSQVRVUkUQ6csG", + "EiEKG0VfTFVCUklDQU5UX09WRVJURU1QRVJBVFVSRRDqywYSLQonRV9EWUVJ", + "TkdfSEVBRF9aT05FXzFfVU5ERVJURU1QRVJBVFVSRV9BEOvLBhItCidFX0RZ", + "RUlOR19IRUFEX1pPTkVfMl9VTkRFUlRFTVBFUkFUVVJFX0EQ7MsGEi0KJ0Vf", + "RFlFSU5HX0hFQURfWk9ORV8zX1VOREVSVEVNUEVSQVRVUkVfQRDtywYSIgoc", + "RV9NSVhFUl8xX1VOREVSVEVNUEVSQVRVUkVfQRDuywYSIgocRV9NSVhFUl8y", + "X1VOREVSVEVNUEVSQVRVUkVfQRDvywYSIQobRV9UVU5ORUxfVU5ERVJURU1Q", + "RVJBVFVSRV9BEPDLBhIpCiNFX0RSWUVSX0hFQVRFUl8xX1VOREVSVEVNUEVS", + "QVRVUkVfQRDxywYSKQojRV9EUllFUl9IRUFURVJfMl9VTkRFUlRFTVBFUkFU", + "VVJFX0EQ8ssGEikKI0VfRFJZRVJfSEVBVEVSXzNfVU5ERVJURU1QRVJBVFVS", + "RV9BEPPLBhIkCh5FX0xVQlJJQ0FOVF9VTkRFUlRFTVBFUkFUVVJFX0EQ9MsG", + "EiwKJkVfRFlFSU5HX0hFQURfWk9ORV8xX1VORFJURU1QRVJBVFVSRV9CEPXL", + "BhItCidFX0RZRUlOR19IRUFEX1pPTkVfMl9VTkRFUlRFTVBFUkFUVVJFX0IQ", + "9ssGEi0KJ0VfRFlFSU5HX0hFQURfWk9ORV8zX1VOREVSVEVNUEVSQVRVUkVf", + "QhD3ywYSIgocRV9NSVhFUl8xX1VOREVSVEVNUEVSQVRVUkVfQhD4ywYSIgoc", + "RV9NSVhFUl8yX1VOREVSVEVNUEVSQVRVUkVfQhD5ywYSIQobRV9UVU5ORUxf", + "VU5ERVJURU1QRVJBVFVSRV9CEPrLBhIpCiNFX0RSWUVSX0hFQVRFUl8xX1VO", + "REVSVEVNUEVSQVRVUkVfQhD7ywYSKQojRV9EUllFUl9IRUFURVJfMl9VTkRF", + "UlRFTVBFUkFUVVJFX0IQ/MsGEikKI0VfRFJZRVJfSEVBVEVSXzNfVU5ERVJU", + "RU1QRVJBVFVSRV9CEP3LBhIkCh5FX0xVQlJJQ0FOVF9VTkRFUlRFTVBFUkFU", + "VVJFX0IQ/ssGEiwKJkVfV0hTXzFfQ09PTEVSX1RFTVBFUkFUVVJFX0lTX1RP", + "T19ISUdIEP/LBhIrCiVFX1dIU18xX0NPT0xFUl9URU1QRVJBVFVSRV9JU19U", + "T09fTE9XEIDMBhIsCiZFX1dIU18yX0NPT0xFUl9URU1QRVJBVFVSRV9JU19U", + "T09fSElHSBCBzAYSKwolRV9XSFNfMl9DT09MRVJfVEVNUEVSQVRVUkVfSVNf", + "VE9PX0xPVxCCzAYSJQofRV9URU1QRVJBVFVSRV9NRUFTVVJFTUVOVF9FUlJP", + "UhCDzAYSKgokRV9EUllFUl9JTlRFUk5BTF9URU1QRVJBVFVSRV9UT09fTE9X", + "EITMBhIvCilFX0RZRUlOR19IRUFEX1pPTkVfMV9DVVJSRU5UX09VVF9PRl9S", + "QU5HRRDI0wYSLwopRV9EWUVJTkdfSEVBRF9aT05FXzJfQ1VSUkVOVF9PVVRf", + "T0ZfUkFOR0UQydMGEi8KKUVfRFlFSU5HX0hFQURfWk9ORV8zX0NVUlJFTlRf", + "T1VUX09GX1JBTkdFEMrTBhIrCiVFX01JWEVSXzFfSEVBVEVSX0NVUlJFTlRf", + "T1VUX09GX1JBTkdFEMvTBhIrCiVFX01JWEVSXzJfSEVBVEVSX0NVUlJFTlRf", + "T1VUX09GX1JBTkdFEMzTBhIqCiRFX1RVTk5FTF9IRUFURVJfQ1VSUkVOVF9P", + "VVRfT0ZfUkFOR0UQzdMGEisKJUVfRFJZRVJfSEVBVEVSXzFfQ1VSUkVOVF9P", + "VVRfT0ZfUkFOR0UQztMGEisKJUVfRFJZRVJfSEVBVEVSXzJfQ1VSUkVOVF9P", + "VVRfT0ZfUkFOR0UQz9MGEisKJUVfRFJZRVJfSEVBVEVSXzNfQ1VSUkVOVF9P", + "VVRfT0ZfUkFOR0UQ0NMGEi0KJ0VfTFVCUklDQU5UX0hFQVRFUl9DVVJSRU5U", + "X09VVF9PRl9SQU5HRRDR0wYSLQonRV9EWUVJTkdfSEVBRF9aT05FXzFfQ1VS", + "UkVOVF9MT09QX0JSRUFLENLTBhItCidFX0RZRUlOR19IRUFEX1pPTkVfMl9D", + "VVJSRU5UX0xPT1BfQlJFQUsQ09MGEi0KJ0VfRFlFSU5HX0hFQURfWk9ORV8z", + "X0NVUlJFTlRfTE9PUF9CUkVBSxDU0wYSKQojRV9NSVhFUl8xX0hFQVRFUl9D", + "VVJSRU5UX0xPT1BfQlJFQUsQ1dMGEikKI0VfTUlYRVJfMl9IRUFURVJfQ1VS", + "UkVOVF9MT09QX0JSRUFLENbTBhIoCiJFX1RVTk5FTF9IRUFURVJfQ1VSUkVO", + "VF9MT09QX0JSRUFLENfTBhIpCiNFX0RSWUVSX0hFQVRFUl8xX0NVUlJFTlRf", + "TE9PUF9CUkVBSxDY0wYSKQojRV9EUllFUl9IRUFURVJfMl9DVVJSRU5UX0xP", + "T1BfQlJFQUsQ2dMGEikKI0VfRFJZRVJfSEVBVEVSXzNfQ1VSUkVOVF9MT09Q", + "X0JSRUFLENrTBhIrCiVFX0xVQlJJQ0FOVF9IRUFURVJfQ1VSUkVOVF9MT09Q", + "X0JSRUFLENvTBhIkCh5FX0RSWUVSX01BSU5fTU9UT1JfTUFMRlVOQ1RJT04Q", + "sNsGEi4KKEVfRFJZRVJfVEhSRUFEX0xPQURJTkdfTU9UT1JfTUFMRlVOQ1RJ", + "T04QsdsGEiIKHEVfV0lOREVSXzFfTU9UT1JfTUFMRlVOQ1RJT04QstsGEiIK", + "HEVfV0lOREVSXzJfTU9UT1JfTUFMRlVOQ1RJT04Qs9sGEiIKHEVfV0lOREVS", + "XzNfTU9UT1JfTUFMRlVOQ1RJT04QtNsGEiIKHEVfV0lOREVSXzRfTU9UT1Jf", + "TUFMRlVOQ1RJT04QtdsGEiIKHEVfREFOQ0VSXzFfTU9UT1JfTUFMRlVOQ1RJ", + "T04QttsGEiIKHEVfREFOQ0VSXzJfTU9UT1JfTUFMRlVOQ1RJT04Qt9sGEiIK", + "HEVfREFOQ0VSXzNfTU9UT1JfTUFMRlVOQ1RJT04QuNsGEiIKHEVfREFOQ0VS", + "XzRfTU9UT1JfTUFMRlVOQ1RJT04QudsGEi0KJ0VfRFlFSU5HX0hFQURfQ0xF", + "QU5FUl9NT1RPUl9NQUxGVU5DVElPThC62wYSEgoMRV9OT19TVUNUSU9OEJjj", + "BhIhChtFX0RSWUVSX0JMT1dFUl9GTE9XX1RPT19MT1cQmeMGEiIKHEVfVFVO", + "TkVMX0JMT1dFUl9GTE9XX1RPT19MT1cQmuMGEiAKGkVfSU5TVUZGSUNJRU5U", + "X1dIU19TVUNUSU9OEJvjBhIaChRFX0FJUl9GSUxURVJfQ0xPR0dFRBCc4wYS", + "JAoeRV9OT19DSVJDVUxBVElPTl9GTE9XX0lOX0RSWUVSEJ3jBhIkCh5FX0lO", + "S19MSU5FXzFfUFJFU1NVUkVfVE9PX0hJR0gQgOsGEiQKHkVfSU5LX0xJTkVf", + "Ml9QUkVTU1VSRV9UT09fSElHSBCB6wYSJAoeRV9JTktfTElORV8zX1BSRVNT", + "VVJFX1RPT19ISUdIEILrBhIkCh5FX0lOS19MSU5FXzRfUFJFU1NVUkVfVE9P", + "X0hJR0gQg+sGEiQKHkVfSU5LX0xJTkVfNV9QUkVTU1VSRV9UT09fSElHSBCE", + "6wYSJAoeRV9JTktfTElORV82X1BSRVNTVVJFX1RPT19ISUdIEIXrBhIkCh5F", + "X0lOS19MSU5FXzdfUFJFU1NVUkVfVE9PX0hJR0gQhusGEiQKHkVfSU5LX0xJ", + "TkVfOF9QUkVTU1VSRV9UT09fSElHSBCH6wYSJAoeRV9JTktfTElORV85X1BS", + "RVNTVVJFX1RPT19ISUdIEIjrBhIlCh9FX0lOS19MSU5FXzEwX1BSRVNTVVJF", + "X1RPT19ISUdIEInrBhIjCh1FX0lOS19MSU5FXzFfUFJFU1NVUkVfVE9PX0xP", + "VxCK6wYSIwodRV9JTktfTElORV8yX1BSRVNTVVJFX1RPT19MT1cQi+sGEiMK", + "HUVfSU5LX0xJTkVfM19QUkVTU1VSRV9UT09fTE9XEIzrBhIjCh1FX0lOS19M", + "SU5FXzRfUFJFU1NVUkVfVE9PX0xPVxCN6wYSIwodRV9JTktfTElORV81X1BS", + "RVNTVVJFX1RPT19MT1cQjusGEiMKHUVfSU5LX0xJTkVfNl9QUkVTU1VSRV9U", + "T09fTE9XEI/rBhIjCh1FX0lOS19MSU5FXzdfUFJFU1NVUkVfVE9PX0xPVxCQ", + "6wYSIwodRV9JTktfTElORV84X1BSRVNTVVJFX1RPT19MT1cQkesGEiMKHUVf", + "SU5LX0xJTkVfOV9QUkVTU1VSRV9UT09fTE9XEJLrBhIkCh5FX0lOS19MSU5F", + "XzEwX1BSRVNTVVJFX1RPT19MT1cQk+sGEh4KGEVfSU5LX1BVTVBfMV9NQUxG", + "VU5DVElPThCU6wYSHgoYRV9JTktfUFVNUF8yX01BTEZVTkNUSU9OEJXrBhIe", + "ChhFX0lOS19QVU1QXzNfTUFMRlVOQ1RJT04QlusGEh4KGEVfSU5LX1BVTVBf", + "NF9NQUxGVU5DVElPThCX6wYSHgoYRV9JTktfUFVNUF81X01BTEZVTkNUSU9O", + "EJjrBhIeChhFX0lOS19QVU1QXzZfTUFMRlVOQ1RJT04QmesGEh4KGEVfSU5L", + "X1BVTVBfN19NQUxGVU5DVElPThCa6wYSHgoYRV9JTktfUFVNUF84X01BTEZV", + "TkNUSU9OEJvrBhIeChhFX0lOS19QVU1QXzlfTUFMRlVOQ1RJT04QnOsGEh8K", + "GUVfSU5LX1BVTVBfMTBfTUFMRlVOQ1RJT04QnesGEh8KGUVfSU5LX1BVTVBf", + "MTFfTUFMRlVOQ1RJT04QnusGEh8KGUVfSU5LX1BVTVBfMTJfTUFMRlVOQ1RJ", + "T04Qn+sGEh8KGUVfSU5LX1BVTVBfMTNfTUFMRlVOQ1RJT04QoOsGEh8KGUVf", + "SU5LX1BVTVBfMTRfTUFMRlVOQ1RJT04QoesGEh8KGUVfSU5LX1BVTVBfMTVf", + "TUFMRlVOQ1RJT04QousGEiUKH0VfSU5LX0xJTkVfMV9NSURfVEFOS19MT1df", + "TEVWRUwQo+sGEiUKH0VfSU5LX0xJTkVfMl9NSURfVEFOS19MT1dfTEVWRUwQ", + "pOsGEiUKH0VfSU5LX0xJTkVfM19NSURfVEFOS19MT1dfTEVWRUwQpesGEiUK", + "H0VfSU5LX0xJTkVfNF9NSURfVEFOS19MT1dfTEVWRUwQpusGEiUKH0VfSU5L", + "X0xJTkVfNV9NSURfVEFOS19MT1dfTEVWRUwQp+sGEiUKH0VfSU5LX0xJTkVf", + "Nl9NSURfVEFOS19MT1dfTEVWRUwQqOsGEiUKH0VfSU5LX0xJTkVfN19NSURf", + "VEFOS19MT1dfTEVWRUwQqesGEiUKH0VfSU5LX0xJTkVfOF9NSURfVEFOS19M", + "T1dfTEVWRUwQqusGEiUKH0VfSU5LX0xJTkVfOV9NSURfVEFOS19MT1dfTEVW", + "RUwQq+sGEiYKIEVfSU5LX0xJTkVfMTBfTUlEX1RBTktfTE9XX0xFVkVMEKzr", + "BhIoCiJFX0lOS19MSU5FXzFfTUlEX1RBTktfRklMTF9USU1FT1VUEK3rBhIo", + "CiJFX0lOS19MSU5FXzJfTUlEX1RBTktfRklMTF9USU1FT1VUEK7rBhIoCiJF", + "X0lOS19MSU5FXzNfTUlEX1RBTktfRklMTF9USU1FT1VUEK/rBhIoCiJFX0lO", + "S19MSU5FXzRfTUlEX1RBTktfRklMTF9USU1FT1VUELDrBhIoCiJFX0lOS19M", + "SU5FXzVfTUlEX1RBTktfRklMTF9USU1FT1VUELHrBhIoCiJFX0lOS19MSU5F", + "XzZfTUlEX1RBTktfRklMTF9USU1FT1VUELLrBhIoCiJFX0lOS19MSU5FXzdf", + "TUlEX1RBTktfRklMTF9USU1FT1VUELPrBhIoCiJFX0lOS19MSU5FXzhfTUlE", + "X1RBTktfRklMTF9USU1FT1VUELTrBhIoCiJFX0lOS19MSU5FXzlfTUlEX1RB", + "TktfRklMTF9USU1FT1VUELXrBhIpCiNFX0lOS19MSU5FXzEwX01JRF9UQU5L", + "X0ZJTExfVElNRU9VVBC26wYSJwohRV9JTktfTElORV8xX01JRF9UQU5LX01B", + "TEZVTkNUSU9OELfrBhInCiFFX0lOS19MSU5FXzJfTUlEX1RBTktfTUFMRlVO", + "Q1RJT04QuOsGEicKIUVfSU5LX0xJTkVfM19NSURfVEFOS19NQUxGVU5DVElP", + "ThC56wYSJwohRV9JTktfTElORV80X01JRF9UQU5LX01BTEZVTkNUSU9OELrr", + "BhInCiFFX0lOS19MSU5FXzVfTUlEX1RBTktfTUFMRlVOQ1RJT04Qu+sGEicK", + "IUVfSU5LX0xJTkVfNl9NSURfVEFOS19NQUxGVU5DVElPThC86wYSJwohRV9J", + "TktfTElORV83X01JRF9UQU5LX01BTEZVTkNUSU9OEL3rBhInCiFFX0lOS19M", + "SU5FXzhfTUlEX1RBTktfTUFMRlVOQ1RJT04QvusGEicKIUVfSU5LX0xJTkVf", + "OV9NSURfVEFOS19NQUxGVU5DVElPThC/6wYSKAoiRV9JTktfTElORV8xMF9N", + "SURfVEFOS19NQUxGVU5DVElPThDA6wZCIQofY29tLnR3aW5lLnRhbmdvLnBt", + "ci5kaWFnbm9zdGljc2IGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Diagnostics.EventType), }, null)); @@ -678,6 +693,18 @@ namespace Tango.PMR.Diagnostics { /// </summary> [pbr::OriginalName("RFID_READER_MALFUNCTION_WASTE_SLOT_2")] RfidReaderMalfunctionWasteSlot2 = 2024, /// <summary> + ///Communication failure. Cannot execute job (Group = GeneralHardware, Category = Critical) + /// </summary> + [pbr::OriginalName("I2C3_COMMUNICATION_FAILURE")] I2C3CommunicationFailure = 2025, + /// <summary> + ///Communication failure. Cannot execute job (Group = GeneralHardware, Category = Critical) + /// </summary> + [pbr::OriginalName("I2C4_COMMUNICATION_FAILURE")] I2C4CommunicationFailure = 2026, + /// <summary> + ///Communication failure. Cannot execute job (Group = Transport, Category = Warning) + /// </summary> + [pbr::OriginalName("I2C_COMMUNICATION_FAILURE")] I2CCommunicationFailure = 2027, + /// <summary> ///Thread break. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) /// </summary> [pbr::OriginalName("THREAD_BREAK")] ThreadBreak = 3000, @@ -1390,6 +1417,30 @@ namespace Tango.PMR.Diagnostics { /// </summary> [pbr::OriginalName("DYEING_HEAD_COVER_IS_OPEN")] DyeingHeadCoverIsOpen = 5099, /// <summary> + ///Dyeing head voltage is too low. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("DYEING_HEAD_VOLTAGE_1_TOO_LOW")] DyeingHeadVoltage1TooLow = 5100, + /// <summary> + ///Dyeing head voltage is too low. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("DYEING_HEAD_VOLTAGE_2_TOO_LOW")] DyeingHeadVoltage2TooLow = 5101, + /// <summary> + ///Dyeing head voltage is too low. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("DYEING_HEAD_VOLTAGE_3_TOO_LOW")] DyeingHeadVoltage3TooLow = 5102, + /// <summary> + ///Dyeing head voltage break. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("DYEING_HEAD_VOLTAGE_1_BREAK")] DyeingHeadVoltage1Break = 5103, + /// <summary> + ///Dyeing head voltage break. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("DYEING_HEAD_VOLTAGE_2_BREAK")] DyeingHeadVoltage2Break = 5104, + /// <summary> + ///Dyeing head voltage break. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("DYEING_HEAD_VOLTAGE_3_BREAK")] DyeingHeadVoltage3Break = 5105, + /// <summary> ///The temperature in the mixer is too high. Cannot execute job (Group = Mixer, Category = Error) /// </summary> [pbr::OriginalName("MIXER_OVERTEMPERATURE")] MixerOvertemperature = 6000, @@ -1958,6 +2009,46 @@ namespace Tango.PMR.Diagnostics { /// </summary> [pbr::OriginalName("MID_TANK_10_FILL_TIMEOUT")] MidTank10FillTimeout = 8039, /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_1_MALFUNCTION")] MidTank1Malfunction = 8040, + /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_2_MALFUNCTION")] MidTank2Malfunction = 8041, + /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_3_MALFUNCTION")] MidTank3Malfunction = 8042, + /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_4_MALFUNCTION")] MidTank4Malfunction = 8043, + /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_5_MALFUNCTION")] MidTank5Malfunction = 8044, + /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_6_MALFUNCTION")] MidTank6Malfunction = 8045, + /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_7_MALFUNCTION")] MidTank7Malfunction = 8046, + /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_8_MALFUNCTION")] MidTank8Malfunction = 8047, + /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_9_MALFUNCTION")] MidTank9Malfunction = 8048, + /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_10_MALFUNCTION")] MidTank10Malfunction = 8049, + /// <summary> ///Cannot detect air filter. Cannot execute job (Group = WasteHandlingSystem, Category = Critical) /// </summary> [pbr::OriginalName("AIR_FILTER_NOT_INSTALLED")] AirFilterNotInstalled = 9000, @@ -2058,17 +2149,17 @@ namespace Tango.PMR.Diagnostics { /// </summary> [pbr::OriginalName("INK_CARTRIDGE_RFID_TIMEOUT")] InkCartridgeRfidTimeout = 10001, /// <summary> - ///No waste cartridge in system. Cannot execute job. Please insert waste cartridge (Group = InkFillingSystem, Category = Error) + ///No waste cartridge in system. Cannot execute job. Please insert waste cartridge (Group = InkFillingSystem, Category = Warning) /// </summary> [pbr::OriginalName("NO_WASTE_CARTRIDGE_AVAILABLE")] NoWasteCartridgeAvailable = 10002, /// <summary> - ///Both waste cartridges are full. Cannot execute job. Please replace waste cartridges (Group = InkFillingSystem, Category = Error) + ///Waste tank is full. Please perform waste emptying (Group = InkFillingSystem, Category = Warning) /// </summary> - [pbr::OriginalName("ALL_WASTE_CARTRIDGES_FULL")] AllWasteCartridgesFull = 10003, + [pbr::OriginalName("WASTE_TANK_FULL")] WasteTankFull = 10003, /// <summary> - ///Cannot detect waste cartridge. Cannot execute job (Group = InkFillingSystem, Category = Warning) + ///Cartridges not inserted properly. Cannot execute job (Group = InkFillingSystem, Category = Warning) /// </summary> - [pbr::OriginalName("WASTE_CARTRIDGE_PRESENCE_SENSOR_TIMEOUT")] WasteCartridgePresenceSensorTimeout = 10004, + [pbr::OriginalName("CARTRIDGES_NOT_INSERTED_PROPERLY")] CartridgesNotInsertedProperly = 10004, /// <summary> ///Cannot identify waste cartridge. Cannot execute job (Group = InkFillingSystem, Category = Warning) /// </summary> @@ -2174,771 +2265,779 @@ namespace Tango.PMR.Diagnostics { /// </summary> [pbr::OriginalName("E_JOB_COMPLETED")] EJobCompleted = 101013, /// <summary> - ///Machine power up cannot be completed (Group = InkFillingSystem, Category = Error) + ///Machine power up cannot be completed (Group = GeneralHardware, Category = Error) /// </summary> [pbr::OriginalName("E_POWER_UP_BIT_FAILURE")] EPowerUpBitFailure = 102000, /// <summary> - ///Machine power up cannot be completed (Group = InkFillingSystem, Category = Error) + ///Machine power up cannot be completed (Group = GeneralHardware, Category = Error) /// </summary> [pbr::OriginalName("E_MACHINE_STATE_NO_CFG_FILE")] EMachineStateNoCfgFile = 102001, /// <summary> - ///Machine power up cannot be completed (Group = InkFillingSystem, Category = Error) + ///Machine power up cannot be completed (Group = GeneralHardware, Category = Error) /// </summary> [pbr::OriginalName("E_MACHINE_STATE_HW_CONFIG_FAILED")] EMachineStateHwConfigFailed = 102002, /// <summary> - ///Machine power up cannot be completed (Group = InkFillingSystem, Category = Error) + ///Machine power up cannot be completed (Group = GeneralHardware, Category = Error) /// </summary> [pbr::OriginalName("E_MACHINE_STATE_NO_FLASH_FILE")] EMachineStateNoFlashFile = 102003, /// <summary> - ///Machine power up cannot be completed (Group = InkFillingSystem, Category = Error) + ///Machine power up cannot be completed (Group = GeneralHardware, Category = Error) /// </summary> [pbr::OriginalName("E_MACHINE_STATE_NO_ALARMS_FILE")] EMachineStateNoAlarmsFile = 102004, /// <summary> - ///The emergency button is pressed (Group = Mixer, Category = Critical) + ///The emergency button is pressed (Group = GeneralHardware, Category = Critical) /// </summary> [pbr::OriginalName("E_EMERGENCY_PUSH_BUTTON_PRESSED")] EEmergencyPushButtonPressed = 103001, /// <summary> - ///The dryer door is open. Cannot execute job (Group = Mixer, Category = Critical) + ///The dryer door is open. Cannot execute job (Group = Safety, Category = Critical) /// </summary> [pbr::OriginalName("E_DRYER_DOOR_OPEN")] EDryerDoorOpen = 103002, /// <summary> - ///Dryer thermal cutoff activated. Cannot execute job (Group = Mixer, Category = Critical) + ///Dryer thermal cutoff activated. Cannot execute job (Group = Safety, Category = Critical) /// </summary> [pbr::OriginalName("E_DRYER_THERMAL_CUTOFF")] EDryerThermalCutoff = 103003, /// <summary> - ///Tunnel thermal cutoff activated. Cannot execute job (Group = Mixer, Category = Critical) + ///Tunnel thermal cutoff activated. Cannot execute job (Group = Safety, Category = Critical) /// </summary> [pbr::OriginalName("E_TUNNEL_THERMAL_CUTOFF")] ETunnelThermalCutoff = 103004, /// <summary> - ///Dyeing head thermal cutoff activated. Cannot execute job (Group = Mixer, Category = Critical) + ///Dyeing head thermal cutoff activated. Cannot execute job (Group = Safety, Category = Critical) /// </summary> [pbr::OriginalName("E_DYEING_HEAD_THERMAL_CUTOFF")] EDyeingHeadThermalCutoff = 103005, /// <summary> - ///Mixer thermal cutoff activated. Cannot execute job (Group = Mixer, Category = Critical) + ///Mixer thermal cutoff activated. Cannot execute job (Group = Safety, Category = Critical) /// </summary> [pbr::OriginalName("E_MIXER_THERMAL_CUTOFF")] EMixerThermalCutoff = 103006, /// <summary> - ///Lubrication thermal cutoff activated. Cannot execute job (Group = Mixer, Category = Critical) + ///Lubrication thermal cutoff activated. Cannot execute job (Group = Safety, Category = Critical) /// </summary> [pbr::OriginalName("E_LUBRICATION_THERMAL_CUTOFF")] ELubricationThermalCutoff = 103007, /// <summary> - ///No air flow in tunnel. Cannot execute job (Group = Mixer, Category = Critical) + ///No air flow in tunnel. Cannot execute job (Group = Safety, Category = Critical) /// </summary> [pbr::OriginalName("E_TUNNEL_AIR_FLOW_SWITCH")] ETunnelAirFlowSwitch = 103008, /// <summary> - ///No Suction from recycled ink handling system. Cannot execute job (Group = Mixer, Category = Critical) + ///No Suction from recycled ink handling system. Cannot execute job (Group = Safety, Category = Critical) /// </summary> [pbr::OriginalName("E_WHS_AIR_FLOW_SWITCH")] EWhsAirFlowSwitch = 103009, /// <summary> - ///Air filter not present. Cannot execute job (Group = Mixer, Category = Critical) + ///Air filter not present. Cannot execute job (Group = Safety, Category = Critical) /// </summary> [pbr::OriginalName("E_AIR_FILTER_NOT_PRESENT")] EAirFilterNotPresent = 103010, /// <summary> - ///Software error has occurred. Cannot execute job (Group = WasteHandlingSystem, Category = Error) + ///Software error has occurred. Cannot execute job (Group = GeneralHardware, Category = Error) /// </summary> [pbr::OriginalName("E_UNINTENDED_RESET")] EUnintendedReset = 104000, /// <summary> - ///Software error has occurred. Cannot execute job (Group = WasteHandlingSystem, Category = Error) + ///Software error has occurred. Cannot execute job (Group = GeneralHardware, Category = Error) /// </summary> [pbr::OriginalName("E_SD_CARD_NOT_RESPONDING")] ESdCardNotResponding = 104001, /// <summary> - ///Communication error. Cannot execute job (Group = Dryer, Category = Error) + ///Communication error. Cannot execute job (Group = Transport, Category = Error) /// </summary> [pbr::OriginalName("E_NO_COMMUNICATION_WITH_BTSR_1")] ENoCommunicationWithBtsr1 = 105000, /// <summary> - ///Communication error. Cannot execute job (Group = Dryer, Category = Error) + ///Communication error. Cannot execute job (Group = Transport, Category = Error) /// </summary> [pbr::OriginalName("E_NO_COMMUNICATION_WITH_BTSR_2")] ENoCommunicationWithBtsr2 = 105001, /// <summary> - ///Communication error. Cannot execute job (Group = Dryer, Category = Error) + ///Communication error. Cannot execute job (Group = Transport, Category = Error) /// </summary> [pbr::OriginalName("E_NO_COMMUNICATION_WITH_BTSR_3")] ENoCommunicationWithBtsr3 = 105002, /// <summary> - ///Communication error. Cannot execute job (Group = Dryer, Category = Error) + ///Communication error. Cannot execute job (Group = Transport, Category = Error) /// </summary> [pbr::OriginalName("E_NO_COMMUNICATION_WITH_BTSR_4")] ENoCommunicationWithBtsr4 = 105003, /// <summary> - ///Communication error. Cannot execute job (Group = Dryer, Category = Error) + ///Communication error. Cannot execute job (Group = Transport, Category = Error) /// </summary> [pbr::OriginalName("E_NO_COMMUNICATION_WITH_DRYER_BOARD")] ENoCommunicationWithDryerBoard = 105004, /// <summary> - ///Communication error. Cannot execute job (Group = Dryer, Category = Error) + ///Communication error. Cannot execute job (Group = Transport, Category = Error) /// </summary> [pbr::OriginalName("E_NO_COMMUNICATION_WITH_DYEING_HEAD_BOARD")] ENoCommunicationWithDyeingHeadBoard = 105005, /// <summary> - ///Communication error. Cannot execute job (Group = Dryer, Category = Error) + ///Communication error. Cannot execute job (Group = Transport, Category = Error) /// </summary> [pbr::OriginalName("E_NO_COMMUNICATION_WITH_WINDER_1_BOARD")] ENoCommunicationWithWinder1Board = 105006, /// <summary> - ///Communication error. Cannot execute job (Group = Dryer, Category = Error) + ///Communication error. Cannot execute job (Group = Transport, Category = Error) /// </summary> [pbr::OriginalName("E_NO_COMMUNICATION_WITH_WINDER_2_BOARD")] ENoCommunicationWithWinder2Board = 105007, /// <summary> - ///Communication error. Cannot execute job (Group = Dryer, Category = Error) + ///Communication error. Cannot execute job (Group = Transport, Category = Error) /// </summary> [pbr::OriginalName("E_NO_COMMUNICATION_WITH_WINDER_3_BOARD")] ENoCommunicationWithWinder3Board = 105008, /// <summary> - ///Communication error. Cannot execute job (Group = Dryer, Category = Error) + ///Communication error. Cannot execute job (Group = Transport, Category = Error) /// </summary> [pbr::OriginalName("E_NO_COMMUNICATION_WITH_WINDER_4_BOARD")] ENoCommunicationWithWinder4Board = 105009, /// <summary> - ///Communication error. Cannot execute job (Group = Dryer, Category = Error) + ///Communication error. Cannot execute job (Group = Transport, Category = Error) /// </summary> [pbr::OriginalName("E_NO_COMMUNICATION_WITH_IDS_1_BOARD")] ENoCommunicationWithIds1Board = 105010, /// <summary> - ///Communication error. Cannot execute job (Group = Dryer, Category = Error) + ///Communication error. Cannot execute job (Group = Transport, Category = Error) /// </summary> [pbr::OriginalName("E_NO_COMMUNICATION_WITH_IDS_2_BOARD")] ENoCommunicationWithIds2Board = 105011, /// <summary> - ///Communication error. Cannot execute job (Group = Dryer, Category = Error) + ///Communication error. Cannot execute job (Group = Transport, Category = Error) /// </summary> [pbr::OriginalName("E_NO_COMMUNICATION_WITH_IDS_3_BOARD")] ENoCommunicationWithIds3Board = 105012, /// <summary> - ///Communication error. Cannot execute job (Group = Dryer, Category = Error) + ///Communication error. Cannot execute job (Group = Transport, Category = Error) /// </summary> [pbr::OriginalName("E_NO_COMMUNICATION_WITH_IDS_4_BOARD")] ENoCommunicationWithIds4Board = 105013, /// <summary> - ///Communication error. Cannot execute job (Group = Dryer, Category = Error) + ///Communication error. Cannot execute job (Group = Transport, Category = Error) /// </summary> [pbr::OriginalName("E_NO_COMMUNICATION_WITH_MID_TANK_BOARD")] ENoCommunicationWithMidTankBoard = 105014, /// <summary> - ///Communication error. Cannot execute job (Group = Dryer, Category = Error) + ///Communication error. Cannot execute job (Group = Transport, Category = Error) /// </summary> [pbr::OriginalName("E_NO_COMMUNICATION_WITH_WHS_BOARD")] ENoCommunicationWithWhsBoard = 105015, /// <summary> - ///Communication error. Cannot execute job (Group = Dryer, Category = Error) + ///Communication error. Cannot execute job (Group = Transport, Category = Error) /// </summary> [pbr::OriginalName("E_NO_COMMUNICATION_WITH_LUBRICANT_BOARD")] ENoCommunicationWithLubricantBoard = 105016, /// <summary> - ///Communication error. Cannot execute job (Group = Dryer, Category = Error) + ///Communication error. Cannot execute job (Group = Transport, Category = Error) /// </summary> [pbr::OriginalName("E_NO_COMMUNICATION_WITH_MAIN_BOARD")] ENoCommunicationWithMainBoard = 105017, /// <summary> - ///Door is open. Cannot execute job (Group = DyeingHead, Category = Error) + ///Door is open. Cannot execute job (Group = GeneralHardware, Category = Error) /// </summary> [pbr::OriginalName("E_LEFT_DOOR_OPEN")] ELeftDoorOpen = 106000, /// <summary> - ///Door is open. Cannot execute job (Group = DyeingHead, Category = Error) + ///Door is open. Cannot execute job (Group = GeneralHardware, Category = Error) /// </summary> [pbr::OriginalName("E_RIGHT_DOOR_OPEN")] ERightDoorOpen = 106001, /// <summary> - ///Door is open. Cannot execute job (Group = DyeingHead, Category = Error) + ///Door is open. Cannot execute job (Group = GeneralHardware, Category = Error) /// </summary> [pbr::OriginalName("E_TOP_DOOR_OPEN")] ETopDoorOpen = 106002, /// <summary> - ///Tunnel lid is open. Cannot execute job (Group = DyeingHead, Category = Error) + ///Tunnel lid is open. Cannot execute job (Group = GeneralHardware, Category = Error) /// </summary> [pbr::OriginalName("E_TUNNEL_LID_IS_OPEN")] ETunnelLidIsOpen = 106003, /// <summary> - ///Arc lid is open. Cannot execute job (Group = DyeingHead, Category = Error) + ///Arc lid is open. Cannot execute job (Group = GeneralHardware, Category = Error) /// </summary> [pbr::OriginalName("E_ARC_LID_IS_OPEN")] EArcLidIsOpen = 106004, /// <summary> - ///BTSR malfunction. Cannot execute job (Group = 14, Category = Error) + ///BTSR malfunction. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_BTSR_1_MALFUNCTION")] EBtsr1Malfunction = 107000, /// <summary> - ///BTSR malfunction. Cannot execute job (Group = 14, Category = Error) + ///BTSR malfunction. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_BTSR_2_MALFUNCTION")] EBtsr2Malfunction = 107001, /// <summary> - ///BTSR malfunction. Cannot execute job (Group = 14, Category = Error) + ///BTSR malfunction. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_BTSR_3_MALFUNCTION")] EBtsr3Malfunction = 107002, /// <summary> - ///BTSR malfunction. Cannot execute job (Group = 14, Category = Error) + ///BTSR malfunction. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_BTSR_4_MALFUNCTION")] EBtsr4Malfunction = 107003, /// <summary> - ///Tension is out of range. Cannot execute job (Group = 14, Category = Error) + ///Tension is out of range. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_TENSION_IN_BTSR_1_IS_OUT_OF_RANGE")] ETensionInBtsr1IsOutOfRange = 107004, /// <summary> - ///Tension is out of range. Cannot execute job (Group = 14, Category = Error) + ///Tension is out of range. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_TENSION_IN_BTSR_2_IS_OUT_OF_RANGE")] ETensionInBtsr2IsOutOfRange = 107005, /// <summary> - ///Tension is out of range. Cannot execute job (Group = 14, Category = Error) + ///Tension is out of range. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_TENSION_IN_BTSR_3_IS_OUT_OF_RANGE")] ETensionInBtsr3IsOutOfRange = 107006, /// <summary> - ///Tension is out of range. Cannot execute job (Group = 14, Category = Error) + ///Tension is out of range. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_TENSION_IN_BTSR_4_IS_OUT_OF_RANGE")] ETensionInBtsr4IsOutOfRange = 107007, /// <summary> - ///Thread break. Cannot execute job (Group = 14, Category = Error) + ///Thread break. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_THREAD_BREAK")] EThreadBreak = 107008, /// <summary> - ///Thread tension control failure. Cannot execute job (Group = 14, Category = Error) + ///Thread tension control failure. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_DANCER_1_TENSION_CONTROL_FAILURE")] EDancer1TensionControlFailure = 107009, /// <summary> - ///Thread tension control failure. Cannot execute job (Group = 14, Category = Error) + ///Thread tension control failure. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_DANCER_2_TENSION_CONTROL_FAILURE")] EDancer2TensionControlFailure = 107010, /// <summary> - ///Thread tension control failure. Cannot execute job (Group = 14, Category = Error) + ///Thread tension control failure. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_DANCER_3_TENSION_CONTROL_FAILURE")] EDancer3TensionControlFailure = 107011, /// <summary> - ///Thread tension control failure. Cannot execute job (Group = 14, Category = Error) + ///Thread tension control failure. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_DANCER_4_TENSION_CONTROL_FAILURE")] EDancer4TensionControlFailure = 107012, /// <summary> - ///Thread loading error. Cannot execute job (Group = 14, Category = Error) + ///Thread loading error. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_THREAD_LOADING_ERROR")] EThreadLoadingError = 107013, /// <summary> - ///Gripper malfunction. Cannot execute job (Group = 14, Category = Error) + ///Gripper malfunction. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_GRIPPER_MALFUNCTION")] EGripperMalfunction = 107014, /// <summary> - ///Thread missing. Cannot execute job (Group = 14, Category = Error) + ///Thread missing. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_THREAD_MISSING")] EThreadMissing = 107015, /// <summary> - ///Temperature in dyeing head is too high. Cannot execute job (Group = 13, Category = Critical) + ///Temperature in dyeing head is too high. Cannot execute job (Group = DyeingHead, Category = Critical) /// </summary> [pbr::OriginalName("E_DYEING_HEAD_ZONE_1_OVERTEMPERATURE")] EDyeingHeadZone1Overtemperature = 108000, /// <summary> - ///Temperature in dyeing head is too high. Cannot execute job (Group = 13, Category = Critical) + ///Temperature in dyeing head is too high. Cannot execute job (Group = DyeingHead, Category = Critical) /// </summary> [pbr::OriginalName("E_DYEING_HEAD_ZONE_2_OVERTEMPERATURE")] EDyeingHeadZone2Overtemperature = 108001, /// <summary> - ///Temperature in dyeing head is too high. Cannot execute job (Group = 13, Category = Critical) + ///Temperature in dyeing head is too high. Cannot execute job (Group = DyeingHead, Category = Critical) /// </summary> [pbr::OriginalName("E_DYEING_HEAD_ZONE_3_OVERTEMPERATURE")] EDyeingHeadZone3Overtemperature = 108002, /// <summary> - ///Temperature in mixer is too high. Cannot execute job (Group = 13, Category = Critical) + ///Temperature in mixer is too high. Cannot execute job (Group = Mixer, Category = Critical) /// </summary> [pbr::OriginalName("E_MIXER_1_OVERTEMPERATURE")] EMixer1Overtemperature = 108003, /// <summary> - ///Temperature in mixer is too high. Cannot execute job (Group = 13, Category = Critical) + ///Temperature in mixer is too high. Cannot execute job (Group = Mixer, Category = Critical) /// </summary> [pbr::OriginalName("E_MIXER_2_OVERTEMPERATURE")] EMixer2Overtemperature = 108004, /// <summary> - ///Temperature in tunnel is too high. Cannot execute job (Group = 13, Category = Critical) + ///Temperature in tunnel is too high. Cannot execute job (Group = DyeingHead, Category = Critical) /// </summary> [pbr::OriginalName("E_TUNNEL_OVERTEMPERATURE")] ETunnelOvertemperature = 108005, /// <summary> - ///Temperature in dryer is too high. Cannot execute job (Group = 13, Category = Critical) + ///Temperature in dryer is too high. Cannot execute job (Group = Dryer, Category = Critical) /// </summary> [pbr::OriginalName("E_DRYER_HEATER_1_OVERTEMPERATURE")] EDryerHeater1Overtemperature = 108007, /// <summary> - ///Temperature in dryer is too high. Cannot execute job (Group = 13, Category = Critical) + ///Temperature in dryer is too high. Cannot execute job (Group = Dryer, Category = Critical) /// </summary> [pbr::OriginalName("E_DRYER_HEATER_2_OVERTEMPERATURE")] EDryerHeater2Overtemperature = 108008, /// <summary> - ///Temperature in dryer is too high. Cannot execute job (Group = 13, Category = Critical) + ///Temperature in dryer is too high. Cannot execute job (Group = Dryer, Category = Critical) /// </summary> [pbr::OriginalName("E_DRYER_HEATER_3_OVERTEMPERATURE")] EDryerHeater3Overtemperature = 108009, /// <summary> - ///Temperature in lubricant is too high. Cannot execute job (Group = 13, Category = Critical) + ///Temperature in lubricant is too high. Cannot execute job (Group = Mixer, Category = Critical) /// </summary> [pbr::OriginalName("E_LUBRICANT_OVERTEMPERATURE")] ELubricantOvertemperature = 108010, /// <summary> - ///Dyeing head is heating up. Cannot execute job (Group = 13, Category = Warning) + ///Dyeing head is heating up. Cannot execute job (Group = DyeingHead, Category = Warning) /// </summary> [pbr::OriginalName("E_DYEING_HEAD_ZONE_1_UNDERTEMPERATURE_A")] EDyeingHeadZone1UndertemperatureA = 108011, /// <summary> - ///Dyeing head is heating up. Cannot execute job (Group = 13, Category = Warning) + ///Dyeing head is heating up. Cannot execute job (Group = DyeingHead, Category = Warning) /// </summary> [pbr::OriginalName("E_DYEING_HEAD_ZONE_2_UNDERTEMPERATURE_A")] EDyeingHeadZone2UndertemperatureA = 108012, /// <summary> - ///Dyeing head is heating up. Cannot execute job (Group = 13, Category = Warning) + ///Dyeing head is heating up. Cannot execute job (Group = DyeingHead, Category = Warning) /// </summary> [pbr::OriginalName("E_DYEING_HEAD_ZONE_3_UNDERTEMPERATURE_A")] EDyeingHeadZone3UndertemperatureA = 108013, /// <summary> - ///Mixer is heating up. Cannot execute job (Group = 13, Category = Warning) + ///Mixer is heating up. Cannot execute job (Group = Mixer, Category = Warning) /// </summary> [pbr::OriginalName("E_MIXER_1_UNDERTEMPERATURE_A")] EMixer1UndertemperatureA = 108014, /// <summary> - ///Mixer is heating up. Cannot execute job (Group = 13, Category = Warning) + ///Mixer is heating up. Cannot execute job (Group = Mixer, Category = Warning) /// </summary> [pbr::OriginalName("E_MIXER_2_UNDERTEMPERATURE_A")] EMixer2UndertemperatureA = 108015, /// <summary> - ///Tunnel is heating up. Cannot execute job (Group = 13, Category = Warning) + ///Tunnel is heating up. Cannot execute job (Group = DyeingHead, Category = Warning) /// </summary> [pbr::OriginalName("E_TUNNEL_UNDERTEMPERATURE_A")] ETunnelUndertemperatureA = 108016, /// <summary> - ///Dryer is heating up. Cannot execute job (Group = 13, Category = Warning) + ///Dryer is heating up. Cannot execute job (Group = Dryer, Category = Warning) /// </summary> [pbr::OriginalName("E_DRYER_HEATER_1_UNDERTEMPERATURE_A")] EDryerHeater1UndertemperatureA = 108017, /// <summary> - ///Dryer is heating up. Cannot execute job (Group = 13, Category = Warning) + ///Dryer is heating up. Cannot execute job (Group = Dryer, Category = Warning) /// </summary> [pbr::OriginalName("E_DRYER_HEATER_2_UNDERTEMPERATURE_A")] EDryerHeater2UndertemperatureA = 108018, /// <summary> - ///Dryer is heating up. Cannot execute job (Group = 13, Category = Warning) + ///Dryer is heating up. Cannot execute job (Group = Dryer, Category = Warning) /// </summary> [pbr::OriginalName("E_DRYER_HEATER_3_UNDERTEMPERATURE_A")] EDryerHeater3UndertemperatureA = 108019, /// <summary> - ///Lubricant is heating up. Cannot execute job (Group = 13, Category = Warning) + ///Lubricant is heating up. Cannot execute job (Group = Mixer, Category = Warning) /// </summary> [pbr::OriginalName("E_LUBRICANT_UNDERTEMPERATURE_A")] ELubricantUndertemperatureA = 108020, /// <summary> - ///Temperature in dyeing head is too low. Cannot execute job (Group = 13, Category = Error) + ///Temperature in dyeing head is too low. Cannot execute job (Group = DyeingHead, Category = Error) /// </summary> [pbr::OriginalName("E_DYEING_HEAD_ZONE_1_UNDRTEMPERATURE_B")] EDyeingHeadZone1UndrtemperatureB = 108021, /// <summary> - ///Temperature in dyeing head is too low. Cannot execute job (Group = 13, Category = Error) + ///Temperature in dyeing head is too low. Cannot execute job (Group = DyeingHead, Category = Error) /// </summary> [pbr::OriginalName("E_DYEING_HEAD_ZONE_2_UNDERTEMPERATURE_B")] EDyeingHeadZone2UndertemperatureB = 108022, /// <summary> - ///Temperature in dyeing head is too low. Cannot execute job (Group = 13, Category = Error) + ///Temperature in dyeing head is too low. Cannot execute job (Group = DyeingHead, Category = Error) /// </summary> [pbr::OriginalName("E_DYEING_HEAD_ZONE_3_UNDERTEMPERATURE_B")] EDyeingHeadZone3UndertemperatureB = 108023, /// <summary> - ///Temperature in mixer is too low. Cannot execute job (Group = 13, Category = Error) + ///Temperature in mixer is too low. Cannot execute job (Group = Mixer, Category = Error) /// </summary> [pbr::OriginalName("E_MIXER_1_UNDERTEMPERATURE_B")] EMixer1UndertemperatureB = 108024, /// <summary> - ///Temperature in mixer is too low. Cannot execute job (Group = 13, Category = Error) + ///Temperature in mixer is too low. Cannot execute job (Group = Mixer, Category = Error) /// </summary> [pbr::OriginalName("E_MIXER_2_UNDERTEMPERATURE_B")] EMixer2UndertemperatureB = 108025, /// <summary> - ///Temperature in tunnel is too low. Cannot execute job (Group = 13, Category = Error) + ///Temperature in tunnel is too low. Cannot execute job (Group = DyeingHead, Category = Error) /// </summary> [pbr::OriginalName("E_TUNNEL_UNDERTEMPERATURE_B")] ETunnelUndertemperatureB = 108026, /// <summary> - ///Temperature in dryer is too low. Cannot execute job (Group = 13, Category = Error) + ///Temperature in dryer is too low. Cannot execute job (Group = Dryer, Category = Error) /// </summary> [pbr::OriginalName("E_DRYER_HEATER_1_UNDERTEMPERATURE_B")] EDryerHeater1UndertemperatureB = 108027, /// <summary> - ///Temperature in dryer is too low. Cannot execute job (Group = 13, Category = Error) + ///Temperature in dryer is too low. Cannot execute job (Group = Dryer, Category = Error) /// </summary> [pbr::OriginalName("E_DRYER_HEATER_2_UNDERTEMPERATURE_B")] EDryerHeater2UndertemperatureB = 108028, /// <summary> - ///Temperature in dryer is too low. Cannot execute job (Group = 13, Category = Error) + ///Temperature in dryer is too low. Cannot execute job (Group = Dryer, Category = Error) /// </summary> [pbr::OriginalName("E_DRYER_HEATER_3_UNDERTEMPERATURE_B")] EDryerHeater3UndertemperatureB = 108029, /// <summary> - ///Temperature in lubricant is too low. Cannot execute job (Group = 13, Category = Error) + ///Temperature in lubricant is too low. Cannot execute job (Group = Mixer, Category = Error) /// </summary> [pbr::OriginalName("E_LUBRICANT_UNDERTEMPERATURE_B")] ELubricantUndertemperatureB = 108030, /// <summary> - ///Cooler temperature is too high. Cannot execute job (Group = 13, Category = Critical) + ///Cooler temperature is too high. Cannot execute job (Group = WasteHandlingSystem, Category = Critical) /// </summary> [pbr::OriginalName("E_WHS_1_COOLER_TEMPERATURE_IS_TOO_HIGH")] EWhs1CoolerTemperatureIsTooHigh = 108031, /// <summary> - ///Cooler temperature is too low. Cannot execute job (Group = 13, Category = Error) + ///Cooler temperature is too low. Cannot execute job (Group = WasteHandlingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_WHS_1_COOLER_TEMPERATURE_IS_TOO_LOW")] EWhs1CoolerTemperatureIsTooLow = 108032, /// <summary> - ///Cooler temperature is too high. Cannot execute job (Group = 13, Category = Critical) + ///Cooler temperature is too high. Cannot execute job (Group = WasteHandlingSystem, Category = Critical) /// </summary> [pbr::OriginalName("E_WHS_2_COOLER_TEMPERATURE_IS_TOO_HIGH")] EWhs2CoolerTemperatureIsTooHigh = 108033, /// <summary> - ///Cooler temperature is too low. Cannot execute job (Group = 13, Category = Error) + ///Cooler temperature is too low. Cannot execute job (Group = WasteHandlingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_WHS_2_COOLER_TEMPERATURE_IS_TOO_LOW")] EWhs2CoolerTemperatureIsTooLow = 108034, /// <summary> - ///Temperature measurement error has occurred. Cannot execute job (Group = 13, Category = Error) + ///Temperature measurement error has occurred. Cannot execute job (Group = GeneralHardware, Category = Error) /// </summary> [pbr::OriginalName("E_TEMPERATURE_MEASUREMENT_ERROR")] ETemperatureMeasurementError = 108035, /// <summary> - ///Dyeing head zone current is out of range. Cannot execute job (Group = ElectricalCabinet, Category = Warning) + ///Dryer internal temperature is too low. Cannot execute job (Group = Dryer, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DRYER_INTERNAL_TEMPERATURE_TOO_LOW")] EDryerInternalTemperatureTooLow = 108036, + /// <summary> + ///Dyeing head zone current is out of range. Cannot execute job (Group = DyeingHead, Category = Warning) /// </summary> [pbr::OriginalName("E_DYEING_HEAD_ZONE_1_CURRENT_OUT_OF_RANGE")] EDyeingHeadZone1CurrentOutOfRange = 109000, /// <summary> - ///Dyeing head zone current is out of range. Cannot execute job (Group = ElectricalCabinet, Category = Warning) + ///Dyeing head zone current is out of range. Cannot execute job (Group = DyeingHead, Category = Warning) /// </summary> [pbr::OriginalName("E_DYEING_HEAD_ZONE_2_CURRENT_OUT_OF_RANGE")] EDyeingHeadZone2CurrentOutOfRange = 109001, /// <summary> - ///Dyeing head zone current is out of range. Cannot execute job (Group = ElectricalCabinet, Category = Warning) + ///Dyeing head zone current is out of range. Cannot execute job (Group = DyeingHead, Category = Warning) /// </summary> [pbr::OriginalName("E_DYEING_HEAD_ZONE_3_CURRENT_OUT_OF_RANGE")] EDyeingHeadZone3CurrentOutOfRange = 109002, /// <summary> - ///Mixer heater current is out of range. Cannot execute job (Group = ElectricalCabinet, Category = Warning) + ///Mixer heater current is out of range. Cannot execute job (Group = Mixer, Category = Warning) /// </summary> [pbr::OriginalName("E_MIXER_1_HEATER_CURRENT_OUT_OF_RANGE")] EMixer1HeaterCurrentOutOfRange = 109003, /// <summary> - ///Mixer heater current is out of range. Cannot execute job (Group = ElectricalCabinet, Category = Warning) + ///Mixer heater current is out of range. Cannot execute job (Group = Mixer, Category = Warning) /// </summary> [pbr::OriginalName("E_MIXER_2_HEATER_CURRENT_OUT_OF_RANGE")] EMixer2HeaterCurrentOutOfRange = 109004, /// <summary> - ///Tunnel heater current is out of range. Cannot execute job (Group = ElectricalCabinet, Category = Warning) + ///Tunnel heater current is out of range. Cannot execute job (Group = DyeingHead, Category = Warning) /// </summary> [pbr::OriginalName("E_TUNNEL_HEATER_CURRENT_OUT_OF_RANGE")] ETunnelHeaterCurrentOutOfRange = 109005, /// <summary> - ///Dryer heater current is out of range. Cannot execute job (Group = ElectricalCabinet, Category = Warning) + ///Dryer heater current is out of range. Cannot execute job (Group = Dryer, Category = Warning) /// </summary> [pbr::OriginalName("E_DRYER_HEATER_1_CURRENT_OUT_OF_RANGE")] EDryerHeater1CurrentOutOfRange = 109006, /// <summary> - ///Dryer heater current is out of range. Cannot execute job (Group = ElectricalCabinet, Category = Warning) + ///Dryer heater current is out of range. Cannot execute job (Group = Dryer, Category = Warning) /// </summary> [pbr::OriginalName("E_DRYER_HEATER_2_CURRENT_OUT_OF_RANGE")] EDryerHeater2CurrentOutOfRange = 109007, /// <summary> - ///Dryer heater current is out of range. Cannot execute job (Group = ElectricalCabinet, Category = Warning) + ///Dryer heater current is out of range. Cannot execute job (Group = Dryer, Category = Warning) /// </summary> [pbr::OriginalName("E_DRYER_HEATER_3_CURRENT_OUT_OF_RANGE")] EDryerHeater3CurrentOutOfRange = 109008, /// <summary> - ///Lubricant heater current is out of range. Cannot execute job (Group = ElectricalCabinet, Category = Warning) + ///Lubricant heater current is out of range. Cannot execute job (Group = Mixer, Category = Warning) /// </summary> [pbr::OriginalName("E_LUBRICANT_HEATER_CURRENT_OUT_OF_RANGE")] ELubricantHeaterCurrentOutOfRange = 109009, /// <summary> - ///Dyeing head zone current loop break. Cannot execute job (Group = ElectricalCabinet, Category = Error) + ///Dyeing head zone current loop break. Cannot execute job (Group = DyeingHead, Category = Error) /// </summary> [pbr::OriginalName("E_DYEING_HEAD_ZONE_1_CURRENT_LOOP_BREAK")] EDyeingHeadZone1CurrentLoopBreak = 109010, /// <summary> - ///Dyeing head zone current loop break. Cannot execute job (Group = ElectricalCabinet, Category = Error) + ///Dyeing head zone current loop break. Cannot execute job (Group = DyeingHead, Category = Error) /// </summary> [pbr::OriginalName("E_DYEING_HEAD_ZONE_2_CURRENT_LOOP_BREAK")] EDyeingHeadZone2CurrentLoopBreak = 109011, /// <summary> - ///Dyeing head zone current loop break. Cannot execute job (Group = ElectricalCabinet, Category = Error) + ///Dyeing head zone current loop break. Cannot execute job (Group = DyeingHead, Category = Error) /// </summary> [pbr::OriginalName("E_DYEING_HEAD_ZONE_3_CURRENT_LOOP_BREAK")] EDyeingHeadZone3CurrentLoopBreak = 109012, /// <summary> - ///Mixer heater current loop break. Cannot execute job (Group = ElectricalCabinet, Category = Error) + ///Mixer heater current loop break. Cannot execute job (Group = Mixer, Category = Error) /// </summary> [pbr::OriginalName("E_MIXER_1_HEATER_CURRENT_LOOP_BREAK")] EMixer1HeaterCurrentLoopBreak = 109013, /// <summary> - ///Mixer heater current loop break. Cannot execute job (Group = ElectricalCabinet, Category = Error) + ///Mixer heater current loop break. Cannot execute job (Group = Mixer, Category = Error) /// </summary> [pbr::OriginalName("E_MIXER_2_HEATER_CURRENT_LOOP_BREAK")] EMixer2HeaterCurrentLoopBreak = 109014, /// <summary> - ///Tunnel heater current loop break. Cannot execute job (Group = ElectricalCabinet, Category = Error) + ///Tunnel heater current loop break. Cannot execute job (Group = DyeingHead, Category = Error) /// </summary> [pbr::OriginalName("E_TUNNEL_HEATER_CURRENT_LOOP_BREAK")] ETunnelHeaterCurrentLoopBreak = 109015, /// <summary> - ///Dryer heater current loop break. Cannot execute job (Group = ElectricalCabinet, Category = Error) + ///Dryer heater current loop break. Cannot execute job (Group = Dryer, Category = Error) /// </summary> [pbr::OriginalName("E_DRYER_HEATER_1_CURRENT_LOOP_BREAK")] EDryerHeater1CurrentLoopBreak = 109016, /// <summary> - ///Dryer heater current loop break. Cannot execute job (Group = ElectricalCabinet, Category = Error) + ///Dryer heater current loop break. Cannot execute job (Group = Dryer, Category = Error) /// </summary> [pbr::OriginalName("E_DRYER_HEATER_2_CURRENT_LOOP_BREAK")] EDryerHeater2CurrentLoopBreak = 109017, /// <summary> - ///Dryer heater current loop break. Cannot execute job (Group = ElectricalCabinet, Category = Error) + ///Dryer heater current loop break. Cannot execute job (Group = Dryer, Category = Error) /// </summary> [pbr::OriginalName("E_DRYER_HEATER_3_CURRENT_LOOP_BREAK")] EDryerHeater3CurrentLoopBreak = 109018, /// <summary> - ///Lubricant heater current loop break. Cannot execute job (Group = ElectricalCabinet, Category = Error) + ///Lubricant heater current loop break. Cannot execute job (Group = Mixer, Category = Error) /// </summary> [pbr::OriginalName("E_LUBRICANT_HEATER_CURRENT_LOOP_BREAK")] ELubricantHeaterCurrentLoopBreak = 109019, /// <summary> - ///Dryer main motor malfuncion. Cannot execute job (Group = InkDeliverySystem, Category = Warning) + ///Dryer main motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_DRYER_MAIN_MOTOR_MALFUNCTION")] EDryerMainMotorMalfunction = 110000, /// <summary> - ///Dryer thread loading motor malfuncion. Cannot execute job (Group = InkDeliverySystem, Category = Warning) + ///Dryer thread loading motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_DRYER_THREAD_LOADING_MOTOR_MALFUNCTION")] EDryerThreadLoadingMotorMalfunction = 110001, /// <summary> - ///Winder 1 motor malfuncion. Cannot execute job (Group = InkDeliverySystem, Category = Warning) + ///Winder 1 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_WINDER_1_MOTOR_MALFUNCTION")] EWinder1MotorMalfunction = 110002, /// <summary> - ///Winder 2 motor malfuncion. Cannot execute job (Group = InkDeliverySystem, Category = Warning) + ///Winder 2 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_WINDER_2_MOTOR_MALFUNCTION")] EWinder2MotorMalfunction = 110003, /// <summary> - ///Winder 3 motor malfuncion. Cannot execute job (Group = InkDeliverySystem, Category = Warning) + ///Winder 3 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_WINDER_3_MOTOR_MALFUNCTION")] EWinder3MotorMalfunction = 110004, /// <summary> - ///Winder 4 motor malfuncion. Cannot execute job (Group = InkDeliverySystem, Category = Warning) + ///Winder 4 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_WINDER_4_MOTOR_MALFUNCTION")] EWinder4MotorMalfunction = 110005, /// <summary> - ///Dancer 1 motor malfuncion. Cannot execute job (Group = InkDeliverySystem, Category = Warning) + ///Dancer 1 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_DANCER_1_MOTOR_MALFUNCTION")] EDancer1MotorMalfunction = 110006, /// <summary> - ///Dancer 2 motor malfuncion. Cannot execute job (Group = InkDeliverySystem, Category = Warning) + ///Dancer 2 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_DANCER_2_MOTOR_MALFUNCTION")] EDancer2MotorMalfunction = 110007, /// <summary> - ///Dancer 3 motor malfuncion. Cannot execute job (Group = InkDeliverySystem, Category = Warning) + ///Dancer 3 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_DANCER_3_MOTOR_MALFUNCTION")] EDancer3MotorMalfunction = 110008, /// <summary> - ///Dancer 4 motor malfuncion. Cannot execute job (Group = InkDeliverySystem, Category = Warning) + ///Dancer 4 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_DANCER_4_MOTOR_MALFUNCTION")] EDancer4MotorMalfunction = 110009, /// <summary> - ///Dyeing head cleaner motor malfuncion. Cannot execute job (Group = InkDeliverySystem, Category = Warning) + ///Dyeing head cleaner motor malfuncion. Cannot execute job (Group = DyeingHead, Category = Warning) /// </summary> [pbr::OriginalName("E_DYEING_HEAD_CLEANER_MOTOR_MALFUNCTION")] EDyeingHeadCleanerMotorMalfunction = 110010, /// <summary> - ///Dryer blower has stopped. Cannot execute job. (Group = Dispensers, Category = Critical) + ///No suction. Cannot execute job. (Group = WasteHandlingSystem, Category = Critical) /// </summary> - [pbr::OriginalName("E_DRYER_BLOWER_STOPPED")] EDryerBlowerStopped = 111000, + [pbr::OriginalName("E_NO_SUCTION")] ENoSuction = 111000, /// <summary> - ///Dryer blower flow is too low. Cannot execute job (Group = Dispensers, Category = Warning) + ///Dryer blower flow is too low. Cannot execute job (Group = Dryer, Category = Warning) /// </summary> [pbr::OriginalName("E_DRYER_BLOWER_FLOW_TOO_LOW")] EDryerBlowerFlowTooLow = 111001, /// <summary> - ///Tunnel blower flow is too low. Cannot execute job (Group = Dispensers, Category = Warning) + ///Tunnel blower flow is too low. Cannot execute job (Group = DyeingHead, Category = Warning) /// </summary> [pbr::OriginalName("E_TUNNEL_BLOWER_FLOW_TOO_LOW")] ETunnelBlowerFlowTooLow = 111002, /// <summary> - ///Insufficient suction fron WHS. Cannot execute job (Group = Dispensers, Category = Error) + ///Insufficient suction fron WHS. Cannot execute job (Group = WasteHandlingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INSUFFICIENT_WHS_SUCTION")] EInsufficientWhsSuction = 111003, /// <summary> - ///Air filter is clogged. Cannot execute job (Group = Dispensers, Category = Error) + ///Air filter is clogged. Cannot execute job (Group = WasteHandlingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_AIR_FILTER_CLOGGED")] EAirFilterClogged = 111004, /// <summary> - ///Pressure in @ ink line too high. Cannot execute job (Group = GeneralHardware, Category = Error) + ///No circulation flow in blower. Cannot execute job (Group = Dryer, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_CIRCULATION_FLOW_IN_DRYER")] ENoCirculationFlowInDryer = 111005, + /// <summary> + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_1_PRESSURE_TOO_HIGH")] EInkLine1PressureTooHigh = 112000, /// <summary> - ///Pressure in @ ink line too high. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_2_PRESSURE_TOO_HIGH")] EInkLine2PressureTooHigh = 112001, /// <summary> - ///Pressure in @ ink line too high. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_3_PRESSURE_TOO_HIGH")] EInkLine3PressureTooHigh = 112002, /// <summary> - ///Pressure in @ ink line too high. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_4_PRESSURE_TOO_HIGH")] EInkLine4PressureTooHigh = 112003, /// <summary> - ///Pressure in @ ink line too high. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_5_PRESSURE_TOO_HIGH")] EInkLine5PressureTooHigh = 112004, /// <summary> - ///Pressure in @ ink line too high. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_6_PRESSURE_TOO_HIGH")] EInkLine6PressureTooHigh = 112005, /// <summary> - ///Pressure in @ ink line too high. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_7_PRESSURE_TOO_HIGH")] EInkLine7PressureTooHigh = 112006, /// <summary> - ///Pressure in @ ink line too high. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_8_PRESSURE_TOO_HIGH")] EInkLine8PressureTooHigh = 112007, /// <summary> - ///Pressure in @ ink line too high. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_9_PRESSURE_TOO_HIGH")] EInkLine9PressureTooHigh = 112008, /// <summary> - ///Pressure in @ ink line too high. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_10_PRESSURE_TOO_HIGH")] EInkLine10PressureTooHigh = 112009, /// <summary> - ///Pressure in @ ink line too low. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_1_PRESSURE_TOO_LOW")] EInkLine1PressureTooLow = 112010, /// <summary> - ///Pressure in @ ink line too low. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_2_PRESSURE_TOO_LOW")] EInkLine2PressureTooLow = 112011, /// <summary> - ///Pressure in @ ink line too low. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_3_PRESSURE_TOO_LOW")] EInkLine3PressureTooLow = 112012, /// <summary> - ///Pressure in @ ink line too low. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_4_PRESSURE_TOO_LOW")] EInkLine4PressureTooLow = 112013, /// <summary> - ///Pressure in @ ink line too low. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_5_PRESSURE_TOO_LOW")] EInkLine5PressureTooLow = 112014, /// <summary> - ///Pressure in @ ink line too low. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_6_PRESSURE_TOO_LOW")] EInkLine6PressureTooLow = 112015, /// <summary> - ///Pressure in @ ink line too low. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_7_PRESSURE_TOO_LOW")] EInkLine7PressureTooLow = 112016, /// <summary> - ///Pressure in @ ink line too low. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_8_PRESSURE_TOO_LOW")] EInkLine8PressureTooLow = 112017, /// <summary> - ///Pressure in @ ink line too low. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_9_PRESSURE_TOO_LOW")] EInkLine9PressureTooLow = 112018, /// <summary> - ///Pressure in @ ink line too low. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_10_PRESSURE_TOO_LOW")] EInkLine10PressureTooLow = 112019, /// <summary> - ///Malfunction in @ ink pump. Cannot execute job (Group = GeneralHardware, Category = Warning) + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_PUMP_1_MALFUNCTION")] EInkPump1Malfunction = 112020, /// <summary> - ///Malfunction in @ ink pump. Cannot execute job (Group = GeneralHardware, Category = Warning) + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_PUMP_2_MALFUNCTION")] EInkPump2Malfunction = 112021, /// <summary> - ///Malfunction in @ ink pump. Cannot execute job (Group = GeneralHardware, Category = Warning) + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_PUMP_3_MALFUNCTION")] EInkPump3Malfunction = 112022, /// <summary> - ///Malfunction in @ ink pump. Cannot execute job (Group = GeneralHardware, Category = Warning) + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_PUMP_4_MALFUNCTION")] EInkPump4Malfunction = 112023, /// <summary> - ///Malfunction in @ ink pump. Cannot execute job (Group = GeneralHardware, Category = Warning) + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_PUMP_5_MALFUNCTION")] EInkPump5Malfunction = 112024, /// <summary> - ///Malfunction in @ ink pump. Cannot execute job (Group = GeneralHardware, Category = Warning) + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_PUMP_6_MALFUNCTION")] EInkPump6Malfunction = 112025, /// <summary> - ///Malfunction in @ ink pump. Cannot execute job (Group = GeneralHardware, Category = Warning) + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_PUMP_7_MALFUNCTION")] EInkPump7Malfunction = 112026, /// <summary> - ///Malfunction in @ ink pump. Cannot execute job (Group = GeneralHardware, Category = Warning) + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_PUMP_8_MALFUNCTION")] EInkPump8Malfunction = 112027, /// <summary> - ///Malfunction in @ ink pump. Cannot execute job (Group = GeneralHardware, Category = Warning) + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_PUMP_9_MALFUNCTION")] EInkPump9Malfunction = 112028, /// <summary> - ///Malfunction in @ ink pump. Cannot execute job (Group = GeneralHardware, Category = Warning) + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_PUMP_10_MALFUNCTION")] EInkPump10Malfunction = 112029, /// <summary> - ///Malfunction in @ ink pump. Cannot execute job (Group = GeneralHardware, Category = Warning) + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_PUMP_11_MALFUNCTION")] EInkPump11Malfunction = 112030, /// <summary> - ///Malfunction in @ ink pump. Cannot execute job (Group = GeneralHardware, Category = Warning) + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_PUMP_12_MALFUNCTION")] EInkPump12Malfunction = 112031, /// <summary> - ///Malfunction in @ ink pump. Cannot execute job (Group = GeneralHardware, Category = Warning) + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_PUMP_13_MALFUNCTION")] EInkPump13Malfunction = 112032, /// <summary> - ///Malfunction in @ ink pump. Cannot execute job (Group = GeneralHardware, Category = Warning) + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_PUMP_14_MALFUNCTION")] EInkPump14Malfunction = 112033, /// <summary> - ///Malfunction in @ ink pump. Cannot execute job (Group = GeneralHardware, Category = Warning) + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_PUMP_15_MALFUNCTION")] EInkPump15Malfunction = 112034, /// <summary> - ///The @ tank level is low (Group = GeneralHardware, Category = Warning) + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_LINE_1_MID_TANK_LOW_LEVEL")] EInkLine1MidTankLowLevel = 112035, /// <summary> - ///The @ tank level is low (Group = GeneralHardware, Category = Warning) + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_LINE_2_MID_TANK_LOW_LEVEL")] EInkLine2MidTankLowLevel = 112036, /// <summary> - ///The @ tank level is low (Group = GeneralHardware, Category = Warning) + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_LINE_3_MID_TANK_LOW_LEVEL")] EInkLine3MidTankLowLevel = 112037, /// <summary> - ///The @ tank level is low (Group = GeneralHardware, Category = Warning) + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_LINE_4_MID_TANK_LOW_LEVEL")] EInkLine4MidTankLowLevel = 112038, /// <summary> - ///The @ tank level is low (Group = GeneralHardware, Category = Warning) + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_LINE_5_MID_TANK_LOW_LEVEL")] EInkLine5MidTankLowLevel = 112039, /// <summary> - ///The @ tank level is low (Group = GeneralHardware, Category = Warning) + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_LINE_6_MID_TANK_LOW_LEVEL")] EInkLine6MidTankLowLevel = 112040, /// <summary> - ///The @ tank level is low (Group = GeneralHardware, Category = Warning) + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_LINE_7_MID_TANK_LOW_LEVEL")] EInkLine7MidTankLowLevel = 112041, /// <summary> - ///The @ tank level is low (Group = GeneralHardware, Category = Warning) + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_LINE_8_MID_TANK_LOW_LEVEL")] EInkLine8MidTankLowLevel = 112042, /// <summary> - ///The @ tank level is low (Group = GeneralHardware, Category = Warning) + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_LINE_9_MID_TANK_LOW_LEVEL")] EInkLine9MidTankLowLevel = 112043, /// <summary> - ///The @ tank level is low (Group = GeneralHardware, Category = Warning) + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) /// </summary> [pbr::OriginalName("E_INK_LINE_10_MID_TANK_LOW_LEVEL")] EInkLine10MidTankLowLevel = 112044, /// <summary> - ///Failed to fill @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_1_MID_TANK_FILL_TIMEOUT")] EInkLine1MidTankFillTimeout = 112045, /// <summary> - ///Failed to fill @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_2_MID_TANK_FILL_TIMEOUT")] EInkLine2MidTankFillTimeout = 112046, /// <summary> - ///Failed to fill @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_3_MID_TANK_FILL_TIMEOUT")] EInkLine3MidTankFillTimeout = 112047, /// <summary> - ///Failed to fill @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_4_MID_TANK_FILL_TIMEOUT")] EInkLine4MidTankFillTimeout = 112048, /// <summary> - ///Failed to fill @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_5_MID_TANK_FILL_TIMEOUT")] EInkLine5MidTankFillTimeout = 112049, /// <summary> - ///Failed to fill @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_6_MID_TANK_FILL_TIMEOUT")] EInkLine6MidTankFillTimeout = 112050, /// <summary> - ///Failed to fill @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_7_MID_TANK_FILL_TIMEOUT")] EInkLine7MidTankFillTimeout = 112051, /// <summary> - ///Failed to fill @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_8_MID_TANK_FILL_TIMEOUT")] EInkLine8MidTankFillTimeout = 112052, /// <summary> - ///Failed to fill @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_9_MID_TANK_FILL_TIMEOUT")] EInkLine9MidTankFillTimeout = 112053, /// <summary> - ///Failed to fill @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_10_MID_TANK_FILL_TIMEOUT")] EInkLine10MidTankFillTimeout = 112054, /// <summary> - ///Malfunction in @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_1_MID_TANK_MALFUNCTION")] EInkLine1MidTankMalfunction = 112055, /// <summary> - ///Malfunction in @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_2_MID_TANK_MALFUNCTION")] EInkLine2MidTankMalfunction = 112056, /// <summary> - ///Malfunction in @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_3_MID_TANK_MALFUNCTION")] EInkLine3MidTankMalfunction = 112057, /// <summary> - ///Malfunction in @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_4_MID_TANK_MALFUNCTION")] EInkLine4MidTankMalfunction = 112058, /// <summary> - ///Malfunction in @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_5_MID_TANK_MALFUNCTION")] EInkLine5MidTankMalfunction = 112059, /// <summary> - ///Malfunction in @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_6_MID_TANK_MALFUNCTION")] EInkLine6MidTankMalfunction = 112060, /// <summary> - ///Malfunction in @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_7_MID_TANK_MALFUNCTION")] EInkLine7MidTankMalfunction = 112061, /// <summary> - ///Malfunction in @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_8_MID_TANK_MALFUNCTION")] EInkLine8MidTankMalfunction = 112062, /// <summary> - ///Malfunction in @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_9_MID_TANK_MALFUNCTION")] EInkLine9MidTankMalfunction = 112063, /// <summary> - ///Malfunction in @ tank. Cannot execute job (Group = GeneralHardware, Category = Error) + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) /// </summary> [pbr::OriginalName("E_INK_LINE_10_MID_TANK_MALFUNCTION")] EInkLine10MidTankMalfunction = 112064, } diff --git a/Software/Visual_Studio/Tango.PMR/MachineStatus/IDSPackLevel.cs b/Software/Visual_Studio/Tango.PMR/MachineStatus/IDSPackLevel.cs index 18024c6d7..099069143 100644 --- a/Software/Visual_Studio/Tango.PMR/MachineStatus/IDSPackLevel.cs +++ b/Software/Visual_Studio/Tango.PMR/MachineStatus/IDSPackLevel.cs @@ -23,13 +23,16 @@ namespace Tango.PMR.MachineStatus { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChJJRFNQYWNrTGV2ZWwucHJvdG8SF1RhbmdvLlBNUi5NYWNoaW5lU3RhdHVz", - "IksKDElEU1BhY2tMZXZlbBINCgVJbmRleBgBIAEoBRIWCg5EaXNwZW5zZXJM", - "ZXZlbBgCIAEoBRIUCgxNaWRUYW5rTGV2ZWwYAyABKAFCIwohY29tLnR3aW5l", - "LnRhbmdvLnBtci5tYWNoaW5lc3RhdHVzYgZwcm90bzM=")); + "IrgBCgxJRFNQYWNrTGV2ZWwSDQoFSW5kZXgYASABKAUSFgoORGlzcGVuc2Vy", + "TGV2ZWwYAiABKAUSFAoMTWlkVGFua0xldmVsGAMgASgBEhcKD0plcnJpY2Fu", + "UHJlc2VudBgEIAEoCBIbChNGaWxsaW5nVGltZW91dEVycm9yGAUgASgIEhQK", + "DE1pZFRhbmtFbXB0eRgGIAEoCBIfChdNaWRUYW5rUmVmaWxsUHVtcEFjdGl2", + "ZRgHIAEoCEIjCiFjb20udHdpbmUudGFuZ28ucG1yLm1hY2hpbmVzdGF0dXNi", + "BnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.MachineStatus.IDSPackLevel), global::Tango.PMR.MachineStatus.IDSPackLevel.Parser, new[]{ "Index", "DispenserLevel", "MidTankLevel" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.MachineStatus.IDSPackLevel), global::Tango.PMR.MachineStatus.IDSPackLevel.Parser, new[]{ "Index", "DispenserLevel", "MidTankLevel", "JerricanPresent", "FillingTimeoutError", "MidTankEmpty", "MidTankRefillPumpActive" }, null, null, null) })); } #endregion @@ -63,6 +66,10 @@ namespace Tango.PMR.MachineStatus { index_ = other.index_; dispenserLevel_ = other.dispenserLevel_; midTankLevel_ = other.midTankLevel_; + jerricanPresent_ = other.jerricanPresent_; + fillingTimeoutError_ = other.fillingTimeoutError_; + midTankEmpty_ = other.midTankEmpty_; + midTankRefillPumpActive_ = other.midTankRefillPumpActive_; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -103,6 +110,50 @@ namespace Tango.PMR.MachineStatus { } } + /// <summary>Field number for the "JerricanPresent" field.</summary> + public const int JerricanPresentFieldNumber = 4; + private bool jerricanPresent_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool JerricanPresent { + get { return jerricanPresent_; } + set { + jerricanPresent_ = value; + } + } + + /// <summary>Field number for the "FillingTimeoutError" field.</summary> + public const int FillingTimeoutErrorFieldNumber = 5; + private bool fillingTimeoutError_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool FillingTimeoutError { + get { return fillingTimeoutError_; } + set { + fillingTimeoutError_ = value; + } + } + + /// <summary>Field number for the "MidTankEmpty" field.</summary> + public const int MidTankEmptyFieldNumber = 6; + private bool midTankEmpty_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool MidTankEmpty { + get { return midTankEmpty_; } + set { + midTankEmpty_ = value; + } + } + + /// <summary>Field number for the "MidTankRefillPumpActive" field.</summary> + public const int MidTankRefillPumpActiveFieldNumber = 7; + private bool midTankRefillPumpActive_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool MidTankRefillPumpActive { + get { return midTankRefillPumpActive_; } + set { + midTankRefillPumpActive_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as IDSPackLevel); @@ -119,6 +170,10 @@ namespace Tango.PMR.MachineStatus { if (Index != other.Index) return false; if (DispenserLevel != other.DispenserLevel) return false; if (MidTankLevel != other.MidTankLevel) return false; + if (JerricanPresent != other.JerricanPresent) return false; + if (FillingTimeoutError != other.FillingTimeoutError) return false; + if (MidTankEmpty != other.MidTankEmpty) return false; + if (MidTankRefillPumpActive != other.MidTankRefillPumpActive) return false; return true; } @@ -128,6 +183,10 @@ namespace Tango.PMR.MachineStatus { if (Index != 0) hash ^= Index.GetHashCode(); if (DispenserLevel != 0) hash ^= DispenserLevel.GetHashCode(); if (MidTankLevel != 0D) hash ^= MidTankLevel.GetHashCode(); + if (JerricanPresent != false) hash ^= JerricanPresent.GetHashCode(); + if (FillingTimeoutError != false) hash ^= FillingTimeoutError.GetHashCode(); + if (MidTankEmpty != false) hash ^= MidTankEmpty.GetHashCode(); + if (MidTankRefillPumpActive != false) hash ^= MidTankRefillPumpActive.GetHashCode(); return hash; } @@ -150,6 +209,22 @@ namespace Tango.PMR.MachineStatus { output.WriteRawTag(25); output.WriteDouble(MidTankLevel); } + if (JerricanPresent != false) { + output.WriteRawTag(32); + output.WriteBool(JerricanPresent); + } + if (FillingTimeoutError != false) { + output.WriteRawTag(40); + output.WriteBool(FillingTimeoutError); + } + if (MidTankEmpty != false) { + output.WriteRawTag(48); + output.WriteBool(MidTankEmpty); + } + if (MidTankRefillPumpActive != false) { + output.WriteRawTag(56); + output.WriteBool(MidTankRefillPumpActive); + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -164,6 +239,18 @@ namespace Tango.PMR.MachineStatus { if (MidTankLevel != 0D) { size += 1 + 8; } + if (JerricanPresent != false) { + size += 1 + 1; + } + if (FillingTimeoutError != false) { + size += 1 + 1; + } + if (MidTankEmpty != false) { + size += 1 + 1; + } + if (MidTankRefillPumpActive != false) { + size += 1 + 1; + } return size; } @@ -181,6 +268,18 @@ namespace Tango.PMR.MachineStatus { if (other.MidTankLevel != 0D) { MidTankLevel = other.MidTankLevel; } + if (other.JerricanPresent != false) { + JerricanPresent = other.JerricanPresent; + } + if (other.FillingTimeoutError != false) { + FillingTimeoutError = other.FillingTimeoutError; + } + if (other.MidTankEmpty != false) { + MidTankEmpty = other.MidTankEmpty; + } + if (other.MidTankRefillPumpActive != false) { + MidTankRefillPumpActive = other.MidTankRefillPumpActive; + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -203,6 +302,22 @@ namespace Tango.PMR.MachineStatus { MidTankLevel = input.ReadDouble(); break; } + case 32: { + JerricanPresent = input.ReadBool(); + break; + } + case 40: { + FillingTimeoutError = input.ReadBool(); + break; + } + case 48: { + MidTankEmpty = input.ReadBool(); + break; + } + case 56: { + MidTankRefillPumpActive = input.ReadBool(); + break; + } } } } diff --git a/Software/Visual_Studio/Tango.PMR/Printing/ProcessParameters.cs b/Software/Visual_Studio/Tango.PMR/Printing/ProcessParameters.cs index 29b8c2d9f..746e8da4d 100644 --- a/Software/Visual_Studio/Tango.PMR/Printing/ProcessParameters.cs +++ b/Software/Visual_Studio/Tango.PMR/Printing/ProcessParameters.cs @@ -23,7 +23,7 @@ namespace Tango.PMR.Printing { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChdQcm9jZXNzUGFyYW1ldGVycy5wcm90bxISVGFuZ28uUE1SLlByaW50aW5n", - "IvALChFQcm9jZXNzUGFyYW1ldGVycxITCgtEeWVpbmdTcGVlZBgBIAEoARIU", + "IoUMChFQcm9jZXNzUGFyYW1ldGVycxITCgtEeWVpbmdTcGVlZBgBIAEoARIU", "CgxNaW5JbmtVcHRha2UYAiABKAESFAoMTWF4SW5rVXB0YWtlGAMgASgBEhUK", "DUZlZWRlclRlbnNpb24YBCABKAESFQoNUHVsbGVyVGVuc2lvbhgFIAEoARIV", "Cg1XaW5kZXJUZW5zaW9uGAYgASgBEhEKCU1peGVyVGVtcBgHIAEoARIVCg1I", @@ -56,12 +56,13 @@ namespace Tango.PMR.Printing { "c3RlQWlyRmxvdxg3IAEoARIZChFFV2FzdGVQcmVwYXJlVGltZRg4IAEoARIR", "CglFUHVtcFRlbXAYOSABKAESGAoQRVByZXNzdXJlQnVpbGRVcBg6IAEoARIP", "CgdFU3BhcmUxGDsgASgBEg8KB0VTcGFyZTIYPCABKAESDwoHRVNwYXJlMxg9", - "IAEoARIPCgdFU3BhcmU0GD4gASgBEg8KB0VTcGFyZTUYPyABKAFCHgocY29t", - "LnR3aW5lLnRhbmdvLnBtci5wcmludGluZ2IGcHJvdG8z")); + "IAEoARIPCgdFU3BhcmU0GD4gASgBEg8KB0VTcGFyZTUYPyABKAESEwoLRVR1", + "bm5lbFRlbXAYQCABKAFCHgocY29tLnR3aW5lLnRhbmdvLnBtci5wcmludGlu", + "Z2IGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Printing.ProcessParameters), global::Tango.PMR.Printing.ProcessParameters.Parser, new[]{ "DyeingSpeed", "MinInkUptake", "MaxInkUptake", "FeederTension", "PullerTension", "WinderTension", "MixerTemp", "HeadZone1Temp", "HeadZone2Temp", "HeadZone3Temp", "HeadZone4Temp", "HeadZone5Temp", "HeadZone6Temp", "DryerAirFlow", "DryerZone1Temp", "DryerZone2Temp", "DryerZone3Temp", "DryerBufferLength", "HeadAirFlow", "TableIndex", "HeadZone7Temp", "HeadZone8Temp", "HeadZone9Temp", "HeadZone10Temp", "HeadZone11Temp", "HeadZone12Temp", "RBlowerFlow", "RBlowerTemp", "LBlowerFlow", "LBlowerTemp", "PressureBuildUp", "BtsrFeedingTension", "ExitTension", "BtsrThreadLengthOffset", "EWinder1Tension", "EWinder2Tension", "EWinder3Tension", "EWinder4Tension", "EBtsr1FeedingTension", "EBtsr2FeedingTension", "EBtsr3FeedingTension", "EBtsr4FeedingTension", "EMixerTemp", "EHeadZone1Temp", "EHeadZone2Temp", "EHeadZone3Temp", "EDryerZone1Temp", "EDryerZone2Temp", "EDryerZone3Temp", "ELubricantTemp", "EDryerIncomingAirFlow", "EDryerOutgoingAirFlow", "ETunnelIncomingAirFlow", "ETunnelOutgoingAirFlow", "EWasteAirFlow", "EWastePrepareTime", "EPumpTemp", "EPressureBuildUp", "ESpare1", "ESpare2", "ESpare3", "ESpare4", "ESpare5" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Printing.ProcessParameters), global::Tango.PMR.Printing.ProcessParameters.Parser, new[]{ "DyeingSpeed", "MinInkUptake", "MaxInkUptake", "FeederTension", "PullerTension", "WinderTension", "MixerTemp", "HeadZone1Temp", "HeadZone2Temp", "HeadZone3Temp", "HeadZone4Temp", "HeadZone5Temp", "HeadZone6Temp", "DryerAirFlow", "DryerZone1Temp", "DryerZone2Temp", "DryerZone3Temp", "DryerBufferLength", "HeadAirFlow", "TableIndex", "HeadZone7Temp", "HeadZone8Temp", "HeadZone9Temp", "HeadZone10Temp", "HeadZone11Temp", "HeadZone12Temp", "RBlowerFlow", "RBlowerTemp", "LBlowerFlow", "LBlowerTemp", "PressureBuildUp", "BtsrFeedingTension", "ExitTension", "BtsrThreadLengthOffset", "EWinder1Tension", "EWinder2Tension", "EWinder3Tension", "EWinder4Tension", "EBtsr1FeedingTension", "EBtsr2FeedingTension", "EBtsr3FeedingTension", "EBtsr4FeedingTension", "EMixerTemp", "EHeadZone1Temp", "EHeadZone2Temp", "EHeadZone3Temp", "EDryerZone1Temp", "EDryerZone2Temp", "EDryerZone3Temp", "ELubricantTemp", "EDryerIncomingAirFlow", "EDryerOutgoingAirFlow", "ETunnelIncomingAirFlow", "ETunnelOutgoingAirFlow", "EWasteAirFlow", "EWastePrepareTime", "EPumpTemp", "EPressureBuildUp", "ESpare1", "ESpare2", "ESpare3", "ESpare4", "ESpare5", "ETunnelTemp" }, null, null, null) })); } #endregion @@ -155,6 +156,7 @@ namespace Tango.PMR.Printing { eSpare3_ = other.eSpare3_; eSpare4_ = other.eSpare4_; eSpare5_ = other.eSpare5_; + eTunnelTemp_ = other.eTunnelTemp_; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -855,6 +857,17 @@ namespace Tango.PMR.Printing { } } + /// <summary>Field number for the "ETunnelTemp" field.</summary> + public const int ETunnelTempFieldNumber = 64; + private double eTunnelTemp_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double ETunnelTemp { + get { return eTunnelTemp_; } + set { + eTunnelTemp_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as ProcessParameters); @@ -931,6 +944,7 @@ namespace Tango.PMR.Printing { if (ESpare3 != other.ESpare3) return false; if (ESpare4 != other.ESpare4) return false; if (ESpare5 != other.ESpare5) return false; + if (ETunnelTemp != other.ETunnelTemp) return false; return true; } @@ -1000,6 +1014,7 @@ namespace Tango.PMR.Printing { if (ESpare3 != 0D) hash ^= ESpare3.GetHashCode(); if (ESpare4 != 0D) hash ^= ESpare4.GetHashCode(); if (ESpare5 != 0D) hash ^= ESpare5.GetHashCode(); + if (ETunnelTemp != 0D) hash ^= ETunnelTemp.GetHashCode(); return hash; } @@ -1262,6 +1277,10 @@ namespace Tango.PMR.Printing { output.WriteRawTag(249, 3); output.WriteDouble(ESpare5); } + if (ETunnelTemp != 0D) { + output.WriteRawTag(129, 4); + output.WriteDouble(ETunnelTemp); + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -1456,6 +1475,9 @@ namespace Tango.PMR.Printing { if (ESpare5 != 0D) { size += 2 + 8; } + if (ETunnelTemp != 0D) { + size += 2 + 8; + } return size; } @@ -1653,6 +1675,9 @@ namespace Tango.PMR.Printing { if (other.ESpare5 != 0D) { ESpare5 = other.ESpare5; } + if (other.ETunnelTemp != 0D) { + ETunnelTemp = other.ETunnelTemp; + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -1915,6 +1940,10 @@ namespace Tango.PMR.Printing { ESpare5 = input.ReadDouble(); break; } + case 513: { + ETunnelTemp = input.ReadDouble(); + break; + } } } } diff --git a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml Binary files differindex 305aed9b9..c1cc02432 100644 --- a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml +++ b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml diff --git a/Software/Visual_Studio/Tango.SharedUI/Converters/WidthHeightToRectConverter.cs b/Software/Visual_Studio/Tango.SharedUI/Converters/WidthHeightToRectConverter.cs index 25d7c7579..c7215ad99 100644 --- a/Software/Visual_Studio/Tango.SharedUI/Converters/WidthHeightToRectConverter.cs +++ b/Software/Visual_Studio/Tango.SharedUI/Converters/WidthHeightToRectConverter.cs @@ -13,9 +13,16 @@ namespace Tango.SharedUI.Converters { public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { - double width = (double)values[0]; - double height = (double)values[1]; - return new Rect(new Size(width, height)); + try + { + double width = (double)values[0]; + double height = (double)values[1]; + return new Rect(new Size(width, height)); + } + catch( Exception ex) + { + return null; + } } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) diff --git a/Software/Visual_Studio/Tango.TFS/MachineType.cs b/Software/Visual_Studio/Tango.TFS/MachineType.cs new file mode 100644 index 000000000..044155b2b --- /dev/null +++ b/Software/Visual_Studio/Tango.TFS/MachineType.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.TFS +{ + public enum MachineType + { + [Description("TS 1800")] + TS1800 = 0, + [Description("Twine X4")] + TwineX4 = 1, + } +} diff --git a/Software/Visual_Studio/Tango.TFS/Tango.TFS.csproj b/Software/Visual_Studio/Tango.TFS/Tango.TFS.csproj index 3e3e6f6fd..271491a7e 100644 --- a/Software/Visual_Studio/Tango.TFS/Tango.TFS.csproj +++ b/Software/Visual_Studio/Tango.TFS/Tango.TFS.csproj @@ -207,6 +207,7 @@ <Compile Include="Email.cs" /> <Compile Include="ITeamFoundationEmailClient.cs" /> <Compile Include="Iteration.cs" /> + <Compile Include="MachineType.cs" /> <Compile Include="Priority.cs" /> <Compile Include="Project.cs" /> <Compile Include="ResolvedReason.cs" /> @@ -266,7 +267,7 @@ </Target> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.TFS/TeamFoundationServiceClient.cs b/Software/Visual_Studio/Tango.TFS/TeamFoundationServiceClient.cs index 750c5fa58..379dcac2e 100644 --- a/Software/Visual_Studio/Tango.TFS/TeamFoundationServiceClient.cs +++ b/Software/Visual_Studio/Tango.TFS/TeamFoundationServiceClient.cs @@ -40,6 +40,7 @@ namespace Tango.TFS public const String MACHINE_SN = "Custom.MachineSN"; public const String ENVIRONMENT = "Custom.Environment"; public const String LOGGED_IN_USER = "Custom.LoggedInUser"; + public const String MACHINE_TYPE = "Custom.MachineType"; } #endregion @@ -428,6 +429,13 @@ namespace Tango.TFS }); } + patchDocument.Add(new JsonPatchOperation + { + Operation = Operation.Add, + Path = GetExtensionFieldNameForWrite(ExtensionFields.MACHINE_TYPE), + Value = workItem.MachineType.ToDescription(), + }); + var resultWorkItem = witClient.CreateWorkItemAsync(patchDocument, project.Name, workItem.Type.ToString(), bypassRules: true).Result; workItem.ID = resultWorkItem.Id.Value; @@ -944,6 +952,11 @@ namespace Tango.TFS workItem.Environment = TryGetField(item.Fields, ExtensionFields.ENVIRONMENT).ToString(); } + if (item.Fields.ContainsKey(ExtensionFields.MACHINE_TYPE)) + { + workItem.MachineType = ParseEnumByDescription<MachineType>(item.Fields[ExtensionFields.MACHINE_TYPE].ToString()); + } + workItem.Comment = TryGetField(item.Fields, GetFieldNameForRead(CoreField.History)).ToString(); return workItem; diff --git a/Software/Visual_Studio/Tango.TFS/WorkItem.cs b/Software/Visual_Studio/Tango.TFS/WorkItem.cs index 35c2f8669..552a64161 100644 --- a/Software/Visual_Studio/Tango.TFS/WorkItem.cs +++ b/Software/Visual_Studio/Tango.TFS/WorkItem.cs @@ -80,6 +80,13 @@ namespace Tango.TFS set { _priority = value; RaisePropertyChangedAuto(); } } + private MachineType _machineType; + public MachineType MachineType + { + get { return _machineType; } + set { _machineType = value; RaisePropertyChangedAuto(); } + } + private String _stepsToReproduce; public String StepsToReproduce { diff --git a/Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.cs b/Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.cs new file mode 100644 index 000000000..a6b05f472 --- /dev/null +++ b/Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.cs @@ -0,0 +1,122 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.Touch.Controls +{ + [ContentProperty(nameof(Content))] + public class SliderContentControl : Slider + { + private bool m_isBlocked; + + #region DependencyProperties + + public UIElement Content + { + get { return (UIElement)GetValue(ContentProperty); } + set { SetValue(ContentProperty, value); } + } + public static readonly DependencyProperty ContentProperty = + DependencyProperty.Register("Content", typeof(UIElement), typeof(SliderContentControl), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.AffectsRender, (d, e) => (d as SliderContentControl).OnContentChanged())); + + public static readonly DependencyProperty ThumbHeightProperty = + DependencyProperty.Register("ThumbHeight", typeof(double), typeof(SliderContentControl), new FrameworkPropertyMetadata((double)32, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault)); + + public double ThumbHeight + { + get { return (double)GetValue(ThumbHeightProperty); } + set { SetValue(ThumbHeightProperty, value); } + } + + public Color ThumbColor + { + get { return (Color)GetValue(ThumbColorProperty); } + set { SetValue(ThumbColorProperty, value); } + } + + + + /// <summary> + /// The thumb color property + /// </summary> + public static readonly DependencyProperty ThumbColorProperty = + DependencyProperty.Register("ThumbColor", typeof(Color), typeof(SliderContentControl), new UIPropertyMetadata(Colors.LightGray, null)); + + + + #endregion + + static SliderContentControl() + { + DefaultStyleKeyProperty.OverrideMetadata(typeof(SliderContentControl), new FrameworkPropertyMetadata(typeof(SliderContentControl))); + } + + public override void OnApplyTemplate() + { + base.OnApplyTemplate(); + + TouchDown -= TouchDownSlider; + TouchDown += TouchDownSlider; + OnValueChanged(Double.NaN, Value); + IsMoveToPointEnabled = true; + } + + private void TouchDownSlider(object sender, TouchEventArgs e) + { + e.Handled = true; + } + + private double ValidateValue(double value) + { + if (value >= Minimum && value <= Maximum) + return value; + if ((value) > Maximum) + return Maximum; + if ((value) < Minimum) + return Minimum; + return double.NaN; + } + + private void OnContentChanged() + { + RemoveLogicalChild(Content); + AddLogicalChild(Content); + } + + protected override void OnValueChanged(double oldValue, double newValue) + { + if (m_isBlocked) return; + + m_isBlocked = true; + + var validatedValue = ValidateValue(newValue); + + if (!double.IsNaN(validatedValue)) + { + Value = validatedValue; + + } + + m_isBlocked = false; + + + } + + protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e) + { + e.Handled = true; + } + } +} diff --git a/Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.xaml b/Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.xaml new file mode 100644 index 000000000..9e2b85c60 --- /dev/null +++ b/Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.xaml @@ -0,0 +1,92 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="clr-namespace:Tango.Touch.Controls" + > + + <ResourceDictionary.MergedDictionaries> + <ResourceDictionary Source="../Resources/Colors.xaml" /> + </ResourceDictionary.MergedDictionaries> + + <Style x:Key="RepeatButtonTransparent" TargetType="{x:Type RepeatButton}"> + <Setter Property="OverridesDefaultStyle" Value="true"/> + <Setter Property="Background" Value="Transparent"/> + <Setter Property="Focusable" Value="false"/> + <Setter Property="IsTabStop" Value="false"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type RepeatButton}"> + <Rectangle Fill="{TemplateBinding Background}" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}"/> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + + <Style x:Key="ThumbSlider" Style.TargetType="{x:Type Thumb}" > + <Setter Setter.Property="SnapsToDevicePixels" Setter.Value="True" /> + <Setter Setter.Property="OverridesDefaultStyle" Setter.Value="True" /> + <Setter Setter.Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type Thumb}"> + <Grid x:Name="grip" HorizontalAlignment="Center" UseLayoutRounding="True" VerticalAlignment="Center"> + <Ellipse HorizontalAlignment="Center" VerticalAlignment="Center" + Height="{Binding ActualWidth, RelativeSource={RelativeSource Self}}" + Width="{Binding ThumbHeight, RelativeSource={RelativeSource AncestorType=local:SliderContentControl}}" > + <Ellipse.Fill> + <SolidColorBrush Color="{Binding ThumbColor, RelativeSource={RelativeSource AncestorType=local:SliderContentControl}}"/> + </Ellipse.Fill> + </Ellipse> + + <!--<Ellipse x:Name="knob" Grid.Column="0" Grid.Row="1" Stroke="{StaticResource TangoGrayBrush}" StrokeThickness="0" Fill="{StaticResource TangoPrimaryAccentBrush}" Opacity="0.5"></Ellipse>--> + <Grid.Effect> + <DropShadowEffect BlurRadius="10" RenderingBias="Quality" ShadowDepth="1" Color="{StaticResource TangoDropShadowColor}"/> + </Grid.Effect> + </Grid> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + + <Style TargetType="{x:Type local:SliderContentControl}"> + <Setter Property="Background" Value="{StaticResource TangoNotificationBarMaskBrush}"/> + + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type local:SliderContentControl}"> + <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="True" CornerRadius="6"> + <Grid> + <!--<ContentPresenter Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}" />--> + <Grid> + <Grid.RowDefinitions> + <RowDefinition Height="1*" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="1*" /> + </Grid.RowDefinitions> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="*"/> + </Grid.ColumnDefinitions> + <Border x:Name="PART_ColorPickerDisplay" Grid.Row="1" Background="Transparent" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0" + MinHeight="14" Margin="5 0 0 0" VerticalAlignment="center" CornerRadius="6" > + <ContentPresenter Panel.ZIndex="1" Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}" /> + </Border> + + <Track Track.Name="PART_Track" Grid.Row="0" Margin="0 -2 0 0" VerticalAlignment="Center" Grid.RowSpan="3"> + <!--<Track.DecreaseRepeatButton> + <RepeatButton Style="{StaticResource RepeatButtonTransparent}" /> + </Track.DecreaseRepeatButton> + <Track.IncreaseRepeatButton> + <RepeatButton Style="{StaticResource RepeatButtonTransparent}" /> + </Track.IncreaseRepeatButton>--> + <Track.Thumb> + <Thumb Thumb.Name="PART_Thumb" UIElement.Focusable="False" Height="Auto" Style="{StaticResource ThumbSlider}" VerticalAlignment="Top" Width="Auto" VerticalContentAlignment="Top"/> + </Track.Thumb> + </Track> + </Grid> + </Grid> + </Border> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + + +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj b/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj index e9145b27c..daa7dc228 100644 --- a/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj +++ b/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj @@ -67,6 +67,7 @@ <Compile Include="Controls\FocusSelectionMode.cs" /> <Compile Include="Controls\IValueControl.cs" /> <Compile Include="Controls\MessageBoxVM.cs" /> + <Compile Include="Controls\SliderContentControl.cs" /> <Compile Include="Controls\TouchArcProgress.cs" /> <Compile Include="Controls\TouchAutoComplete.cs" /> <Compile Include="Controls\TouchCalendar.cs" /> @@ -134,6 +135,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Controls\SliderContentControl.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Controls\TouchArcProgress.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> diff --git a/Software/Visual_Studio/Tango.Touch/Themes/Generic.xaml b/Software/Visual_Studio/Tango.Touch/Themes/Generic.xaml index 0f9e77059..188fdddd5 100644 --- a/Software/Visual_Studio/Tango.Touch/Themes/Generic.xaml +++ b/Software/Visual_Studio/Tango.Touch/Themes/Generic.xaml @@ -68,6 +68,8 @@ <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchPanel.xaml" /> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchPanelEureka.xaml" /> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchPanelEurekaNoKeyboard.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/SliderContentControl.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/TouchColorPickerSlider.xaml"/> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/TouchColorPickerControl.xaml"/> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/TouchColorPickerHSBControl.xaml"/> @@ -76,6 +78,7 @@ <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/TouchColorPickerCMYKControl.xaml"/> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/MultiRangeSlider.xaml"/> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/TouchSliderThreeThumbs.xaml"/> + </ResourceDictionary.MergedDictionaries> </ResourceDictionary> diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4.xlsx b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4.xlsx Binary files differnew file mode 100644 index 000000000..7f9b01b2c --- /dev/null +++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4.xlsx diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4_groups.xlsx b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4_groups.xlsx Binary files differnew file mode 100644 index 000000000..8814872ef --- /dev/null +++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4_groups.xlsx diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs index 8735634ef..502927c1d 100644 --- a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs +++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs @@ -16,7 +16,7 @@ namespace Tango.EventsTypesGenerator { class Program { - private static string EVENTS_FILE = "Tango alarm events handling chart_Rev31.xlsx"; + private static string EVENTS_FILE = "Eureka BB alarm events handling chart_TS_and_X4_Rev4_groups.xlsx"; private class ExcelEventType { diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj index 5881b521f..48e407aba 100644 --- a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj +++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj @@ -61,6 +61,12 @@ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> <None Include="App.config" /> + <None Include="Eureka BB alarm events handling chart_TS_and_X4_Rev4.xlsx"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="Eureka BB alarm events handling chart_TS_and_X4_Rev4_groups.xlsx"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> <None Include="packages.config" /> </ItemGroup> <ItemGroup> |
