diff --git a/AgroBase/AgroBase/AgroBase.csproj b/AgroBase/AgroBase/AgroBase.csproj index 300f8594f..8d94a76ab 100644 --- a/AgroBase/AgroBase/AgroBase.csproj +++ b/AgroBase/AgroBase/AgroBase.csproj @@ -384,6 +384,40 @@ frmPinout.cs + + UserControl + + + UserControl + + + UserControl + + + UserControl + + + UserControl + + + + UserControl + + + StatusOperacaoControl.cs + + + Form + + + frmDiagnosticos.cs + + + Form + + + frmMenu.cs + Form @@ -408,11 +442,11 @@ frmAjustes.cs - + Form - - frmDiagnosticos.cs + + frmTestes.cs Form @@ -643,6 +677,13 @@ + + + + + + + @@ -768,6 +809,13 @@ frmPinout.cs + + frmDiagnosticos.cs + + + frmMenu.cs + Designer + frmSimulacaoMapaGPS.cs @@ -783,14 +831,15 @@ frmAjustes.cs - - frmDiagnosticos.cs + + frmTestes.cs frmDialogoMapa.cs frmIHM.cs + Designer frmMovCamera.cs diff --git a/AgroBase/AgroBase/Forms/IHM/Controls/HmiMenuTile.cs b/AgroBase/AgroBase/Forms/IHM/Controls/HmiMenuTile.cs new file mode 100644 index 000000000..e92d573c9 --- /dev/null +++ b/AgroBase/AgroBase/Forms/IHM/Controls/HmiMenuTile.cs @@ -0,0 +1,298 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Windows.Forms; + +namespace AgroBase.Forms.IHM.Controls +{ + [DefaultEvent("Click")] + public class HmiMenuTile : UserControl + { + private readonly TableLayoutPanel _layout; + private readonly PictureBox _picIcone; + private readonly Label _lblTitulo; + private readonly Label _lblSubtitulo; + + private Color _fillColor = HmiTheme.SurfaceRaised; + private Color _borderColor = HmiTheme.Border; + private Color _accentColor = HmiTheme.Success; + private int _cornerRadius = 13; + private bool _pressed; + + public HmiMenuTile() + { + SetStyle( + ControlStyles.AllPaintingInWmPaint | + ControlStyles.UserPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.SupportsTransparentBackColor, + true); + + DoubleBuffered = true; + BackColor = Color.Transparent; + Cursor = Cursors.Hand; + MinimumSize = new Size(150, 110); + Margin = new Padding(6); + + _layout = new TableLayoutPanel + { + Dock = DockStyle.Fill, + BackColor = Color.Transparent, + ColumnCount = 1, + RowCount = 3, + Margin = Padding.Empty, + Padding = new Padding(8, 7, 8, 7) + }; + _layout.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); + _layout.RowStyles.Add(new RowStyle(SizeType.Absolute, 27F)); + _layout.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F)); + + _picIcone = new PictureBox + { + Dock = DockStyle.Fill, + BackColor = Color.Transparent, + SizeMode = PictureBoxSizeMode.Zoom, + Margin = new Padding(48, 4, 48, 3), + Cursor = Cursors.Hand, + TabStop = false + }; + + _lblTitulo = new Label + { + Dock = DockStyle.Fill, + AutoSize = false, + BackColor = Color.Transparent, + ForeColor = HmiTheme.Text, + Font = new Font("Segoe UI", 13F, FontStyle.Bold), + Text = "TÍTULO", + TextAlign = ContentAlignment.MiddleCenter, + Margin = Padding.Empty, + Cursor = Cursors.Hand, + AutoEllipsis = true + }; + + _lblSubtitulo = new Label + { + Dock = DockStyle.Fill, + AutoSize = false, + BackColor = Color.Transparent, + ForeColor = HmiTheme.TextMuted, + Font = new Font("Segoe UI", 8.25F, FontStyle.Regular), + Text = string.Empty, + TextAlign = ContentAlignment.TopCenter, + Margin = Padding.Empty, + Cursor = Cursors.Hand, + AutoEllipsis = true + }; + + _layout.Controls.Add(_picIcone, 0, 0); + _layout.Controls.Add(_lblTitulo, 0, 1); + _layout.Controls.Add(_lblSubtitulo, 0, 2); + Controls.Add(_layout); + + WireChild(_layout); + WireChild(_picIcone); + WireChild(_lblTitulo); + WireChild(_lblSubtitulo); + + UpdateRoundedRegion(); + } + + [Category("Conteúdo")] + public Image Icone + { + get { return _picIcone.Image; } + set { _picIcone.Image = value; Invalidate(); } + } + + [Category("Conteúdo")] + [DefaultValue("TÍTULO")] + public string Titulo + { + get { return _lblTitulo.Text; } + set { _lblTitulo.Text = value ?? string.Empty; } + } + + [Category("Conteúdo")] + [DefaultValue("")] + public string Subtitulo + { + get { return _lblSubtitulo.Text; } + set { _lblSubtitulo.Text = value ?? string.Empty; } + } + + [Category("Aparência")] + public Color FillColor + { + get { return _fillColor; } + set { _fillColor = value; Invalidate(); } + } + + [Category("Aparência")] + public Color BorderColor + { + get { return _borderColor; } + set { _borderColor = value; Invalidate(); } + } + + [Category("Aparência")] + public Color AccentColor + { + get { return _accentColor; } + set { _accentColor = value; Invalidate(); } + } + + [Category("Aparência")] + [DefaultValue(13)] + public int CornerRadius + { + get { return _cornerRadius; } + set + { + _cornerRadius = Math.Max(0, value); + UpdateRoundedRegion(); + Invalidate(); + } + } + + public void SetStatus(string text, Color color) + { + Subtitulo = text; + _lblSubtitulo.ForeColor = color; + } + + protected override void OnEnabledChanged(EventArgs e) + { + base.OnEnabledChanged(e); + Cursor = Enabled ? Cursors.Hand : Cursors.Default; + _lblTitulo.ForeColor = Enabled ? HmiTheme.Text : HmiTheme.Disabled; + _lblSubtitulo.ForeColor = Enabled ? HmiTheme.TextMuted : HmiTheme.Disabled; + Invalidate(); + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + UpdateRoundedRegion(); + } + + protected override void OnMouseDown(MouseEventArgs e) + { + base.OnMouseDown(e); + if (!Enabled || e.Button != MouseButtons.Left) + return; + + _pressed = true; + Invalidate(); + } + + protected override void OnMouseUp(MouseEventArgs e) + { + base.OnMouseUp(e); + if (!_pressed) + return; + + _pressed = false; + Invalidate(); + } + + protected override void OnMouseLeave(EventArgs e) + { + base.OnMouseLeave(e); + if (!_pressed) + return; + + _pressed = false; + Invalidate(); + } + + protected override void OnPaintBackground(PaintEventArgs e) + { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + + Color currentFill = _pressed + ? HmiTheme.SurfacePressed + : _fillColor; + + if (!Enabled) + currentFill = Color.FromArgb(22, 25, 28); + + var bounds = new Rectangle(0, 0, Math.Max(1, Width - 1), Math.Max(1, Height - 1)); + using (var path = HmiRoundedPanel.CreateRoundedPath(bounds, _cornerRadius)) + using (var brush = new SolidBrush(currentFill)) + { + e.Graphics.FillPath(brush, path); + } + } + + protected override void OnPaint(PaintEventArgs e) + { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + + Color border = Enabled ? _accentColor : HmiTheme.Disabled; + var bounds = new Rectangle(0, 0, Math.Max(1, Width - 1), Math.Max(1, Height - 1)); + + using (var path = HmiRoundedPanel.CreateRoundedPath(bounds, _cornerRadius)) + using (var pen = new Pen(border, _pressed ? 2F : 1.25F)) + { + e.Graphics.DrawPath(pen, path); + } + + using (var pen = new Pen(Color.FromArgb(120, border), 3F)) + { + pen.StartCap = LineCap.Round; + pen.EndCap = LineCap.Round; + e.Graphics.DrawLine(pen, 18, 8, Math.Max(18, Width - 18), 8); + } + + base.OnPaint(e); + } + + private void WireChild(Control child) + { + child.Click += Child_Click; + child.MouseDown += Child_MouseDown; + child.MouseUp += Child_MouseUp; + child.MouseLeave += Child_MouseLeave; + } + + private void Child_Click(object sender, EventArgs e) + { + if (Enabled) + OnClick(e); + } + + private void Child_MouseDown(object sender, MouseEventArgs e) + { + OnMouseDown(e); + } + + private void Child_MouseUp(object sender, MouseEventArgs e) + { + OnMouseUp(e); + } + + private void Child_MouseLeave(object sender, EventArgs e) + { + OnMouseLeave(e); + } + + private void UpdateRoundedRegion() + { + if (Width <= 0 || Height <= 0) + return; + + using (var path = HmiRoundedPanel.CreateRoundedPath( + new Rectangle(0, 0, Width, Height), + _cornerRadius)) + { + if (Region != null) + Region.Dispose(); + + Region = new Region(path); + } + } + } +} diff --git a/AgroBase/AgroBase/Forms/IHM/Controls/HmiRoundedPanel.cs b/AgroBase/AgroBase/Forms/IHM/Controls/HmiRoundedPanel.cs new file mode 100644 index 000000000..d79c2ad20 --- /dev/null +++ b/AgroBase/AgroBase/Forms/IHM/Controls/HmiRoundedPanel.cs @@ -0,0 +1,197 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Windows.Forms; + +namespace AgroBase.Forms.IHM.Controls +{ + public class HmiRoundedPanel : UserControl + { + private Color _fillColor = HmiTheme.Surface; + private Color _borderColor = HmiTheme.Border; + private Color _accentColor = HmiTheme.Success; + private int _cornerRadius = 12; + private int _borderThickness = 1; + private int _accentWidth = 4; + private bool _showAccent; + + public HmiRoundedPanel() + { + SetStyle( + ControlStyles.AllPaintingInWmPaint | + ControlStyles.UserPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.SupportsTransparentBackColor, + true); + + DoubleBuffered = true; + BackColor = Color.Transparent; + Padding = new Padding(12); + MinimumSize = new Size(30, 30); + } + + [Category("Aparência")] + public Color FillColor + { + get { return _fillColor; } + set { _fillColor = value; Invalidate(); } + } + + [Category("Aparência")] + public Color BorderColor + { + get { return _borderColor; } + set { _borderColor = value; Invalidate(); } + } + + [Category("Aparência")] + public Color AccentColor + { + get { return _accentColor; } + set { _accentColor = value; Invalidate(); } + } + + [Category("Aparência")] + [DefaultValue(false)] + public bool ShowAccent + { + get { return _showAccent; } + set { _showAccent = value; Invalidate(); } + } + + [Category("Aparência")] + [DefaultValue(12)] + public int CornerRadius + { + get { return _cornerRadius; } + set + { + _cornerRadius = Math.Max(0, value); + UpdateRoundedRegion(); + Invalidate(); + } + } + + [Category("Aparência")] + [DefaultValue(1)] + public int BorderThickness + { + get { return _borderThickness; } + set + { + _borderThickness = Math.Max(0, value); + Invalidate(); + } + } + + [Category("Aparência")] + [DefaultValue(4)] + public int AccentWidth + { + get { return _accentWidth; } + set + { + _accentWidth = Math.Max(1, value); + Invalidate(); + } + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + UpdateRoundedRegion(); + } + + protected override void OnPaintBackground(PaintEventArgs e) + { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + + var bounds = new Rectangle(0, 0, Math.Max(1, Width - 1), Math.Max(1, Height - 1)); + using (var path = CreateRoundedPath(bounds, _cornerRadius)) + using (var brush = new SolidBrush(_fillColor)) + { + e.Graphics.FillPath(brush, path); + } + } + + protected override void OnPaint(PaintEventArgs e) + { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + + var bounds = new Rectangle(0, 0, Math.Max(1, Width - 1), Math.Max(1, Height - 1)); + using (var path = CreateRoundedPath(bounds, _cornerRadius)) + { + if (_borderThickness > 0) + { + using (var pen = new Pen(_borderColor, _borderThickness)) + { + e.Graphics.DrawPath(pen, path); + } + } + } + + if (_showAccent && Height > 20) + { + using (var pen = new Pen(_accentColor, _accentWidth)) + { + pen.StartCap = LineCap.Round; + pen.EndCap = LineCap.Round; + e.Graphics.DrawLine( + pen, + Padding.Left / 2, + 12, + Padding.Left / 2, + Height - 12); + } + } + + base.OnPaint(e); + } + + private void UpdateRoundedRegion() + { + if (Width <= 0 || Height <= 0) + return; + + var bounds = new Rectangle(0, 0, Width, Height); + using (var path = CreateRoundedPath(bounds, _cornerRadius)) + { + if (Region != null) + Region.Dispose(); + + Region = new Region(path); + } + } + + internal static GraphicsPath CreateRoundedPath(Rectangle bounds, int radius) + { + var path = new GraphicsPath(); + + if (radius <= 0) + { + path.AddRectangle(bounds); + path.CloseFigure(); + return path; + } + + int diameter = Math.Min(radius * 2, Math.Min(bounds.Width, bounds.Height)); + var arc = new Rectangle(bounds.X, bounds.Y, diameter, diameter); + + path.AddArc(arc, 180, 90); + + arc.X = bounds.Right - diameter; + path.AddArc(arc, 270, 90); + + arc.Y = bounds.Bottom - diameter; + path.AddArc(arc, 0, 90); + + arc.X = bounds.Left; + path.AddArc(arc, 90, 90); + + path.CloseFigure(); + return path; + } + } +} diff --git a/AgroBase/AgroBase/Forms/IHM/Controls/HmiShortcutButton.cs b/AgroBase/AgroBase/Forms/IHM/Controls/HmiShortcutButton.cs new file mode 100644 index 000000000..bfe8610e2 --- /dev/null +++ b/AgroBase/AgroBase/Forms/IHM/Controls/HmiShortcutButton.cs @@ -0,0 +1,241 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Windows.Forms; + +namespace AgroBase.Forms.IHM.Controls +{ + [DefaultEvent("Click")] + public class HmiShortcutButton : UserControl + { + private readonly TableLayoutPanel _layout; + private readonly Label _lblIcon; + private readonly Label _lblText; + private readonly Label _lblArrow; + + private Color _fillColor = Color.FromArgb(27, 33, 37); + private Color _borderColor = HmiTheme.BorderSoft; + private Color _accentColor = HmiTheme.Success; + private int _cornerRadius = 9; + private bool _pressed; + + public HmiShortcutButton() + { + SetStyle( + ControlStyles.AllPaintingInWmPaint | + ControlStyles.UserPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.SupportsTransparentBackColor, + true); + + DoubleBuffered = true; + BackColor = Color.Transparent; + Cursor = Cursors.Hand; + Height = 35; + MinimumSize = new Size(140, 34); + Margin = new Padding(0, 3, 0, 3); + + _layout = new TableLayoutPanel + { + Dock = DockStyle.Fill, + BackColor = Color.Transparent, + ColumnCount = 3, + RowCount = 1, + Margin = Padding.Empty, + Padding = new Padding(9, 0, 8, 0) + }; + _layout.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 32F)); + _layout.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); + _layout.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 22F)); + _layout.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); + + _lblIcon = new Label + { + Dock = DockStyle.Fill, + AutoSize = false, + Text = "›", + TextAlign = ContentAlignment.MiddleCenter, + ForeColor = _accentColor, + BackColor = Color.Transparent, + Font = new Font("Segoe UI Symbol", 15F, FontStyle.Bold), + Margin = Padding.Empty, + Cursor = Cursors.Hand + }; + + _lblText = new Label + { + Dock = DockStyle.Fill, + AutoSize = false, + Text = "Atalho", + TextAlign = ContentAlignment.MiddleLeft, + ForeColor = HmiTheme.Text, + BackColor = Color.Transparent, + Font = new Font("Segoe UI", 9.25F, FontStyle.Regular), + AutoEllipsis = true, + Margin = Padding.Empty, + Cursor = Cursors.Hand + }; + + _lblArrow = new Label + { + Dock = DockStyle.Fill, + AutoSize = false, + Text = "›", + TextAlign = ContentAlignment.MiddleRight, + ForeColor = HmiTheme.TextMuted, + BackColor = Color.Transparent, + Font = new Font("Segoe UI", 17F, FontStyle.Regular), + Margin = Padding.Empty, + Cursor = Cursors.Hand + }; + + _layout.Controls.Add(_lblIcon, 0, 0); + _layout.Controls.Add(_lblText, 1, 0); + _layout.Controls.Add(_lblArrow, 2, 0); + Controls.Add(_layout); + + WireChild(_layout); + WireChild(_lblIcon); + WireChild(_lblText); + WireChild(_lblArrow); + + UpdateRoundedRegion(); + } + + [Category("Conteúdo")] + public string Texto + { + get { return _lblText.Text; } + set { _lblText.Text = value ?? string.Empty; } + } + + [Category("Conteúdo")] + public string IconText + { + get { return _lblIcon.Text; } + set { _lblIcon.Text = value ?? string.Empty; } + } + + [Category("Aparência")] + public Color AccentColor + { + get { return _accentColor; } + set + { + _accentColor = value; + _lblIcon.ForeColor = value; + Invalidate(); + } + } + + [Category("Aparência")] + public Color FillColor + { + get { return _fillColor; } + set { _fillColor = value; Invalidate(); } + } + + [Category("Aparência")] + public Color BorderColor + { + get { return _borderColor; } + set { _borderColor = value; Invalidate(); } + } + + [Category("Aparência")] + [DefaultValue(9)] + public int CornerRadius + { + get { return _cornerRadius; } + set + { + _cornerRadius = Math.Max(0, value); + UpdateRoundedRegion(); + Invalidate(); + } + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + UpdateRoundedRegion(); + } + + protected override void OnMouseDown(MouseEventArgs e) + { + base.OnMouseDown(e); + if (e.Button != MouseButtons.Left) + return; + + _pressed = true; + Invalidate(); + } + + protected override void OnMouseUp(MouseEventArgs e) + { + base.OnMouseUp(e); + _pressed = false; + Invalidate(); + } + + protected override void OnMouseLeave(EventArgs e) + { + base.OnMouseLeave(e); + _pressed = false; + Invalidate(); + } + + protected override void OnPaintBackground(PaintEventArgs e) + { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + Color fill = _pressed ? HmiTheme.SurfacePressed : _fillColor; + + var bounds = new Rectangle(0, 0, Math.Max(1, Width - 1), Math.Max(1, Height - 1)); + using (var path = HmiRoundedPanel.CreateRoundedPath(bounds, _cornerRadius)) + using (var brush = new SolidBrush(fill)) + { + e.Graphics.FillPath(brush, path); + } + } + + protected override void OnPaint(PaintEventArgs e) + { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + var bounds = new Rectangle(0, 0, Math.Max(1, Width - 1), Math.Max(1, Height - 1)); + + using (var path = HmiRoundedPanel.CreateRoundedPath(bounds, _cornerRadius)) + using (var pen = new Pen(_pressed ? _accentColor : _borderColor, _pressed ? 1.5F : 1F)) + { + e.Graphics.DrawPath(pen, path); + } + + base.OnPaint(e); + } + + private void WireChild(Control child) + { + child.Click += delegate { OnClick(EventArgs.Empty); }; + child.MouseDown += delegate(object sender, MouseEventArgs e) { OnMouseDown(e); }; + child.MouseUp += delegate(object sender, MouseEventArgs e) { OnMouseUp(e); }; + child.MouseLeave += delegate { OnMouseLeave(EventArgs.Empty); }; + } + + private void UpdateRoundedRegion() + { + if (Width <= 0 || Height <= 0) + return; + + using (var path = HmiRoundedPanel.CreateRoundedPath( + new Rectangle(0, 0, Width, Height), + _cornerRadius)) + { + if (Region != null) + Region.Dispose(); + + Region = new Region(path); + } + } + } +} diff --git a/AgroBase/AgroBase/Forms/IHM/Controls/HmiSidebarButton.cs b/AgroBase/AgroBase/Forms/IHM/Controls/HmiSidebarButton.cs new file mode 100644 index 000000000..a56743005 --- /dev/null +++ b/AgroBase/AgroBase/Forms/IHM/Controls/HmiSidebarButton.cs @@ -0,0 +1,337 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Windows.Forms; + +namespace AgroBase.Forms.IHM.Controls +{ + /// + /// Botão touch reutilizável para ações da barra lateral. + /// + [DefaultEvent("Click")] + public class HmiSidebarButton : UserControl + { + private readonly TableLayoutPanel _layout; + private readonly Label _lblIcone; + private readonly Label _lblTexto; + + private Color _fillColor = HmiTheme.SurfaceRaised; + private Color _borderColor = HmiTheme.Border; + private Color _accentColor = HmiTheme.Success; + private int _cornerRadius = 9; + private bool _pressionado; + + public HmiSidebarButton() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.SupportsTransparentBackColor, true); + + DoubleBuffered = true; + BackColor = Color.Transparent; + Cursor = Cursors.Hand; + Height = 38; + MinimumSize = new Size(130, 36); + Margin = new Padding(0, 2, 0, 2); + Padding = Padding.Empty; + + _layout = new TableLayoutPanel + { + Dock = DockStyle.Fill, + BackColor = Color.Transparent, + ColumnCount = 2, + RowCount = 1, + Margin = Padding.Empty, + Padding = new Padding(9, 2, 10, 2) + }; + + _layout.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 32F)); + + _layout.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); + + _layout.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); + + _lblIcone = new Label + { + Dock = DockStyle.Fill, + AutoSize = false, + BackColor = Color.Transparent, + ForeColor = _accentColor, + Font = new Font("Segoe UI Symbol", 12F, FontStyle.Bold), + Text = "●", + TextAlign = ContentAlignment.MiddleCenter, + Margin = Padding.Empty, + Cursor = Cursors.Hand + }; + + _lblTexto = new Label + { + Dock = DockStyle.Fill, + AutoSize = false, + AutoEllipsis = true, + BackColor = Color.Transparent, + ForeColor = HmiTheme.Text, + Font = new Font("Segoe UI", 8.5F, FontStyle.Bold), + Text = "AÇÃO", + TextAlign = ContentAlignment.MiddleLeft, + Margin = Padding.Empty, + Cursor = Cursors.Hand + }; + + _layout.Controls.Add(_lblIcone, 0, 0); + _layout.Controls.Add(_lblTexto, 1, 0); + Controls.Add(_layout); + + EncaminharEventos(_layout); + EncaminharEventos(_lblIcone); + EncaminharEventos(_lblTexto); + + AtualizarRegiaoArredondada(); + } + + [Browsable(true)] + [EditorBrowsable(EditorBrowsableState.Always)] + [Bindable(true)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] + [Category("Conteúdo")] + [Description("Texto exibido no botão.")] + [DefaultValue("AÇÃO")] + public override string Text + { + get => _lblTexto.Text; + + set + { + string texto = value ?? string.Empty; + + base.Text = texto; + _lblTexto.Text = texto; + + Invalidate(); + } + } + + [Category("Conteúdo")] + [DefaultValue("●")] + public string IconText + { + get { return _lblIcone.Text; } + set { _lblIcone.Text = value ?? string.Empty; } + } + + [Category("Aparência")] + public Color FillColor + { + get { return _fillColor; } + set + { + _fillColor = value; + Invalidate(); + } + } + + [Category("Aparência")] + public Color BorderColor + { + get { return _borderColor; } + set + { + _borderColor = value; + Invalidate(); + } + } + + [Category("Aparência")] + public Color AccentColor + { + get { return _accentColor; } + set + { + _accentColor = value; + _lblIcone.ForeColor = value; + Invalidate(); + } + } + + [Category("Aparência")] + [DefaultValue(9)] + public int CornerRadius + { + get { return _cornerRadius; } + set + { + _cornerRadius = Math.Max(0, value); + AtualizarRegiaoArredondada(); + Invalidate(); + } + } + + protected override void OnEnabledChanged(EventArgs e) + { + base.OnEnabledChanged(e); + + Cursor = Enabled + ? Cursors.Hand + : Cursors.Default; + + _lblTexto.ForeColor = Enabled + ? HmiTheme.Text + : HmiTheme.Disabled; + + _lblIcone.ForeColor = Enabled + ? _accentColor + : HmiTheme.Disabled; + + Invalidate(); + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + AtualizarRegiaoArredondada(); + } + + protected override void OnMouseDown(MouseEventArgs e) + { + base.OnMouseDown(e); + + if (!Enabled || e.Button != MouseButtons.Left) + return; + + _pressionado = true; + Invalidate(); + } + + protected override void OnMouseUp(MouseEventArgs e) + { + base.OnMouseUp(e); + + if (!_pressionado) + return; + + _pressionado = false; + Invalidate(); + } + + protected override void OnMouseLeave(EventArgs e) + { + base.OnMouseLeave(e); + + if (!_pressionado) + return; + + _pressionado = false; + Invalidate(); + } + + protected override void OnPaintBackground(PaintEventArgs e) + { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + + Color fill = _pressionado + ? HmiTheme.SurfacePressed + : _fillColor; + + if (!Enabled) + fill = Color.FromArgb(21, 25, 28); + + Rectangle bounds = new Rectangle( + 0, + 0, + Math.Max(1, Width - 1), + Math.Max(1, Height - 1)); + + using (GraphicsPath path = + HmiRoundedPanel.CreateRoundedPath( + bounds, + _cornerRadius)) + using (SolidBrush brush = new SolidBrush(fill)) + { + e.Graphics.FillPath(brush, path); + } + } + + protected override void OnPaint(PaintEventArgs e) + { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + + Color border = Enabled + ? _borderColor + : HmiTheme.Disabled; + + Rectangle bounds = new Rectangle( + 0, + 0, + Math.Max(1, Width - 1), + Math.Max(1, Height - 1)); + + using (GraphicsPath path = + HmiRoundedPanel.CreateRoundedPath( + bounds, + _cornerRadius)) + using (Pen pen = new Pen( + _pressionado ? _accentColor : border, + _pressionado ? 1.6F : 1F)) + { + e.Graphics.DrawPath(pen, path); + } + + using (Pen accentPen = new Pen( + Enabled ? _accentColor : HmiTheme.Disabled, + 3F)) + { + accentPen.StartCap = LineCap.Round; + accentPen.EndCap = LineCap.Round; + + e.Graphics.DrawLine( + accentPen, + 6, + 10, + 6, + Height - 10); + } + + base.OnPaint(e); + } + + private void EncaminharEventos(Control control) + { + control.Click += delegate + { + if (Enabled) + OnClick(EventArgs.Empty); + }; + + control.MouseDown += delegate(object sender, MouseEventArgs e) + { + OnMouseDown(e); + }; + + control.MouseUp += delegate(object sender, MouseEventArgs e) + { + OnMouseUp(e); + }; + + control.MouseLeave += delegate + { + OnMouseLeave(EventArgs.Empty); + }; + } + + private void AtualizarRegiaoArredondada() + { + if (Width <= 0 || Height <= 0) + return; + + using (GraphicsPath path = + HmiRoundedPanel.CreateRoundedPath( + new Rectangle(0, 0, Width, Height), + _cornerRadius)) + { + if (Region != null) + Region.Dispose(); + + Region = new Region(path); + } + } + } +} diff --git a/AgroBase/AgroBase/Forms/IHM/Controls/HmiStatusRow.cs b/AgroBase/AgroBase/Forms/IHM/Controls/HmiStatusRow.cs new file mode 100644 index 000000000..a40dec587 --- /dev/null +++ b/AgroBase/AgroBase/Forms/IHM/Controls/HmiStatusRow.cs @@ -0,0 +1,216 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Windows.Forms; + +namespace AgroBase.Forms.IHM.Controls +{ + [DefaultEvent("Click")] + public class HmiStatusRow : UserControl + { + private readonly TableLayoutPanel _layout; + private readonly Label _lblIndicator; + private readonly Label _lblTitle; + private readonly Label _lblValue; + + private Color _fillColor = Color.FromArgb(27, 33, 37); + private Color _borderColor = HmiTheme.BorderSoft; + private Color _statusColor = HmiTheme.TextMuted; + private int _cornerRadius = 8; + + public HmiStatusRow() + { + SetStyle( + ControlStyles.AllPaintingInWmPaint | + ControlStyles.UserPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.SupportsTransparentBackColor, + true); + + DoubleBuffered = true; + BackColor = Color.Transparent; + Height = 31; + MinimumSize = new Size(120, 29); + Margin = new Padding(0, 2, 0, 2); + + _layout = new TableLayoutPanel + { + Dock = DockStyle.Fill, + BackColor = Color.Transparent, + ColumnCount = 3, + RowCount = 1, + Margin = Padding.Empty, + Padding = new Padding(8, 0, 8, 0) + }; + _layout.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 18F)); + _layout.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); + _layout.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize)); + _layout.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); + + _lblIndicator = new Label + { + Dock = DockStyle.Fill, + AutoSize = false, + Text = "●", + TextAlign = ContentAlignment.MiddleLeft, + ForeColor = _statusColor, + BackColor = Color.Transparent, + Font = new Font("Segoe UI", 8F, FontStyle.Bold), + Margin = Padding.Empty + }; + + _lblTitle = new Label + { + Dock = DockStyle.Fill, + AutoSize = false, + Text = "Status", + TextAlign = ContentAlignment.MiddleLeft, + ForeColor = HmiTheme.Text, + BackColor = Color.Transparent, + Font = new Font("Segoe UI", 8.5F, FontStyle.Regular), + AutoEllipsis = true, + Margin = Padding.Empty + }; + + _lblValue = new Label + { + AutoSize = true, + Anchor = AnchorStyles.Right, + Text = "-", + TextAlign = ContentAlignment.MiddleRight, + ForeColor = _statusColor, + BackColor = Color.Transparent, + Font = new Font("Segoe UI", 8.5F, FontStyle.Bold), + Margin = new Padding(8, 0, 0, 0) + }; + + _layout.Controls.Add(_lblIndicator, 0, 0); + _layout.Controls.Add(_lblTitle, 1, 0); + _layout.Controls.Add(_lblValue, 2, 0); + Controls.Add(_layout); + + WireChild(_layout); + WireChild(_lblIndicator); + WireChild(_lblTitle); + WireChild(_lblValue); + + UpdateRoundedRegion(); + } + + [Category("Conteúdo")] + public string Titulo + { + get { return _lblTitle.Text; } + set { _lblTitle.Text = value ?? string.Empty; } + } + + [Category("Conteúdo")] + public string Valor + { + get { return _lblValue.Text; } + set { _lblValue.Text = value ?? string.Empty; } + } + + [Category("Aparência")] + public Color StatusColor + { + get { return _statusColor; } + set + { + _statusColor = value; + _lblIndicator.ForeColor = value; + _lblValue.ForeColor = value; + Invalidate(); + } + } + + [Category("Aparência")] + public Color FillColor + { + get { return _fillColor; } + set { _fillColor = value; Invalidate(); } + } + + [Category("Aparência")] + public Color BorderColor + { + get { return _borderColor; } + set { _borderColor = value; Invalidate(); } + } + + [Category("Aparência")] + [DefaultValue(8)] + public int CornerRadius + { + get { return _cornerRadius; } + set + { + _cornerRadius = Math.Max(0, value); + UpdateRoundedRegion(); + Invalidate(); + } + } + + public void SetStatus(string value, Color color) + { + Valor = value; + StatusColor = color; + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + UpdateRoundedRegion(); + } + + protected override void OnPaintBackground(PaintEventArgs e) + { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + var bounds = new Rectangle(0, 0, Math.Max(1, Width - 1), Math.Max(1, Height - 1)); + + using (var path = HmiRoundedPanel.CreateRoundedPath(bounds, _cornerRadius)) + using (var brush = new SolidBrush(_fillColor)) + { + e.Graphics.FillPath(brush, path); + } + } + + protected override void OnPaint(PaintEventArgs e) + { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + var bounds = new Rectangle(0, 0, Math.Max(1, Width - 1), Math.Max(1, Height - 1)); + + using (var path = HmiRoundedPanel.CreateRoundedPath(bounds, _cornerRadius)) + using (var pen = new Pen(_borderColor, 1F)) + { + e.Graphics.DrawPath(pen, path); + } + + base.OnPaint(e); + } + + private void WireChild(Control child) + { + child.Click += delegate { OnClick(EventArgs.Empty); }; + child.Cursor = Cursors.Hand; + } + + private void UpdateRoundedRegion() + { + if (Width <= 0 || Height <= 0) + return; + + using (var path = HmiRoundedPanel.CreateRoundedPath( + new Rectangle(0, 0, Width, Height), + _cornerRadius)) + { + if (Region != null) + Region.Dispose(); + + Region = new Region(path); + } + } + } +} diff --git a/AgroBase/AgroBase/Forms/IHM/Controls/HmiTheme.cs b/AgroBase/AgroBase/Forms/IHM/Controls/HmiTheme.cs new file mode 100644 index 000000000..7bc950c88 --- /dev/null +++ b/AgroBase/AgroBase/Forms/IHM/Controls/HmiTheme.cs @@ -0,0 +1,30 @@ +using System.Drawing; + +namespace AgroBase.Forms.IHM.Controls +{ + /// + /// Paleta central da IHM. Altere as cores aqui para atualizar todas as telas. + /// + public static class HmiTheme + { + public static readonly Color Background = Color.FromArgb(12, 17, 20); + public static readonly Color Surface = Color.FromArgb(24, 29, 33); + public static readonly Color SurfaceRaised = Color.FromArgb(30, 36, 41); + public static readonly Color SurfacePressed = Color.FromArgb(19, 24, 28); + public static readonly Color Header = Color.FromArgb(15, 48, 38); + + public static readonly Color Border = Color.FromArgb(53, 63, 69); + public static readonly Color BorderSoft = Color.FromArgb(42, 51, 57); + + public static readonly Color Text = Color.FromArgb(241, 245, 247); + public static readonly Color TextMuted = Color.FromArgb(164, 174, 181); + + public static readonly Color Success = Color.FromArgb(72, 210, 122); + public static readonly Color Info = Color.FromArgb(61, 165, 255); + public static readonly Color Manual = Color.FromArgb(155, 106, 222); + public static readonly Color Warning = Color.FromArgb(244, 181, 68); + public static readonly Color Danger = Color.FromArgb(239, 83, 80); + + public static readonly Color Disabled = Color.FromArgb(92, 101, 107); + } +} diff --git a/AgroBase/AgroBase/Forms/IHM/Controls/StatusOperacaoControl.Designer.cs b/AgroBase/AgroBase/Forms/IHM/Controls/StatusOperacaoControl.Designer.cs new file mode 100644 index 000000000..f98a62848 --- /dev/null +++ b/AgroBase/AgroBase/Forms/IHM/Controls/StatusOperacaoControl.Designer.cs @@ -0,0 +1,37 @@ +namespace AgroBase.Forms.IHM.Controls +{ + partial class StatusOperacaoControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + } + + #endregion + } +} diff --git a/AgroBase/AgroBase/Forms/IHM/Controls/StatusOperacaoControl.cs b/AgroBase/AgroBase/Forms/IHM/Controls/StatusOperacaoControl.cs new file mode 100644 index 000000000..7f26bd148 --- /dev/null +++ b/AgroBase/AgroBase/Forms/IHM/Controls/StatusOperacaoControl.cs @@ -0,0 +1,393 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Windows.Forms; + +namespace AgroBase.Forms.IHM.Controls +{ + /// + /// Card compacto utilizado na barra lateral da IHM. + /// Mantém compatibilidade com as propriedades do componente anterior. + /// + [DefaultEvent("Click")] + public partial class StatusOperacaoControl : UserControl + { + private readonly TableLayoutPanel _layout; + private readonly PictureBox _picIcone; + private readonly Label _lblTitulo; + private readonly Label _lblValor; + + private Color _corFundo = HmiTheme.SurfaceRaised; + private Color _corBorda = HmiTheme.BorderSoft; + private Color _corDestaque = HmiTheme.Success; + private int _raioBorda = 10; + private bool _mostrarDestaque = true; + + public StatusOperacaoControl() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.SupportsTransparentBackColor, true); + + DoubleBuffered = true; + BackColor = Color.Transparent; + ForeColor = HmiTheme.Text; + + Height = 42; + MinimumSize = new Size(130, 40); + Margin = new Padding(0, 0, 0, 5); + Padding = Padding.Empty; + Cursor = Cursors.Default; + + _layout = new TableLayoutPanel + { + Dock = DockStyle.Fill, + BackColor = Color.Transparent, + ColumnCount = 3, + RowCount = 1, + Margin = Padding.Empty, + Padding = new Padding(12, 3, 10, 3) + }; + + _layout.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 29F)); + + _layout.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize)); + + _layout.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); + + _layout.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); + + _picIcone = new PictureBox + { + Dock = DockStyle.Fill, + BackColor = Color.Transparent, + SizeMode = PictureBoxSizeMode.Zoom, + Margin = new Padding(1, 7, 7, 7), + Padding = Padding.Empty, + TabStop = false + }; + + _lblTitulo = new Label + { + AutoSize = true, + Anchor = AnchorStyles.Left, + AutoEllipsis = false, + BackColor = Color.Transparent, + ForeColor = HmiTheme.Text, + Font = new Font("Segoe UI", 8.25F, FontStyle.Regular), + Text = "Título", + TextAlign = ContentAlignment.MiddleLeft, + Margin = Padding.Empty, + Padding = Padding.Empty, + MaximumSize = new Size(105, 0) + }; + + _lblValor = new Label + { + Dock = DockStyle.Fill, + AutoSize = false, + AutoEllipsis = true, + BackColor = Color.Transparent, + ForeColor = HmiTheme.Success, + Font = new Font("Segoe UI", 8.25F, FontStyle.Bold), + Text = "0", + TextAlign = ContentAlignment.MiddleRight, + Margin = new Padding(6, 0, 0, 0), + Padding = Padding.Empty + }; + + _layout.Controls.Add(_picIcone, 0, 0); + _layout.Controls.Add(_lblTitulo, 1, 0); + _layout.Controls.Add(_lblValor, 2, 0); + + Controls.Add(_layout); + + EncaminharClique(_layout); + EncaminharClique(_picIcone); + EncaminharClique(_lblTitulo); + EncaminharClique(_lblValor); + + AtualizarRegiaoArredondada(); + } + + [Category("Conteúdo")] + [Description("Ícone exibido no lado esquerdo.")] + public Image Icone + { + get { return _picIcone.Image; } + set + { + _picIcone.Image = value; + _picIcone.Visible = value != null; + Invalidate(); + } + } + + [Category("Conteúdo")] + [DefaultValue("Título")] + public string Titulo + { + get => _lblTitulo.Text; + set + { + _lblTitulo.Text = value ?? string.Empty; + AjustarFonteTitulo(); + PerformLayout(); + } + } + + [Category("Conteúdo")] + [DefaultValue("0")] + public string Valor + { + get { return _lblValor.Text; } + set + { + _lblValor.Text = value ?? string.Empty; + if (IsHandleCreated) + BeginInvoke(new Action(AjustarFonteValor)); + } + } + + [Category("Aparência")] + public Color CorValor + { + get { return _lblValor.ForeColor; } + set + { + _lblValor.ForeColor = value; + Invalidate(); + } + } + + [Category("Aparência")] + public Color CorTitulo + { + get { return _lblTitulo.ForeColor; } + set + { + _lblTitulo.ForeColor = value; + Invalidate(); + } + } + + [Category("Aparência")] + public Color CorFundo + { + get { return _corFundo; } + set + { + _corFundo = value; + Invalidate(); + } + } + + [Category("Aparência")] + public Color CorBorda + { + get { return _corBorda; } + set + { + _corBorda = value; + Invalidate(); + } + } + + [Category("Aparência")] + public Color CorDestaque + { + get { return _corDestaque; } + set + { + _corDestaque = value; + Invalidate(); + } + } + + [Category("Aparência")] + [DefaultValue(true)] + public bool MostrarDestaque + { + get { return _mostrarDestaque; } + set + { + _mostrarDestaque = value; + Invalidate(); + } + } + + [Category("Aparência")] + [DefaultValue(10)] + public int RaioBorda + { + get { return _raioBorda; } + set + { + _raioBorda = Math.Max(0, value); + AtualizarRegiaoArredondada(); + Invalidate(); + } + } + + public void AtualizarStatus(string valor, Color? corValor = null, Color? corDestaque = null) + { + Valor = valor; + + if (corValor.HasValue) + CorValor = corValor.Value; + + if (corDestaque.HasValue) + CorDestaque = corDestaque.Value; + } + + protected override void OnEnabledChanged(EventArgs e) + { + base.OnEnabledChanged(e); + + _lblTitulo.ForeColor = Enabled ? HmiTheme.Text : HmiTheme.Disabled; + + _lblValor.ForeColor = Enabled ? _lblValor.ForeColor : HmiTheme.Disabled; + + Invalidate(); + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + AtualizarRegiaoArredondada(); + AjustarFonteValor(); + AjustarFonteTitulo(); + } + + protected override void OnPaintBackground(PaintEventArgs e) + { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + + Rectangle bounds = new Rectangle( 0, 0, Math.Max(1, Width - 1), Math.Max(1, Height - 1)); + + using (GraphicsPath path = HmiRoundedPanel.CreateRoundedPath(bounds, _raioBorda)) + using (SolidBrush brush = new SolidBrush(_corFundo)) + { + e.Graphics.FillPath(brush, path); + } + } + + protected override void OnPaint(PaintEventArgs e) + { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + + Rectangle bounds = new Rectangle(0, 0, Math.Max(1, Width - 1), Math.Max(1, Height - 1)); + + using (GraphicsPath path = HmiRoundedPanel.CreateRoundedPath(bounds, _raioBorda)) + using (Pen pen = new Pen(_corBorda, 1F)) + { + e.Graphics.DrawPath(pen, path); + } + + if (_mostrarDestaque && Height > 20) + { + using (Pen accentPen = new Pen(_corDestaque, 3F)) + { + accentPen.StartCap = LineCap.Round; + accentPen.EndCap = LineCap.Round; + + e.Graphics.DrawLine(accentPen, 6, 11, 6, Height - 11); + } + } + + base.OnPaint(e); + } + + private void EncaminharClique(Control control) + { + control.Click += delegate + { + OnClick(EventArgs.Empty); + }; + } + + private void AtualizarRegiaoArredondada() + { + if (Width <= 0 || Height <= 0) + return; + + using (GraphicsPath path = HmiRoundedPanel.CreateRoundedPath(new Rectangle(0, 0, Width, Height), _raioBorda)) + { + if (Region != null) + Region.Dispose(); + + Region = new Region(path); + } + } + + private void AjustarFonteValor() + { + if (string.IsNullOrWhiteSpace(_lblValor?.Text)) + return; + + const float tamanhoMaximo = 8.25F; + const float tamanhoMinimo = 6.75F; + + float tamanho = tamanhoMaximo; + + using (Graphics graphics = _lblValor.CreateGraphics()) + { + while (tamanho > tamanhoMinimo) + { + using (Font fonteTeste = new Font("Segoe UI", tamanho, FontStyle.Bold)) + { + SizeF tamanhoTexto = graphics.MeasureString(_lblValor.Text, fonteTeste); + + if (tamanhoTexto.Width <= _lblValor.ClientSize.Width - 2) + { + break; + } + } + + tamanho -= 0.25F; + } + } + + Font fonteAntiga = _lblValor.Font; + + _lblValor.Font = new Font("Segoe UI", tamanho, FontStyle.Bold); + + fonteAntiga?.Dispose(); + } + + private void AjustarFonteTitulo() + { + if (string.IsNullOrWhiteSpace(_lblTitulo?.Text)) + return; + + const float fonteMaxima = 8.25F; + const float fonteMinima = 7F; + + float tamanhoFonte = fonteMaxima; + + int larguraMaxima = 105; + + while (tamanhoFonte > fonteMinima) + { + using (Font fonteTeste = new Font("Segoe UI", tamanhoFonte, FontStyle.Regular)) + { + Size tamanhoTexto = TextRenderer.MeasureText(_lblTitulo.Text, fonteTeste, new Size(int.MaxValue, Height), TextFormatFlags.SingleLine | TextFormatFlags.NoPadding); + + if (tamanhoTexto.Width <= larguraMaxima) + break; + } + + tamanhoFonte -= 0.25F; + } + + if (Math.Abs(_lblTitulo.Font.Size - tamanhoFonte) < 0.01F) + return; + + Font fonteAnterior = _lblTitulo.Font; + + _lblTitulo.Font = new Font("Segoe UI", tamanhoFonte, FontStyle.Regular); + + fonteAnterior.Dispose(); + } + + } +} diff --git a/AgroBase/AgroBase/Forms/IHM/frmAjustes.cs b/AgroBase/AgroBase/Forms/IHM/frmAjustes.cs index 9dd2b6b96..affb22817 100644 --- a/AgroBase/AgroBase/Forms/IHM/frmAjustes.cs +++ b/AgroBase/AgroBase/Forms/IHM/frmAjustes.cs @@ -286,7 +286,7 @@ namespace AgroBase.Forms.IHM } else { - cmbCameraCaminho.Text = CameraCaminho.Id; + cmbCameraCaminho.Text = CameraCaminho?.Id; } } diff --git a/AgroBase/AgroBase/Forms/IHM/frmDiagnosticos.Designer.cs b/AgroBase/AgroBase/Forms/IHM/frmDiagnosticos.Designer.cs index 1dd4b7367..701a3ab2a 100644 --- a/AgroBase/AgroBase/Forms/IHM/frmDiagnosticos.Designer.cs +++ b/AgroBase/AgroBase/Forms/IHM/frmDiagnosticos.Designer.cs @@ -28,432 +28,62 @@ /// private void InitializeComponent() { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmDiagnosticos)); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tabPulverizador = new System.Windows.Forms.TabPage(); - this.dgPulverizador = new System.Windows.Forms.DataGridView(); - this.tabMovimentacao = new System.Windows.Forms.TabPage(); - this.dgMovimentacao = new System.Windows.Forms.DataGridView(); - this.tabDirecional = new System.Windows.Forms.TabPage(); - this.dgDirecional = new System.Windows.Forms.DataGridView(); - this.tabSensoriamento = new System.Windows.Forms.TabPage(); - this.dgSensoriamento = new System.Windows.Forms.DataGridView(); - this.tabComunicacao = new System.Windows.Forms.TabPage(); - this.dgComunicacao = new System.Windows.Forms.DataGridView(); - this.tabCameras = new System.Windows.Forms.TabPage(); - this.dgCameras = new System.Windows.Forms.DataGridView(); - this.tabSinaleiros = new System.Windows.Forms.TabPage(); - this.dgSinaleiros = new System.Windows.Forms.DataGridView(); - this.tabResultados = new System.Windows.Forms.TabPage(); - this.dgResultados = new System.Windows.Forms.DataGridView(); - this.tabFalhas = new System.Windows.Forms.TabPage(); - this.tvwFalhas = new System.Windows.Forms.TreeView(); - this.picCamera = new System.Windows.Forms.PictureBox(); - this.picVoltar = new System.Windows.Forms.PictureBox(); - this.picDiagnosticarTudo = new System.Windows.Forms.PictureBox(); - this.picIniciarDiagnostico = new System.Windows.Forms.PictureBox(); - this.picLoading = new System.Windows.Forms.PictureBox(); - this.tabReles = new System.Windows.Forms.TabPage(); - this.dgReles = new System.Windows.Forms.DataGridView(); - this.tabControl1.SuspendLayout(); - this.tabPulverizador.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgPulverizador)).BeginInit(); - this.tabMovimentacao.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgMovimentacao)).BeginInit(); - this.tabDirecional.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgDirecional)).BeginInit(); - this.tabSensoriamento.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgSensoriamento)).BeginInit(); - this.tabComunicacao.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgComunicacao)).BeginInit(); - this.tabCameras.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgCameras)).BeginInit(); - this.tabSinaleiros.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgSinaleiros)).BeginInit(); - this.tabResultados.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgResultados)).BeginInit(); - this.tabFalhas.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.picCamera)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.picVoltar)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.picDiagnosticarTudo)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.picIniciarDiagnostico)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.picLoading)).BeginInit(); - this.tabReles.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgReles)).BeginInit(); + this.richTextBox1 = new System.Windows.Forms.RichTextBox(); + this.panel1 = new System.Windows.Forms.Panel(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // - // tabControl1 + // richTextBox1 // - this.tabControl1.Controls.Add(this.tabPulverizador); - this.tabControl1.Controls.Add(this.tabMovimentacao); - this.tabControl1.Controls.Add(this.tabDirecional); - this.tabControl1.Controls.Add(this.tabSensoriamento); - this.tabControl1.Controls.Add(this.tabComunicacao); - this.tabControl1.Controls.Add(this.tabCameras); - this.tabControl1.Controls.Add(this.tabSinaleiros); - this.tabControl1.Controls.Add(this.tabReles); - this.tabControl1.Controls.Add(this.tabResultados); - this.tabControl1.Controls.Add(this.tabFalhas); - this.tabControl1.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tabControl1.Location = new System.Drawing.Point(100, 12); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(912, 576); - this.tabControl1.TabIndex = 0; + this.richTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.richTextBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.richTextBox1.Location = new System.Drawing.Point(12, 518); + this.richTextBox1.Name = "richTextBox1"; + this.richTextBox1.ReadOnly = true; + this.richTextBox1.Size = new System.Drawing.Size(776, 70); + this.richTextBox1.TabIndex = 1; + this.richTextBox1.Text = "Impedimento: Nenhum"; // - // tabPulverizador + // panel1 // - this.tabPulverizador.Controls.Add(this.dgPulverizador); - this.tabPulverizador.Location = new System.Drawing.Point(4, 38); - this.tabPulverizador.Name = "tabPulverizador"; - this.tabPulverizador.Padding = new System.Windows.Forms.Padding(3); - this.tabPulverizador.Size = new System.Drawing.Size(904, 534); - this.tabPulverizador.TabIndex = 0; - this.tabPulverizador.Text = "Pulverizador"; - this.tabPulverizador.UseVisualStyleBackColor = true; + this.panel1.Location = new System.Drawing.Point(418, 12); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(370, 500); + this.panel1.TabIndex = 2; // - // dgPulverizador + // pictureBox1 // - this.dgPulverizador.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgPulverizador.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgPulverizador.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; - this.dgPulverizador.Location = new System.Drawing.Point(6, 6); - this.dgPulverizador.Name = "dgPulverizador"; - this.dgPulverizador.Size = new System.Drawing.Size(892, 520); - this.dgPulverizador.TabIndex = 0; - // - // tabMovimentacao - // - this.tabMovimentacao.Controls.Add(this.dgMovimentacao); - this.tabMovimentacao.Location = new System.Drawing.Point(4, 38); - this.tabMovimentacao.Name = "tabMovimentacao"; - this.tabMovimentacao.Padding = new System.Windows.Forms.Padding(3); - this.tabMovimentacao.Size = new System.Drawing.Size(904, 534); - this.tabMovimentacao.TabIndex = 1; - this.tabMovimentacao.Text = "Movimentação"; - this.tabMovimentacao.UseVisualStyleBackColor = true; - // - // dgMovimentacao - // - this.dgMovimentacao.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgMovimentacao.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgMovimentacao.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; - this.dgMovimentacao.Location = new System.Drawing.Point(6, 6); - this.dgMovimentacao.Name = "dgMovimentacao"; - this.dgMovimentacao.Size = new System.Drawing.Size(892, 522); - this.dgMovimentacao.TabIndex = 1; - // - // tabDirecional - // - this.tabDirecional.Controls.Add(this.dgDirecional); - this.tabDirecional.Location = new System.Drawing.Point(4, 38); - this.tabDirecional.Name = "tabDirecional"; - this.tabDirecional.Padding = new System.Windows.Forms.Padding(3); - this.tabDirecional.Size = new System.Drawing.Size(904, 534); - this.tabDirecional.TabIndex = 2; - this.tabDirecional.Text = "Direcional"; - this.tabDirecional.UseVisualStyleBackColor = true; - // - // dgDirecional - // - this.dgDirecional.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgDirecional.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgDirecional.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; - this.dgDirecional.Location = new System.Drawing.Point(6, 6); - this.dgDirecional.Name = "dgDirecional"; - this.dgDirecional.Size = new System.Drawing.Size(892, 522); - this.dgDirecional.TabIndex = 2; - // - // tabSensoriamento - // - this.tabSensoriamento.Controls.Add(this.dgSensoriamento); - this.tabSensoriamento.Location = new System.Drawing.Point(4, 38); - this.tabSensoriamento.Name = "tabSensoriamento"; - this.tabSensoriamento.Padding = new System.Windows.Forms.Padding(3); - this.tabSensoriamento.Size = new System.Drawing.Size(904, 534); - this.tabSensoriamento.TabIndex = 3; - this.tabSensoriamento.Text = "Sensoriamento"; - this.tabSensoriamento.UseVisualStyleBackColor = true; - // - // dgSensoriamento - // - this.dgSensoriamento.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgSensoriamento.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgSensoriamento.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; - this.dgSensoriamento.Location = new System.Drawing.Point(6, 6); - this.dgSensoriamento.Name = "dgSensoriamento"; - this.dgSensoriamento.Size = new System.Drawing.Size(892, 522); - this.dgSensoriamento.TabIndex = 3; - // - // tabComunicacao - // - this.tabComunicacao.Controls.Add(this.dgComunicacao); - this.tabComunicacao.Location = new System.Drawing.Point(4, 38); - this.tabComunicacao.Name = "tabComunicacao"; - this.tabComunicacao.Padding = new System.Windows.Forms.Padding(3); - this.tabComunicacao.Size = new System.Drawing.Size(904, 534); - this.tabComunicacao.TabIndex = 4; - this.tabComunicacao.Text = "Comunicação"; - this.tabComunicacao.UseVisualStyleBackColor = true; - // - // dgComunicacao - // - this.dgComunicacao.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgComunicacao.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgComunicacao.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; - this.dgComunicacao.Location = new System.Drawing.Point(6, 6); - this.dgComunicacao.Name = "dgComunicacao"; - this.dgComunicacao.Size = new System.Drawing.Size(892, 522); - this.dgComunicacao.TabIndex = 4; - // - // tabCameras - // - this.tabCameras.Controls.Add(this.dgCameras); - this.tabCameras.Location = new System.Drawing.Point(4, 38); - this.tabCameras.Name = "tabCameras"; - this.tabCameras.Padding = new System.Windows.Forms.Padding(3); - this.tabCameras.Size = new System.Drawing.Size(904, 534); - this.tabCameras.TabIndex = 5; - this.tabCameras.Text = "Câmeras"; - this.tabCameras.UseVisualStyleBackColor = true; - // - // dgCameras - // - this.dgCameras.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgCameras.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgCameras.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; - this.dgCameras.Location = new System.Drawing.Point(6, 6); - this.dgCameras.Name = "dgCameras"; - this.dgCameras.Size = new System.Drawing.Size(892, 522); - this.dgCameras.TabIndex = 5; - // - // tabSinaleiros - // - this.tabSinaleiros.Controls.Add(this.dgSinaleiros); - this.tabSinaleiros.Location = new System.Drawing.Point(4, 38); - this.tabSinaleiros.Name = "tabSinaleiros"; - this.tabSinaleiros.Padding = new System.Windows.Forms.Padding(3); - this.tabSinaleiros.Size = new System.Drawing.Size(904, 534); - this.tabSinaleiros.TabIndex = 6; - this.tabSinaleiros.Text = "Sinaleiros"; - this.tabSinaleiros.UseVisualStyleBackColor = true; - // - // dgSinaleiros - // - this.dgSinaleiros.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgSinaleiros.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgSinaleiros.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; - this.dgSinaleiros.Location = new System.Drawing.Point(6, 6); - this.dgSinaleiros.Name = "dgSinaleiros"; - this.dgSinaleiros.Size = new System.Drawing.Size(892, 522); - this.dgSinaleiros.TabIndex = 6; - // - // tabResultados - // - this.tabResultados.Controls.Add(this.dgResultados); - this.tabResultados.Location = new System.Drawing.Point(4, 38); - this.tabResultados.Name = "tabResultados"; - this.tabResultados.Padding = new System.Windows.Forms.Padding(3); - this.tabResultados.Size = new System.Drawing.Size(904, 534); - this.tabResultados.TabIndex = 7; - this.tabResultados.Text = "Resultados"; - this.tabResultados.UseVisualStyleBackColor = true; - // - // dgResultados - // - this.dgResultados.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgResultados.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgResultados.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; - this.dgResultados.Location = new System.Drawing.Point(6, 6); - this.dgResultados.Name = "dgResultados"; - this.dgResultados.Size = new System.Drawing.Size(892, 522); - this.dgResultados.TabIndex = 7; - // - // tabFalhas - // - this.tabFalhas.Controls.Add(this.tvwFalhas); - this.tabFalhas.Location = new System.Drawing.Point(4, 38); - this.tabFalhas.Name = "tabFalhas"; - this.tabFalhas.Padding = new System.Windows.Forms.Padding(3); - this.tabFalhas.Size = new System.Drawing.Size(904, 534); - this.tabFalhas.TabIndex = 8; - this.tabFalhas.Text = "Cód. Falhas"; - this.tabFalhas.UseVisualStyleBackColor = true; - // - // tvwFalhas - // - this.tvwFalhas.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tvwFalhas.Location = new System.Drawing.Point(6, 6); - this.tvwFalhas.Name = "tvwFalhas"; - this.tvwFalhas.Size = new System.Drawing.Size(892, 522); - this.tvwFalhas.TabIndex = 0; - // - // picCamera - // - this.picCamera.Location = new System.Drawing.Point(12, 194); - this.picCamera.Name = "picCamera"; - this.picCamera.Size = new System.Drawing.Size(65, 65); - this.picCamera.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.picCamera.TabIndex = 6; - this.picCamera.TabStop = false; - // - // picVoltar - // - this.picVoltar.Image = global::AgroBase.Properties.Resources.voltar; - this.picVoltar.Location = new System.Drawing.Point(12, 12); - this.picVoltar.Name = "picVoltar"; - this.picVoltar.Size = new System.Drawing.Size(65, 65); - this.picVoltar.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.picVoltar.TabIndex = 12; - this.picVoltar.TabStop = false; - // - // picDiagnosticarTudo - // - this.picDiagnosticarTudo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.picDiagnosticarTudo.Image = global::AgroBase.Properties.Resources.diagnostico; - this.picDiagnosticarTudo.Location = new System.Drawing.Point(12, 519); - this.picDiagnosticarTudo.Name = "picDiagnosticarTudo"; - this.picDiagnosticarTudo.Size = new System.Drawing.Size(65, 65); - this.picDiagnosticarTudo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.picDiagnosticarTudo.TabIndex = 13; - this.picDiagnosticarTudo.TabStop = false; - // - // picIniciarDiagnostico - // - this.picIniciarDiagnostico.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.picIniciarDiagnostico.Image = global::AgroBase.Properties.Resources.iniciar; - this.picIniciarDiagnostico.Location = new System.Drawing.Point(12, 425); - this.picIniciarDiagnostico.Name = "picIniciarDiagnostico"; - this.picIniciarDiagnostico.Size = new System.Drawing.Size(65, 65); - this.picIniciarDiagnostico.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.picIniciarDiagnostico.TabIndex = 14; - this.picIniciarDiagnostico.TabStop = false; - // - // picLoading - // - this.picLoading.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.picLoading.Location = new System.Drawing.Point(12, 328); - this.picLoading.Name = "picLoading"; - this.picLoading.Size = new System.Drawing.Size(65, 65); - this.picLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.picLoading.TabIndex = 15; - this.picLoading.TabStop = false; - // - // tabReles - // - this.tabReles.Controls.Add(this.dgReles); - this.tabReles.Location = new System.Drawing.Point(4, 38); - this.tabReles.Name = "tabReles"; - this.tabReles.Padding = new System.Windows.Forms.Padding(3); - this.tabReles.Size = new System.Drawing.Size(904, 534); - this.tabReles.TabIndex = 9; - this.tabReles.Text = "Reles"; - this.tabReles.UseVisualStyleBackColor = true; - // - // dgReles - // - this.dgReles.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgReles.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgReles.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; - this.dgReles.Location = new System.Drawing.Point(6, 6); - this.dgReles.Name = "dgReles"; - this.dgReles.Size = new System.Drawing.Size(892, 522); - this.dgReles.TabIndex = 7; + this.pictureBox1.Image = global::AgroBase.Properties.Resources.robo_superior; + this.pictureBox1.Location = new System.Drawing.Point(12, 12); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(400, 500); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox1.TabIndex = 0; + this.pictureBox1.TabStop = false; // // frmDiagnosticos // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1024, 600); - this.Controls.Add(this.picCamera); - this.Controls.Add(this.picLoading); - this.Controls.Add(this.picIniciarDiagnostico); - this.Controls.Add(this.picDiagnosticarTudo); - this.Controls.Add(this.picVoltar); - this.Controls.Add(this.tabControl1); + this.ClientSize = new System.Drawing.Size(800, 600); + this.Controls.Add(this.panel1); + this.Controls.Add(this.richTextBox1); + this.Controls.Add(this.pictureBox1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "frmDiagnosticos"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Diagnósticos"; - this.TopMost = true; - this.Load += new System.EventHandler(this.frmDiagnosticos_Load); - this.tabControl1.ResumeLayout(false); - this.tabPulverizador.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dgPulverizador)).EndInit(); - this.tabMovimentacao.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dgMovimentacao)).EndInit(); - this.tabDirecional.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dgDirecional)).EndInit(); - this.tabSensoriamento.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dgSensoriamento)).EndInit(); - this.tabComunicacao.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dgComunicacao)).EndInit(); - this.tabCameras.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dgCameras)).EndInit(); - this.tabSinaleiros.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dgSinaleiros)).EndInit(); - this.tabResultados.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dgResultados)).EndInit(); - this.tabFalhas.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.picCamera)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.picVoltar)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.picDiagnosticarTudo)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.picIniciarDiagnostico)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.picLoading)).EndInit(); - this.tabReles.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dgReles)).EndInit(); + this.Text = "frmDiagnosticos"; + this.WindowState = System.Windows.Forms.FormWindowState.Maximized; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.ResumeLayout(false); } #endregion - private System.Windows.Forms.TabControl tabControl1; - private System.Windows.Forms.TabPage tabPulverizador; - private System.Windows.Forms.TabPage tabMovimentacao; - private System.Windows.Forms.TabPage tabDirecional; - private System.Windows.Forms.TabPage tabSensoriamento; - private System.Windows.Forms.TabPage tabComunicacao; - private System.Windows.Forms.TabPage tabCameras; - private System.Windows.Forms.TabPage tabSinaleiros; - private System.Windows.Forms.PictureBox picVoltar; - private System.Windows.Forms.TabPage tabResultados; - private System.Windows.Forms.PictureBox picDiagnosticarTudo; - private System.Windows.Forms.DataGridView dgPulverizador; - private System.Windows.Forms.PictureBox picIniciarDiagnostico; - private System.Windows.Forms.DataGridView dgMovimentacao; - private System.Windows.Forms.DataGridView dgDirecional; - private System.Windows.Forms.DataGridView dgSensoriamento; - private System.Windows.Forms.DataGridView dgComunicacao; - private System.Windows.Forms.DataGridView dgCameras; - private System.Windows.Forms.DataGridView dgSinaleiros; - private System.Windows.Forms.DataGridView dgResultados; - private System.Windows.Forms.PictureBox picCamera; - private System.Windows.Forms.PictureBox picLoading; - private System.Windows.Forms.TabPage tabFalhas; - private System.Windows.Forms.TreeView tvwFalhas; - private System.Windows.Forms.TabPage tabReles; - private System.Windows.Forms.DataGridView dgReles; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.RichTextBox richTextBox1; + private System.Windows.Forms.Panel panel1; } } \ No newline at end of file diff --git a/AgroBase/AgroBase/Forms/IHM/frmDiagnosticos.cs b/AgroBase/AgroBase/Forms/IHM/frmDiagnosticos.cs index ef379fb6b..280e7fba7 100644 --- a/AgroBase/AgroBase/Forms/IHM/frmDiagnosticos.cs +++ b/AgroBase/AgroBase/Forms/IHM/frmDiagnosticos.cs @@ -1,1895 +1,20 @@ -using AForge.Video; -using AForge.Video.DirectShow; -using AgroBase.Comum; -using AgroBase.Models; -using AgroBase.Models.Components; -using AgroBase.Models.Modules; -using AgroBase.Services; -using AgroBase.Services.Operadores; -using System; +using System; using System.Collections.Generic; +using System.ComponentModel; +using System.Data; using System.Drawing; using System.Linq; +using System.Text; using System.Threading.Tasks; using System.Windows.Forms; -using static AgroBase.Models.Enums; -using static AgroBase.Services.OIDCanService.OidHandler; namespace AgroBase.Forms.IHM { public partial class frmDiagnosticos : Form { - static string[] ComplementosPadrao = { "Falha", "Sucesso" }; - - static List Diagnosticos = new List(); - - public static bool Diagnosticando - { - get - { - return Diagnosticos.Any(x => x.EmAndamento); - } - } - public frmDiagnosticos() { InitializeComponent(); - - FuncoesGlobais.DefinirEventosPicBtn(picVoltar, "", async () => - { - if (Diagnosticando) - { - return; - } - - this.Close(); - }); - FuncoesGlobais.DefinirEventosPicBtn(picDiagnosticarTudo, "Erro ao realizar diagnóstico geral!", async () => - { - if (Diagnosticando) - { - return; - } - - var res = CustomDialog.ShowDialog( - "Iniciar Diagnóstico", - "Iniciar o diagnóstico completo do equipamento?", - MessageBoxIcon.Question, - new Dictionary<(string, DialogResult?), Action>() - { - { ("Sim", DialogResult.Yes), () => { } }, - { ("Não", DialogResult.No), () => { } }, - } - ); - - if (res == DialogResult.Yes) - { - picLoading.Image = Properties.Resources.loading; - - tabControl1.SelectedIndex = 0; - await IniciarDiagnostico(tabControl1.SelectedIndex); - tabControl1.SelectedIndex = 1; - await IniciarDiagnostico(tabControl1.SelectedIndex); - tabControl1.SelectedIndex = 2; - await IniciarDiagnostico(tabControl1.SelectedIndex); - tabControl1.SelectedIndex = 3; - await IniciarDiagnostico(tabControl1.SelectedIndex); - tabControl1.SelectedIndex = 4; - await IniciarDiagnostico(tabControl1.SelectedIndex); - tabControl1.SelectedIndex = 5; - await IniciarDiagnostico(tabControl1.SelectedIndex); - tabControl1.SelectedIndex = 6; - await IniciarDiagnostico(tabControl1.SelectedIndex); - tabControl1.SelectedIndex = 8; - await IniciarDiagnostico(tabControl1.SelectedIndex); - FinalizarDiagnostico(); - - picLoading.Image = null; - - CustomDialog.ShowDialog( - "Diagnóstico Concluído", - "Diagnóstico completo do equipamento concluído com sucesso!", - MessageBoxIcon.Information, - new Dictionary<(string, dynamic), Action>() - { - { ("OK", null), () => { } }, - } - ); - } - }); - FuncoesGlobais.DefinirEventosPicBtn(picIniciarDiagnostico, "Erro ao realizar diagnóstico do módulo " + tabControl1.SelectedTab.Text, async () => - { - if (Diagnosticando) - { - return; - } - - string ModuloSelecionado = tabControl1.SelectedTab.Text; - var res = CustomDialog.ShowDialog( - "Iniciar Diagnóstico", - $"Iniciar o diagnóstico do módulo {ModuloSelecionado}?", - MessageBoxIcon.Question, - new Dictionary<(string, DialogResult?), Action>() - { - { ("Sim", DialogResult.Yes), () => { } }, - { ("Não", DialogResult.No), () => { } }, - } - ); - if (res == DialogResult.Yes) - { - picLoading.Image = Properties.Resources.loading; - - bool Sucesso = await IniciarDiagnostico(tabControl1.SelectedIndex); - FinalizarDiagnostico(); - - picLoading.Image = null; - - if (Sucesso) - { - CustomDialog.ShowDialog( - "Diagnóstico Concluído", - $"Diagnóstico do módulo {ModuloSelecionado} concluído com sucesso!", - MessageBoxIcon.Information, - new Dictionary<(string, dynamic), Action>() - { - { ("OK", null), () => { } }, - } - ); - } - else - { - CustomDialog.ShowDialog( - "Diagnóstico Concluído", - $"Diagnóstico do módulo {ModuloSelecionado} concluído com erro!", - MessageBoxIcon.Error, - new Dictionary<(string, dynamic), Action>() - { - { ("OK", null), () => { } }, - } - ); - } - } - }); } - - private void frmDiagnosticos_Load(object sender, EventArgs e) - { - PreencherDadosDiagnosticos(); - } - - private void PreencherDadosDiagnosticos() - { - Diagnosticos = new List() - { - new DiagnosticoModel() - { - Modulo = T_Code.Atu, - Descricao = "Pulverizador", - ResultadoMinimo = 90, - grid = dgPulverizador, - Testes = new List() - }, - new DiagnosticoModel() - { - Modulo = T_Code.Mov, - Descricao = "Movimentação", - ResultadoMinimo = 75, - grid = dgMovimentacao, - Testes = new List() - }, - new DiagnosticoModel() - { - Modulo = T_Code.Dir, - Descricao = "Direcional", - ResultadoMinimo = 75, - grid = dgDirecional, - Testes = new List() - }, - new DiagnosticoModel() - { - Modulo = T_Code.Pzm, - Descricao = "Sensoriamento", - ResultadoMinimo = 100, - grid = dgSensoriamento, - Testes = new List() - }, - new DiagnosticoModel() - { - Modulo = T_Code.Lra, - Descricao = "Comunicação", - ResultadoMinimo = 60, - grid = dgComunicacao, - Testes = new List() - }, - new DiagnosticoModel() - { - Modulo = T_Code.Cam, - Descricao = "Cameras", - ResultadoMinimo = 100, - grid = dgCameras, - Testes = new List() - }, - new DiagnosticoModel() - { - Modulo = T_Code.Sen, - Descricao = "Sinaleiros", - ResultadoMinimo = 90, - grid = dgSinaleiros, - Testes = new List() - }, - new DiagnosticoModel() - { - Modulo = T_Code.Mks, - Descricao = "Reles", - ResultadoMinimo = 90, - grid = dgReles, - Testes = new List() - }, - }; - - PreencherDadosDiagnosticoPulverizador(Diagnosticos.FirstOrDefault(x => x.Modulo == T_Code.Atu)); - PreencherDadosDiagnosticoMovimentacao(Diagnosticos.FirstOrDefault(x => x.Modulo == T_Code.Mov)); - PreencherDadosDiagnosticoDirecional(Diagnosticos.FirstOrDefault(x => x.Modulo == T_Code.Dir)); - PreencherDadosDiagnosticoSensoriamento(Diagnosticos.FirstOrDefault(x => x.Modulo == T_Code.Pzm)); - PreencherDadosDiagnosticoComunicacao(Diagnosticos.FirstOrDefault(x => x.Modulo == T_Code.Lra)); - PreencherDadosDiagnosticoCameras(Diagnosticos.FirstOrDefault(x => x.Modulo == T_Code.Cam)); - PreencherDadosDiagnosticoSinaleiros(Diagnosticos.FirstOrDefault(x => x.Modulo == T_Code.Sen)); - PreencherDadosDiagnosticoReles(Diagnosticos.FirstOrDefault(x => x.Modulo == T_Code.Mks)); - PreencherDadosTabelaResultado(dgResultados); - OperacaoModel.PopularTreeView(tvwFalhas, Variaveis.OperacaoEmAndamento.Sensoriamento.OperadorSaude.ModulosSaude); - } - - private async Task IniciarDiagnostico(int idx) - { - bool Sucesso = false; - - if (idx == 9) - { - OperacaoModel.PopularTreeView(tvwFalhas, Variaveis.OperacaoEmAndamento.Sensoriamento.OperadorSaude.ModulosSaude); - - return true; - } - - var Diagnostico = Diagnosticos[idx]; - Diagnostico.Testes.ForEach(x => - { - x.Resultado = "Pendente"; - x.ValorAferido = 0; - }); - Diagnostico.Concluido = false; - Diagnostico.EmAndamento = true; - - if (idx == 0) - { - Sucesso = await IniciarDiagnosticoPulverizador(Diagnostico); - } - else if (idx == 1) - { - Sucesso = await IniciarDiagnosticoMovimentacao(Diagnostico); - } - else if (idx == 2) - { - Sucesso = await IniciarDiagnosticoDirecional(Diagnostico); - } - else if (idx == 3) - { - Sucesso = await IniciarDiagnosticoSensoriamento(Diagnostico); - } - else if (idx == 4) - { - Sucesso = await IniciarDiagnosticoComunicacao(Diagnostico); - } - else if (idx == 5) - { - Sucesso = await IniciarDiagnosticoCameras(Diagnostico); - } - else if (idx == 6) - { - Sucesso = await IniciarDiagnosticoSinaleiros(Diagnostico); - } - else if (idx == 7) - { - Sucesso = await IniciarDiagnosticoReles(Diagnostico); - } - - Diagnostico.Concluido = true; - Diagnostico.EmAndamento = false; - - return Sucesso; - } - - private void FinalizarDiagnostico() - { - tabControl1.SelectedIndex = 8; - AualizarDadosTabelaResultado(dgResultados); - } - - #region TABELAS - - private int PreencheDadosLinha(DataGridView grid, List Testes, int idx, double Valor) - { - var Teste = Testes[idx]; - - Teste.ValorAferido = Valor; - - grid.Rows[idx].Cells[3].Value = Teste.ValorAferidoStr; - - int Sucesso = - Teste.ComplementoValorPadrao == "<" ? (Teste.ValorAferido != -1 && Teste.ValorAferido < Teste.ValorPadrao ? 1 : 0) : - Teste.ComplementoValorPadrao == ">" ? (Teste.ValorAferido > Teste.ValorPadrao ? 1 : 0) : - Teste.ComplementoValorPadrao == "~" ? (Teste.ValorAferido != Math.Floor(Teste.ValorAferido) ? 1 : 0) : - (Teste.ValorAferido == Teste.ValorPadrao ? 1 : 0); - - Teste.Resultado = ComplementosPadrao[Sucesso]; - - grid.Rows[idx].Cells[4].Value = Teste.Resultado; - - idx++; - - AualizarDadosTabelaResultado(dgResultados); - - return idx; - } - - private void PreencherDadosTabelaResultado(DataGridView grid) - { - grid.Columns.Clear(); - grid.Rows.Clear(); - - grid.Columns.Add("clModulo", "Módulo"); - grid.Columns.Add("clTestes", "Testes"); - grid.Columns.Add("clResultadoMinimo", "Resultado mínimo"); - grid.Columns.Add("clSucesso", "Sucesso (%)"); - grid.Columns.Add("clResultado", "Resultado"); - - foreach (var Modulo in Diagnosticos) - { - grid.Rows.Add(Modulo.Descricao, Modulo.Testes.Count().ToString(), Modulo.ResultadoMinimo.ToString("0.00") + "%", "", Modulo.Resultado); - } - - grid.DefaultCellStyle.Font = new Font(FontFamily.GenericSansSerif, 10); - grid.ColumnHeadersDefaultCellStyle.Font = new Font(FontFamily.GenericSansSerif, 10); - grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; - grid.Columns[grid.Columns.Count - 1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; - - AualizarDadosTabelaResultado(grid); - } - - private void AualizarDadosTabelaResultado(DataGridView grid) - { - for (int i = 0; i < Diagnosticos.Count(); i++) - { - grid.Rows[i].Cells[3].Value = Diagnosticos[i].PercentualSucesso.ToString("0.00") + "%"; - grid.Rows[i].Cells[4].Value = Diagnosticos[i].Resultado; - } - } - - #endregion - - #region DIAGNOSTICOS PULVERIZADOR - - private void PreencherDadosDiagnosticoPulverizador(DiagnosticoModel Diagnostico) - { - var Testes = new List() - { - new ColunasDiagnosticoModel() { Componente = "Módulo", Teste = "Conectado", ValorPadrao = 1, ComplementoValorPadrao = ComplementosPadrao[1] }, - new ColunasDiagnosticoModel() { Componente = "Módulo", Teste = "Inicializado", ValorPadrao = 1, ComplementoValorPadrao = ComplementosPadrao[1] }, - new ColunasDiagnosticoModel() { Componente = "Bomba Hidráulica", Teste = "Inicializado", ValorPadrao = 1, ComplementoValorPadrao = ComplementosPadrao[1] }, - new ColunasDiagnosticoModel() { Componente = "Sensor de Massa", Teste = "Inicializado", ValorPadrao = 1, ComplementoValorPadrao = ComplementosPadrao[1] }, - new ColunasDiagnosticoModel() { Componente = "Sensor de Pressão", Teste = "Inicializado", ValorPadrao = 1, ComplementoValorPadrao = ComplementosPadrao[1] }, - new ColunasDiagnosticoModel() { Componente = "Sensor de Fluxo", Teste = "Inicializado", ValorPadrao = 1, ComplementoValorPadrao = ComplementosPadrao[1] }, - }; - Testes.AddRange(Variaveis.OperacaoEmAndamento.DispAtu.Dados.BicosPulverizadores.SelectMany(x => new List() - { - new ColunasDiagnosticoModel() - { - Componente = "Bico Pulverizador " + x.ID, - Teste = "Inicializado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - } - })); - Testes.AddRange(new List() - { - new ColunasDiagnosticoModel() { Componente = "Bomba Hidráulica", Teste = "Atuação", ValorPadrao = 75, ComplementoValorPadrao = ">" }, - new ColunasDiagnosticoModel() { Componente = "Sensor de Massa", Teste = "Leitura", ValorPadrao = 1, ComplementoValorPadrao = ">" }, - new ColunasDiagnosticoModel() { Componente = "Sensor de Pressão", Teste = "Leitura", ValorPadrao = 75, ComplementoValorPadrao = ">" }, - new ColunasDiagnosticoModel() { Componente = "Sensor de Fluxo", Teste = "Leitura", ValorPadrao = 5, ComplementoValorPadrao = ">" }, - }); - Testes.AddRange(Variaveis.OperacaoEmAndamento.DispAtu.Dados.BicosPulverizadores.SelectMany(x => new List() - { - new ColunasDiagnosticoModel() - { - Componente = "Bico Pulverizador " + x.ID, - Teste = "Ligar", - ValorPadrao = 1 - }, - new ColunasDiagnosticoModel() - { - Componente = "Bico Pulverizador " + x.ID, - Teste = "Desligar", - ValorPadrao = 0 - } - })); - - Diagnostico.Testes = Testes; - Diagnostico.PreencherDadosTabela(); - } - - private async Task IniciarDiagnosticoPulverizador(DiagnosticoModel Diagnostico) - { - int idx = 0; - - var grid = Diagnostico.grid; - var Testes = Diagnostico.Testes; - - bool Conectado = SerialService.DispositivosMapeados.Any(x => x.Dispositivo == Enums.T_Code.Atu); - idx = PreencheDadosLinha(grid, Testes, idx, Conectado ? 1 : 0); - - DispositivosService Dispositivo = (DispositivosService)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == Enums.T_Code.Atu); - bool Inicializado = Dispositivo != null && Dispositivo.Dados.ConexaoAtiva; - idx = PreencheDadosLinha(grid, Testes, idx, Inicializado ? 1 : 0); - - AtuadorBombaModel Bomba = Dispositivo.Dados.BombaPressurizadora; - bool BombaInicializado = Bomba?.Inicializado ?? false; - idx = PreencheDadosLinha(grid, Testes, idx, BombaInicializado ? 1 : 0); - - SensorModel sMAS = Dispositivo.Dados.Sensores.FirstOrDefault(x => x.Componente == Enums.S_Code.sMAS); - bool MassaInicializado = sMAS != null ? sMAS.Inicializado : false; - idx = PreencheDadosLinha(grid, Testes, idx, MassaInicializado ? 1 : 0); - - SensorModel sPRS = Dispositivo.Dados.Sensores.FirstOrDefault(x => x.Componente == Enums.S_Code.sPRS); - bool PressaoInicializado = sPRS != null ? sPRS.Inicializado : false; - idx = PreencheDadosLinha(grid, Testes, idx, PressaoInicializado ? 1 : 0); - - SensorModel sFLX = Dispositivo.Dados.Sensores.FirstOrDefault(x => x.Componente == Enums.S_Code.sFLX); - bool FluxoInicializado = sFLX != null ? sFLX.Inicializado : false; - idx = PreencheDadosLinha(grid, Testes, idx, FluxoInicializado ? 1 : 0); - - AtuadorBicoModel B01 = Dispositivo.Dados.BicosPulverizadores[0]; - bool B01Inicializado = B01 != null && B01.Inicializado; - idx = PreencheDadosLinha(grid, Testes, idx, B01Inicializado ? 1 : 0); - - AtuadorBicoModel B02 = Dispositivo.Dados.BicosPulverizadores[1]; - bool B02Inicializado = B02 != null && B02.Inicializado; - idx = PreencheDadosLinha(grid, Testes, idx, B02Inicializado ? 1 : 0); - - AtuadorBicoModel B03 = Dispositivo.Dados.BicosPulverizadores[2]; - bool B03Inicializado = B03 != null && B03.Inicializado; - idx = PreencheDadosLinha(grid, Testes, idx, B03Inicializado ? 1 : 0); - - AtuadorBicoModel B04 = Dispositivo.Dados.BicosPulverizadores[3]; - bool B04Inicializado = B04 != null && B04.Inicializado; - idx = PreencheDadosLinha(grid, Testes, idx, B04Inicializado ? 1 : 0); - - - await EnviarComandoBomba(true, Testes[idx].ValorPadrao, 5000, Dispositivo.Dados); - - double Pressao = PressaoInicializado ? Dispositivo.Dados.PressaoLinha : -1; - idx = PreencheDadosLinha(grid, Testes, idx, Pressao); - - double Massa = MassaInicializado ? Dispositivo.Dados.ContadorCarga.MassaAtual_Kg : -1; - idx = PreencheDadosLinha(grid, Testes, idx, Massa); - - idx = PreencheDadosLinha(grid, Testes, idx, Pressao); - - await EnviarComandoBico(B01, true, 3000, Testes[idx].ValorPadrao, Dispositivo.Dados); - - double Fluxo = FluxoInicializado ? Dispositivo.Dados.VazaoFluxoMLpSInstantaneaCorrigida : -1; - idx = PreencheDadosLinha(grid, Testes, idx, Fluxo); - - bool statusB01_1 = B01Inicializado && B01._EstadoLeitura == Estado.Ligado; - idx = PreencheDadosLinha(grid, Testes, idx, statusB01_1 ? 1 : -1); - - await EnviarComandoBico(B01, false, 1000); - - bool statusB01_0 = B01Inicializado && B01._EstadoLeitura == Estado.Desligado; - idx = PreencheDadosLinha(grid, Testes, idx, statusB01_0 ? 0 : -1); - - await EnviarComandoBico(B02, true, 1000); - - bool statusB02_1 = B02Inicializado && B02._EstadoLeitura == Estado.Ligado; - idx = PreencheDadosLinha(grid, Testes, idx, statusB02_1 ? 1 : -1); - - await EnviarComandoBico(B02, false, 1000); - - bool statusB02_0 = B02Inicializado && B02._EstadoLeitura == Estado.Desligado; - idx = PreencheDadosLinha(grid, Testes, idx, statusB02_0 ? 0 : -1); - - await EnviarComandoBico(B03, true, 1000); - - bool statusB03_1 = B03Inicializado && B03._EstadoLeitura == Estado.Ligado; - idx = PreencheDadosLinha(grid, Testes, idx, statusB03_1 ? 1 : -1); - - await EnviarComandoBico(B03, false, 1000); - - bool statusB03_0 = B03Inicializado && B03._EstadoLeitura == Estado.Desligado; - idx = PreencheDadosLinha(grid, Testes, idx, statusB03_0 ? 0 : -1); - - await EnviarComandoBico(B04, true, 1000); - - bool statusB04_1 = B04Inicializado && B04._EstadoLeitura == Estado.Ligado; - idx = PreencheDadosLinha(grid, Testes, idx, statusB04_1 ? 1 : -1); - - await EnviarComandoBico(B04, false, 1000); - - bool statusB04_0 = B04Inicializado && B04._EstadoLeitura == Estado.Desligado; - idx = PreencheDadosLinha(grid, Testes, idx, statusB04_0 ? 0 : -1); - - - await EnviarComandoBomba(false, 0, 500); - - - return true; - } - - private async Task EnviarComandoBomba(bool Ligar, double Pressao, int Timeout, AtuadorModel disp = null) - { - var op = Variaveis.OperacaoEmAndamento; - var Bomba = op.DispAtu.Dados.BombaPressurizadora; - op.DispAtu?.Dados?.EnviarComandoFisicoBomba( - Bomba, - CanMessagePosicaoDados.Command1, - setarControle: true, - status: Ligar, - potencia: 100, - pressao: Pressao + 10 - ); - - DateTime inicio = DateTime.Now; - while (DateTime.Now < inicio.AddMilliseconds(Timeout)) - { - await Task.Delay(100); - - if (disp != null && disp.PressaoLinha >= Pressao) - { - await EnviarComandoBomba(false, Pressao, 0); - break; - } - } - } - - private async Task EnviarComandoBico(AtuadorBicoModel Bico, bool Ligar, int Timeout, double ValorComparar = 0, AtuadorModel disp = null) - { - Variaveis.OperacaoEmAndamento.DispAtu?.Dados?.EnviarComandoFisicoBico( - Bico, - CanMessagePosicaoDados.Command1, - setarControle: true, - status: Ligar - ); - DateTime inicio = DateTime.Now; - while (DateTime.Now < inicio.AddMilliseconds(Timeout)) - { - await Task.Delay(100); - - if (disp != null && disp.VazaoFluxoMLpSInstantaneaCorrigida >= ValorComparar) - { - break; - } - } - } - - - #endregion - - #region DIAGNOSTICOS MOVIMENTACAO - - private void PreencherDadosDiagnosticoMovimentacao(DiagnosticoModel Diagnostico) - { - var Testes = new List(); - Testes.AddRange(new List() - { - new ColunasDiagnosticoModel() - { - Componente = "Módulo SEN", - Teste = "Conectado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo SEN", - Teste = "Inicializado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - }); - Testes.AddRange(Variaveis.OperacaoEmAndamento.DispMvd.Dados.Modulos.SelectMany(x => new List() - { - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID, - Teste = "Conectado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID, - Teste = "Inicializado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "S_TMP_" + x.Modulo_ID, - Teste = "Inicializado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID, - Teste = "Temperatura", - ValorPadrao = 10, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID, - Teste = "Tensão", - ValorPadrao = 36, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID, - Teste = "Temperatura Driver", - ValorPadrao = 65, - ComplementoValorPadrao = "<" - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID, - Teste = "Código Erro", - ValorPadrao = 0 - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID, - Teste = "Para Frente", - ValorPadrao = 2, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID, - Teste = "Parado", - ValorPadrao = 0 - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID, - Teste = "Para Trás", - ValorPadrao = 2, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID, - Teste = "Parado", - ValorPadrao = 0 - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID, - Teste = "Corrente", - ValorPadrao = 0.2, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID + " Servo Freio", - Teste = "Ativar", - ValorPadrao = x.MovMotor.ConfigFreio.Incremental ? 15 : 165 - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID + " Servo Freio", - Teste = "Desativar", - ValorPadrao = x.MovMotor.ConfigFreio.Incremental ? 0 : 180 - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID + " Servo Freio", - Teste = "Tensão", - ValorPadrao = 7.0, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID + " Servo Freio", - Teste = "Corrente", - ValorPadrao = 200, - ComplementoValorPadrao = ">" - }, - })); - - Diagnostico.Testes = Testes; - Diagnostico.PreencherDadosTabela(); - } - - private async Task IniciarDiagnosticoMovimentacao(DiagnosticoModel Diagnostico) - { - int idx = 0; - - var grid = Diagnostico.grid; - var Testes = Diagnostico.Testes; - - TipoMovimentoDirecional _oldTipoMovimento = Variaveis.OperacaoEmAndamento.Controle.TipoMovimento; - double _oldPercentualVelocidade = Variaveis.OperacaoEmAndamento.Controle.PercentualVelocidadeSP; - - Variaveis.OperacaoEmAndamento.DefinirTipoMovimentoControle(TipoMovimentoDirecional.Diagnostico); - Variaveis.OperacaoEmAndamento.Controle.PercentualVelocidadeSP = 20; - - DispositivosService Dispositivo = (DispositivosService)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == Enums.T_Code.Mvd); - - if (Dispositivo == null) - { - return false; - } - - - bool SenConectado = SerialService.DispositivosMapeados.Any(x => x.Dispositivo == T_Code.Sen); - idx = PreencheDadosLinha(grid, Testes, idx, SenConectado ? 1 : 0); - - var Modulo_Sen = Variaveis.OperacaoEmAndamento.DispSen.Dados; - - bool SenIniciado = Modulo_Sen.Conectado; - idx = PreencheDadosLinha(grid, Testes, idx, SenIniciado ? 1 : 0); - - foreach (var Modulo in Dispositivo.Dados.Modulos) - { - bool Conectado = SerialService.DispositivosMapeados.Any(x => x.Dispositivo == Enums.T_Code.Bld && x.Mod_ID == Modulo.Modulo_ID); - idx = PreencheDadosLinha(grid, Testes, idx, Conectado ? 1 : 0); - - bool Inicializado = Modulo.MovMotor.Inicializado; - idx = PreencheDadosLinha(grid, Testes, idx, Inicializado ? 1 : 0); - - var SensorTmp = Modulo_Sen.Sensores.FirstOrDefault(x => x.Componente == S_Code.sNTC && x.ID.Contains(Modulo.Modulo_ID)); - - bool TempIniciado = SensorTmp != null && SensorTmp.Inicializado; - idx = PreencheDadosLinha(grid, Testes, idx, TempIniciado ? 1 : 0); - - double Temperatura = TempIniciado ? Modulo.MovMotor.Temperatura : -1; - idx = PreencheDadosLinha(grid, Testes, idx, Temperatura); - - double Tensao = Inicializado ? Modulo.MovMotor.Tensao : -1; - idx = PreencheDadosLinha(grid, Testes, idx, Tensao); - - double TemperaturaDriver = Inicializado ? Modulo.MovMotor.TemperaturaDriver : -1; - idx = PreencheDadosLinha(grid, Testes, idx, TemperaturaDriver); - - int CodigoErro = Inicializado ? (int)Modulo.MovMotor.CodigoAlarme : (int)OidCodigoErro.NenhumErro; - idx = PreencheDadosLinha(grid, Testes, idx, CodigoErro); - - bool ParaFrente = Inicializado ? await EnviarComandoMov(Modulo, Enums.Direcao.Frente, Testes[idx], 5000) : false; - idx = PreencheDadosLinha(grid, Testes, idx, Inicializado ? Testes[idx].ValorAferido : -1); - - double CorrenteMotor = Inicializado ? Modulo.MovMotor.Corrente_Motor : -1; - - bool Parado = Inicializado ? await EnviarComandoMov(Modulo, Enums.Direcao.Parado, Testes[idx], 5000) : false; - idx = PreencheDadosLinha(grid, Testes, idx, Inicializado ? Testes[idx].ValorAferido : -1); - - bool ParaTras = Inicializado ? await EnviarComandoMov(Modulo, Enums.Direcao.Tras, Testes[idx], 5000) : false; - idx = PreencheDadosLinha(grid, Testes, idx, Inicializado ? Testes[idx].ValorAferido : -1); - - Parado = Inicializado ? await EnviarComandoMov(Modulo, Enums.Direcao.Parado, Testes[idx], 5000) : false; - idx = PreencheDadosLinha(grid, Testes, idx, Inicializado ? Testes[idx].ValorAferido : -1); - - idx = PreencheDadosLinha(grid, Testes, idx, CorrenteMotor); - - var ServoFreio = Modulo_Sen.Servos.FirstOrDefault(x => x.ID.Contains(Modulo.Modulo_ID) && x.Inicializado); - Variaveis.OperacaoEmAndamento.Controle.TiposControle.FirstOrDefault(x => x.Tipo == T_Code.Mov).UltimaDirecao = Direcao.EmFreio; - Variaveis.OperacaoEmAndamento.DispMvd.Dados.AtualizarDadosFreio(); - bool AtivarFreio = SenIniciado && ServoFreio != null ? await EnviarComandoMovFreio(Variaveis.OperacaoEmAndamento.DispSen, ServoFreio, Modulo.MovMotor.ConfigFreio.AnguloControle, Testes[idx], 2000) : false; - idx = PreencheDadosLinha(grid, Testes, idx, ServoFreio != null ? Testes[idx].ValorAferido : -1); - - var SensorAB7V2 = Modulo_Sen.Sensores.FirstOrDefault(x => x.ID == "AB7V2"); - double CorrenteFreio = SensorAB7V2 != null ? SensorAB7V2.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Corrente).atual.valor : -1; - double TensaoFreio = SensorAB7V2 != null ? SensorAB7V2.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Tensao).atual.valor : -1; - - Variaveis.OperacaoEmAndamento.Controle.TiposControle.FirstOrDefault(x => x.Tipo == T_Code.Mov).UltimaDirecao = Direcao.Parado; - Variaveis.OperacaoEmAndamento.DispMvd.Dados.AtualizarDadosFreio(); - bool DesativarFreio = SenIniciado && ServoFreio != null ? await EnviarComandoMovFreio(Variaveis.OperacaoEmAndamento.DispSen, ServoFreio, Modulo.MovMotor.ConfigFreio.AnguloControle, Testes[idx], 2000) : false; - idx = PreencheDadosLinha(grid, Testes, idx, ServoFreio != null ? Testes[idx].ValorAferido : -1); - - idx = PreencheDadosLinha(grid, Testes, idx, TensaoFreio); - - idx = PreencheDadosLinha(grid, Testes, idx, CorrenteFreio); - - } - - Variaveis.OperacaoEmAndamento.DefinirTipoMovimentoControle(_oldTipoMovimento); - Variaveis.OperacaoEmAndamento.Controle.PercentualVelocidadeSP = _oldPercentualVelocidade; - - return true; - } - - private async Task EnviarComandoMov(ModuloMvdModel Modulo, Direcao Sentido, ColunasDiagnosticoModel Teste, int Timeout) - { - Variaveis.OperacaoEmAndamento.DispMvd.Dados.Modulos.ForEach(x => x.MovMotor.Comandar = false); - Modulo.MovMotor.Comandar = true; - - //GeneralJoystick.EnviaComandoMotor(Sentido == Direcao.Frente ? Keys.Up : Sentido == Direcao.Tras ? Keys.Down : Keys.Escape, T_Code.Mov); - var b = Sentido == Direcao.Frente ? BotoesJoystick.Xis : Sentido == Direcao.Tras ? BotoesJoystick.Quadrado : BotoesJoystick.Vazio; - GeneralJoystick.ProcessarDadosControle(b, b == BotoesJoystick.Vazio, valorDesejado: Variaveis.OperacaoEmAndamento.Parametros.Controle.MovVelocidadeCErvasPercent); - - DateTime Inicio = DateTime.Now; - bool Sucesso = false; - while (!Sucesso && Inicio.AddMilliseconds(Timeout) > DateTime.Now) - { - await Task.Delay(500); - - Sentido sentidoMovimento = - Sentido == Enums.Direcao.Frente ? Modulo.MovMotor.ConfigSentidos[Variaveis.OperacaoEmAndamento.Controle.TipoMovimento].Frente : - Sentido == Enums.Direcao.Tras ? Modulo.MovMotor.ConfigSentidos[Variaveis.OperacaoEmAndamento.Controle.TipoMovimento].Tras : - Enums.Sentido.Parado; - - bool sentidoCorreto = - Sentido == Direcao.Parado ? true : - Modulo.MovMotor.Sentido == sentidoMovimento; - - bool rpmCorreto = - Teste.ComplementoValorPadrao == "<" ? Modulo.MovMotor.RPM_Roda < Teste.ValorPadrao : - Teste.ComplementoValorPadrao == ">" ? Modulo.MovMotor.RPM_Roda > Teste.ValorPadrao : - Modulo.MovMotor.RPM_Roda == Teste.ValorPadrao; - - Sucesso = sentidoCorreto && rpmCorreto; - } - - Teste.ValorAferido = Modulo.MovMotor.RPM_Roda; - - return Sucesso; - } - - private async Task EnviarComandoMovFreio(DispositivosService Dispositivo, SensorServoModel ServoFreio, int Angulo, ColunasDiagnosticoModel Teste, int Timeout) - { - Dispositivo.Dados.Servos.ForEach(x => x.Controlar = false); - ServoFreio.Controlar = true; - - GeneralJoystick.EnviarComandoSensoriamento(ServoFreio.Componente, ServoFreio.ID, Angulo); - //Dispositivo.AdicionarMensagemFila(Dispositivo.Dados.Modulo_ID, ServoFreio.ProtocoloComando(), true, false); - - DateTime Inicio = DateTime.Now; - bool Sucesso = false; - double leituraAngulo = 0; - - while (!Sucesso && Inicio.AddMilliseconds(Timeout) > DateTime.Now) - { - Dispositivo.Dados.RequisitarDadosModulo(ServoFreio.ID_Num, CanMessagePosicaoDados.Dados1, CanMessagePosicaoDados.Dados1, true); - await Task.Delay(1000); - - leituraAngulo = ServoFreio.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.ServoAnguloLeitura).atual.valor; - - Sucesso = - Teste.ComplementoValorPadrao == "<" ? leituraAngulo < Teste.ValorPadrao : - Teste.ComplementoValorPadrao == ">" ? leituraAngulo > Teste.ValorPadrao : - leituraAngulo == Teste.ValorPadrao; - } - - Teste.ValorAferido = leituraAngulo; - - return Sucesso; - } - - - #endregion - - #region DIAGNOSTICOS DIRECIONAL - - private void PreencherDadosDiagnosticoDirecional(DiagnosticoModel Diagnostico) - { - var Testes = new List(); - Testes.AddRange(new List() - { - new ColunasDiagnosticoModel() - { - Componente = "Módulo SEN", - Teste = "Conectado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo SEN", - Teste = "Inicializado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - }); - Testes.AddRange(Variaveis.OperacaoEmAndamento.DispMvd.Dados.Modulos.SelectMany(x => new List() - { - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID, - Teste = "Conectado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID, - Teste = "Inicializado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID, - Teste = "Código Erro", - ValorPadrao = 0 - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID, - Teste = "Para Esquerda", - ValorPadrao = 20, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID, - Teste = "Para Direita", - ValorPadrao = -20, - ComplementoValorPadrao = "<" - }, - new ColunasDiagnosticoModel() - { - Componente = x.Modulo_ID, - Teste = "Para Zero", - ValorPadrao = 0 - }, - })); - - Diagnostico.Testes = Testes; - Diagnostico.PreencherDadosTabela(); - } - - private async Task IniciarDiagnosticoDirecional(DiagnosticoModel Diagnostico) - { - int idx = 0; - - var grid = Diagnostico.grid; - var Testes = Diagnostico.Testes; - - TipoMovimentoDirecional _oldTipoMovimento = Variaveis.OperacaoEmAndamento.Controle.TipoMovimento; - double _oldAngulo = Variaveis.OperacaoEmAndamento.Controle.Angulo; - double _oldVelocidadeMP = Variaveis.OperacaoEmAndamento.Parametros.Controle.DirVelocidadeMovimento; - - DispositivosService Dispositivo = (DispositivosService)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == Enums.T_Code.Mvd); - - if (Dispositivo == null) - { - return false; - } - - Variaveis.OperacaoEmAndamento.DefinirTipoMovimentoControle(TipoMovimentoDirecional.Diagnostico); - Variaveis.OperacaoEmAndamento.Controle.Angulo = 25; - Variaveis.OperacaoEmAndamento.Parametros.Controle.DirVelocidadeMovimento = 30; - - bool SenConectado = SerialService.DispositivosMapeados.Any(x => x.Dispositivo == T_Code.Sen); - idx = PreencheDadosLinha(grid, Testes, idx, SenConectado ? 1 : 0); - - var Modulo_Sen = Variaveis.OperacaoEmAndamento.DispSen.Dados; - - bool SenIniciado = Modulo_Sen.Conectado; - idx = PreencheDadosLinha(grid, Testes, idx, SenIniciado ? 1 : 0); - - foreach (var Modulo in Dispositivo.Dados.Modulos) - { - var Leitura = Modulo.DirMotor.Leitura; - - bool Conectado = SerialService.DispositivosMapeados.Any(x => x.Dispositivo == Enums.T_Code.Mks && x.Mod_ID == Modulo.Modulo_ID); - idx = PreencheDadosLinha(grid, Testes, idx, Conectado ? 1 : 0); - - bool Inicializado = Modulo.DirMotor.Inicializado; - idx = PreencheDadosLinha(grid, Testes, idx, Inicializado ? 1 : 0); - - int.TryParse(Leitura?.Mensagem ?? "", out int CodigoErro); - idx = PreencheDadosLinha(grid, Testes, idx, Inicializado ? CodigoErro : -1); - - //MKS057DService.AddrRef = Convert.ToByte(Modulo.DirMotor.Endereco, 16); - - if (Inicializado) - await EnviarComandoDir(Modulo, Enums.Direcao.Esquerda, Testes[idx], 5000); - else - Testes[idx].ValorAferido = -1; - idx = PreencheDadosLinha(grid, Testes, idx, Testes[idx].ValorAferido); - - if (Inicializado) - await EnviarComandoDir(Modulo, Enums.Direcao.Direita, Testes[idx], 5000); - else - Testes[idx].ValorAferido = -1; - idx = PreencheDadosLinha(grid, Testes, idx, Testes[idx].ValorAferido); - - if (Inicializado) - await EnviarComandoDir(Modulo, Enums.Direcao.Parado, Testes[idx], 5000); - else - Testes[idx].ValorAferido = -1; - idx = PreencheDadosLinha(grid, Testes, idx, Testes[idx].ValorAferido); - - //MKS057DService.AddrRef = 0x00; - - } - - Variaveis.OperacaoEmAndamento.DefinirTipoMovimentoControle(_oldTipoMovimento); - Variaveis.OperacaoEmAndamento.Controle.Angulo = _oldAngulo; - Variaveis.OperacaoEmAndamento.Parametros.Controle.DirVelocidadeMovimento = _oldVelocidadeMP; - - return true; - } - - private async Task EnviarComandoDir(ModuloMvdModel Modulo, Enums.Direcao Sentido, ColunasDiagnosticoModel Teste, int Timeout) - { - DateTime Inicio = DateTime.Now; - bool Sucesso = false; - while (!Sucesso && Inicio.AddMilliseconds(Timeout) > DateTime.Now) - { - Modulo.DirMotor.EnviarComandoControle(Sentido); - await Task.Delay(200); - - /*bool sentidoCorreto = Modulo.DirMotor.Sentido == - (Sentido == Enums.Direcao.Esquerda ? Modulo.DirMotor.ConfigSentidos[Variaveis.OperacaoEmAndamento.Controle.TipoMovimento].Esquerda : - Sentido == Enums.Direcao.Direita ? Modulo.DirMotor.ConfigSentidos[Variaveis.OperacaoEmAndamento.Controle.TipoMovimento].Direita : - Enums.Sentido.Parado);*/ - - bool anguloCorreto = - Teste.ComplementoValorPadrao == "<" ? Modulo.DirMotor.AnguloLeitura < Teste.ValorPadrao : - Teste.ComplementoValorPadrao == ">" ? Modulo.DirMotor.AnguloLeitura > Teste.ValorPadrao : - Modulo.DirMotor.AnguloLeitura == Teste.ValorPadrao; - - Sucesso = anguloCorreto; - } - - Teste.ValorAferido = Modulo.DirMotor.AnguloLeitura; - } - - - #endregion - - #region DIAGNOSTICOS SENSORIAMENTO - - private void PreencherDadosDiagnosticoSensoriamento(DiagnosticoModel Diagnostico) - { - var Testes = new List(); - Testes.AddRange(new List() - { - new ColunasDiagnosticoModel() - { - Componente = "PZEM", - Teste = "Conectado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "PZEM", - Teste = "Inicializado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "PZEM", - Teste = "Tensão Bateria", - ValorPadrao = 36, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = "PZEM", - Teste = "Corrente Bateria", - ValorPadrao = 0.1, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo Sen", - Teste = "Conectado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo Sen", - Teste = "Inicializado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo Sen", - Teste = "Tensão Barramento 5V", - ValorPadrao = 4.95, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo Sen", - Teste = "Corrente Barramento 5V", - ValorPadrao = 500, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo Sen", - Teste = "Tensão Barramento 7V2", - ValorPadrao = 7.0, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo Sen", - Teste = "Corrente Barramento 7V2", - ValorPadrao = 0, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo Sen", - Teste = "Tensão Barramento 12V", - ValorPadrao = 11.5, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo Sen", - Teste = "Corrente Barramento 12V", - ValorPadrao = 0, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo Sen", - Teste = "IMU", - ValorPadrao = 0, - ComplementoValorPadrao = "~" - }, - new ColunasDiagnosticoModel() - { - Componente = "GPS", - Teste = "Conectado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "GPS", - Teste = "Inicializado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "GPS", - Teste = "Correção", - ValorPadrao = (int)TiposCorrecaoGPS.RTKFlutuante, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = "GPS", - Teste = "Satelites", - ValorPadrao = 10, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = "GPS", - Teste = "Orientação Mangética", - ValorPadrao = 0, - ComplementoValorPadrao = "~" - }, - new ColunasDiagnosticoModel() - { - Componente = "Ultrassom", - Teste = "Conectado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "Ultrassom", - Teste = "Inicializado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "Ultrassom", - Teste = "U1", - ValorPadrao = 30, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = "Ultrassom", - Teste = "U2", - ValorPadrao = 30, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = "Ultrassom", - Teste = "U3", - ValorPadrao = 30, - ComplementoValorPadrao = ">" - }, - new ColunasDiagnosticoModel() - { - Componente = "Ultrassom", - Teste = "U4", - ValorPadrao = 30, - ComplementoValorPadrao = ">" - }, - }); - - Diagnostico.Testes = Testes; - Diagnostico.PreencherDadosTabela(); - } - - private async Task IniciarDiagnosticoSensoriamento(DiagnosticoModel Diagnostico) - { - int idx = 0; - - var grid = Diagnostico.grid; - var Testes = Diagnostico.Testes; - - var Modulo_Sen = Variaveis.OperacaoEmAndamento.DispSen.Dados; - - bool PzmConectado = SerialService.DispositivosMapeados.Any(x => x.Dispositivo == Enums.T_Code.Pzm); - idx = PreencheDadosLinha(grid, Testes, idx, PzmConectado ? 1 : 0); - - var S36V = Variaveis.OperacaoEmAndamento.Sensoriamento.Bateria; - bool S36VInicializado = S36V.Iniciado; - idx = PreencheDadosLinha(grid, Testes, idx, S36VInicializado ? 1 : 0); - - double Tensao = S36VInicializado ? S36V.TensaoInstantanea : -1; - idx = PreencheDadosLinha(grid, Testes, idx, Tensao); - - double Corrente = S36VInicializado ? S36V.CorrenteInstantanea : -1; - idx = PreencheDadosLinha(grid, Testes, idx, Corrente); - - bool SenConectado = SerialService.DispositivosMapeados.Any(x => x.Dispositivo == T_Code.Sen); - idx = PreencheDadosLinha(grid, Testes, idx, SenConectado ? 1 : 0); - - bool SenIniciado = Modulo_Sen.Conectado; - idx = PreencheDadosLinha(grid, Testes, idx, SenIniciado ? 1 : 0); - - var S5V = Modulo_Sen.Sensores.FirstOrDefault(x => x.ID == "AB5V"); - double Tensao5V = S5V.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Tensao).atual.valor; - idx = PreencheDadosLinha(grid, Testes, idx, Tensao5V); - - double Corrente5V = S5V.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Corrente).atual.valor; - idx = PreencheDadosLinha(grid, Testes, idx, Corrente5V); - - var S7V2 = Modulo_Sen.Sensores.FirstOrDefault(x => x.ID == "AB7V2"); - double Tensao7V2 = S7V2.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Tensao).atual.valor; - idx = PreencheDadosLinha(grid, Testes, idx, Tensao7V2); - - double Corrente7V2 = S7V2.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Corrente).atual.valor; - idx = PreencheDadosLinha(grid, Testes, idx, Corrente7V2); - - var S12V = Modulo_Sen.Sensores.FirstOrDefault(x => x.ID == "AB12V"); - double Tensao12V = S12V.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Tensao).atual.valor; - idx = PreencheDadosLinha(grid, Testes, idx, Tensao12V); - - double Corrente12V = S12V.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Corrente).atual.valor; - idx = PreencheDadosLinha(grid, Testes, idx, Corrente12V); - - var SImu = Variaveis.OperacaoEmAndamento.Sensoriamento.IMU; - double Orientacao = SImu.Iniciado ? SImu.YawSeguro : -1; - idx = PreencheDadosLinha(grid, Testes, idx, Orientacao); - - bool GpsConectado = SerialService.DispositivosMapeados.Any(x => x.Dispositivo == Enums.T_Code.Gps); - idx = PreencheDadosLinha(grid, Testes, idx, GpsConectado ? 1 : 0); - - bool GpsInicializado = GPSService.Iniciado; - idx = PreencheDadosLinha(grid, Testes, idx, GpsInicializado ? 1 : 0); - - double Precisao = GpsInicializado ? (int)Variaveis.OperacaoEmAndamento.Sensoriamento.Gps.QualidadeFix : -1; - idx = PreencheDadosLinha(grid, Testes, idx, Precisao); - - double Satelites = GpsInicializado ? Variaveis.OperacaoEmAndamento.Sensoriamento.Gps.NumeroSatelites : -1; - idx = PreencheDadosLinha(grid, Testes, idx, Satelites); - - double OrientacaoGPS = GpsInicializado ? Variaveis.OperacaoEmAndamento.Sensoriamento.Gps.OrientacaoReal : -1; - idx = PreencheDadosLinha(grid, Testes, idx, OrientacaoGPS); - - bool A05Conectado = SerialService.DispositivosMapeados.Any(x => x.Dispositivo == Enums.T_Code.A05); - idx = PreencheDadosLinha(grid, Testes, idx, A05Conectado ? 1 : 0); - - bool A05Inicializado = UltrasonicA05Service.Iniciado; - idx = PreencheDadosLinha(grid, Testes, idx, A05Inicializado ? 1 : 0); - - double U1 = A05Inicializado ? UltrasonicA05Service.DadosLeitura.U1 : -1; - idx = PreencheDadosLinha(grid, Testes, idx, U1); - - double U2 = A05Inicializado ? UltrasonicA05Service.DadosLeitura.U2 : -1; - idx = PreencheDadosLinha(grid, Testes, idx, U2); - - double U3 = A05Inicializado ? UltrasonicA05Service.DadosLeitura.U3 : -1; - idx = PreencheDadosLinha(grid, Testes, idx, U3); - - double U4 = A05Inicializado ? UltrasonicA05Service.DadosLeitura.U4 : -1; - idx = PreencheDadosLinha(grid, Testes, idx, U4); - - return true; - } - - - #endregion - - #region DIAGNOSTICOS COMUNICACAO - - private void PreencherDadosDiagnosticoComunicacao(DiagnosticoModel Diagnostico) - { - var Testes = new List(); - Testes.AddRange(new List() - { - new ColunasDiagnosticoModel() - { - Componente = "Módulo Sen", - Teste = "Conectado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo Sen", - Teste = "Inicializado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo LoRa", - Teste = "Conectado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo LoRa", - Teste = "Inicializado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo LoRa", - Teste = "Parametrizado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo LoRa", - Teste = "Envio", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo LoRa", - Teste = "Recebimento", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - }); - - Diagnostico.Testes = Testes; - Diagnostico.PreencherDadosTabela(); - } - - private async Task IniciarDiagnosticoComunicacao(DiagnosticoModel Diagnostico) - { - int idx = 0; - - var grid = Diagnostico.grid; - var Testes = Diagnostico.Testes; - - bool SenConectado = SerialService.DispositivosMapeados.Any(x => x.Dispositivo == T_Code.Sen); - idx = PreencheDadosLinha(grid, Testes, idx, SenConectado ? 1 : 0); - - DispositivosService Dispositivo = (DispositivosService)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == T_Code.Sen); - bool SenInicializado = Dispositivo != null && Dispositivo.Dados.Conectado; - idx = PreencheDadosLinha(grid, Testes, idx, SenInicializado ? 1 : 0); - - bool Conectado = SerialService.DispositivosMapeados.Any(x => x.Dispositivo == T_Code.Lra); - idx = PreencheDadosLinha(grid, Testes, idx, Conectado ? 1 : 0); - - bool Inicializado = false; // Variaveis.LoraService.Iniciado; - idx = PreencheDadosLinha(grid, Testes, idx, Inicializado ? 1 : 0); - - bool sucesso = false; - if (Inicializado) - { - //(bool _sucesso, LoRaParametrosModel parametros) = await Variaveis.LoraService.RequisitarParametrosModulo(); - //sucesso = _sucesso; - } - - bool Parametrizado = false; // Inicializado && sucesso && Variaveis.LoraService.ParametrosGet != null; - idx = PreencheDadosLinha(grid, Testes, idx, Parametrizado ? 1 : 0); - - bool MensagemEnviada = false; - if (Inicializado) - { - //int msgEnviadasAnterior = LoRaBaseService.MensagensEnviadas; - //Variaveis.LoraService.EnviarDadosParaBase(); - await Task.Delay(2000); - MensagemEnviada = true; //LoRaBaseService.MensagensEnviadas > msgEnviadasAnterior; - } - idx = PreencheDadosLinha(grid, Testes, idx, MensagemEnviada ? 1 : 0); - - bool MensagemRecebida = false; - if (Inicializado) - { - await Task.Delay(VariaveisEquipamento.TempoEntrePingsConexao * 2); - MensagemRecebida = VariaveisOperacao.PosicaoBase != null; - } - idx = PreencheDadosLinha(grid, Testes, idx, MensagemRecebida ? 1 : 0); - - return true; - } - - private async Task EnviarComandoRele(DispositivosService Dispositivo, SensorReleModel Rele, bool Ligar, int Delay) - { - var novoEstado = Ligar ? Estado.Ligado : Estado.Desligado; - GeneralJoystick.EnviarComandoSensoriamento(Rele.Componente, Rele.ID, novoEstado); - await Task.Delay(Delay); - Dispositivo.Dados.RequisitarDadosModulo(Rele.ID_Num, CanMessagePosicaoDados.Dados1, CanMessagePosicaoDados.Dados1, true); - await Task.Delay(Delay); - } - - - - #endregion - - #region DIAGNOSTICOS CAMERAS - - Bitmap bitmapCamera = null; - - private void PreencherDadosDiagnosticoCameras(DiagnosticoModel Diagnostico) - { - var Testes = new List(); - Testes.AddRange(new List() - { - new ColunasDiagnosticoModel() - { - Componente = "Caminho Frontal", - Teste = "Configurado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "Caminho Frontal", - Teste = "Conectado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "Caminho Frontal", - Teste = "Vídeo", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - } - }); - - foreach (var camera in CameraWorkerService.CamerasSolo) - { - Testes.AddRange(new List() - { - new ColunasDiagnosticoModel() - { - Componente = camera.Name, - Teste = "Configurado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = camera.Name, - Teste = "Conectado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = camera.Name, - Teste = "Vídeo", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - } - }); - } - - Diagnostico.Testes = Testes; - Diagnostico.PreencherDadosTabela(); - } - - private async Task IniciarDiagnosticoCameras(DiagnosticoModel Diagnostico) - { - int idx = 0; - - var grid = Diagnostico.grid; - var Testes = Diagnostico.Testes; - - List CamerasIDs = CameraWorkerService.ListaCameras.Select(x => x.mx_id).ToList(); - - string IDcamRua = CameraWorkerService.CameraCaminho.Id;//.Replace("\\", "#").ToLower(); - - bool RuaConfigurado = !string.IsNullOrEmpty(IDcamRua) && IDcamRua != "Sem video"; - idx = PreencheDadosLinha(grid, Testes, idx, RuaConfigurado ? 1 : 0); - - bool RuaConectado = RuaConfigurado && CamerasIDs.Any(x => x.Contains(IDcamRua)); - idx = PreencheDadosLinha(grid, Testes, idx, RuaConectado ? 1 : 0); - - bool RuaVideo = await VerificaImagemCamera(CamerasIDs, IDcamRua, RuaConectado); - idx = PreencheDadosLinha(grid, Testes, idx, RuaVideo ? 1 : 0); - - foreach (var camera in CameraWorkerService.CamerasSolo) - { - string IDcamSolo = (CameraWorkerService.CamerasSolo[0].Id);//.Replace("\\", "#").ToLower(); - - bool SoloConfigurado = !string.IsNullOrEmpty(IDcamSolo) && IDcamSolo != "Sem video"; - idx = PreencheDadosLinha(grid, Testes, idx, SoloConfigurado ? 1 : 0); - - bool SoloConectado = SoloConfigurado && CamerasIDs.Any(x => x.Contains(IDcamSolo)); - idx = PreencheDadosLinha(grid, Testes, idx, SoloConectado ? 1 : 0); - - bool SoloVideo = await VerificaImagemCamera(CamerasIDs, IDcamSolo, SoloConectado); - idx = PreencheDadosLinha(grid, Testes, idx, SoloVideo ? 1 : 0); - } - - return true; - } - - private void videoSource_NewFrame(object sender, NewFrameEventArgs eventArgs) - { - bitmapCamera = (Bitmap)eventArgs.Frame.Clone(); - picCamera.Image = bitmapCamera; - } - - private async Task VerificaImagemCamera(List CamerasIDs, string ID, bool Conecatdo) - { - if (!Conecatdo) - { - return false; - } - - string a = CamerasIDs.First(x => x.Contains(ID)); - - VideoCaptureDevice videoSource; - videoSource = new VideoCaptureDevice(ID); - videoSource.NewFrame += new NewFrameEventHandler(videoSource_NewFrame); - videoSource.Start(); - - DateTime Inicio = DateTime.Now; - while (bitmapCamera == null && Inicio.AddMilliseconds(5000) > DateTime.Now) - { - await Task.Delay(200); - } - - bool VideoSucesso = bitmapCamera != null && !IsBlackFrame(bitmapCamera); - bitmapCamera = null; - videoSource.Stop(); - - return VideoSucesso; - } - - private bool IsBlackFrame(Bitmap bitmap) - { - float brightnessThreshold = 0.1f; // Ajuste conforme necessário - float totalBrightness = 0; - int pixelCount = bitmap.Width * bitmap.Height; - - for (int y = 0; y < bitmap.Height; y++) - { - for (int x = 0; x < bitmap.Width; x++) - { - Color pixelColor = bitmap.GetPixel(x, y); - totalBrightness += pixelColor.GetBrightness(); - } - } - - float averageBrightness = totalBrightness / pixelCount; - return averageBrightness < brightnessThreshold; - } - - - - #endregion - - #region DIAGNOSTICOS SINALEIROS - - private void PreencherDadosDiagnosticoSinaleiros(DiagnosticoModel Diagnostico) - { - var Testes = new List(); - Testes.AddRange(new List() - { - new ColunasDiagnosticoModel() - { - Componente = "Módulo", - Teste = "Conectado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo", - Teste = "Inicializado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - }); - Testes.AddRange(Variaveis.OperacaoEmAndamento.DispSen.Dados.Sinaleiros.SelectMany(x => new List() - { - new ColunasDiagnosticoModel() - { - Componente = x.ID, - Teste = "Inicializado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = x.ID, - Teste = "Ligar", - ValorPadrao = 1, - }, - new ColunasDiagnosticoModel() - { - Componente = x.ID, - Teste = "Desligar", - ValorPadrao = 0, - }, - })); - - Diagnostico.Testes = Testes; - Diagnostico.PreencherDadosTabela(); - } - - private async Task IniciarDiagnosticoSinaleiros(DiagnosticoModel Diagnostico) - { - int idx = 0; - - var grid = Diagnostico.grid; - var Testes = Diagnostico.Testes; - - bool Conectado = SerialService.DispositivosMapeados.Any(x => x.Dispositivo == Enums.T_Code.Sen); - idx = PreencheDadosLinha(grid, Testes, idx, Conectado ? 1 : 0); - - DispositivosService Dispositivo = (DispositivosService)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == Enums.T_Code.Sen); - bool Inicializado = Dispositivo != null && Dispositivo.Dados.Conectado; - idx = PreencheDadosLinha(grid, Testes, idx, Inicializado ? 1 : 0); - - foreach (var Sinaleiro in Dispositivo.Dados.Sinaleiros) - { - bool Iniciado = Sinaleiro.Inicializado; - idx = PreencheDadosLinha(grid, Testes, idx, Inicializado ? 1 : 0); - - if (Iniciado) - { - await EnviarComandoSinaleiro(Dispositivo, Sinaleiro, true, 1000); - } - - StatusLED Status = Sinaleiro.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.StatusLedLeitura).atual.valor; - idx = PreencheDadosLinha(grid, Testes, idx, Iniciado && Status == StatusLED.Aceso ? 1 : -1); - - if (Iniciado) - { - await EnviarComandoSinaleiro(Dispositivo, Sinaleiro, false, 1000); - } - - Status = Sinaleiro.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.StatusLedLeitura).atual.valor; - idx = PreencheDadosLinha(grid, Testes, idx, Iniciado && Status == StatusLED.Apagado ? 0 : -1); - } - - - - return true; - } - - private async Task EnviarComandoSinaleiro(DispositivosService Dispositivo, SensorSinaleiroModel Sinaleiro, bool Ligar, int Delay) - { - var Comportamento = VariaveisEquipamento.ComportamentoLedPorStatus(Ligar ? StatusLED.Aceso : StatusLED.Apagado); - GeneralJoystick.EnviarComandoSensoriamento(Sinaleiro.Componente, Sinaleiro.ID, Comportamento); - await Task.Delay(Delay); - Dispositivo.Dados.RequisitarDadosModulo(Sinaleiro.ID_Num, CanMessagePosicaoDados.Dados1, CanMessagePosicaoDados.Dados1, true); - await Task.Delay(Delay); - } - - #endregion - - #region DIAGNOSTICOS RELES - - private void PreencherDadosDiagnosticoReles(DiagnosticoModel Diagnostico) - { - var Testes = new List(); - Testes.AddRange(new List() - { - new ColunasDiagnosticoModel() - { - Componente = "Módulo", - Teste = "Conectado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = "Módulo", - Teste = "Inicializado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - }); - Testes.AddRange(Variaveis.OperacaoEmAndamento.DispSen.Dados.Reles.SelectMany(x => new List() - { - new ColunasDiagnosticoModel() - { - Componente = x.ID, - Teste = "Inicializado", - ValorPadrao = 1, - ComplementoValorPadrao = ComplementosPadrao[1] - }, - new ColunasDiagnosticoModel() - { - Componente = x.ID, - Teste = "Ligar", - ValorPadrao = 1, - }, - new ColunasDiagnosticoModel() - { - Componente = x.ID, - Teste = "Desligar", - ValorPadrao = 0, - }, - })); - - Diagnostico.Testes = Testes; - Diagnostico.PreencherDadosTabela(); - } - - private async Task IniciarDiagnosticoReles(DiagnosticoModel Diagnostico) - { - int idx = 0; - - var grid = Diagnostico.grid; - var Testes = Diagnostico.Testes; - - bool Conectado = SerialService.DispositivosMapeados.Any(x => x.Dispositivo == Enums.T_Code.Sen); - idx = PreencheDadosLinha(grid, Testes, idx, Conectado ? 1 : 0); - - DispositivosService Dispositivo = (DispositivosService)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == Enums.T_Code.Sen); - bool Inicializado = Dispositivo != null && Dispositivo.Dados.Conectado; - idx = PreencheDadosLinha(grid, Testes, idx, Inicializado ? 1 : 0); - - foreach (var Rele in Dispositivo.Dados.Reles) - { - bool Iniciado = Rele.Inicializado; - idx = PreencheDadosLinha(grid, Testes, idx, Inicializado ? 1 : 0); - - if (Iniciado) - { - await EnviarComandoRele(Dispositivo, Rele, true, 1000); - } - - Estado Status = Rele._EstadoLeitura; - idx = PreencheDadosLinha(grid, Testes, idx, Iniciado && Status == Estado.Ligado ? 1 : -1); - - if (Iniciado) - { - await EnviarComandoRele(Dispositivo, Rele, false, 1000); - } - - Status = Rele._EstadoLeitura; - idx = PreencheDadosLinha(grid, Testes, idx, Iniciado && Status == Estado.Desligado ? 0 : -1); - } - - - - return true; - } - - - - - #endregion - - class DiagnosticoModel - { - public T_Code Modulo { get; set; } - public string Descricao { get; set; } - public double ResultadoMinimo { get; set; } - public bool EmAndamento { get; set; } - public bool Concluido { get; set; } - public double PercentualSucesso - { - get - { - double sucesso = Testes.Count(x => x.Resultado == ComplementosPadrao[1]); - double resultado = sucesso > 0 ? (sucesso / Testes.Count() * 100) : 0; - return resultado; - } - } - public string Resultado - { - get - { - return - EmAndamento ? "Diagnosticando..." : - Concluido ? (PercentualSucesso >= ResultadoMinimo) ? "Apto" : "Inapto" : - "Pendente"; - } - } - public DataGridView grid { get; set; } - public List Testes { get; set; } - - private void DefinirEstiloTabela() - { - grid.DefaultCellStyle.Font = new Font(FontFamily.GenericSansSerif, 10); - grid.ColumnHeadersDefaultCellStyle.Font = new Font(FontFamily.GenericSansSerif, 10); - grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; - grid.Columns[grid.Columns.Count - 1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; - } - - - private void PreencheCabecalho() - { - grid.Columns.Clear(); - grid.Rows.Clear(); - - grid.Columns.Add("clComponente", "Componente"); - grid.Columns.Add("clTeste", "Teste"); - grid.Columns.Add("clValorPadrao", "Valor Padrão"); - grid.Columns.Add("clValorAferido", "Valor Aferido"); - grid.Columns.Add("clResultado", "Resultado"); - - DefinirEstiloTabela(); - } - - - public void PreencherDadosTabela() - { - PreencheCabecalho(); - - foreach (var teste in Testes) - { - string valorPadrao = - ComplementosPadrao.Contains(teste.ComplementoValorPadrao) ? teste.ComplementoValorPadrao : - !string.IsNullOrEmpty(teste.ComplementoValorPadrao) ? teste.ComplementoValorPadrao + " " + teste.ValorPadrao.ToString() : - teste.ValorPadrao.ToString(); - grid.Rows.Add(teste.Componente, teste.Teste, valorPadrao, teste.ValorAferido, teste.Resultado); - } - } - - } - - class ColunasDiagnosticoModel - { - public string Componente { get; set; } - public string Teste { get; set; } - public double ValorPadrao { get; set; } - public string ComplementoValorPadrao { get; set; } - public double ValorAferido { get; set; } - public string ValorAferidoStr - { - get - { - return - ComplementosPadrao.Contains(ComplementoValorPadrao) ? - (ValorAferido == -1 ? ComplementosPadrao[0] : ComplementosPadrao[Convert.ToInt32(ValorAferido)]) : - ValorAferido.ToString("0.00"); - } - } - public string Resultado { get; set; } = "Pendente"; - } - } - - } diff --git a/AgroBase/AgroBase/Forms/IHM/frmDiagnosticos.resx b/AgroBase/AgroBase/Forms/IHM/frmDiagnosticos.resx index d437b9040..1af7de150 100644 --- a/AgroBase/AgroBase/Forms/IHM/frmDiagnosticos.resx +++ b/AgroBase/AgroBase/Forms/IHM/frmDiagnosticos.resx @@ -117,2081 +117,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - AAABAAEAyJYAAAEAIABQ5QEAFgAAACgAAADIAAAALAEAAAEAIAAAAAAAwNQBAMMOAADDDgAAAAAAAAAA - AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wB4t3oCmMucJcjnziuYw5xNsNa0YqTIqVWfxaZbq9GyUI28k1ut1bN3r9a2iajR - rpiy2LmQqNCtk7nbvY2p0a2Osdm2jKvXr4iq1KyGs9S2gqXMo3+83rh7o8yfebjbsHehyKB0utm7dqbM - qW6my61wrc+zaZnGnGWy2rVjkrmUX7TVt2OTvJNatNK3YaDHolSo0adbstqyT5fCmFCy17RPjbiMRrDR - tFGItYREosqdZrrZuW+w1KuHw+m5irbfrYe11bSFstCygaXMp36y1rN6psioeLvYvXbD3MVpt9W6P6/V - ryvG48gxqMutE////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8Ai7yQCHKudwZHk0wLcKt1UJbCnXiQvpiZgrmG13C0cPZvsW3haqBr/3Kg - d91wonX5cad15m+mc+5moGr/c6l39m+mcf91qHf5dah2/myibv9vpHH1aKRr/2qmbfBhnWT/caly73Gv - cf9urGzzcahu9WedZ/tvoG/sYZpl/2qlb+djo2f/bqlx53Ckc/ZxonPreKZ66W2bbvR3onjga59o/3ar - c9xyrHH6capv3HSpdOlzqHTheqt73HGjb/B9q3nfdKdt/3CnZP92sGj1Z6Va/3ercvBpomv/cKlz7mmk - bP9vpHLyfqyB9XqlffeEq4bihrKFwpbCk8iaxpmtrM+udLfaujy+48Ad////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8Aeq57GKjNpzzI4cdMkr+UjHyxgcp5sn/RXaBi7EiW - S/9SoFL/UqJM/02eRf9Wm1H/UpNU/1OWVv9QmFH/VZpV/1OZUv9VmVP/VppU/1CTTv9Sk1L/TI9M/1GT - Uv9OlVH/TZZQ/0mWTv9BlEf/RZtM/0KaSP9MmU7/RI5G/0iSSf9ImEv/SJdM/1GaVP9SllT/V5Za/1OR - Vv9Xklj/VJNV/1WVU/9WmlH/UJtM/1agU/9PmEz/UpdR/1KXUf9Ul1L/VZlR/1SYTP9Wmkz/T5ZD/1Wc - Sf9TnUv/U5xR/0yZUf9Hl03/RpRL/0WPSf9RlFT/TZJM/1OZTP9Rmkj/VZdP/2OaYf5unG/yirCM4qDG - oqa94L9rsdW0K7jeuhD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AhbSEDa7Rqjm62LWAncOavXGp - dP1XnFv/VaBa+0abS/9HnUn/TaNL/1GlS/9Uo0v/WKFM/1ugUf9UnlH/T55P/0+jTf9PoUz/UKBM/1Kh - Tf9ToFD/U59Q/1WfU/9QnVD/TJlO/0qcTv9Hmkz/RppM/z+eSf8/oEj/Rp9I/0mcSf9JnUn/SJ1J/0ab - SP9DmEb/Q5VG/0qZTf9Nl0//T5hR/1SbVf9SnFP/UJ5P/0ueSf9KoUf/TKJK/0uhS/9Lnkv/TZ9L/02d - Sv9OnEn/Tp5H/0+dSP9KnEb/Tp9K/0+iT/9EmEj/RJ9L/0KhSP9CnEj/R5xK/0qcSP9LoUT/S6FC/0+e - SP9TnU3/WJpU/1OQUv9WjFb/YJde/4G0fumaw5nHvNq/YP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wC+3MBEp8ujsnGocP9Xmln/UJxW/0WcTf9GoE3/RqFK/0qjSf9Qo0v/VKBL/1eeTf9bnlL/XJ9U/1Og - T/9PpUv/TKZG/0ukRv9Mokf/TaNI/1CjTf9SpFD/VKVS/06iTv9JnUv/R51M/0uhUP9LoFH/S55P/06g - Tv9Qn03/TZ5L/0ufSv9Jn0j/RZ1G/0KaQ/9GnUn/SqBM/0eaSv9Lnk3/TJ9O/0qdS/9Oo07/S6RK/0aj - SP9HpEj/R6JJ/0ihSf9JoEn/Sp9I/0qfSP9Kokj/RZ1D/0GaQ/9Jok7/SJ5Q/0CXS/9Enk3/Q51L/0ec - Tf9KnUv/SaBI/0qhRf9KokT/S6BG/1CgTf9YoVb/V51X/1WWVP9XmVP/XqFY/1+fWf90o3XUn8Sjd7XU - uCr///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wBeoV4eb6h4en2sf+tZm1z/UJtY/0ebT/9IoFH/RqJP/0ShS/9IoEr/TJ5K/0+Z - Sv9Umk3/V51R/1adVP9Sm1L/SpxM/0ulSP9KpUX/SqRF/0qiR/9MoUn/TaJL/06iTf9PpFD/TaJP/0if - S/9Lok//UKFR/0+aT/9TmVD/UZtO/02eTP9Nn0z/TKJL/0qjSv9GoEb/Q59E/0SfRv9CnUT/RZ9G/0mi - Sv9DnUX/RZxF/0miSf9FoUb/RqVJ/0akSv9Iokv/SKFK/0igSf9IoEj/SaNJ/0qmTP9Fokr/RKBM/0Sg - Tv9FnE3/SJ1P/0udUP9Lm1L/SptQ/0qeTP9Jn0j/SaJG/0iiRv9JoUf/Sp9K/0qaS/9LmUv/T5xO/1Cc - Tf9Uo0z/UJ1I/1SVUP92p3nhj7yRmqPJpUWrzq8EpNCmA////wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wBvqGsOk8OVQpfBnJV6qXnaW5tW/UqbTv9InlL/RqBR/0Wg - T/9Hnkz/Sp5N/0+dTv9PmUz/TZZJ/1OcUf9VnlT/Tp5Q/0eeS/8/n0b/Q6NG/0mjR/9KoEj/Sp9J/0ue - TP9Lnk3/TJ9N/0ugTf9KoEz/SaBL/0+iUP9OnE3/Up5Q/06eTf9KnUr/SJxI/0qeSf9KoUn/SaNK/0ah - SP9EoEb/Q6BE/0KeQ/9FoUb/RaBG/0SeRf9Hokf/R6FH/0WgRv9Ho0v/SKJM/0uhTP9LoEz/SaBK/0eg - SP9GoUn/R6NL/0OhSv9EoEn/R6FJ/06jTv9OoE3/TqBQ/1GjVP9JnE3/S55L/0qgSP9IoUf/R6FI/0ei - Sf9IoEr/RZtJ/0ugTv9MoU3/TJ9K/06jSP9Ookb/TJ1G/1CWUP9enWD/h72J1bbbuYnA48In////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AV59UBMTmy0aYxZyzYZ1e/k+Y - SP9RoEf/SKJI/0SeT/9GnFD/SpxP/02bT/9Pm07/UZ1N/1KdTv9TnlD/UaFR/0qhTv9Eokr/QqVJ/0Km - SP9CpUf/SKJL/0yeT/9MnFD/TJxQ/0ucT/9LnUz/SaBL/0igSf9LoUv/SpxK/0ibSP9HnEj/RZxG/0ah - SP9FnUb/R5xH/0mfSf9JoEr/RqBI/0WfR/9HoUn/SaFK/0igSf9IoEr/S6NN/0qiSv9JoEr/SaFK/0mf - Sv9OoU//T59O/0+fTv9Nn03/S59L/0egSv9GoEj/RaBE/0ehQv9Mokb/T6NM/0ueS/9Knkv/UaRS/0yf - TP9Lnkv/S6BJ/0uhSf9JoUr/SaJM/0efTP9Hn03/SKBN/0efSf9GoEf/SaNG/0ukRv9Lokb/SpxJ/02a - Tf9boVv/g7qE7a7VrnKVxpcM////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AFud - XRJ4tHpmg7eG5lmcWP9Un1D/TqRJ/0qjRv9FoUj/SJ5Q/02bUv9Om07/TZxL/0+dS/9Rn0z/TaBK/0qg - Sf9GoEj/Q6BI/0ShSf9Do0f/QqVI/0ajRv9Ln0z/T5xV/02bVf9LnFD/SZ5L/0igSP9Lokv/TKFN/1Ci - Uf9Mn03/S55L/0qhTP9Jokz/SKFK/0edSf9Km0r/SZ1K/0qbTP9Im0r/R5hJ/0qbTf9Imkv/SppM/1Ch - Uv9OnlD/TJ5N/02eTv9KnEv/S5xL/1GfUP9Rnk//Up1Q/1CdT/9Pnk//UKFO/0ufRf9MoEX/S6FG/06h - S/9Ro0//T6FQ/0+hUP9On07/Tp5M/06fS/9PoEr/TqFK/0ygTP9Gmkr/RppL/0mfT/9IoE3/Rp9J/0Wg - Rf9Iokb/SqJH/0uhSf9MoUz/SaJI/0afRv9TnlL/h7iGyYK3g2D///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wBppW0SxuHQYYi2jsdTlFX7SZZI/0ufS/9En0f/QZ1I/0CbTP9HnFH/TZ1N/06f - SP9OoEn/TKBG/0egQ/9En0P/RJ5F/0ifSv9Fm0n/Q5pH/0ibSf9Nnkv/VZxO/1CWS/9Tm1b/S5xO/0ug - S/9MnUv/UKBQ/1OdVP9PmlD/UpxT/02aT/9ToVX/Tp5R/0qcTv9QnVP/TppP/1CYUP9Ml03/TplR/02U - T/9PllH/UpZW/0yST/9SlFT/UpZU/1OYVf9Ql1L/TZVN/0qVSv9Qn1D/VqBV/1OaUf9Wmlb/U5RV/1WY - Vv9TmFP/TphL/1CbTv9Mm0r/TptP/02ZTv9Un1b/VJ1U/1ObUv9Znlb/UpxM/1KdS/9Pm0r/UJtP/06a - Uf9Qn1T/S51R/0idTP9In0r/R6BI/0mhR/9KoEj/TJ9L/02fUf9Io0r/QaNA/0ueSv9goGH4hLWI27LY - uSGdx50F////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8AXJ5gCYG5iVuEtI7xVZRZ/0uVTv9HnEr/Q5xI/z6Y - R/8/mEv/RJpP/0eaUP9Mn0n/SKFB/0SiPv9DoD//RJ9D/0qdS/9Hl0r/TppR/1aaV/9Wl1T/ZZ1g/2Wd - X/9uomv/Z5pp/1ycYP9YpFj/WKJX/2KhYf9bmVv/YZli/12WX/9fmWH/X5th/1qaXf9bml3/WJtb/2ij - af9gl2D/XpJf/1iVW/9bm17/YZlk/1yUX/9mmWr/XJFg/2CVY/9elGH/Xphh/2CeYv9Tl1T/WZ1c/1ea - Wf9kmmf/Zpps/2Sbbf9pn3D/Xphi/1+bYf9XmVn/W5tf/1SWWf9Wllz/Wpdg/1iWXf9knmb/Yp1i/2yi - av9gnFv/X6BZ/1aYU/9RklD/V5hZ/1ygYP9VnVn/T51S/02fTP9Kn0j/S6FJ/0ufSv9LnU3/TJ1S/02i - U/9DoUX/SqBM/06YUv9bmGH/msOhkZ7Hohz///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wCj0Ks6s9XBumWf - bPlOmE//S55N/0SdSP9Bmkj/Q5pJ/0ecTv9JnE//S5pN/0qfRf9Bnzz/Qp8//0yeS/9LmU3/VZpY/3Co - c/+DtYT/mLyX/5q/lv+iw5//pcim/6bLrf+lya//ncmk/5zMnP+czpz/qs+p/6fJp/+lxab/o8Wl/53H - of+kz6f/mcmc/5/Nov+cyp//qM6p/6vIq/+tx63/pMem/5XFmv+dyKL/mMGd/53Cov+WvJv/kruX/5vE - nv+Yx5r/ns+g/5DFkv+Zx53/n8Sm/6zGtP+tybb/m8il/6XSrf+ayaD/pdSr/6HSp/+byqP/mMei/5rK - pP+dyaj/kb+Y/6PMpv+jzaT/qc6n/6TIoP+dzJn/lsmV/3yvfP92qHn/YZpk/1KRVP9Plk7/UJxM/02d - SP9OoEr/TJ9L/0mdS/9JnU//Tp9W/0+jVf9MoE//TZpQ/1eZWv9wpHTwn8WjR3Gldwn///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8AVp1QFafRsJFinmP/VJtT/1GhTv9MoEz/RJtG/0WbSP9Jnkz/SpxK/0qaRf9QnEX/TptE/0ub - SP9Kl0v/Wpxe/3mrfv+TvJn/u9S//8bcx//Y5tj/2OPY/9fk2v/e7uP/1uzc/9vv4v/Y7N3/3/Pi/+P3 - 4//m9Of/5O/l/9vr3P/e8eL/1OzX/9z04P/Z9dz/3Pfe/9/34f/d8d7/5/Hn/+bt5v/g7eL/zevS/9Tv - 2f/Z8d//2vDg/9zz4f/T7tj/1vTb/8/y0v/R8NT/zerT/9bs3v/f7uf/2eng/9/u5v/W893/2Pnf/9T2 - 2//b+uH/3Pzl/9Lx3f/T7+H/0O3f/9Tt4v/P6tr/1u3d/9rx3v/Z79r/4fLg/9n02P/S9NP/veK//7ba - u/+aw53/eKh4/2KdX/9TmE7/TZlH/06fSP9LoUj/R6FI/0qhTf9Jm0//Tp9U/0ieSf9KnUr/T5pQ/1eV - Wf+JtIujhbOJNf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wBvsmU7hL1+1FSZS/9SnUv/VKJP/06hTP9Jnkr/SZ5K/0mc - R/9Km0X/UJ1H/1OcSv9SlkX/XJtY/3msgP+ZvaL/w9fL/9Dg1//h6Ob/5ebn/+bj6P/o5Ov/5Ofo/+Tr - 6P/j7ef/5e3p/+Xp6f/p6Oz/8O/y/+jn6//p5ez/6Ojs/+br6//h7ef/4/Ho/+j36//p+Oz/7PXu/+rw - 6//v8O//7e3t/+Pl5f/c5+L/2+nj/+Dq5//f6uX/5fLr/9/w5f/c7+H/3e/i/9zq4//c6OP/2uni/97r - 5f/d6OP/3efj/+Dw5v/d8eP/3fDi/97u5P/k8e3/4u7u/+Pr8v/h6/H/3+jt/+Ls7f/g6uf/4uzm/+Pt - 5f/m7en/5e/p/+Du5v/d7+T/4fTo/9nz3v+027X/kMKO/2ShYP9UmE//TZxH/0uiSP9GoUX/SaNL/0md - TP9NnVH/Sp5J/0ifRv9Qn03/V5pW/2ufa+6Xv5hyZZxnC////wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AjMSEKbjksKBsrmDvV51N/1ag - Tf9VolD/UqJR/1CgT/9Nn03/TZ5L/1KfTf9Vn03/WJ1S/2SjYv+Fuov/vtrK/9Li3f/k7u3/4+np/+Pj - 5v/n4un/5uHp/+bi6v/i4ef/4ePl/+Pl5v/l5Oj/6eTs/+3k7//z5fX/8eT1/+ri8f/p5/D/5ers/+Dn - 5v/k7On/5+/t/+rw7v/s7O7/6Ojq/+fm6f/q6ev/5+np/+Do5v/h5+j/4OHn/+bo6//m6uv/4+np/+Hp - 5v/f5+P/2+bh/9vl4f/a5OD/2+Ph/9/n5P/j6Oj/5Orp/+Pq5//i5eX/4+To/+bk7f/p6PP/6uj2/+Tj - 8f/h4ez/5OTs/+fp7f/n6uv/5eno/+Pl6P/n6O7/4+Xs/97j6f/g6un/4fDn/9Tu1v/J58r/o8qi/3yu - ef9Ym1T/TJxK/0qhSf9JoUn/S59L/0ycTP9On0v/SaJF/0yhR/9PnEr/VZVS/4m0h7J9rX47////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AFeV - VAmrzqxvcqhq/12gUf9Xnk//Vp1T/1egWf9VoVj/T55R/0ubTP9NnEz/UZtP/02UTv9bm2H/ib6T/7De - vf/c8ej/4O/p/9/s5v/i5+b/5eTp/+fh6v/m4ur/5eTq/+Xn6v/k6Oj/4+bm/+Tl5v/q5Ov/7+Lv//Hk - 8f/r5PH/4uLr/+To7v/l7O3/4uvq/+Lq6f/l6uz/7O3v/+/t8f/s6u//6Onr/+fq6f/l7un/4u7n/97i - 5P/l4+r/5+Xr/+Tk5//j5uj/4ebm/+Dm5f/h6ef/5Ovp/+Tp6P/l6Or/4+bo/+Hi5f/j4+b/6Ofq/+zm - 7f/r5e7/6ePu/+ji7//n5PD/5uPw/+Pj6//j5Of/4eXl/+Xq6P/n6+z/5unu/+jo8f/m5/L/5ub0/+Xn - 8P/k6Oz/5Ozp/+f07P/Q6dP/nsef/3CqcP9RmlH/Tp9O/02gTP9OoUv/Tp5L/1GfS/9No0X/SaNA/0qb - Q/9Slk3/ap9p6Ze/l1lim18E////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8AV5NbFafCrqxmmGX/VpVU/1WXWP9UmVz/Vp5c/1KfWf9MnFP/SppO/02f - Uf9Om1T/WJpg/4G2iv/C4cz/2+vl/+ft7//k7+r/5u7r/+jp6//o5uz/6OTs/+bl6//i6Of/4evn/93s - 4//g6+T/4enk/+Tp5v/p6+r/5+vm/+fs7P/e5+j/3eno/+Dt6f/j7ur/5Ozq/+Xo6f/r6+7/6+ru/+rq - 7P/l6On/4ejl/+Ls5v/k7ub/5ejn/+/r8f/p5uz/5+fq/+Pm5//f5OP/4OTk/+To6f/m6Or/5+fq/+no - 7P/l4+j/393h/+Hh4v/n6On/6+jq/+zm6//m5Of/6ejt/+jr7f/j6+j/4+7n/+Du4f/i7eL/5PDl/+bw - 6v/k6+r/5+zv/+ns8//o6vH/5uju/+Xn6//l6Or/5O3p/+X26v/O69P/pdCq/2uncP9Pl1P/TZ5O/0+i - Tf9QoUr/UqBL/06gRv9Fnzz/R51A/0yZRv9Uk1L/kbuTkICxfx////8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wB+tn49i7CP1FWNV/9Tkln/UZRa/1CZ - W/9RnFv/TqBW/0qhUP9KoFD/Tp5T/1ecXf+LuY//wNrC/+Tr5f/l6er/5Ofr/+js7f/r7O7/7Ofv/+vm - 7f/n5ur/4ujm/9jo3f/X7d3/0OzX/8fmzf/H4sv/wNvD/87izv/Q58//3PLf/93x5v/d7+j/3e3m/9/t - 5//j7er/4+fo/+fn6v/n5ur/5+nq/+fr6//l6ur/6vDt/+nu6//m6ub/6evs/+rr7f/q7O3/5+rq/+Hm - 5P/i5eX/4+fo/+Pk5//m5en/7Ont/+ro6//k5Ob/4+nl/+jx6f/p8ej/6+7r/+Ps5P/d7t//1OrY/77b - wP/E4MT/wuC//9Drzv/Z8dj/4/bk/+Lx5f/j8Of/5fDn/+jv6f/k6ef/5Obm/+Tm5//l6On/6vPx/+T4 - 7f/D5c3/h7uQ/1aWXP9OmVH/UqFQ/1GhS/9Tokz/UqBK/0mfQP9JoUH/S5xH/1KVUf93qHjbp86qKv// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8ARJNBA5rG - nXlnnGj0VJhS/1GdVP9Ol1r/TJtV/0qfT/9Ko0v/S6ZM/1GjUv9cnVr/daRw/7bPsf/b6dj/5Ovl/+Hl - 5f/g5Ob/5ebp/+vm7v/q4+3/6ePr/+Lm5v/e7OP/z+nU/7jfvv+n1K3/j8CT/4u4kP+DsIX/jLWM/4+6 - jv+dy53/v+LF/9ft3//e7+f/3uzl/+Hp5v/k5+j/5eTo/+vs7v/q6+//6Ont/+rr7//r7u7/5+vp/+br - 6P/n6+r/5+vq/+rv7f/n7uv/5ero/+bq6v/n6ev/5eXo/+fl6v/s6e3/6+rr/+jr6P/l8Of/5vXn/97z - 3v/X79n/xOLG/6HNo/+Rv5P/eq15/4Gwfv+FtIH/kbyO/6bLo/+/4rz/2ffW/+D33f/g8OD/6e/r/+rt - 7P/n6ef/5+fm/+jn6//o6+//5/Lw/9rv5v+12cL/dah//1CSVf9QnVH/VKZQ/1ChSv9ToU3/T6BJ/06m - Sf9NoUr/S5ZL/1uYXf+2271rf7KBCP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wBfqV0lm8iftEqOSv9Pn0v/SKRF/0mfS/9Hokf/Q6FB/0WiRP9Nok3/VZxT/26g - aP+dwZf/1OrR/+by5P/m7ej/4ubm/+Dk5f/f5OP/5OPo/+ji6v/m5Oj/3ung/8zm0P+t1bL/fraE/2ik - bf9Tllf/UJJV/1OUVv9UkVT/WpVY/2ChXv+LwYz/vtfE/97q5f/h6+b/3+bj/+Dm5v/i5ef/5ujs/+bm - 7v/o5+7/6eru/+fq6//i5+b/4ubk/+Tp5v/k6uf/5ezo/+Ls5v/k7ej/6O3s/+nq7f/o5+z/6OXp/+Xi - 5f/j5eP/4+rj/+Lw4v/g9+D/zu7P/6jUqv+GvIr/WZ1d/1CVVP9PlVD/TpJN/1STUP9WlFH/Z59j/32x - e/+03LP/2PTa/+Pz5v/m7ev/6ert/+3u6//s7Of/7uvs/+3q8P/q7PP/4/Dx/8jk1/+Lupf/VpVd/02X - T/9VpVT/T6FL/1GhTf9Qn07/T6RN/0uhS/9Kl0v/Xp1i+3+0hK////8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AIO/hEaDuIboS5NK/02gSf9Bozv/QqY9/0Ok - QP9AoUL/SKFL/1GdU/9Uk1P/gbF+/7reuP/e9N3/5/Pp/+bs6//m6ez/5enq/+Ho5P/h5uP/5ubo/+fu - 6f/Z7tz/qM6t/32wgf9Tllf/SZNN/0eWS/9Fk0n/S5RN/0yVTP9Kkkj/TJlJ/1OeUP+BrIP/w9LH/+Dr - 5P/d6+L/2ubg/+Lq5//k6Or/4+Xq/+jo7v/r7PD/6uvv/+Tn6P/h5eT/4ufl/+Pq5v/h7Ob/3+vk/+Hq - 5f/j6ej/5ejp/+jp7P/n5ur/5eTn/+Lm4//f6+D/3/Pg/9Dw0f+t1q//dqx4/1igXv89lEP/P5dF/06i - UP9KnEj/TptK/1CbTf9WmVT/W5dd/3qpff+s0rH/1Ovb/+jx7//p6O//7uzs/+/u5v/w7Or/8e3z/+no - 8f/m7vL/2+7o/7HUvf9vpnj/TZNR/0+gT/9QpE7/TKBL/02dT/9Nn0//SZ9L/0ybTv9WnFr/iryQwWWl - aTH///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8ArdWxf3qs - fPJPl03/SKBE/z6hO/9Bp0X/QaNK/z+fSv9Jo1D/UZ9W/1aYV/+QwZD/1/jX/+b46P/k6+r/6ezv/+vs - 8v/r7e//5u3q/9/q4f/d6d7/3PHe/8Dewv91qHn/VZRY/0yYT/9Lm03/Tp9P/0ibSP9Hl0f/TZ1M/02c - Sv9KnUf/Q5pA/1mcW/+YtZ3/zODR/9jt3v/V5dz/4Ovn/+Xs7P/j5ur/5+nu/+3v8//s7fH/5+rs/+fs - 6//n7er/5uzp/+Lt5v/f6+T/4Orl/+Lp5//l6On/5+fr/+jn6//l5+f/3+bg/97t3//c893/udy6/4m1 - i/9akl3/T5tU/0aiS/9Ho0j/SaBH/0idRf9KnEj/SZtK/0yaT/9Gj0v/To1W/4CviP++28b/5/Pv/+rr - 8f/y7PP/7evj/+/s5v/z7u//6ufu/+rt9P/o9/T/w+PO/3yxg/9QllP/S5xL/06kTf9LoUv/SJtM/0qa - UP9InUz/SJ1M/1ScWf+GuYvUoM2kUf///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AHOrcRq408CUXJNd/1SeUf9LpEn/QaFF/z+hTP89n0n/PZxG/0iiT/9Tnlb/aqds/6/c - sf/q/+//6vrw/+vu9P/s6/b/6+n1/+zt8//n7+3/3+7j/93x3//C5sT/kcCS/1aUV/9NlE7/UaBS/0ud - S/9JnEn/S51I/06eSv9OnUv/R5hF/0WbRP9En0b/P5tD/2Wdaf+rx6//1urb/9nq3//g7Ob/6vLx/+js - 7//o6+//6uzx/+jr7//p6+7/7PDv/+3x8P/u8PD/6PDs/+Dt5f/i7en/5Ovp/+fq6//o6ev/6Ofs/+bn - 6P/f5eD/3eze/8zlzf+Ot4//YpVj/1aUWP9TnVX/S6FM/0miSP9Hn0f/RZ1G/0WdRv9DnEf/Q5pK/0SV - TP9MlFT/Z59w/5zFpf/R59n/3+fm/+7q8v/t6uf/7u3k//Hu7P/u6+//6u3x/+n28f/Q7Nn/lcKa/2Gg - Yv9NnEz/S6RK/0qkSv9GnUr/RphN/0icTf9HnU3/Up1Y/2+rdP/L6c9icq54C////wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AIKug5tbk1j2TplG/0afQv9Fokf/RaBO/z+a - S/9BnUj/SZ9O/06YUP9tqG7/sd60/+f/7f/r9/X/7+/8/+/q/P/q5/X/6uvy/+Xt6v/g8eX/3fXi/7Da - tP90r3X/TpRO/0uZS/9MnEr/SJpG/1ChTf9UolD/Up9P/0uZTP9Flkn/RJxJ/0KfRv8+nT//WZ5b/5y8 - oP/W6Nv/3+/k/+Ht5v/q8/D/6O/w/+nu8P/o6+7/5Ofq/+bq7P/p7O3/6+/u/+3w8P/u8fD/5/Hs/+jx - 7//p7+7/6uzu/+rq7f/r6e3/6uvs/+ju6f/c7N3/uNS4/3amd/9Rj1P/UZdS/0+aT/9Nnk3/SZ5L/0ec - Sv9FnEn/Qp1H/z+dRv89nUb/P5pI/0OYS/9LklP/gLOI/8Tgyf/h6uP/6enr/+vn6f/r6uP/7Ovn/+3r - 7f/r7O//7Pbz/9ju3f+bw53/YZ5f/0+fTf9MpEr/S6VL/0qhTP9Knk3/SZxL/0mfTf9PnFT/dq969JPG - l3////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wBnpmIll76ZtVOT - S/9Omkb/R5xB/0egRv9Lok//R5lO/0eZS/9Jmkr/TZVN/4C4gf/G7cn/5frt/+Ts7v/t7Pj/8uv9/+/p - +P/q6vL/4enn/97w4//X8Nz/msaf/12hXf9Onkz/T6FN/0yeSf9MnEn/UqBQ/1KdUv9Smlb/T5hV/0qb - UP9Fm0j/Rp1F/0edRf9Qnk3/h7OI/8rgzv/h8eb/5PDo/+nx7//l7O3/5Ons/+js8P/l6e3/5urs/+fr - 7P/o7Oz/6u7t/+3u7v/s8vD/7PPy/+vw8f/s7PD/6+nv/+zq7//r6+7/6/Pt/9vx3P+n0Kf/ZaFm/0mS - Sv9NmEz/TJpL/06eTf9Km03/SJlO/0aaTf9CnUr/P59H/zufRP87nkT/QppI/0yXUf96sH7/udy7/9fo - 1//j6uT/5+fo/+np5f/o6eT/6enp/+zt7//p8u7/1urZ/6DDof9pn2f/V55T/1ChTf9NoU3/T6NP/1Ck - UP9Ln0z/TJ1O/1SdWP92rXr7zu3Qf2iobA3///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AI++kTaNuJDvX5tb/1ScTv9KnUP/Rp1D/0ugTv9NmlL/TJZQ/0yVSf9Vl1H/jcKM/8fu - yf/n/ez/5u/u/+3r9v/06/z/8ur5/+7u8v/i6+b/3vHj/8vo0f+VvJ7/X55i/1OjUP9UqVD/TqFL/0yb - Tf9Qm1T/UppY/1KbWv9QnFb/TJ5P/0qdSv9Lnkj/SJlD/0qUQ/+BsX3/z+TS/+Hu5f/j7+f/5vDs/+Lq - 6P/i6On/5evs/+Xr7P/l6uv/5err/+bq6//o6+v/6uzs/+zt7f/u8fL/7e7y/+zs8f/r6e//6+nv/+vs - 7f/o9ur/zu/P/5TGlP9opGn/UZpS/06bTv9Im0f/SZ9H/0mdTP9Jl1D/SJpP/0WeTP8/oEf/PaBD/zuf - Qf9Fnkn/RpRI/26pb/+64Lr/3fLc/+Ts5f/p6+v/6+vs/+fq5//m6Oj/6evu/+rv8P/h8eT/rs+w/2if - Z/9WnFX/UJ9S/06gT/9QpFD/UKZQ/06kTv9Nn07/TZRP/3Wnd/mq0qxzTpdSA////wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8Aps6vTZq9odNSkVL/T5tK/0ufRv9HnkT/Sp5L/02Y - Tv9TllX/U5VQ/1KQTf+IuoX/yOzI/+P45//r8/H/7evz//Ls9v/x6vT/8PDw/+bv5//l+Oj/0O3V/5K3 - m/9XkF3/S5xL/1CpT/9PpFH/Tp5S/02bUv9PnVP/T6BT/0yfUP9Inkn/TKJL/1KiTv9Ol0j/WZhR/4Cv - ef/F38X/4Ozj/+Tt5//k6+j/4Ofm/+Hn6P/k6ur/5Orr/+Lp6f/j6On/4+jq/+bp6f/o6en/6erq/+zt - 7//s7fL/6+rw/+zq8P/r6Oz/6Ono/+by5//W79f/mcSb/2OeZf9OmFD/T6FQ/0mjSP9GokT/SKBI/0qY - T/9LmVH/SZxN/0eiS/9Fokj/QZ9E/0aaR/9NkUz/ea13/8fnxv/f8d7/5Ozn/+rt7v/s7fL/6+3w/+jr - 6//n6+3/6fLw/9Pt1/+WwZn/Xptf/1edV/9Rn1L/TqJO/0+mT/9Qp1D/TqVP/0+hUP9Wm1j/hrGI6Ya8 - h0b///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wB3snw+gq+I50+S - Uv9Jmkj/SaBG/0iiRf9LoUr/TJhM/1KVUf9VlFL/XJRX/4e1hf/J6sn/2/Lf/+bx6//s7O//7Ojs/+/p - 7f/u7uv/5vDk/+P35P/M7ND/mcGg/2GXaf9LmFD/SaNM/0ylTv9Nok//TZ9O/02gTv9LpEz/SKJI/0ai - Rf9MpUv/U6NR/1OXT/9ellj/kruM/8zkyv/m8Oj/5+3q/+Xq6f/i5+f/4ubn/+Pp6v/k6uv/4ejp/+Dn - 6P/g5+j/4+fn/+bp6P/p6er/6+rs/+rs7//n6Oz/6+nw/+vo7v/o6On/5/Dp/9jt2P+bw5z/X5hg/06Y - UP9OolD/SqVL/0mnR/9Ipkb/SJtK/0aTSf9ImUr/SqBL/0qhSv9KnUr/T5lN/12WWv+CroD/yODH/9zp - 3f/h5OT/5+ju/+jp8f/r7fP/6u7v/+Lq5//l9Or/0O7T/4y4j/9alVz/UJZR/0+eT/9Mokr/TKZN/02m - Tv9No07/T6FP/1KbU/+PuZDIb7FwM////wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AK/TuE+LtpPcUZVV/0ieSf9EokT/RaFF/0qgSf9Nm03/UZhP/1SYUP9XkVP/fKp8/8Xm - x//g9+P/5vDo/+zt7P/r6Of/6+nm/+3t5v/l7eD/5fbi/9n42/+q16//ZZ9t/0qUUP9KoUv/S6RK/0yj - S/9Mo0r/SqNI/0imR/9GpkX/R6ZI/0ikSP9NnUz/VpRU/3Ggb/+x0LD/1+vX/+Ps5f/m6uj/5ejo/+Xm - 6P/j5uj/5Ojq/+Tp6v/g5uf/3ufn/9/m5v/h5eX/5Obn/+fm6v/o5uz/6Ont/+bp6//m5+z/6eju/+Xn - 6v/l7Oj/3e7f/7bXuf92p3n/VJdX/0udTv9HoUn/SKZH/0upSv9JoUn/UJ9R/06cTv9Km0n/TZ1M/06X - TP9SklD/daFz/6jFpv/a5tn/3+Lh/9/d5P/l4+v/4uPp/+Xq6v/m7Ov/3Ofi/9/z5P/B4cT/e6p9/1SQ - Vf9Nlk3/SptJ/0igR/9KpEn/S6NK/0qfSv9Nnk3/U5pU/5fBl9CizqM2////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8AaaluRHmugd9MllH/SqJM/0SjRv9DoEX/RZ5H/0ma - S/9Pmk7/UJpN/1SWUP97p33/wd7I/9vy4f/j8Ob/6O3o/+jo5P/t7Of/7+3m/+Xq3f/g8dz/2PfZ/7rn - v/9+soT/XZpj/1KeUv9Ookr/TaJI/0yhSP9Jo0f/R6VG/0SlRP9Fo0X/SKBK/0qTS/9ak1z/gauC/73X - v//b6t7/4ejk/+Pm5f/l5eb/5eXn/+Xn6v/l6ev/5Onq/+Hm5//e5eb/3+Xm/+Pl5//l5On/5uTq/+bm - 6v/m6er/5uvs/+Pn6v/m6Oz/5Obp/+fs6//m8ur/xODJ/4OyiP9WmFz/TptR/0ieS/9Fnkb/SaNK/0ug - Sv9TolL/TZxN/0qaSv9Qmk//UI9Q/1qNWf+RspD/w9bC/+Pp4v/m5Of/4d7k/+Li5f/h5uP/4+vj/+Hp - 5P/Z6d//2fLe/7nbvf94qXr/WZZa/06ZTv9GmkT/RZ5D/0ehRf9KoUn/S5xK/06ZT/9bnFz/oc6itFql - Wxn///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEaMRgOnzKtyeat+8kyT - UP9Inkr/Q6JG/z+eQ/9Cm0b/R5lK/0qZTP9Lmkr/SZpD/2ObY/+oyLH/0+nc/+Ly6P/o7+j/5eXg/+zp - 5f/v7ef/6eri/+Pt3//f89//1vbZ/6XPqf9xoXb/V5VX/1WhT/9Rokr/Tp9K/0ugSP9Ko0n/SKJJ/0qg - TP9Nm1L/TI9Q/3enfP+ry6//0OTV/97p4//f5+X/4uPl/+Ti5v/l4uj/5+bq/+fq7P/m6uz/4ubo/+Pl - 6P/m5ur/5+bq/+bl6f/l5uj/5Ofo/+Xq6P/l7ev/4+rr/+Po6//k5ur/5Onq/+jz7v/V69v/rdGy/3ms - gP9Yl13/UZxV/1KiVf9Nn07/UJxP/1GaT/9Nmk3/S5pO/02XT/9YlVv/b6Bx/67Lrv/a5tv/5ejm/+bl - 6P/g4uL/4OTh/9/k4P/g5OH/4ejk/97v4v/S8db/pM2n/2ObZf9SlVL/TZtM/0eeRf9HoUX/SKJG/0uh - Sf9Pnk//UphT/2WdZvWRw5N9////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8Aa6JrFbnWvZtonmr/S5JM/0meSf9CnkT/P5tD/0KZR/9FmEv/R5hM/0aZSP9Amjr/UZxO/5O4 - nf/S5t7/3vHm/+n06//k6OP/6Obl/+3o5//r5+n/5efk/+Lv4//g+OP/v+HD/5G4k/9smWv/ZZ9g/1qe - U/9Vm1H/UZlR/1GdUv9MllD/TJZR/16bY/9xpnb/psur/83m0v/Z69//4Orm/+Dp5//j5eb/5+Po/+fj - 6P/n5er/6Ons/+nq7f/p6ez/6unt/+jo6//l5+j/5Ofn/+Po5v/j6uf/4+zn/+Xu6v/l7u7/4+vr/+Pn - 6//h5+r/5u3t/9/u5f/N6NT/nMaj/22kdP9UlVn/WZ9d/1WbV/9am1r/WJRW/0yTTv9LnFH/UJ5W/3ay - fP+p0qz/0ebT/+Tp5v/j4+T/5OLl/+Tj5f/l5Ob/4eLj/97i4P/h6OP/3e/g/7Tct/+Et4f/WZZb/1CY - UP9LnEn/R59F/0iiRv9Jokf/RppE/0+YTv9Xl1n/eqt87H23f0JVl1YB////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wBfmV4TxN/GnW+ib/1Qk07/UKBO/0mfSP9Em0b/SJpM/0iZ - T/9ImFD/RppJ/0WeQ/9GoD//aqFv/7HRvf/S6t3/3u/j/+Tr5f/p6Oj/7ebr/+nj6v/k4Of/5enp/+n2 - 8P/f9uT/yOPL/6DAoP9/qXz/ZZth/1+ZX/9clWD/UI1U/1uTYf9on27/jbqT/7PXuP/Q6tX/5PHn/+Ls - 5v/h6ef/3ubk/97l5P/n5en/5+Po/+fl6f/p6Ov/6Ojq/+np6//o6+v/5urq/+To6P/i6Ob/4enl/+Lr - 5v/k7Oj/5u3q/+fw7v/l7u3/4+vr/+To6//j6Oj/3+nl/9vt5P/R7dn/s9q8/4GyiP9poW7/X5lj/1mS - W/9ilmH/W5hd/2SvbP99wIX/qNiv/9fu3P/l7un/6Obq/+Pg5P/l4Ob/6uXr/+nm6v/h4uP/3uLg/9vn - 3f/T59X/lsCY/2agaP9Sl1P/TZtO/0icSP9HoEb/SKNH/0qhSf9Nn0v/U5lT/1KPVP+WvJquYqNiIv// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AGCeYA6u1LGkap9r/0qO - Rv9OnEj/T6FK/0qcSf9OmlD/TZlT/0uYU/9Imk7/SJ1K/0WeQf9ZnVv/mL+i/87n2P/X69z/3urh/+Xq - 6P/q5+3/6+bx/+nh8P/q6PL/7PH1/+bz7P/h9OT/0urT/7zZu/+lyKX/mcOc/5W9mv+KtJH/ncOk/6zP - sv/H48v/5vbp/+jy6v/s7uz/6evq/+bo6P/j6ej/5O7r/+Tq6f/l5eb/5+fo/+bn6P/k5+f/5Ojn/+br - 6v/l7On/4+ro/+Hp5f/h6eX/4+rn/+Xr6f/o6+z/6e3u/+bu7v/m7+z/5uzt/+jr7v/n6+7/6O7v/+j4 - 8P/Y9OH/vOLF/6XTq/+Wx5v/g7aG/5XAlv+ex5//qdev/8HiyP/X6N7/6u7v/+rr7f/p5ev/6OHq/+rj - 7P/q4+z/5OLm/97j4P/e6eH/z+XT/67Lsf9vn3L/UpRT/0+aUP9LnEv/SZ5J/0mjSf9KpUj/TaJK/1Wj - U/9bnlv/bqBw7ZTAl3X///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8AerJ9Hcfpz51ro23/U5dQ/0+bSP9SoUn/UJ1K/0+YTv9Ol1L/TJhQ/0qaTf9Jm0n/SptK/02c - Tv9yqHf/sNO3/9Dr1v/e8uP/5O3o/+bm7f/n4vD/6+T3/+rj9f/p6vT/4ujr/+Pw6f/k8+f/3e3c/9vw - 3f/U8Nn/zenU/8/p1v/Y797/4fHm/+Pu5v/u7ez/7+3s//Hr7v/t6uz/6Ons/+Pp6P/g6uf/4ejm/+Xn - 6f/m6en/5Ofn/+Dl5P/f5eT/4uro/+Xt6v/j6+n/4enm/+Lo5v/m6en/6evs/+zq7//u6fD/6+7w/+fw - 7P/n7uz/6uvv/+rq8P/r7PD/6O/v/+Lx6v/e9+f/4//r/9n84P/M89H/1fHY/97w4v/g7eb/5+vs/+Xq - 6f/n6Ov/6Obr/+rk7P/t5e//7ufw/+nm7P/j5ub/2+nf/9rv3v+117n/hLCJ/2KZZv9SmFT/UJ1Q/0yf - TP9Kokv/SqVL/0qjSv9MoEv/T5pP/1SWVv97rX7berZ7Of///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8Ak8eap2elbPxTmlH/Up5K/1OhSP9Xok//S5dI/0+c - T/9MnU3/SptK/0iZSP9ImUj/Q5dC/1WaWP+Kto//weHF/9754f/g8OX/5O3r/+Dg6//k4fH/5uHz/+Pj - 8f/g5ez/4urp/+Tu6P/l7+f/4+3n/+Pz6P/e7uT/6PXu/+v17//s7+//5uTl/+jf5f/y6O//8erx/+7r - 8f/r7fH/5+rt/+bp7P/m5ez/6unv/+fr6//i6ef/3ubl/93m5f/g6Of/5Ozr/+Xt6//k6un/5unq/+np - 6//m4+j/5+Lp/+/m8P/u6u//5+7p/+Xt6P/o6un/6efs/+vn7//s6fH/5uvu/+Xz7P/k+ev/4fTm/+r1 - 7v/q7+7/7+/0/+3v8//r7O//6ert/+ro7f/q5e3/6+Xt/+zn7v/s6+7/6e7s/+Tv6P/S6db/vN7B/4i3 - jf9clmH/T5BT/0qYTf9NnU3/SZ5K/0qhSv9Kokr/SqFK/0ufTP9NmU7/VZpW/5PFlqhWnlgc////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AHu3ghq638WPVZpc/0uV - TP9Nmkn/TZxH/1CgTP9Km0r/Tp9O/0yeTP9Jm0n/R5lH/0eZR/9HmUf/S5pM/16YX/+Is4j/tNm1/9Hs - 1P/e8eT/3efo/9zh6P/h5e//5Ofy/+Hn7P/f5uf/4unm/+fu7P/p7e7/5Orq/+Lq6P/o7ez/7/Lx//Ds - 8P/t5+z/8ejx//Dn8//p4u7/6ebv/+rp8P/q6O//7enx//Hp9f/z6/f/6ezu/+Lq6f/f5+b/3ufm/+Do - 5//k6+r/5Orp/+Xp6f/o6ev/4uPl/+Ph5v/q5u3/7efv/+3n7//m6+j/4+vi/+bp5f/p5en/7OXu/+3m - 8P/r6/H/6u7u/+rr7f/t6+//7env/+rp7v/r6O//7+zz/+/r8v/r6e//6ufu/+rn7v/p6O3/5unq/+Tr - 5//f8OL/3fXg/7vgv/+Nv5L/ZqJq/0qTTv9Hlkv/R51K/0aaR/9FmUX/R5xH/0idSP9Jnkn/S51M/1Wc - Vv9yrHTzncyfbUmWSgP///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AJbEnYJjo2zvR5ZL/0mZSf9Km0n/SZpJ/0ucS/9LnUz/S5xL/0qbSv9Imkj/SJpI/0mb - Sf9InEj/TpVN/2aZY/+FsYP/tNq1/83t0v/V7t7/1+ni/9bm4v/d6ej/3+ro/97o5f/g6OX/5evr/+fq - 7//m5vD/5ejs/+fq6//q6+3/7Onu/+zl7//s6PH/6ujw/+Xl6v/n6Oz/5+fr/+bl6v/m4er/5uDq/+zl - 8P/o6u3/4urq/+Dn6P/f5+f/4uro/+Ps5//i6ub/5e3p/+bs6f/m6un/5+vq/+bo6f/n6Or/6ert/+Xq - 5//l7eP/5+zk/+no5//q5uv/6ebq/+nm7P/s6+7/7Ovu/+np6//n6Or/5ubp/+zq7//u6/L/6ejt/+jo - 7P/m6ev/6e/u/+jv7f/g8eX/3vXj/8jqzP+t17H/iLmM/2OhZv9TmVb/RpZJ/0SZR/9Gn0j/RJxF/0OX - Q/9FmkX/R5tH/0qbSv9MmE7/Y51l9avJr6t5tHsh////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8Acq90aWGjZO9Lnkv/TJ1L/0qbSv9Km0r/TJxM/0yd - TP9LnEv/S5tL/0ucS/9LnEv/TJ1M/0ydTP9OnU7/WZpW/1yXWf91qnP/mcea/7Pcuf/P8Nj/0/Da/9ft - 3v/a7d//4PDk/9/r4//g5uf/4+Xr/+Xm7//q7fL/6/Dx//Hu9v/p6e7/5ejr/+bv7P/l8er/5u/q/+by - 6//o7+z/5uvp/+fp6v/k5uf/5Orn/+Lq5v/g6+f/4Ono/9vo4v/f7eX/2und/9zr3//f7uP/4O/i/+Pw - 5f/d6t//4evk/+Pt5//n8O3/4urm/+Xx5P/p8ub/5+zn/+ns6//l6ub/5u3n/+fw6f/n8+r/6PDr/+Xv - 6P/s8u//7fPy/+308//m8ev/5PHo/+bw6//h8ub/5Prp/87w0/+23rv/lMOY/3CpdP9fnmL/TZVP/0yZ - Tf9Imkn/RJpF/0SdRP9IoUf/RpxH/0abSf9InEv/S5lO/1OUV/+FsorYrNCwTFCWUgb///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEmTSguox6uLXp5g+02d - Tv9KnEr/S5xL/0ucS/9MnUz/TJ5M/0udS/9Mnkz/TZ5N/06fTv9OoE7/Tp9O/0ueS/9RnE7/VJZQ/1mY - V/9qpGr/fbJ//57Nov+o06v/vOK//8Xkxv/N5Mz/zuDR/8/d1P/X497/z+XV/9fw2f/Z6d7/2ufh/9Dk - 1v/K5tD/0e7Y/8rqzv/W8dn/0OvT/9fs2v/W6dn/1unY/9bo2f/K5s3/y+zQ/8rq0f/W6Nz/0OTX/9Lq - 1v/R6tT/yufM/9Dr0f/G5cj/yufN/8Pexf/O5dH/2e3e/9Pp1//X79n/0O7O/9rq2v/S39X/1unZ/9Xt - 2P/P6tH/1fDX/9Lv1f/c8t//1erY/9fq2//V6dr/0OfV/87p0/++5MX/xufN/7jdv/+w2Lb/k8SZ/3Wu - ef9koGf/UpZV/1CXU/9NmU7/TJxL/0ufSv9KoEn/SaFI/0qiSP9Inkj/Rp1K/0edTP9Qmlb/aaJu/aXN - qI6WxZkN////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8AerB8IKvIrbdbll7/TJlM/0mcSP9KnEv/S51L/0yeTP9MnUz/SpxK/02eTf9On07/TZ5N/06g - Tv9PoVD/TZ9O/0ydTP9SnE//UpxQ/1KZUP9WmVX/X5tf/2qiav+DsoH/lbyT/5e6lP+kxaX/msOc/5jD - mf+PwY7/lMeS/5zEn/+SuZn/lcCc/4zCk/+Qw5X/i7+O/5XFl/+Rv5P/lcGX/5rAnP+TvJX/lr+a/4q+ - j/+NxpL/icGP/53Bov+fvqL/k7uV/5K9lP+Iuor/ksGT/429j/+OupH/lLuX/5W7mf+cwJ//jbuM/4/H - jP+CwX7/kr2S/5W5mP+Wwpr/ncqi/5DClP+byp//lsab/5vFn/+UvJj/jbaS/5G5l/+Es4r/ibyP/3m6 - gP9/u4f/frSE/2umcf9goWb/UJhV/1OaVf9RnFP/TptQ/0uaS/9Nnkv/UKJN/06jTf9Kn0j/Sp5I/0uh - S/9In0v/SptP/1yeYf+fy6LG1ezYQf///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wBipWYhp8WprlqWXv9PmVH/SZtJ/0qbSv9MnUz/TJ1M/0yc - TP9KnEr/TaBO/0udTP9LnUv/TJ1M/06gTv9PoE//TZ9N/06fTv9OoE3/TZxL/06aTf9PlE3/UpJP/1mU - Vf9dlFn/VJNT/12eXv9ZnVn/XJpb/2ObYv9jmmL/Y5lk/1STWf9Wm1z/S5lQ/1GbVP9Xnln/WJxa/2Gf - ZP9jn2X/aqJs/16bYv9enGP/WZ9f/1SiXP9Rolj/Wptf/2ebaf9ZlVn/V5dY/1OXVf9WmFf/Wphc/1mV - XP9el2D/VpZY/1eZVv9Rl03/V5xU/1udWv9cmF7/XpZi/1mcXf9ZoF//T5hT/1ecW/9anV7/Wple/1+Z - Y/9YlFz/WZVe/1CUVv9Wnlz/T6BW/0ibTf9NmFL/SZNO/06ZU/9MnFD/Tp5Q/0+fUP9NnEz/TJtK/0+f - TP9Qok7/TqJN/02gS/9Onk3/T59O/1OeVP9bnGD/hLmJ67bduWpsq3AU////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AGisbBeUvZa+VJZZ/0mY - Tf9Jm0v/S5xL/0udTP9OoE7/TqBO/0mbSf9Mnkz/TJ1M/0qcS/9LnEv/TZ5N/0+gT/9On07/TJ5M/0me - Sf9Em0T/R5pH/0ubSv9SnlD/UZ9Q/0qZS/9Fm0j/S51N/1CaUP9QllD/VpdV/1KTUf9Zmlj/UJ1S/0Wd - Sf9BnET/Q55G/0ygTv9KmUz/U5tU/1WeVv9QmFL/TZhP/0uaT/9LnlH/R6BP/0uhUv9PoFT/V59Y/0+f - Tv9Ook3/TqNP/0udTP9Sn1X/T5tS/0uYTf9KnEv/TJlM/0+YUP9QllL/UphX/06WVf9HlU3/QpxI/z6Z - Rf9Al0T/RJhI/0uZTv9JlEz/TZVR/0uXT/9NmVH/TJ5Q/0aeS/9Cnkf/RaBH/0ueTf9JnEz/SZxM/0id - Sv9Kn0z/TqBO/06fTf9Nn0v/S59K/0ugSv9NoU3/Tp9O/06cTv9PmU//Wp1a/4a1h9S42Lpxtda3Df// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8Af7qCKrDQs7BQl1T/RZ1K/0ecSf9Imkj/SZtJ/0+hT/9On07/SZpJ/0udS/9Nn03/S5xL/0qc - Sv9LnEv/TZ5N/06fTv9NnU3/Sp9K/0eeSP9EmUX/SZtI/02gTP9Jokv/SKFK/0efSf9Hn0r/Sp1M/06e - Tv9Ml0v/TJdL/1GbUP9Nnkz/Q6NF/z6hP/9Do0T/SaBI/0iaR/9MnE3/T6BR/0yeT/9LoE7/SaJO/0mg - Tv9HoE3/SJ5N/0mbTf9Fm0f/QqFC/0amRv9Gn0j/TJ9Q/02fU/9JnUz/Sp1L/0ueTf9Pn1D/UJ5U/0ya - Uv9Hk07/RpRO/0idT/9DpEj/P6NE/0KjRv9GoUn/SJxK/0eZSv9Imkz/SJxK/0adSP9FoEn/Q6BG/0Wf - R/9LoUv/S59K/0qgSv9Fn0b/Q51F/0mgSv9OpE7/S6FL/0mgSv9Kn0r/SZxI/1CeUP9Omk7/UJhR/12f - Xf98tnvgos2jd9Du0yD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wBToFYLhbeJw1WaWf9Dn0f/Qp5F/0WZRv9HmUf/S5xL/02f - Tf9Mnkz/TqBQ/02eTf9MnUz/S51M/0qcSv9LnUv/TZ5N/0qeS/9GoEj/S6NM/0ydTP9MnEz/Sp5K/0mi - S/9Io0r/RqFI/0SgRv9Jo0v/SZ9J/0icSP9JnUn/Sp5J/0ecRv9DoEP/RKJE/0qhR/9Jnkf/SZpH/0uc - S/9NoE3/TKFN/0qiTP9GoEn/Q5xG/0WbSf9LnE//TplQ/0aWR/9En0f/Q5lJ/0aXTv9KmlD/SZxO/0ec - Sf9Inkn/R51K/0ieTf9JnE//RJdL/0WYS/9HnEz/Rp5K/z+hQv8+oUH/Q6BF/0ifSP9InEj/SJxK/0mf - TP9Gnkj/RKBF/0ahR/9GoEX/SqBI/1OhTv9XnVD/T55M/0WhR/9GoUj/S6RL/0ujS/9FnEX/R51I/0ud - Tf9PnVD/VZ1V/1WYVf9gnmH/kMKPyKrXqVr///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AIq+jS+dwaG1S5NO/0Kc - Rf8/oEP/R51H/0eZR/9Km0r/TqBO/06fTv9QolH/T6BP/06hT/9Ln0v/TJ1M/0qbS/9JnUv/Q6NG/zup - Pv9Dp0T/TZ9N/0ucS/9Jnkn/SaJK/0ikSv9GpEj/RqRH/0mmS/9Io0n/R6JI/0mjSf9Jokj/R55G/0af - R/9Jn0b/TpxJ/06bSf9LmUn/S5pK/0qeS/9IoUv/RqFK/0WfSP9GnUn/TJ5O/1CdUv9OmlD/TJdP/06c - VP9Om1b/TZxS/0yfTf9GnEj/RJtE/0efSP9IoUr/Rp5J/0WcSv9Em0j/RJxI/0WfRv9EoEL/QZ4//0Sc - RP9Jnkr/SppK/0mYSf9Km0v/S59M/0mgS/9JpEr/SaNJ/0ugSP9UoU7/WaJS/1agUv9LoUv/RKJH/0Wg - Rv9Jo0v/TKRO/0qeTf9ImUv/T5tS/1SaV/9bm17/eq1725nFmpOu1q1Aut+5Ev///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8ATJ1PEHqufslTmVb9Rp1J/0OhRf9Hn0f/R5hG/0iZSP9PoE//TJ1M/1ChUP9htWH/cMBx/1mm - Wf9Tmlb/TZdS/0eeTf9Cpkj/O6U//0KkRf9MoEz/TJ5M/0qfSf9JoUn/SaRK/0elSf9Fo0j/RKJG/0Sh - Rv9Ho0j/R6JJ/0afR/9Fnkf/RZ1I/0maSP9PmEv/T5dL/0uYSf9Jmkn/SJ5K/0ahSv9GoUr/SaNM/0qg - Sv9Ln0v/TZ9O/0ycT/9OnVL/Tp9U/0+iUv9PpFD/TqRL/0egRP9EnUH/Rp9G/0mhSv9In0r/Rp1J/0Wd - R/9GoEb/SqRH/0ikQf9Oqkb/UqRN/1SeUv9Pl07/S5ZL/0ycS/9MoEz/R55I/0WeRf9Gm0T/SpxG/02e - Sv9LoUr/QKVG/zenQv88o0X/R6BK/0qgTv9MoFH/T55U/02XUv9Ul1j/bqVy9Yu5jc+QvZJ9f7V/LP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wCDvYdHlcKZ10+aU/9JoEv/SaFJ/0ueSv9Jmkj/RJZE/0qd - Sv9JnEn/UaFR/4fNiP+j4qX4p8+r2m6fdP9bl2L/T5pW/0+gVf9NpFL/TKJR/02eT/9On07/S59L/0uf - S/9Lok3/SaRM/0ihS/9JoUv/R51J/0edSf9GnUj/RptH/0acR/9Gm0n/SptM/06YTf9Ol0z/SpdK/0ea - SP9Hnkn/RqBK/0WfSP9HoEf/SaJF/0uiSP9Nokv/UKJR/06hUf9MoE//S6BM/0ujSP9MpUf/SaFF/0if - Rv9LoEz/Sp9M/0qdTf9Mn07/Sp1K/0qeRv9Emj//RZ09/02nQv9Tokz/VZxU/06WTv9Ll0z/TJxN/0yg - TP9Hn0f/RpxF/0qdSP9Jn0n/QqFF/z2lRP85pkT/PaNI/0WfTv9MoVH/Tp5U/02bVP9Xnl7/ZKJs/3Ko - eP+Uv5i7X5tgQf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AVJ5ZCLLbt2R0sXn/TJlR/0ug - Tf9LoEz/T5xN/1CaTv9Hl0f/RZhG/0ubTP9eoF7+i76MyFenVxaXxJtMo8ephqPIqcF6r4HhYaBn+1ab - Wv9Wm1r/VJVX/1KdVP9NnU//Tp1N/1CeUP9To1X/T55S/1GfVP9Rn1P/TZlP/0yaT/9NmU//TJpO/06b - Uv9NmVH/T5lR/06cTv9Im0n/RptI/0edSv9Knkv/SJ9G/0uhRf9LoET/TJ9J/06gTf9Mnk7/TJ5P/0uf - Tf9Nn0v/S6FG/0yiSP9NoEz/TqBO/1KfVP9OmlL/UZpU/1SdVv9UnlL/Up1O/06dR/9RoEr/UZ9K/1Ca - Tf9RmFH/TphP/0mZS/9InUr/Sp5M/0ufTP9NnE7/SpxL/0aeSv9Dn0n/Rp9L/0aZTf9ElUz/UZdZ/1Wa - W/9Zn1//X6Fn/3SufP+gzKjZvN/DhMjmzieAsoED////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8Ar9y0b4K7iOdFlkv/Q51H/0mgSv9OmUv/VJhQ/06dTf9EmEX/T5xQ/1uVXf+zyrWrgLaBJ/// - /wCFuYsQwOfHI3u9glify6W0i7iQ2nGjdfl1nHr4XZRg/1idWflLlUv/VJlW/1KVVP9OkVD/VZZY/1WX - Wf9cm17/VpdZ/1iYXP9QlFT/UJZV/02UUv9KlE3/UJ5S/0qaTf9PmVT/S5VQ/1CZUf9PmEz/TphL/1CZ - T/9Pmk7/UpxU/0uWTf9SnVX/VZ5X/1abVv9Xn1b/UJ9Q/1WfWf9RmFf/WZpg/1SSWf9Xllz/WpZc/1WT - VP9cmFr/VJRR/1mZWP9VlVX/VZVY/1WZW/9RoFT/TqBS/0qYTf9VmVj/WJla/1iZWv9RlFP/TpVR/1OX - Vv9Nk1H/V5Vc+leSXf9tnnP8irKQ04i6kNGayaK0vOHFeLzfw12bxZ8n////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AEeZTwSZ0KBscrV5/UOYSf9Eokj/R6BJ/0iYRv9Qlkz/SppI/0Ke - Q/9Jm0z/YZxk/67QsrbH4MsT////AP///wD///8A////AKnWr0Cby6BZi7qPYLDItJO6yr+if7WAroq/ - jMRwqHL+grCF3HiqevGJtYzkfq2C6H6ugvF9r4Hjc6p4/3qzf+NsrXH/fbWC3IKtic51qnzefLOG6XSu - fv2EtIrVdqx43oCxgORkoGP/dq548Wyob/92sXv5hruM2323ge+ZxprWjLqK35G+kOJ8uIPZdLB+8n6x - ith2qID/irSV3ICsiPOOtZPkg66G6YeyifCDr4Xkd6l6/4KziuRzqn7/hraS24W6i898tYHfgq+G63+r - g/ySuZTVfq1/4Im1ieRupG//ga+C45a+mMGMtpC+oMWlk7bSu2aQvZZXUplZJoO7iw+Zx6EU////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AVZ1aA8DixnJ5t4LvRplN/0ej - TP9Lo03/SppI/02ZS/9KmUj/QZlD/0SVR/9Xl1v/p8+rqYy9jx7///8A////AP///wD///8AYJ5kBP// - /wBUklgC////AIC0gyJGlkYEbrJvMpjKmkihy6Rah7uKUL3dwVyDuIZWv+DDWn+1g12v3bRfjseTZ6TV - p1qx2rVSZKhmPWuscC2Ww59dy+vTW43CkFdYpFYqkcORWLDUs3u327yDoc+nfcjp0WeBvIZedrd5OrHY - sUx0s3I9wdy+S3a2eEic0KlGhLuPVJbFoUylzK9bkb6XUcHdxV6IuYhXyeTNXIi6iF2948VgmMmfaKzQ - tVq32MBTX6ljPHCwczGexqJf0enVW5DAkldaoFwpmcibWrrau2vA3cFPfLB/Pz+MRwdtpnQNcKZ2DP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8AlMWYcXizf/NIlkr/TJ1M/02cSv9Mm0r/S5tK/0ybSv9JnEn/R5ZK/1KTVv+iyKexaahsG/// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AU5NUA////wD///8A////AP// - /wBjnmYF////AF2cYQj///8AVpxbBf///wD///8A////AP///wBjoGgJ////AP///wD///8AXqFeDVOb - VAJXn1kFZaZqCv///wD///8A////AP///wD///8A////AFmaYQP///8AWpVhA////wD///8A////AP// - /wBimmEE////AGKdZQj///8AX59nBv///wD///8A////AP///wBxpXQJ////AP///wD///8AYp9lCf// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AF6bXgvN69J0da52+1SbUf9QnU//TJ5L/0qeSf9KnUn/SpxJ/0qc - S/9PmFP/YJtl+5nBnqtIk0sQ////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AJLIk3d0rXTuTJJL/0+e - T/9Mn0r/SaBJ/0mfSf9JnUn/SJ1J/0uWT/9Zk2D/sM63p3mwfh////8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wBpomoPwuXEemqja/9Sl1L/T55P/0ugS/9Iokn/SKFJ/0ifSf9HnUn/S5hQ/2yfcvWszLKJ////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wCUwZZ+cqRz7ViaWP9UpFT/SqFJ/0iiSf9Hokj/SKBJ/0md - Sv9LnU//Zp5r7XSveFj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AZqBnD7HVs4BjmmT/U5ZU/1Ki - Uv9Mo0v/SKRJ/0mlSv9HoEn/SZtL/02bUP95sH7dnsqkWv///wD///8A////AP///wD///8A////AP// - /wBvrnQHocqlNqjMqy2iyKI8ttq4QsXixSTL684NxejJDMjpzRD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8AqMyqhW+gcPFWl1b/Tp1O/0afR/9Ho0f/SKJJ/06lUP9RoFT/VJtX/2uqb/qHvotNTptRAf// - /wD///8A////AP///wD///8AQY9GBLHStUCEsomyY6Rp5Gepa9OAtIPYh7GGx6DFoJ+z07GRwuLEi8zs - 0GPK58wbxefIBf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AFqZWg+exZ+UYJVh/1WYVf9MnE3/RJ1G/0ejSf9GoEf/TKNO/1Wi - WP9VmFj/fLGB4oC8hGj///8A////AP///wD///8A////AP///wBpq2wapdSpp1KcV/9Gkkr/SpRM/1WV - VP9cllr/Yphg/2idZvlupm//kMGT7KnTsKbC5shHy+zRBf///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AcapxGq3OrsdlmWX/WJpY/06d - Tv9IoUn/SKRJ/0ihSP9MoE7/UZtU/1mWW/90qXf6wurGdWymbw3///8A////AP///wD///8A////AF+l - YB2z27WnWZ5b/0qXTP9JnUr/S5tK/0yYS/9NlEr/T5NO/0yUTf9YnFv/a6du8469kM+42rlbsdi3Ef// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wCs1qw8stizymObY/9Um1T/T59O/0ujS/9Io0j/R6FH/06hT/9QmlL/U5FV/3Gmc/+7476KaaJrDf// - /wD///8A////AP///wD///8AX6NcEp3JnbRYmlj/RZZE/0mhR/9HoUf/R5xH/0mdSf9Mnkz/S6BN/0ab - Sf9Kmk3/WZxa/4q5h82ZxJd9v9/ALP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AGSlYiqYypjQXZlb/1WcU/9Onkz/TaRM/0mjSP9Fn0T/TKBM/1Kb - Uv9Zllv/f62C8KnQqmlQjVIB////AP///wD///8A////AP///wCCtoAmt9OzqVmZVv9Jm0f/Rp5E/0Ge - Qf9CoEP/RqJI/0egSv9EoEn/QqBH/0SdSP9QnU//XZ5b/W2lZ/+gyZ2ZlsOUKbfZtgr///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AqNWoK53Nnc9ZmVf/UJlO/0ue - Sv9Kokj/SaNH/0mjSP9LoEr/TpxP/1SZV/9/roPacKlyPf///wD///8A////AP///wD///8A////AFif - WASQu4y6Ypxg/U6dTf9GoEb/Q6JF/0OiR/9HoUv/RaBM/0KeSf9BoUf/QZ9E/0efRv9Mmkn/VJpN/2yo - Z+6SxJO5tNy4Q////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wB/u34rl8SXrFWcVP9Tn1H/TJ5K/0mhR/9EnkL/SaRK/0qkTv9HnU3/UZtY/5C/ldm12bZK////AP// - /wD///8A////AP///wD///8Ah7aGKqvJp69Wk1X/UaBT/0afSv9En0n/RaBL/0igTf9IoE//RJ5M/0Og - Sv9EoUf/RZ5E/0ufRv9VoU3/WKBP/2alYf+QxZSnd7F0L5rLnAP///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wB9rnypXJ5b91GeTv9LnUj/SqFJ/0SdRv9Enkj/RqBM/0mh - UP9SnFj/hbyJ4nC0dTb///8A////AP///wD///8A////AP///wBHkk0NiLSJv1iTW/xNmFH/SJ1O/0ae - TP9HnE3/Sp1Q/0yfUv9Knk//SJ5L/0miTP9Hn0n/Sp9F/1GhSP9OnUX/UZlL/3GtcuyWxZmrx+bMIP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AYaJhI6O1pLFSlFD/TZ5L/0ab - R/9GnEj/RZpI/0WcSv9Gnkz/SZ9P/02YU/+byp/PpterSP///wD///8A////AP///wD///8A////AIe7 - jSqgxKW6UpJY/0eWTv9FmUz/SJxO/0maT/9NmVD/UpxS/1GeUv9Nnk7/Sp5L/0mdSv9NoEv/TaBI/0ue - SP9MnEr/Vp1V/3Gocf+31rlzlcSXHv///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wCIvYkxmLKX61eaVv9Hnkn/R6FK/0ieS/9Hm0n/RZpJ/0adS/9KmlD/TpZU/4S5ie58vIIx////AP// - /wD///8A////AP///wD///8AUZ9ZHo66l7tVmV//SZlS/0OaS/9HnUz/S5lM/0+XT/9VmVP/V51U/1Ke - T/9Nnkr/R5lJ/0ueUf9Jnk7/SJ9M/0idSP9MmEr/YZxe/5i/mM2x0bJU////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8ArtOxGL7ewRqn2Kseudu9BajOqwL///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AKvWqkqbyZjQSZxH/0WeRv9JoUr/S59M/0mdSv9Hm0j/SJxK/06c - Uf9RllX/ncihyoi/jUP///8A////AP///wD///8A////AP///wB9uoUlkbybyE6VV/9Fm03/Qp9H/0ih - Sv9Lmkn/UZdN/1aXUf9Ym1L/VJ5Q/0+gTf9Jmkz/SppS/0ueUv9Inkr/Sp5J/02bSf9WmFP/cKNu/7fT - uISJtYgZ////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8Aeap7LpnAm12RuZOBjbaQxIm4jL2n0Kt8rNivM/// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8Ad7l1OYC5feVRnk//TKBK/0uh - Sv9NoUz/S59L/0mdSf9JnUv/UJxT/12eYf+UwpjolMaYMP///wD///8A////AP///wD///8A////AGyx - dCuVwJ+4TphV/0ahTv9Bo0X/RqZG/0mfRv9NmUn/UZhN/0+bTf9MnEv/S51L/0udTf9KmlD/Tp9T/0me - TP9Jn0r/Sp5J/1CZTf9jnGH/osOjusPbxCf///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AfrSADbTWtjaUvpWRcKRy21eU - Wv9XlVn/WZhd/2ShaPWHwYqlqM+sLKzbsQv///8A////AP///wD///8A////AP///wD///8A////AP// - /wC11rNMkLmM2VWcUv9PpE3/TKFK/06gTP9Nn0v/S55K/0qeS/9OnVH/V5tb/5jEm9htq3BE////AP// - /wD///8A////AP///wD///8Aa69wKoK0idRSmVj/RqJM/0CnRP9GqEb/SqFI/0ydS/9LnEv/SZxK/0qc - Sv9LnEv/SpxL/0qbTf9On1P/TKFP/0mgSf9OoUv/VaFQ/2CeXf99qnr9lsCWN////wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wCRxZNEkb2T0l2cX/9Vm1b/UJxS/1CeUf9Unlb/T5ZR/12hX/eZyJ+xtNq7Rv///wD///8A////AP// - /wD///8A////AP///wD///8A////AHKucj+CroDdVptV/06lTv9Lnkr/Tp1L/06fSv9Mn0r/Sp9K/0eZ - Sf9Vmlj/i7uO4LbXuV7///8A////AP///wD///8A////AP///wCWwppZg66I506VU/9Hn0v/QqBE/0ig - SP9Mnkz/TZ5O/0yeTP9LnUz/S51L/0udS/9Km0v/SpxM/0ueT/9NoFD/SJ9J/02jS/9TpE//VppS/3yr - e+d7sHpv////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AKTNp5Nqomz3UJpR/1GlUv9Ppk7/TKRM/06hT/9ToVT/VZxX/3Gu - c/3J4c9peLR7DP///wD///8A////AP///wD///8A////AP///wD///8AttO2SYavhudamlr/TKBM/0me - R/9Pm0r/UZ1M/0ufSv9LoUv/Rp1I/06cUv9uq3H/udu8bG6pcQr///8A////AP///wD///8AYKphCcfi - ymt6q335U5lW/0qbS/9Km0r/S5pL/0ucS/9Nn07/T6BP/02fTv9Mn03/TJ5M/0udS/9LnUv/S55N/0qf - Tf9JoEr/SaBI/1ChTf9VnFL/Z55m+aPIpJBkn2IP////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wBtr3E0mMWcxk+TUv9Pn1H/S6VK/0io - R/9Ip0b/SaNI/1OlUv9VnVb/ZaJo/JC8k39Wn1cD////AP///wD///8A////AP///wD///8A////AP// - /wB2rHdMf6qA2VaYVv9PoE//R59H/06eS/9Unk//Tp5M/0uiS/9Cn0b/RZ1K/2+wc/99t4Cy////AP// - /wD///8A////AP///wD///8AicCJbXi1eOpMoE3/TJ9M/1CiUf9QoVH/TZ5O/02eTf9PoE//T6BO/06g - Tv9NoE7/Tp9O/02fTf9Lnk3/SJ5L/0+lUf9Hn0f/TaBL/0+bTf9Zl1f/psqnqaHHoyn///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AUI9VBpnM - n2BzqHf/UJNU/1GhUv9FoUX/RqhE/0qsSP9Jp0n/TqJP/1ecWf9mm2nzpsqqg1qdXAX///8A////AP// - /wD///8A////AP///wD///8AVJRWBJfCmUhun3H4UpNT/0+dUP9HoUn/SZ5J/1KdT/9SnlD/S6JM/0Wh - Sf9Bn0f/U6Na/4a8i/9Uolo7////AP///wD///8A////AGOgYg3J18RxZqZk/1CgT/9On07/UqNS/1Kj - Uv9OoE//TZ5N/02eTv9On0//Tp9O/0+gT/9PoE//TJ1M/02eTf9JnEr/TKJO/0igSv9Inkj/TppN/1eY - Vv+Jt4zliLuJGv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wBclGEEtdy9knOmev1QkVX/UqFV/0mjSP9FpkT/PqE+/0alSf9Kok7/UJpU/1qW - Xf+Xw5qBXZ1gDP///wD///8A////AP///wD///8A////AP///wD///8AgbWFVnioetlJj0v/SJlK/0mg - Sv9Hnkj/T5xO/1KdUv9MoE7/RqNL/z2iRP9Cnkr/bqt0/3uxgLGdyqEu////AP///wD///8A////AKC8 - nHZ5pHbqS5hL/0ufS/9QoU//Tp5O/02eTf9Nn03/S5xL/0yeTP9Nn03/TqBP/0yeTf9Km0r/TJ1M/02f - Tf9LoE3/SZ9L/0ScRv9Jmkv/T5hQ/4u+kMhwr3E7////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AICthRfM6NWHc6J6/1iVXf9RmlT/SZxJ/0mk - Sf9Fpkf/RaRH/0ehS/9NmVH/Yppl8oa2iZT///8A////AP///wD///8A////AP///wD///8A////AFGY - VQKNwZBEcKZy/E+XUv9Kmkz/SZ9L/0eeSP9Nm03/UpxT/06eUf9EoUn/P6NI/z+gSP9PnlX/ZKBo/6bK - qaB9soM2pdOnF////wBZmlcRsdKwjW2aav9SmFH/T6BP/1CiUP9Mnk3/S51M/02fTf9Mnkz/S51L/0uc - TP9Nn07/TZ9N/0ucS/9LnUz/TZ5N/06iUP9KoU7/RJxI/0aaSv9Tnlb/iMOM2o7IkjT///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AJzD - oXx+p4PqVI9W/1OZUv9PnU3/TaVN/0imSf9GpUj/RJ5I/02dUf9Uklf/ocWinHqufCH///8A////AP// - /wD///8A////AP///wD///8A////AK7XsUWGt4nQTJdR/0qfTf9Ko07/SJ5L/02cTv9SnFT/Up1V/0ae - TP9Cokr/RKBI/02cT/9UlVb/Z55q74u5kNas1bGZst61X2qraT6t2K3Qb6Nt/1OXUf9Pn0//UqRT/1Gi - Uf9Mn0z/TZ9N/02fTf9On07/TJ1M/02eTv9On07/TJ5N/0ucS/9Nnk3/TqFP/0yhUP9GnUz/SJ1M/1Kd - Vf+DvIfKXKRgLv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8AerB7W3CpcPBNjkv/V51U/1GdT/9Oo0//SKJK/0ilSv9GoUr/S5xP/1ma - XP+dwp7EhbiHHf///wD///8A////AP///wD///8A////AP///wD///8AXaVhMJHBlMJPmVP/SqFP/0ql - T/9LpE7/T6FQ/1OeVf9Rn1f/RqBO/0KgSf9InUr/T5xO/1GZU/9UlVb/YJlj/2ada/+NvpTnmc6d/5LK - lP9lp2X/TppM/0iZSP9PoE//TqBP/0yeTP9MnUz/TJ1M/0ydTP9LnEv/TZ5N/0+gT/9OoE7/TZ5N/0ye - Tf9PoE7/TaFP/0mfTv9Knk7/VZpX/5nCncuey6E4////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AFicWAPD5sZFerZ56k2QTP9QllD/VJ5S/06f - Tf9Gn0f/Q59G/0iiS/9PoFL/WZ1c/5C7ks5Unlgm////AP///wD///8A////AP///wD///8A////AP// - /wBpq2sGk8OVvVufXv9HnUv/RaFJ/0mkTP9SpVT/UZ5Y/0qiVP9DpE3/RKFL/0igS/9Nn0v/UJ1P/1GZ - Uf9Vl1f/V5dc/12cYv9Ym13/V59a/1ShVf9MoUv/S59K/1ChT/9OoE//TZ5N/0yeTP9LnUz/SpxK/0qc - S/9Nnk3/T6BP/0+hUP9On07/TZ1M/02fTv9KoU//RqBL/02hT/9YnFv/hbeJ0VmjXBz///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AIG6 - g0WQv5HIR49G/0uTS/9Sn1H/S51M/0adRv9Enkb/Q51F/0ygT/9WnFj/jLmOzJ3Hnkr///8A////AP// - /wD///8A////AP///wD///8A////AJnGmg/E4MN4YaJi/0iaS/9DoEb/RaBH/1CmU/9Rnln/Sp5V/0ai - T/9Gokz/S6NN/1CkT/9RoU//UZ9Q/1GcUf9QmVP/UpxV/1GdVv9LnE//Sp5M/0afRv9IoUb/TqJN/0+h - T/9On07/TZ5N/0udTP9KnEr/SpxK/0udTP9On0//T6JQ/06gTv9Kn03/RZ9N/0KgTv9DoUr/SJ1J/0+X - Uv+fzKTBl8qcOP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8AS5tMEoi2i9dTmVT+SpdL/0+dT/9KnEv/RZxG/0ihSP9Hn0j/R5pL/1ed - Wf9xqXP9r9SxSWGgYwX///8A////AP///wD///8A////AP///wD///8AY6VnAbLVtEF9sn/hUJtS/0ag - Rf9HokT/SqBL/0yeUf9Km1D/SaFQ/0miT/9NpFD/UaVQ/1GkT/9Qok3/UaFP/1KhU/9PoFP/TJ5R/0qe - Tv9IoEr/RqFI/0OhQ/9Jokn/T6FP/0+gT/9Nnk3/TZ5N/0ydTP9LnUz/S51M/06eTf9OoU3/S6BL/0af - S/9Dn03/Q59P/0qhUP9QoFL/Vpta/4a9jNRgqGMW////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wCWv5sdrciyrVWaV/9KnUv/T6FQ/0ic - Sv9GnEj/R55J/0ifSf9Emkf/TJdO/3GrdP9ysHWF////AP///wD///8A////AP///wD///8A////AP// - /wD///8AhbmKL5nIoqZTnFX/S6BK/0ulSP9Hn0X/SZ5I/0ucTP9NoE//TaFR/02hUP9PoU3/TqFL/02h - Sf9OoUv/TqFO/02hTv9LoE//SZ9O/0egS/9GoUn/RKFG/0egSP9Nn03/TZ9O/0yeTf9Nnk3/TZ5N/02e - TP9Nnkv/UKFK/0+jSv9KoEr/SJ9M/0meTf9KnU7/S55O/1KfU/9XmFr/p8+vu4O9iTT///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AGqj - bxSmw6qCXZpg/0yfT/9No0//S59N/0mfS/9Jn0v/SqBM/0idSv9KmE3/ZqRp/5XGmPRZnlsO////AP// - /wD///8A////AP///wD///8A////AP///wBmomgGp9GxbXGsdepUnVP/T6RL/0qjRv9Jn0X/S6BI/02g - TP9Nn07/SptN/0ucSv9LnEj/TJ9H/0yhR/9MoUr/S6BM/0mfTf9Ink3/R51N/0eeTP9Inkv/R59J/0qd - Sv9KnEr/SpxL/0udTP9Mnkv/TZ5J/0+gSP9Sokr/UqJM/1CfTv9OnU7/TZ1O/06dTv9Pnk3/T5lN/1uW - Xv+bxKHOdrJ6Hv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AIizjm51pHvhSplO/0ehS/9KoEz/SZ9L/0mfTP9KoEz/TKFO/0ue - Tv9Um1f/k8aW/3+5g33///8A////AP///wD///8A////AP///wD///8A////AP///wCOvZMzmcafnVWX - VP9NnEr/TaJH/0uhRv9MoUb/SZ5C/0qdRv9Lm0z/TZxN/0ucSf9Mnkf/SqFG/0qgSP9KoEr/SJ5N/0me - T/9KnVH/Sp5R/0qeT/9JnUv/SptJ/0iaSf9Im0r/SZtK/0mbSP9Lm0f/T51J/1OgTv9UoU//Up5Q/1Cb - UP9Pm0//UJxN/1CdTf9Snkz/VpFU/6rJr7lxp3Qr////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AV5xdNnelfeVRmFb/R6BM/0ef - TP9Jnkz/Sp9O/0ufTf9Ln07/TZ9Q/1WfWP93snn/qdms62KjZQX///8A////AP///wD///8A////AP// - /wD///8A////AHqtfAa12rs6eq586FaYVf9MmUn/TJ5G/02gRv9Kn0L/TKFF/0ydS/9OnU7/TJ1L/0yf - Sf9KoUf/SqFH/0qhSv9Kn07/S59S/02fVf9MnlX/TJ5S/0ydT/9OnE//S5pO/0icTf9InEv/SZtJ/0ua - R/9PnEr/U59Q/1afU/9UnVP/UpxS/1CcUP9PnU3/UJ1L/0+eSP9eoFn/r82yyIe3hyf///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wCr1a8MmMGewFiZXv9Fm0z/RJ5K/0idTP9Knk7/S55O/0ueTv9Lnk7/S5tP/1mfXf+m1qj/iMCLdP// - /wD///8A////AP///wD///8A////AP///wD///8A////ALzfvxOYwpt6baVt6E+VTv9Sn07/SptF/0qc - Qv9MokH/TaFI/06eT/9Nnk7/TaBL/0yhSP9Mokj/S6JL/0yhUP9PoVb/UKFX/06fV/9NoFT/T55T/1Cc - U/9OnFD/TJ9O/02hTf9KnUn/SptH/0ybSf9QnU//Up9S/1GeUv9PnlL/Tp1P/06dTP9QoEz/U6BN/12m - V/+ix6K8WaRRHf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AIK3iAuo069jXZti/0uaUf9Gnkz/R55N/0qdTv9MnU7/TJ1N/0qc - Tf9JmEv/VZ1X/4a8h/+y37Tj////AP///wD///8A////AP///wD///8A////AP///wD///8A////AGGX - YwWQvpKga6Ft7VydXP9VoFX/Tp1L/0meQv9MoUT/TZ9O/0yeT/9MoE3/TKJL/02kS/9NpEv/TaNQ/06j - U/9NpFP/TaJT/06hUv9PoFD/Tp5N/0yeSv9Po07/UaVP/06hSv9LnUf/S51K/02eTf9Mnk//TJ5Q/0uf - UP9NoVD/Sp5L/02fTP9PnEz/WaVW/7XbtLmUxZAr////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AJzMoil1rHnQUJhV/0md - T/9In03/S55P/0ydT/9NnE7/S5tN/0uYS/9OmU7/YaNi/63brv+LwY1r////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AJ7Goz+UvpakX5hi/1WZWP9QmlH/T55M/06hRf9Ln0j/SpxN/0qe - Tv9Lokv/TKVL/02mTf9Npk//SqVO/0ikTf9KpE3/TaNP/02jTP9Mokr/S6JG/06nSf9Rp0r/TqNH/0ug - SP9Lokn/S6FL/0efS/9Enkr/Q51J/0ihTf9In0v/SJpK/0+aT/9rq2z8nNOfwE+cTAv///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8Ab65zGoy+koFNk1P/TZ1S/0meT/9Nnk//UJ9S/1CeUf9OnE7/TJpL/0yYS/9YnVj/iMCK/7De - s9r///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AttrBBcbjyjmUvZrMZ5xv8U2O - VP9MlU//UaJM/0ugRf9Im0v/SJ1N/0mgS/9IoUv/R6JK/0ikTP9IpEv/SaVM/0ulTf9Mo0v/S6NH/0uk - Rv9LpUX/S6dF/0ulRf9KpEP/SaJE/0mjR/9Io0n/Q59H/0OfSP9EoEn/RqNL/0mhTP9OnlD/T5VQ/2eg - af/F6Myvk8eXKv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8AjsOTSWKiZ91Kmk3/Sp1N/02dUP9QnlH/UJ5R/0+e - T/9Nm03/TZxN/0+aUP9go2P/pteq/4S9hmP///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8AjL6WB7Dbv0KXwaSjZp9y/E+UV/9Qm1H/TpxJ/0ybTP9InU3/SaJN/0mhTf9Gnkr/RZxI/0if - Sf9Lokz/TKJL/0yhSP9LoUb/S6JF/0uiRv9Jo0X/SKJE/0SfP/9EoED/R6BG/0OeRf9Enkf/RaBJ/0Cd - RP9GoUj/TaJN/1aeVP9WlFb/b6Bz/bTXvKlamVsG////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wBrr24sfbiFnUaa - RP9KnEr/S51N/06eT/9Pn0//T55O/06eTf9Mnk3/TJtN/1ScV/+CvIb/pNep0f///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AMnp0CWq17eMjMGa21+eZf9blVz/UZBU/0eU - S/9InUv/UKBS/1CeUf9Sn1L/Up5S/1ShUv9SnlD/Tp1M/06eTP9Nnkn/TJ5I/0maR/9ImEj/R5hG/0ed - Rf9Im0n/RZlJ/0ugT/9KoE3/SZ5K/0ydSf9Mmkj/VZhR/1eSVP9rmWz/osemcVWSVQj///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AFOfUAOFvJBqW6Rd6UqcSP9KnUv/TJ5M/06eTf9Pn03/T59N/06fTP9OoE//TpxP/1if - XP+SyZj/b65zWv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AIa6 - jiSz3rtnu93As5S8l+17pn/8Y51l/1ebWP9QllD/U5NS/1eXVf9bmFj/VpZU/1mZWP9TllL/VppU/1Wa - VP9Mk0z/T5JQ/1GTVP9Zm1z/T5lR/06YUv9QllT/TpVS/1SZVf9QmU//Vp5R/1SeS/9bnFT/WIpV/4Wi - h9R4qHdA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AG+tcDx5tICuSZpE/0ueSf9Kn0n/S59K/02e - Sv9Pn0v/TqBL/02gTP9Mn07/TptS/22sc/+FvYvKms2fH////wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wBkpWIklMaVTbDVs4a32Lm9pM+jzYW4g8yFsoPnd6d1/4Cr - f/SNtI7ZeKd474ezidJ4rHrfg7OG3nKlddl1qHrtgq+I13uqgf+JtpDZe6+D9Iu1k+B6qX7qgbOC7H23 - euR4tnH7j8KIzISvgNCSqJLIqLGrf2CZWwr///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AW6BTB4q9 - kGlgpVvrTp5I/0qfRv9Jnkf/TJ5J/02fSf9Mn0r/Sp9J/0ufS/9LnE3/TplT/2Olaf+z27iRnc2iMv// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wBZkV0BQotFCF+k - YRegzp86Y6ZjMJLCkk+y1LJxzuTPYoa3hVl3sXg1o8ymSmqraTmjzKdJY6JkQ6HMpkR+t4JPmsWcR5vG - n1eKvpJNt9bBW321gVO/48JafLh5WLLZsUmbx5dLXJdYJJevmSqvxrAd////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8AeLF4MoG3gqBPm0b/TZ9H/0uhR/9MoEj/S55I/0udSP9KnUf/SZ9J/0ac - Sf9Imkz/VZxZ/3eue+WeyaGYhbqLErfeuwP///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AF6XXAZqn2kI////AP///wD///8A////AP// - /wD///8AXJlgAv///wBWmloD////AP///wD///8A////AF2gXAL///8AZKlcBf///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wBlo14IlsOaS2alYO1SnEr/TaFI/0yh - SP9Lnkj/S51I/0qdSP9Inkj/R55J/0edSv9PnlL/UpdW/3anevGwzLOdstS0QP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wCPvo4ij8CPlFabTf9Mm0f/SqBI/0ueSP9Lnkn/S55K/0qfSv9HoEr/RZ9I/0mdTf9OmFD/Wpdb/3yq - ffChx6XCutvHPL3YwAr///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AH6xdwat1LExeK1v8VmcUv9KnEn/Sp1J/0yeS/9Mn0z/S6BM/0qi - S/9Iokr/RZ5H/0ueSP9SnUj/WZhR/2mfaf+cxqWyo8yoTv///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ALPZthCt0q2KaaRh/UuY - S/9InUr/TZ5O/06gTv9OoVH/TKFO/0miTf9Iokb/S6JC/1KjRf9Umk3/WZVZ/2ufbvWBtoXEmMOaVKrS - sxenz6kK////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8AptKkApLBkxaOv4m9ZaZk9EycTv9LnU3/Tp9Q/06eVP9KnFb/R51O/0igSf9Ko0X/UKRL/1Ce - TP9UmlT/VJVW/1ebVv99tHndosSjsbXRt1H///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AJTBjkqUxJKtUptQ/0qeRv9NnE3/TZxU/0qb - V/9JnlH/R59K/0agRf9Lokv/S51O/1CdV/9Vn1r/Up1S/1ejT/9oomX/fqyCx5bAmne23Lg4ze3NHv// - /wDK6MoW////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8Alr2SCKnK - qDV+rXnMYKdV9UybRv9PnFD/Tp5T/0meTf9LpEv/RqFF/0egSv9HnE7/SpxV/0qbU/9Jmkz/TqZG/1Cd - SP9Wkln/Z5xt7X60guKby56prNatkLbct4zL6stxv9i/N77Zwxy418IC////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AHGob1SFt3/BUJxL/0uTS/9SnVL/SJtH/02kSf9KpUf/SKNK/0Wd - Tv9Knlf/SJtV/0icTP9Lokf/TKRD/1SfVP9PlVX/T5VW/1ufYf9tqHDzd6x5/5bBluyhxKDcvNa9pr3V - wGunz7E+v97KS7XUuTjB485KvtzGMMLeySL///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8Ah7qNBarOqmd7tHrkVZVV/1OV - Uf9NmUb/TKBC/0ukRf9LpUr/R59P/0edVP9GnFT/SZ9R/0qgS/9Jo0L/TaFJ/0eZTP9HmE7/TJxS/1CY - Vf9ZmV3/ZZxn/2eWaP9umm3/ha2F8YSyidyLuZbZibmU5JbGn9CcyJzpr86wrcDZxE+61bsO////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8AzufYIKvRsHp5r3/aX5hg/1OVTf9RnUP/UqNH/0+kSf9Jn0z/SJ5R/0edUv9Hnk7/SJ9J/0qg - SP9Lnkr/RZxK/0KfSv9DoEr/Q5lK/0uYUP9Sl1P/VZRU/1KVUP9Ymln/U5dY/1aVWv9VkVT/WJNT/2Og - W/9ooGL/hbCJx5/FpG7F4MgW////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wCDuYQB////ALjZxG6MtZPZbJ5r9FaVSv9Wnkr/UJ5J/0ud - S/9Knk//SZ5N/0igSf9JoEj/TJ9K/0+cUP9NnVP/RKZN/0CmSP9EoUj/SJ5H/0qfRP9Ln0X/Sp9H/02a - Sv9PmEz/UJdL/06SR/9NkkP/VJpJ/1OaTf9YlVz8a6Nz/qDPqGCSu5gU////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8At9W8FsHd - xUauzrCscqRr/2KcWv9Sk03/UplP/06cTv9Mnkv/SqJF/0ujRf9OoUn/UZxT/1KbWf9IpU3/RKlG/0qq - Qv9Kp0D/SqVC/0uiR/9On0z/TptK/06aSP9Tn0v/UJxI/06bRv9Pm0v/TZ1R/0qWVP9Sllv/g7mKt5PD - mkD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////ALXVuTjB3MSFlr+Ux22hbepXllj/TpZO/0+fSv9OpEP/TqdA/1Cj - Rv9Rok3/UKJQ/0ipRP9LrED/T6dE/02jSf9Nn0//Tp9Q/0+fUP9QoE//UKFM/1CiS/9KnUf/R5tJ/0ib - T/9GnFL/RpxW/1KcXP9ppXL5veHCS2SjbQf///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AJPBlhGr07ciosmskn2v - g/xhnWb8UpxO/1KhR/9TpUT/UKBF/06kSP9JqUL/Rqw9/06nSv9QnlX/T5xY/0+bWP9QnFb/T51S/06g - Tf9Po0z/S6NK/0mhS/9JoVD/R6FS/0SdT/9Bnk7/RplQ/2agbfOBuIlr////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wDI4tAnxeHNc5fGoshno2b/X5pY/12ZV/9Ul0//Up5N/0qfRf9NpEb/UaNQ/1Ka - W/9SmGD/Uplc/1KdVv9Pn0//TKJJ/0qjSP9EoET/RaNJ/0ajTf9HpE//RKBL/0KgRP9Hn0b/d61677jS - vnFSmloC////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wCJtosNvt7FUsHbw7OcuZvpiKyH8mGW - X/9Yl1b/TZVK/1egU/9Um1P/VJdc/1WaXv9Vnlj/U6FR/1CiTP9No0n/R6FF/0SfRP9Go0r/RKBI/0ej - Sf9JpUb/SqBE/0ueRP+CuIH5ptKmXESZQgT///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wBIlkUCaqlhJZbEkUa01rWBtte2toi3h+9upW7+a6Ns/2aaZfdel2D/V5tW/1WhT/9UoEz/Tp9I/1Kk - UP9MoEz/S55N/0ygTv9LoEr/TZ9K/0yaR/9Zm1T/c7Bv7rfeuJeHvoQr////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wBqq2cmlceVUK7YsX+62r+JgayGlJOy - lrZ0q3DpYKpY/1yiWP9Vm1L/VJpV/06UU/9Lkk//VJlW/1OYU/9Zllf/XJZZ/3eodv+oy6+tyeDPIv// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wBQlE0CUplQBmumaxH///8AZaFqIo3DjVOd1p2KndKhxJzJqMl8r4fPga6L1nqogct/roPnjraQy4Wv - hu+hwae1scu7ecvl1zSw0LMI////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AFCdSQ1iqV8YnMypO1uk - XyqRv5g4ZqhpOJHFkjGDtYNDgLKAJbjTviyVwpYX////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD/////////////////////////////////AAAA/////////////////////////////////wAAAP// - //////////////////////////////8AAAD/////////////////////////////////AAAA//////// - /////////////////////////wAAAP////////////////////////////////8AAAD///////////// - ////////////////////AAAA/////////////////////////////////wAAAP////////////////// - //////////////8AAAD/////////////////////////////////AAAA//////////////////////// - /////////wAAAP////////////////////////////////8AAAD///////////////////////////// - ////AAAA/////////////////////////////////wAAAP////////////////////////////////8A - AAD/////////////////////////////////AAAA/////////////////////////////////wAAAP// - //////////////////////////////8AAAD/////////////////////////////////AAAA//////// - /////////////////////////wAAAP/////////////gAAAAAAAAA/////////8AAAD////////////+ - AAAAAAAAAAB/////////AAAA////////////+AAAAAAAAAAAD////////wAAAP///////////+AAAAAA - AAAAAA////////8AAAD////////////gAAAAAAAAAAAD////////AAAA////////////gAAAAAAAAAAA - AH///////wAAAP///////////gAAAAAAAAAAAAB///////8AAAD///////////wAAAAAAAAAAAAAP/// - ////AAAA///////////4AAAAAAAAAAAAAD///////wAAAP//////////8AAAAAAAAAAAAAAP//////8A - AAD//////////+AAAAAAAAAAAAAAD///////AAAA///////////gAAAAAAAAAAAAAAf//////wAAAP// - ////////wAAAAAAAAAAAAAAH//////8AAAD//////////8AAAAAAAAAAAAAAA///////AAAA//////// - //+AAAAAAAAAAAAAAAP//////wAAAP//////////AAAAAAAAAAAAAAAB//////8AAAD//////////wAA - AAAAAAAAAAAAAf//////AAAA//////////8AAAAAAAAAAAAAAAH//////wAAAP/////////+AAAAAAAA - AAAAAAAA//////8AAAD//////////gAAAAAAAAAAAAAAAf//////AAAA//////////4AAAAAAAAAAAAA - AAD//////wAAAP/////////+AAAAAAAAAAAAAAAA//////8AAAD//////////AAAAAAAAAAAAAAAAH// - ////AAAA//////////4AAAAAAAAAAAAAAAD//////wAAAP/////////8AAAAAAAAAAAAAAAAf/////8A - AAD//////////AAAAAAAAAAAAAAAAH//////AAAA//////////wAAAAAAAAAAAAAAAD//////wAAAP// - ///////8AAAAAAAAAAAAAAAA//////8AAAD//////////AAAAAAAAAAAAAAAAP//////AAAA//////// - //wAAAAAAAAAAAAAAAD//////wAAAP/////////4AAAAAAAAAAAAAAAB//////8AAAD/////////+AAA - AAAAAAAAAAAAAP//////AAAA//////////gAAAAAAAAAAAAAAAH//////wAAAP/////////4AAAAAAAA - AAAAAAAD//////8AAAD/////////+AAAAAAAAAAAAAAAA///////AAAA//////////wAAAAAAAAAAAAA - AAP//////wAAAP/////////4AAAAAAAAAAAAAAAD//////8AAAD//////////AAAAAAAAAAAAAAAB/// - ////AAAA//////////wAAAAAAAAAAAAAAAf//////wAAAP/////////4AAAAAAAAAAAAAAAP//////8A - AAD/////////+AAAAAAAAAAAAAAAH///////AAAA//////////gAAAAAAAAAAAAAAB///////wAAAP// - ///////4AAAAAAAAAAAAAAA///////8AAAD/////////+AAAAAAAAAAAAAAAf///////AAAA//////// - //gAAAAAAAAAAAAAAf///////wAAAP/////////4AAAAAAAAAAAAAAH///////8AAAD/////////+AAA - AAAAAAAAAAAH////////AAAA//////////gAAAAAAAAAAAAAH////////wAAAP/////////wAAAAAAAA - AAAAAB////////8AAAD/////////+AAgAAAAAAAAAAB/////////AAAA//////////AAPAAAAAAAAAAB - /////////wAAAP/////////wAD1AAAAAAAAAH/////////8AAAD/////////+AA/+9XuH69Xu/////// - ////AAAA//////////AAP////////////////////wAAAP/////////4AD////////////////////8A - AAD/////////8AB/////////////////////AAAA//////////gAf////////////////////wAAAP// - ///////wAH8Af/////////////////8AAAD/////////+AA+AA//////////////////AAAA//////// - //AAfgAH/////////////////wAAAP/////////wAD4AA/////////////////8AAAD/////////8AA+ - AAH/////////////////AAAA//////////AAPgAAf////////////////wAAAP/////////wAH4AAH// - //////////////8AAAD/////////8AB+AAAf////////////////AAAA//////////gAfgAAH/////// - /////////wAAAP/////////wAH4AAA////////////////8AAAD/////////8AB+AAAP//////////// - ////AAAA///////wf/AAfgAAB////////////////wAAAP//////wH/wAH4AAAf///////////////8A - AAD//////wAf8AB+AAAH////////////////AAAA//////8AH/AAfgAAB////////////////wAAAP// - ////AA/wADwAAAP///////////////8AAAD//////gAP8AB+AAAD////////////////AAAA//////wA - D+AAPAAAA////////////////wAAAP/////8AA/wAB4AAAP///////////////8AAAD//////AAf4AAE - AAAD////////////////AAAA//////4AD/AAAAAAA////////////////wAAAP/////+AA/wAAAAAAP/ - //////////////8AAAD//////AAP8AAAAAAD////////////////AAAA//////4AD/AAAAAAA/////// - /////////wAAAP/////+AAfwAAAAAAP///////////////8AAAD//////gAP+AAAAAAD//////////// - ////AAAA//////4AB/gAAAAAA////////////////wAAAP//////AAf8AAAAAAP///////////////8A - AAD//////wAD/AAAAAAD////////////////AAAA//////8AA/4AAAAAA////////////////wAAAP// - ////AAP/AAAAAAP///////////////8AAAD//////4AB/4AAAAAD////////////////AAAA//////+A - Af+AAAAAA////////////////wAAAP//////wAD/wAAAAAP///////////////8AAAD//////8AA//AA - AAAD////////////////AAAA///////AAH/4AAAAB////////////////wAAAP//////4AA//gAAAAf/ - //////////////8AAAD//////+AAH/8AAAAP////////////////AAAA///////wAAf//P16//////// - /////////wAAAP//////8AAH//////////////////////8AAAD///////gAAf////////////////// - ////AAAA///////4AAH//////////////////////wAAAP///////AAAP/////////////////////8A - AAD///////wAAD//////////////////////AAAA////////AAAF/////////////////////wAAAP// - /////wAAAB////////////////////8AAAD////////AAAAAf///////////////////AAAA//////// - wAAAAB///////////////////wAAAP///////+AAAAAP//////////////////8AAAD////////oAAAA - B///////////////////AAAA////////+AAAAAf//////////////////wAAAP////////4AAAAD//// - //////////////8AAAD/////////AAAAB///////////////////AAAA/////////8AAAAP///////// - /////////wAAAP/////////gAAAD//////////////////8AAAD/////////8AAAB/////////////// - ////AAAA//////////8AAA///////////////////wAAAP//////////iAAP//////////////////8A - AAD///////////4AP///////////////////AAAA/////////////////////////////////wAAAP// - //////////////////////////////8AAAD/////////////////////////////////AAAA//////// - /////////////////////////wAAAP////////////////////////////////8AAAD///////////// - ////////////////////AAAA/////////////////////////////////wAAAP////////////////// - //////////////8AAAD/////////////////////////////////AAAA//////////////////////// - /////////wAAAP////////////////////////////////8AAAD///////////////////////////// - ////AAAA/////////////////////////////////wAAAP////////////////////////////////8A - AAA= - - \ No newline at end of file diff --git a/AgroBase/AgroBase/Forms/IHM/frmIHM.Designer.cs b/AgroBase/AgroBase/Forms/IHM/frmIHM.Designer.cs index 7ec83b87f..bc5acfd5e 100644 --- a/AgroBase/AgroBase/Forms/IHM/frmIHM.Designer.cs +++ b/AgroBase/AgroBase/Forms/IHM/frmIHM.Designer.cs @@ -1,898 +1,530 @@ -namespace AgroBase.Forms.IHM +using System.Drawing; + +namespace AgroBase.Forms.IHM { partial class frmIHM { - /// - /// Required designer variable. - /// private System.ComponentModel.IContainer components = null; - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { - if (disposing && (components != null)) + if (disposing) { - components.Dispose(); + if (_telaAtual != null && !_telaAtual.IsDisposed) + { + _telaAtual.Dispose(); + _telaAtual = null; + } + + if (tmrDispositivos != null) + { + tmrDispositivos.Dispose(); + tmrDispositivos = null; + } + + if (components != null) + components.Dispose(); } + base.Dispose(disposing); } #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmIHM)); - this.lblD_Mov_DF = new System.Windows.Forms.Label(); - this.lblD_Atu = new System.Windows.Forms.Label(); - this.lblD_Sen = new System.Windows.Forms.Label(); - this.lblD_Gps = new System.Windows.Forms.Label(); - this.lblMqtt = new System.Windows.Forms.Label(); - this.lblD_Sen_sCOR_36V = new System.Windows.Forms.Label(); - this.lblD_Imu = new System.Windows.Forms.Label(); - this.lblD_Mov_DT = new System.Windows.Forms.Label(); - this.lblD_Dir_DF = new System.Windows.Forms.Label(); - this.lblD_Dir_EF = new System.Windows.Forms.Label(); - this.lblD_Mov_EF = new System.Windows.Forms.Label(); - this.lblD_Dir_DT = new System.Windows.Forms.Label(); - this.lblD_Dir_ET = new System.Windows.Forms.Label(); - this.lblD_Mov_ET = new System.Windows.Forms.Label(); - this.lblD_Cam_0 = new System.Windows.Forms.Label(); - this.lblD_Snr = new System.Windows.Forms.Label(); - this.lblDiagnosticos = new System.Windows.Forms.Label(); - this.lblOperacao = new System.Windows.Forms.Label(); - this.lblAjustes = new System.Windows.Forms.Label(); - this.lblDesligar = new System.Windows.Forms.Label(); - this.lblModoManual = new System.Windows.Forms.Label(); - this.lblD_Sen_sULT = new System.Windows.Forms.Label(); - this.lblStatus = new System.Windows.Forms.Label(); + this.layoutPrincipal = new System.Windows.Forms.TableLayoutPanel(); + this.pnlEsquerdo = new System.Windows.Forms.Panel(); + this.sidebarLayout = new System.Windows.Forms.TableLayoutPanel(); + this.pnlStatusOperacao = new AgroBase.Forms.IHM.Controls.HmiRoundedPanel(); + this.statusLayout = new System.Windows.Forms.TableLayoutPanel(); + this.lblContexto = new System.Windows.Forms.Label(); + this.statusTituloLayout = new System.Windows.Forms.TableLayoutPanel(); + this.lblIndicadorStatus = new System.Windows.Forms.Label(); + this.lblStatusOperacao = new System.Windows.Forms.Label(); + this.lblStatusOperacaoDetalhes = new System.Windows.Forms.Label(); + this.pnlResumo = new AgroBase.Forms.IHM.Controls.HmiRoundedPanel(); + this.resumoLayout = new System.Windows.Forms.TableLayoutPanel(); + this.lblTituloResumo = new System.Windows.Forms.Label(); + this.fpnlResumo = new System.Windows.Forms.FlowLayoutPanel(); + this.pnlAcoesOperacao = new AgroBase.Forms.IHM.Controls.HmiRoundedPanel(); + this.acoesLayout = new System.Windows.Forms.TableLayoutPanel(); + this.lblTituloAcoes = new System.Windows.Forms.Label(); + this.btnPausarOperacao = new AgroBase.Forms.IHM.Controls.HmiSidebarButton(); + this.btnParadaEmergencia = new AgroBase.Forms.IHM.Controls.HmiSidebarButton(); + this.btnFinalizarOperacao = new AgroBase.Forms.IHM.Controls.HmiSidebarButton(); + this.pnlRodape = new System.Windows.Forms.Panel(); this.lblVersao = new System.Windows.Forms.Label(); - this.lblOperacaoLiberada = new System.Windows.Forms.Label(); - this.lblCodigoFalha = new System.Windows.Forms.Label(); - this.picManual = new System.Windows.Forms.PictureBox(); - this.picDiagnosticos = new System.Windows.Forms.PictureBox(); - this.picOperacao = new System.Windows.Forms.PictureBox(); - this.picAjustes = new System.Windows.Forms.PictureBox(); - this.picDesligar = new System.Windows.Forms.PictureBox(); - this.picRobo = new System.Windows.Forms.PictureBox(); - this.picWifi = new System.Windows.Forms.PictureBox(); - this.pgbAtualizacaoArquivos = new System.Windows.Forms.ProgressBar(); - this.lblProgressoAtualizacao = new System.Windows.Forms.Label(); - this.lblIA = new System.Windows.Forms.Label(); - this.lblD_Sen_sNTC_DT = new System.Windows.Forms.Label(); - this.lblD_Sen_sNTC_ET = new System.Windows.Forms.Label(); - this.lblD_Sen_sNTC_EF = new System.Windows.Forms.Label(); - this.lblD_Sen_sNTC_DF = new System.Windows.Forms.Label(); - this.lblD_Sen_sSRV_DT = new System.Windows.Forms.Label(); - this.lblD_Sen_sSRV_ET = new System.Windows.Forms.Label(); - this.lblD_Sen_sCOR_3V = new System.Windows.Forms.Label(); - this.lblD_Sen_sCOR_5V = new System.Windows.Forms.Label(); - this.lblD_Sen_sCOR_7V2 = new System.Windows.Forms.Label(); - this.lblD_Sen_sCOR_12V = new System.Windows.Forms.Label(); - this.lblD_Sen_sCOR_19V = new System.Windows.Forms.Label(); - this.lblD_Sen_sCOR_24V = new System.Windows.Forms.Label(); - this.lblD_Atu_sPRS = new System.Windows.Forms.Label(); - this.lblD_Atu_sBMB = new System.Windows.Forms.Label(); - this.lblD_Lra = new System.Windows.Forms.Label(); - this.lblD_Atu_sMAS = new System.Windows.Forms.Label(); - this.lblD_Atu_sFLX = new System.Windows.Forms.Label(); - this.lblD_Atu_sBIC_B01 = new System.Windows.Forms.Label(); - this.lblD_Atu_sBIC_B02 = new System.Windows.Forms.Label(); - this.lblD_Atu_sBIC_B03 = new System.Windows.Forms.Label(); - this.lblD_Atu_sBIC_B04 = new System.Windows.Forms.Label(); - ((System.ComponentModel.ISupportInitialize)(this.picManual)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.picDiagnosticos)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.picOperacao)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.picAjustes)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.picDesligar)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.picRobo)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.picWifi)).BeginInit(); + this.pnlDivisor = new System.Windows.Forms.Panel(); + this.pnlConteudo = new System.Windows.Forms.Panel(); + this.layoutPrincipal.SuspendLayout(); + this.pnlEsquerdo.SuspendLayout(); + this.sidebarLayout.SuspendLayout(); + this.pnlStatusOperacao.SuspendLayout(); + this.statusLayout.SuspendLayout(); + this.statusTituloLayout.SuspendLayout(); + this.pnlResumo.SuspendLayout(); + this.resumoLayout.SuspendLayout(); + this.pnlAcoesOperacao.SuspendLayout(); + this.acoesLayout.SuspendLayout(); + this.pnlRodape.SuspendLayout(); this.SuspendLayout(); // - // lblD_Mov_DF + // layoutPrincipal // - this.lblD_Mov_DF.AutoSize = true; - this.lblD_Mov_DF.BackColor = System.Drawing.Color.Transparent; - this.lblD_Mov_DF.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Mov_DF.Location = new System.Drawing.Point(305, 33); - this.lblD_Mov_DF.Name = "lblD_Mov_DF"; - this.lblD_Mov_DF.Size = new System.Drawing.Size(54, 24); - this.lblD_Mov_DF.TabIndex = 2; - this.lblD_Mov_DF.Text = "MOV"; - this.lblD_Mov_DF.Click += new System.EventHandler(this.lblModulo_Click); + this.layoutPrincipal.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(17)))), ((int)(((byte)(20))))); + this.layoutPrincipal.ColumnCount = 2; + this.layoutPrincipal.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 224F)); + this.layoutPrincipal.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.layoutPrincipal.Controls.Add(this.pnlEsquerdo, 0, 0); + this.layoutPrincipal.Controls.Add(this.pnlConteudo, 1, 0); + this.layoutPrincipal.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutPrincipal.Location = new System.Drawing.Point(0, 0); + this.layoutPrincipal.Margin = new System.Windows.Forms.Padding(0); + this.layoutPrincipal.Name = "layoutPrincipal"; + this.layoutPrincipal.RowCount = 1; + this.layoutPrincipal.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.layoutPrincipal.Size = new System.Drawing.Size(1024, 600); + this.layoutPrincipal.TabIndex = 0; // - // lblD_Atu + // pnlEsquerdo // - this.lblD_Atu.AutoSize = true; - this.lblD_Atu.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Atu.Location = new System.Drawing.Point(415, 550); - this.lblD_Atu.Name = "lblD_Atu"; - this.lblD_Atu.Size = new System.Drawing.Size(48, 24); - this.lblD_Atu.TabIndex = 4; - this.lblD_Atu.Text = "ATU"; - this.lblD_Atu.Click += new System.EventHandler(this.lblModulo_Click); + this.pnlEsquerdo.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(17)))), ((int)(((byte)(20))))); + this.pnlEsquerdo.Controls.Add(this.sidebarLayout); + this.pnlEsquerdo.Controls.Add(this.pnlDivisor); + this.pnlEsquerdo.Dock = System.Windows.Forms.DockStyle.Fill; + this.pnlEsquerdo.Location = new System.Drawing.Point(0, 0); + this.pnlEsquerdo.Margin = new System.Windows.Forms.Padding(0); + this.pnlEsquerdo.Name = "pnlEsquerdo"; + this.pnlEsquerdo.Padding = new System.Windows.Forms.Padding(7, 7, 7, 0); + this.pnlEsquerdo.Size = new System.Drawing.Size(224, 600); + this.pnlEsquerdo.TabIndex = 0; // - // lblD_Sen + // sidebarLayout // - this.lblD_Sen.AutoSize = true; - this.lblD_Sen.BackColor = System.Drawing.Color.Lavender; - this.lblD_Sen.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Sen.Location = new System.Drawing.Point(88, 271); - this.lblD_Sen.Name = "lblD_Sen"; - this.lblD_Sen.Size = new System.Drawing.Size(49, 24); - this.lblD_Sen.TabIndex = 5; - this.lblD_Sen.Text = "SEN"; - this.lblD_Sen.Click += new System.EventHandler(this.lblModulo_Click); + this.sidebarLayout.BackColor = System.Drawing.Color.Transparent; + this.sidebarLayout.ColumnCount = 1; + this.sidebarLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.sidebarLayout.Controls.Add(this.pnlStatusOperacao, 0, 0); + this.sidebarLayout.Controls.Add(this.pnlResumo, 0, 1); + this.sidebarLayout.Controls.Add(this.pnlAcoesOperacao, 0, 2); + this.sidebarLayout.Controls.Add(this.pnlRodape, 0, 3); + this.sidebarLayout.Dock = System.Windows.Forms.DockStyle.Fill; + this.sidebarLayout.Location = new System.Drawing.Point(7, 7); + this.sidebarLayout.Margin = new System.Windows.Forms.Padding(0); + this.sidebarLayout.Name = "sidebarLayout"; + this.sidebarLayout.RowCount = 4; + this.sidebarLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 86F)); + this.sidebarLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.sidebarLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 163F)); + this.sidebarLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 22F)); + this.sidebarLayout.Size = new System.Drawing.Size(209, 593); + this.sidebarLayout.TabIndex = 0; // - // lblD_Gps + // pnlStatusOperacao // - this.lblD_Gps.AutoSize = true; - this.lblD_Gps.BackColor = System.Drawing.Color.Gray; - this.lblD_Gps.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Gps.Location = new System.Drawing.Point(210, 230); - this.lblD_Gps.Name = "lblD_Gps"; - this.lblD_Gps.Size = new System.Drawing.Size(48, 24); - this.lblD_Gps.TabIndex = 6; - this.lblD_Gps.Text = "GPS"; - this.lblD_Gps.Click += new System.EventHandler(this.lblModulo_Click); + this.pnlStatusOperacao.AccentColor = System.Drawing.Color.FromArgb(((int)(((byte)(244)))), ((int)(((byte)(181)))), ((int)(((byte)(68))))); + this.pnlStatusOperacao.BackColor = System.Drawing.Color.Transparent; + this.pnlStatusOperacao.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(83)))), ((int)(((byte)(75)))), ((int)(((byte)(52))))); + this.pnlStatusOperacao.Controls.Add(this.statusLayout); + this.pnlStatusOperacao.CornerRadius = 11; + this.pnlStatusOperacao.Dock = System.Windows.Forms.DockStyle.Fill; + this.pnlStatusOperacao.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(24)))), ((int)(((byte)(29)))), ((int)(((byte)(33))))); + this.pnlStatusOperacao.Location = new System.Drawing.Point(0, 0); + this.pnlStatusOperacao.Margin = new System.Windows.Forms.Padding(0, 0, 0, 6); + this.pnlStatusOperacao.MinimumSize = new System.Drawing.Size(30, 30); + this.pnlStatusOperacao.Name = "pnlStatusOperacao"; + this.pnlStatusOperacao.Padding = new System.Windows.Forms.Padding(12, 7, 10, 7); + this.pnlStatusOperacao.ShowAccent = true; + this.pnlStatusOperacao.Size = new System.Drawing.Size(209, 70); + this.pnlStatusOperacao.TabIndex = 0; // - // lblMqtt + // statusLayout // - this.lblMqtt.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.lblMqtt.AutoSize = true; - this.lblMqtt.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblMqtt.Location = new System.Drawing.Point(473, 480); - this.lblMqtt.Name = "lblMqtt"; - this.lblMqtt.Size = new System.Drawing.Size(114, 13); - this.lblMqtt.TabIndex = 13; - this.lblMqtt.Text = "MQTT: Desconectado"; + this.statusLayout.BackColor = System.Drawing.Color.Transparent; + this.statusLayout.ColumnCount = 1; + this.statusLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.statusLayout.Controls.Add(this.lblContexto, 0, 0); + this.statusLayout.Controls.Add(this.statusTituloLayout, 0, 1); + this.statusLayout.Controls.Add(this.lblStatusOperacaoDetalhes, 0, 2); + this.statusLayout.Dock = System.Windows.Forms.DockStyle.Fill; + this.statusLayout.Location = new System.Drawing.Point(12, 7); + this.statusLayout.Margin = new System.Windows.Forms.Padding(0); + this.statusLayout.Name = "statusLayout"; + this.statusLayout.RowCount = 3; + this.statusLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 16F)); + this.statusLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.statusLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.statusLayout.Size = new System.Drawing.Size(187, 56); + this.statusLayout.TabIndex = 0; // - // lblD_Sen_sCOR_36V + // lblContexto // - this.lblD_Sen_sCOR_36V.AutoSize = true; - this.lblD_Sen_sCOR_36V.BackColor = System.Drawing.Color.Lavender; - this.lblD_Sen_sCOR_36V.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Sen_sCOR_36V.Location = new System.Drawing.Point(398, 322); - this.lblD_Sen_sCOR_36V.Name = "lblD_Sen_sCOR_36V"; - this.lblD_Sen_sCOR_36V.Size = new System.Drawing.Size(65, 24); - this.lblD_Sen_sCOR_36V.TabIndex = 14; - this.lblD_Sen_sCOR_36V.Text = "B_36V"; - this.lblD_Sen_sCOR_36V.Click += new System.EventHandler(this.lblModulo_Click); + this.lblContexto.BackColor = System.Drawing.Color.Transparent; + this.lblContexto.Dock = System.Windows.Forms.DockStyle.Fill; + this.lblContexto.Font = new System.Drawing.Font("Segoe UI", 7F, System.Drawing.FontStyle.Bold); + this.lblContexto.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(164)))), ((int)(((byte)(174)))), ((int)(((byte)(181))))); + this.lblContexto.Location = new System.Drawing.Point(0, 0); + this.lblContexto.Margin = new System.Windows.Forms.Padding(0); + this.lblContexto.Name = "lblContexto"; + this.lblContexto.Size = new System.Drawing.Size(187, 16); + this.lblContexto.TabIndex = 0; + this.lblContexto.Text = "ROVER / CONTEXTO"; + this.lblContexto.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // - // lblD_Imu + // statusTituloLayout // - this.lblD_Imu.AutoSize = true; - this.lblD_Imu.BackColor = System.Drawing.Color.Lavender; - this.lblD_Imu.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Imu.Location = new System.Drawing.Point(14, 550); - this.lblD_Imu.Name = "lblD_Imu"; - this.lblD_Imu.Size = new System.Drawing.Size(43, 24); - this.lblD_Imu.TabIndex = 16; - this.lblD_Imu.Text = "IMU"; - this.lblD_Imu.Click += new System.EventHandler(this.lblModulo_Click); + this.statusTituloLayout.BackColor = System.Drawing.Color.Transparent; + this.statusTituloLayout.ColumnCount = 2; + this.statusTituloLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 18F)); + this.statusTituloLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.statusTituloLayout.Controls.Add(this.lblIndicadorStatus, 0, 0); + this.statusTituloLayout.Controls.Add(this.lblStatusOperacao, 1, 0); + this.statusTituloLayout.Dock = System.Windows.Forms.DockStyle.Fill; + this.statusTituloLayout.Location = new System.Drawing.Point(0, 16); + this.statusTituloLayout.Margin = new System.Windows.Forms.Padding(0); + this.statusTituloLayout.Name = "statusTituloLayout"; + this.statusTituloLayout.RowCount = 1; + this.statusTituloLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.statusTituloLayout.Size = new System.Drawing.Size(187, 22); + this.statusTituloLayout.TabIndex = 1; // - // lblD_Mov_DT + // lblIndicadorStatus // - this.lblD_Mov_DT.AutoSize = true; - this.lblD_Mov_DT.BackColor = System.Drawing.Color.Lavender; - this.lblD_Mov_DT.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Mov_DT.Location = new System.Drawing.Point(305, 423); - this.lblD_Mov_DT.Name = "lblD_Mov_DT"; - this.lblD_Mov_DT.Size = new System.Drawing.Size(54, 24); - this.lblD_Mov_DT.TabIndex = 18; - this.lblD_Mov_DT.Text = "MOV"; - this.lblD_Mov_DT.Click += new System.EventHandler(this.lblModulo_Click); + this.lblIndicadorStatus.BackColor = System.Drawing.Color.Transparent; + this.lblIndicadorStatus.Dock = System.Windows.Forms.DockStyle.Fill; + this.lblIndicadorStatus.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold); + this.lblIndicadorStatus.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(244)))), ((int)(((byte)(181)))), ((int)(((byte)(68))))); + this.lblIndicadorStatus.Location = new System.Drawing.Point(0, 0); + this.lblIndicadorStatus.Margin = new System.Windows.Forms.Padding(0); + this.lblIndicadorStatus.Name = "lblIndicadorStatus"; + this.lblIndicadorStatus.Size = new System.Drawing.Size(18, 22); + this.lblIndicadorStatus.TabIndex = 0; + this.lblIndicadorStatus.Text = "●"; + this.lblIndicadorStatus.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // - // lblD_Dir_DF + // lblStatusOperacao // - this.lblD_Dir_DF.AutoSize = true; - this.lblD_Dir_DF.BackColor = System.Drawing.Color.Transparent; - this.lblD_Dir_DF.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Dir_DF.Location = new System.Drawing.Point(346, 101); - this.lblD_Dir_DF.Name = "lblD_Dir_DF"; - this.lblD_Dir_DF.Size = new System.Drawing.Size(40, 24); - this.lblD_Dir_DF.TabIndex = 19; - this.lblD_Dir_DF.Text = "DIR"; - this.lblD_Dir_DF.Click += new System.EventHandler(this.lblModulo_Click); + this.lblStatusOperacao.AutoEllipsis = true; + this.lblStatusOperacao.BackColor = System.Drawing.Color.Transparent; + this.lblStatusOperacao.Dock = System.Windows.Forms.DockStyle.Fill; + this.lblStatusOperacao.Font = new System.Drawing.Font("Segoe UI", 11.5F, System.Drawing.FontStyle.Bold); + this.lblStatusOperacao.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(244)))), ((int)(((byte)(181)))), ((int)(((byte)(68))))); + this.lblStatusOperacao.Location = new System.Drawing.Point(18, 0); + this.lblStatusOperacao.Margin = new System.Windows.Forms.Padding(0); + this.lblStatusOperacao.Name = "lblStatusOperacao"; + this.lblStatusOperacao.Size = new System.Drawing.Size(169, 22); + this.lblStatusOperacao.TabIndex = 1; + this.lblStatusOperacao.Text = "AGUARDANDO"; + this.lblStatusOperacao.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // - // lblD_Dir_EF + // lblStatusOperacaoDetalhes // - this.lblD_Dir_EF.AutoSize = true; - this.lblD_Dir_EF.BackColor = System.Drawing.Color.Transparent; - this.lblD_Dir_EF.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Dir_EF.Location = new System.Drawing.Point(72, 101); - this.lblD_Dir_EF.Name = "lblD_Dir_EF"; - this.lblD_Dir_EF.Size = new System.Drawing.Size(40, 24); - this.lblD_Dir_EF.TabIndex = 21; - this.lblD_Dir_EF.Text = "DIR"; - this.lblD_Dir_EF.Click += new System.EventHandler(this.lblModulo_Click); + this.lblStatusOperacaoDetalhes.AutoEllipsis = true; + this.lblStatusOperacaoDetalhes.BackColor = System.Drawing.Color.Transparent; + this.lblStatusOperacaoDetalhes.Dock = System.Windows.Forms.DockStyle.Fill; + this.lblStatusOperacaoDetalhes.Font = new System.Drawing.Font("Segoe UI", 7.75F, FontStyle.Regular); + this.lblStatusOperacaoDetalhes.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(164)))), ((int)(((byte)(174)))), ((int)(((byte)(181))))); + this.lblStatusOperacaoDetalhes.Location = new System.Drawing.Point(0, 38); + this.lblStatusOperacaoDetalhes.Margin = new System.Windows.Forms.Padding(0); + this.lblStatusOperacaoDetalhes.Name = "lblStatusOperacaoDetalhes"; + this.lblStatusOperacaoDetalhes.Size = new System.Drawing.Size(187, 18); + this.lblStatusOperacaoDetalhes.TabIndex = 2; + this.lblStatusOperacaoDetalhes.Text = "Início em 8 segundos..."; + this.lblStatusOperacaoDetalhes.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + + this.lblStatusOperacaoDetalhes.AutoSize = false; + this.lblStatusOperacaoDetalhes.AutoEllipsis = true; + this.lblStatusOperacaoDetalhes.TextAlign = ContentAlignment.TopLeft; + this.lblStatusOperacaoDetalhes.UseCompatibleTextRendering = true; // - // lblD_Mov_EF + // pnlResumo // - this.lblD_Mov_EF.AutoSize = true; - this.lblD_Mov_EF.BackColor = System.Drawing.Color.Transparent; - this.lblD_Mov_EF.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Mov_EF.Location = new System.Drawing.Point(120, 33); - this.lblD_Mov_EF.Name = "lblD_Mov_EF"; - this.lblD_Mov_EF.Size = new System.Drawing.Size(54, 24); - this.lblD_Mov_EF.TabIndex = 20; - this.lblD_Mov_EF.Text = "MOV"; - this.lblD_Mov_EF.Click += new System.EventHandler(this.lblModulo_Click); + this.pnlResumo.AccentColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(210)))), ((int)(((byte)(122))))); + this.pnlResumo.BackColor = System.Drawing.Color.Transparent; + this.pnlResumo.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(42)))), ((int)(((byte)(51)))), ((int)(((byte)(57))))); + this.pnlResumo.Controls.Add(this.resumoLayout); + this.pnlResumo.CornerRadius = 11; + this.pnlResumo.Dock = System.Windows.Forms.DockStyle.Fill; + this.pnlResumo.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(24)))), ((int)(((byte)(29)))), ((int)(((byte)(33))))); + this.pnlResumo.Location = new System.Drawing.Point(0, 76); + this.pnlResumo.Margin = new System.Windows.Forms.Padding(0, 0, 0, 6); + this.pnlResumo.MinimumSize = new System.Drawing.Size(30, 30); + this.pnlResumo.Name = "pnlResumo"; + this.pnlResumo.Padding = new System.Windows.Forms.Padding(8, 6, 8, 6); + this.pnlResumo.Size = new System.Drawing.Size(209, 326); + this.pnlResumo.TabIndex = 1; // - // lblD_Dir_DT + // resumoLayout // - this.lblD_Dir_DT.AutoSize = true; - this.lblD_Dir_DT.BackColor = System.Drawing.Color.Lavender; - this.lblD_Dir_DT.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Dir_DT.Location = new System.Drawing.Point(346, 355); - this.lblD_Dir_DT.Name = "lblD_Dir_DT"; - this.lblD_Dir_DT.Size = new System.Drawing.Size(40, 24); - this.lblD_Dir_DT.TabIndex = 22; - this.lblD_Dir_DT.Text = "DIR"; - this.lblD_Dir_DT.Click += new System.EventHandler(this.lblModulo_Click); + this.resumoLayout.BackColor = System.Drawing.Color.Transparent; + this.resumoLayout.ColumnCount = 1; + this.resumoLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.resumoLayout.Controls.Add(this.lblTituloResumo, 0, 0); + this.resumoLayout.Controls.Add(this.fpnlResumo, 0, 1); + this.resumoLayout.Dock = System.Windows.Forms.DockStyle.Fill; + this.resumoLayout.Location = new System.Drawing.Point(8, 6); + this.resumoLayout.Margin = new System.Windows.Forms.Padding(0); + this.resumoLayout.Name = "resumoLayout"; + this.resumoLayout.RowCount = 2; + this.resumoLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F)); + this.resumoLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.resumoLayout.Size = new System.Drawing.Size(193, 314); + this.resumoLayout.TabIndex = 0; // - // lblD_Dir_ET + // lblTituloResumo // - this.lblD_Dir_ET.AutoSize = true; - this.lblD_Dir_ET.BackColor = System.Drawing.Color.Lavender; - this.lblD_Dir_ET.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Dir_ET.Location = new System.Drawing.Point(72, 355); - this.lblD_Dir_ET.Name = "lblD_Dir_ET"; - this.lblD_Dir_ET.Size = new System.Drawing.Size(40, 24); - this.lblD_Dir_ET.TabIndex = 24; - this.lblD_Dir_ET.Text = "DIR"; - this.lblD_Dir_ET.Click += new System.EventHandler(this.lblModulo_Click); + this.lblTituloResumo.BackColor = System.Drawing.Color.Transparent; + this.lblTituloResumo.Dock = System.Windows.Forms.DockStyle.Fill; + this.lblTituloResumo.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold); + this.lblTituloResumo.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(241)))), ((int)(((byte)(245)))), ((int)(((byte)(247))))); + this.lblTituloResumo.Location = new System.Drawing.Point(0, 0); + this.lblTituloResumo.Margin = new System.Windows.Forms.Padding(0); + this.lblTituloResumo.Name = "lblTituloResumo"; + this.lblTituloResumo.Size = new System.Drawing.Size(193, 25); + this.lblTituloResumo.TabIndex = 0; + this.lblTituloResumo.Text = "▌ STATUS PRINCIPAL"; + this.lblTituloResumo.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // - // lblD_Mov_ET + // fpnlResumo // - this.lblD_Mov_ET.AutoSize = true; - this.lblD_Mov_ET.BackColor = System.Drawing.Color.Lavender; - this.lblD_Mov_ET.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Mov_ET.Location = new System.Drawing.Point(120, 423); - this.lblD_Mov_ET.Name = "lblD_Mov_ET"; - this.lblD_Mov_ET.Size = new System.Drawing.Size(54, 24); - this.lblD_Mov_ET.TabIndex = 23; - this.lblD_Mov_ET.Text = "MOV"; - this.lblD_Mov_ET.Click += new System.EventHandler(this.lblModulo_Click); + this.fpnlResumo.BackColor = System.Drawing.Color.Transparent; + this.fpnlResumo.Dock = System.Windows.Forms.DockStyle.Fill; + this.fpnlResumo.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; + this.fpnlResumo.Location = new System.Drawing.Point(0, 25); + this.fpnlResumo.Margin = new System.Windows.Forms.Padding(0); + this.fpnlResumo.Name = "fpnlResumo"; + this.fpnlResumo.Padding = new System.Windows.Forms.Padding(0, 2, 0, 0); + this.fpnlResumo.Size = new System.Drawing.Size(193, 289); + this.fpnlResumo.TabIndex = 1; + this.fpnlResumo.WrapContents = false; + this.fpnlResumo.Resize += new System.EventHandler(this.fpnlResumo_Resize); // - // lblD_Cam_0 + // pnlAcoesOperacao // - this.lblD_Cam_0.AutoSize = true; - this.lblD_Cam_0.BackColor = System.Drawing.Color.White; - this.lblD_Cam_0.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Cam_0.Location = new System.Drawing.Point(210, 550); - this.lblD_Cam_0.Name = "lblD_Cam_0"; - this.lblD_Cam_0.Size = new System.Drawing.Size(52, 24); - this.lblD_Cam_0.TabIndex = 29; - this.lblD_Cam_0.Text = "CAM"; - this.lblD_Cam_0.Click += new System.EventHandler(this.lblModulo_Click); + this.pnlAcoesOperacao.AccentColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(210)))), ((int)(((byte)(122))))); + this.pnlAcoesOperacao.BackColor = System.Drawing.Color.Transparent; + this.pnlAcoesOperacao.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(42)))), ((int)(((byte)(51)))), ((int)(((byte)(57))))); + this.pnlAcoesOperacao.Controls.Add(this.acoesLayout); + this.pnlAcoesOperacao.CornerRadius = 11; + this.pnlAcoesOperacao.Dock = System.Windows.Forms.DockStyle.Fill; + this.pnlAcoesOperacao.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(24)))), ((int)(((byte)(29)))), ((int)(((byte)(33))))); + this.pnlAcoesOperacao.Location = new System.Drawing.Point(0, 408); + this.pnlAcoesOperacao.Margin = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.pnlAcoesOperacao.MinimumSize = new System.Drawing.Size(30, 30); + this.pnlAcoesOperacao.Name = "pnlAcoesOperacao"; + this.pnlAcoesOperacao.Padding = new System.Windows.Forms.Padding(8, 6, 8, 6); + this.pnlAcoesOperacao.Size = new System.Drawing.Size(209, 159); + this.pnlAcoesOperacao.TabIndex = 2; // - // lblD_Snr + // acoesLayout // - this.lblD_Snr.AutoSize = true; - this.lblD_Snr.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Snr.Location = new System.Drawing.Point(210, 125); - this.lblD_Snr.Name = "lblD_Snr"; - this.lblD_Snr.Size = new System.Drawing.Size(49, 24); - this.lblD_Snr.TabIndex = 31; - this.lblD_Snr.Text = "SNR"; - this.lblD_Snr.Click += new System.EventHandler(this.lblModulo_Click); + this.acoesLayout.BackColor = System.Drawing.Color.Transparent; + this.acoesLayout.ColumnCount = 1; + this.acoesLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.acoesLayout.Controls.Add(this.lblTituloAcoes, 0, 0); + this.acoesLayout.Controls.Add(this.btnPausarOperacao, 0, 1); + this.acoesLayout.Controls.Add(this.btnParadaEmergencia, 0, 2); + this.acoesLayout.Controls.Add(this.btnFinalizarOperacao, 0, 3); + this.acoesLayout.Dock = System.Windows.Forms.DockStyle.Fill; + this.acoesLayout.Location = new System.Drawing.Point(8, 6); + this.acoesLayout.Margin = new System.Windows.Forms.Padding(0); + this.acoesLayout.Name = "acoesLayout"; + this.acoesLayout.RowCount = 4; + this.acoesLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F)); + this.acoesLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.acoesLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.acoesLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.acoesLayout.Size = new System.Drawing.Size(193, 147); + this.acoesLayout.TabIndex = 0; // - // lblDiagnosticos + // lblTituloAcoes // - this.lblDiagnosticos.AutoSize = true; - this.lblDiagnosticos.BackColor = System.Drawing.Color.Transparent; - this.lblDiagnosticos.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblDiagnosticos.Location = new System.Drawing.Point(490, 187); - this.lblDiagnosticos.Name = "lblDiagnosticos"; - this.lblDiagnosticos.Size = new System.Drawing.Size(151, 24); - this.lblDiagnosticos.TabIndex = 32; - this.lblDiagnosticos.Text = "DIAGNÓSTICOS"; + this.lblTituloAcoes.BackColor = System.Drawing.Color.Transparent; + this.lblTituloAcoes.Dock = System.Windows.Forms.DockStyle.Fill; + this.lblTituloAcoes.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold); + this.lblTituloAcoes.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(241)))), ((int)(((byte)(245)))), ((int)(((byte)(247))))); + this.lblTituloAcoes.Location = new System.Drawing.Point(0, 0); + this.lblTituloAcoes.Margin = new System.Windows.Forms.Padding(0); + this.lblTituloAcoes.Name = "lblTituloAcoes"; + this.lblTituloAcoes.Size = new System.Drawing.Size(193, 25); + this.lblTituloAcoes.TabIndex = 0; + this.lblTituloAcoes.Text = "▌ AÇÕES DA OPERAÇÃO"; + this.lblTituloAcoes.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // - // lblOperacao + // btnPausarOperacao // - this.lblOperacao.AutoSize = true; - this.lblOperacao.BackColor = System.Drawing.Color.Transparent; - this.lblOperacao.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblOperacao.Location = new System.Drawing.Point(676, 187); - this.lblOperacao.Name = "lblOperacao"; - this.lblOperacao.Size = new System.Drawing.Size(117, 24); - this.lblOperacao.TabIndex = 33; - this.lblOperacao.Text = "OPERAÇÃO"; + this.btnPausarOperacao.AccentColor = System.Drawing.Color.FromArgb(((int)(((byte)(244)))), ((int)(((byte)(181)))), ((int)(((byte)(68))))); + this.btnPausarOperacao.BackColor = System.Drawing.Color.Transparent; + this.btnPausarOperacao.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(91)))), ((int)(((byte)(38))))); + this.btnPausarOperacao.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnPausarOperacao.Dock = System.Windows.Forms.DockStyle.Fill; + this.btnPausarOperacao.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(36)))), ((int)(((byte)(41))))); + this.btnPausarOperacao.IconText = "Ⅱ"; + this.btnPausarOperacao.Location = new System.Drawing.Point(0, 27); + this.btnPausarOperacao.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.btnPausarOperacao.MinimumSize = new System.Drawing.Size(130, 36); + this.btnPausarOperacao.Name = "btnPausarOperacao"; + this.btnPausarOperacao.Padding = new System.Windows.Forms.Padding(0, 4, 0, 4); + this.btnPausarOperacao.Size = new System.Drawing.Size(193, 36); + this.btnPausarOperacao.TabIndex = 1; + this.btnPausarOperacao.Text = "RETOMAR OPERAÇÃO"; // - // lblAjustes + // btnParadaEmergencia // - this.lblAjustes.AutoSize = true; - this.lblAjustes.BackColor = System.Drawing.Color.Transparent; - this.lblAjustes.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblAjustes.Location = new System.Drawing.Point(858, 187); - this.lblAjustes.Name = "lblAjustes"; - this.lblAjustes.Size = new System.Drawing.Size(94, 24); - this.lblAjustes.TabIndex = 35; - this.lblAjustes.Text = "AJUSTES"; + this.btnParadaEmergencia.AccentColor = System.Drawing.Color.FromArgb(((int)(((byte)(239)))), ((int)(((byte)(83)))), ((int)(((byte)(80))))); + this.btnParadaEmergencia.BackColor = System.Drawing.Color.Transparent; + this.btnParadaEmergencia.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(239)))), ((int)(((byte)(83)))), ((int)(((byte)(80))))); + this.btnParadaEmergencia.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnParadaEmergencia.Dock = System.Windows.Forms.DockStyle.Fill; + this.btnParadaEmergencia.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(27)))), ((int)(((byte)(28))))); + this.btnParadaEmergencia.IconText = "■"; + this.btnParadaEmergencia.Location = new System.Drawing.Point(0, 67); + this.btnParadaEmergencia.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.btnParadaEmergencia.MinimumSize = new System.Drawing.Size(130, 36); + this.btnParadaEmergencia.Name = "btnParadaEmergencia"; + this.btnParadaEmergencia.Padding = new System.Windows.Forms.Padding(0, 4, 0, 4); + this.btnParadaEmergencia.Size = new System.Drawing.Size(193, 36); + this.btnParadaEmergencia.TabIndex = 2; + this.btnParadaEmergencia.Text = "EMERGÊNCIA"; // - // lblDesligar + // btnFinalizarOperacao // - this.lblDesligar.AutoSize = true; - this.lblDesligar.BackColor = System.Drawing.Color.Transparent; - this.lblDesligar.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblDesligar.Location = new System.Drawing.Point(850, 383); - this.lblDesligar.Name = "lblDesligar"; - this.lblDesligar.Size = new System.Drawing.Size(102, 24); - this.lblDesligar.TabIndex = 36; - this.lblDesligar.Text = "DESLIGAR"; + this.btnFinalizarOperacao.AccentColor = System.Drawing.Color.FromArgb(((int)(((byte)(164)))), ((int)(((byte)(174)))), ((int)(((byte)(181))))); + this.btnFinalizarOperacao.BackColor = System.Drawing.Color.Transparent; + this.btnFinalizarOperacao.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(53)))), ((int)(((byte)(63)))), ((int)(((byte)(69))))); + this.btnFinalizarOperacao.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnFinalizarOperacao.Dock = System.Windows.Forms.DockStyle.Fill; + this.btnFinalizarOperacao.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(36)))), ((int)(((byte)(41))))); + this.btnFinalizarOperacao.IconText = "×"; + this.btnFinalizarOperacao.Location = new System.Drawing.Point(0, 107); + this.btnFinalizarOperacao.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.btnFinalizarOperacao.MinimumSize = new System.Drawing.Size(130, 36); + this.btnFinalizarOperacao.Name = "btnFinalizarOperacao"; + this.btnFinalizarOperacao.Padding = new System.Windows.Forms.Padding(0, 4, 0, 4); + this.btnFinalizarOperacao.Size = new System.Drawing.Size(193, 38); + this.btnFinalizarOperacao.TabIndex = 3; + this.btnFinalizarOperacao.Text = "FINALIZAR OPERAÇÃO"; // - // lblModoManual + // pnlRodape // - this.lblModoManual.AutoSize = true; - this.lblModoManual.BackColor = System.Drawing.Color.Transparent; - this.lblModoManual.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblModoManual.Location = new System.Drawing.Point(489, 383); - this.lblModoManual.Name = "lblModoManual"; - this.lblModoManual.Size = new System.Drawing.Size(153, 24); - this.lblModoManual.TabIndex = 38; - this.lblModoManual.Text = "MODO MANUAL"; - // - // lblD_Sen_sULT - // - this.lblD_Sen_sULT.AutoSize = true; - this.lblD_Sen_sULT.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Sen_sULT.Location = new System.Drawing.Point(24, 22); - this.lblD_Sen_sULT.Name = "lblD_Sen_sULT"; - this.lblD_Sen_sULT.Size = new System.Drawing.Size(45, 24); - this.lblD_Sen_sULT.TabIndex = 39; - this.lblD_Sen_sULT.Text = "ULT"; - this.lblD_Sen_sULT.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblStatus - // - this.lblStatus.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.lblStatus.AutoSize = true; - this.lblStatus.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblStatus.Location = new System.Drawing.Point(473, 541); - this.lblStatus.Name = "lblStatus"; - this.lblStatus.Size = new System.Drawing.Size(84, 13); - this.lblStatus.TabIndex = 40; - this.lblStatus.Text = "Sistema Iniciado"; + this.pnlRodape.BackColor = System.Drawing.Color.Transparent; + this.pnlRodape.Controls.Add(this.lblVersao); + this.pnlRodape.Dock = System.Windows.Forms.DockStyle.Fill; + this.pnlRodape.Location = new System.Drawing.Point(0, 571); + this.pnlRodape.Margin = new System.Windows.Forms.Padding(0); + this.pnlRodape.Name = "pnlRodape"; + this.pnlRodape.Size = new System.Drawing.Size(209, 22); + this.pnlRodape.TabIndex = 3; // // lblVersao // - this.lblVersao.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.lblVersao.AutoSize = true; - this.lblVersao.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblVersao.Location = new System.Drawing.Point(12, 578); + this.lblVersao.BackColor = System.Drawing.Color.Transparent; + this.lblVersao.Dock = System.Windows.Forms.DockStyle.Fill; + this.lblVersao.Font = new System.Drawing.Font("Segoe UI", 7.25F); + this.lblVersao.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(164)))), ((int)(((byte)(174)))), ((int)(((byte)(181))))); + this.lblVersao.Location = new System.Drawing.Point(0, 0); + this.lblVersao.Margin = new System.Windows.Forms.Padding(0); this.lblVersao.Name = "lblVersao"; - this.lblVersao.Size = new System.Drawing.Size(22, 13); - this.lblVersao.TabIndex = 41; - this.lblVersao.Text = "v 0"; - // - // lblOperacaoLiberada - // - this.lblOperacaoLiberada.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.lblOperacaoLiberada.AutoSize = true; - this.lblOperacaoLiberada.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblOperacaoLiberada.Location = new System.Drawing.Point(473, 460); - this.lblOperacaoLiberada.Name = "lblOperacaoLiberada"; - this.lblOperacaoLiberada.Size = new System.Drawing.Size(124, 13); - this.lblOperacaoLiberada.TabIndex = 42; - this.lblOperacaoLiberada.Text = "Operação Liberada: Não"; - // - // lblCodigoFalha - // - this.lblCodigoFalha.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.lblCodigoFalha.AutoSize = true; - this.lblCodigoFalha.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblCodigoFalha.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblCodigoFalha.Location = new System.Drawing.Point(473, 521); - this.lblCodigoFalha.Name = "lblCodigoFalha"; - this.lblCodigoFalha.Size = new System.Drawing.Size(96, 13); - this.lblCodigoFalha.TabIndex = 43; - this.lblCodigoFalha.Text = "Código de Falha: 0"; - // - // picManual - // - this.picManual.Cursor = System.Windows.Forms.Cursors.Default; - this.picManual.Image = global::AgroBase.Properties.Resources.joystick; - this.picManual.Location = new System.Drawing.Point(491, 230); - this.picManual.Name = "picManual"; - this.picManual.Size = new System.Drawing.Size(150, 150); - this.picManual.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.picManual.TabIndex = 37; - this.picManual.TabStop = false; - // - // picDiagnosticos - // - this.picDiagnosticos.Cursor = System.Windows.Forms.Cursors.Default; - this.picDiagnosticos.Image = global::AgroBase.Properties.Resources.diagnostico; - this.picDiagnosticos.Location = new System.Drawing.Point(491, 33); - this.picDiagnosticos.Name = "picDiagnosticos"; - this.picDiagnosticos.Size = new System.Drawing.Size(150, 150); - this.picDiagnosticos.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.picDiagnosticos.TabIndex = 25; - this.picDiagnosticos.TabStop = false; - // - // picOperacao - // - this.picOperacao.Cursor = System.Windows.Forms.Cursors.Default; - this.picOperacao.Image = global::AgroBase.Properties.Resources.cana; - this.picOperacao.Location = new System.Drawing.Point(659, 33); - this.picOperacao.Name = "picOperacao"; - this.picOperacao.Size = new System.Drawing.Size(150, 150); - this.picOperacao.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.picOperacao.TabIndex = 26; - this.picOperacao.TabStop = false; - // - // picAjustes - // - this.picAjustes.Cursor = System.Windows.Forms.Cursors.Default; - this.picAjustes.Image = global::AgroBase.Properties.Resources.ajustes; - this.picAjustes.Location = new System.Drawing.Point(827, 33); - this.picAjustes.Name = "picAjustes"; - this.picAjustes.Size = new System.Drawing.Size(150, 150); - this.picAjustes.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.picAjustes.TabIndex = 29; - this.picAjustes.TabStop = false; - // - // picDesligar - // - this.picDesligar.Cursor = System.Windows.Forms.Cursors.Default; - this.picDesligar.Image = global::AgroBase.Properties.Resources.desligar; - this.picDesligar.Location = new System.Drawing.Point(827, 230); - this.picDesligar.Name = "picDesligar"; - this.picDesligar.Size = new System.Drawing.Size(150, 150); - this.picDesligar.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.picDesligar.TabIndex = 27; - this.picDesligar.TabStop = false; - // - // picRobo - // - this.picRobo.Image = global::AgroBase.Properties.Resources.robo_superior; - this.picRobo.Location = new System.Drawing.Point(12, 12); - this.picRobo.Name = "picRobo"; - this.picRobo.Size = new System.Drawing.Size(455, 563); - this.picRobo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.picRobo.TabIndex = 1; - this.picRobo.TabStop = false; - // - // picWifi - // - this.picWifi.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.picWifi.Image = global::AgroBase.Properties.Resources.wifi_off; - this.picWifi.Location = new System.Drawing.Point(952, 528); - this.picWifi.Name = "picWifi"; - this.picWifi.Size = new System.Drawing.Size(60, 60); - this.picWifi.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.picWifi.TabIndex = 44; - this.picWifi.TabStop = false; - // - // pgbAtualizacaoArquivos - // - this.pgbAtualizacaoArquivos.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.pgbAtualizacaoArquivos.Location = new System.Drawing.Point(476, 565); - this.pgbAtualizacaoArquivos.Name = "pgbAtualizacaoArquivos"; - this.pgbAtualizacaoArquivos.Size = new System.Drawing.Size(272, 23); - this.pgbAtualizacaoArquivos.TabIndex = 45; - // - // lblProgressoAtualizacao - // - this.lblProgressoAtualizacao.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.lblProgressoAtualizacao.AutoSize = true; - this.lblProgressoAtualizacao.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblProgressoAtualizacao.Location = new System.Drawing.Point(754, 570); - this.lblProgressoAtualizacao.Name = "lblProgressoAtualizacao"; - this.lblProgressoAtualizacao.Size = new System.Drawing.Size(152, 13); - this.lblProgressoAtualizacao.TabIndex = 46; - this.lblProgressoAtualizacao.Text = "(0,00%) Atualizando arquivos..."; - // - // lblIA - // - this.lblIA.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.lblIA.AutoSize = true; - this.lblIA.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblIA.Location = new System.Drawing.Point(473, 501); - this.lblIA.Name = "lblIA"; - this.lblIA.Size = new System.Drawing.Size(93, 13); - this.lblIA.TabIndex = 47; - this.lblIA.Text = "IA: Desconectado"; - // - // lblD_Sen_sNTC_DT - // - this.lblD_Sen_sNTC_DT.AutoSize = true; - this.lblD_Sen_sNTC_DT.BackColor = System.Drawing.Color.Lavender; - this.lblD_Sen_sNTC_DT.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Sen_sNTC_DT.Location = new System.Drawing.Point(346, 395); - this.lblD_Sen_sNTC_DT.Name = "lblD_Sen_sNTC_DT"; - this.lblD_Sen_sNTC_DT.Size = new System.Drawing.Size(50, 24); - this.lblD_Sen_sNTC_DT.TabIndex = 48; - this.lblD_Sen_sNTC_DT.Text = "TMP"; - this.lblD_Sen_sNTC_DT.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Sen_sNTC_ET - // - this.lblD_Sen_sNTC_ET.AutoSize = true; - this.lblD_Sen_sNTC_ET.BackColor = System.Drawing.Color.Lavender; - this.lblD_Sen_sNTC_ET.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Sen_sNTC_ET.Location = new System.Drawing.Point(72, 395); - this.lblD_Sen_sNTC_ET.Name = "lblD_Sen_sNTC_ET"; - this.lblD_Sen_sNTC_ET.Size = new System.Drawing.Size(50, 24); - this.lblD_Sen_sNTC_ET.TabIndex = 49; - this.lblD_Sen_sNTC_ET.Text = "TMP"; - this.lblD_Sen_sNTC_ET.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Sen_sNTC_EF - // - this.lblD_Sen_sNTC_EF.AutoSize = true; - this.lblD_Sen_sNTC_EF.BackColor = System.Drawing.Color.Transparent; - this.lblD_Sen_sNTC_EF.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Sen_sNTC_EF.Location = new System.Drawing.Point(68, 57); - this.lblD_Sen_sNTC_EF.Name = "lblD_Sen_sNTC_EF"; - this.lblD_Sen_sNTC_EF.Size = new System.Drawing.Size(50, 24); - this.lblD_Sen_sNTC_EF.TabIndex = 50; - this.lblD_Sen_sNTC_EF.Text = "TMP"; - this.lblD_Sen_sNTC_EF.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Sen_sNTC_DF - // - this.lblD_Sen_sNTC_DF.AutoSize = true; - this.lblD_Sen_sNTC_DF.BackColor = System.Drawing.Color.Transparent; - this.lblD_Sen_sNTC_DF.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Sen_sNTC_DF.Location = new System.Drawing.Point(346, 57); - this.lblD_Sen_sNTC_DF.Name = "lblD_Sen_sNTC_DF"; - this.lblD_Sen_sNTC_DF.Size = new System.Drawing.Size(50, 24); - this.lblD_Sen_sNTC_DF.TabIndex = 51; - this.lblD_Sen_sNTC_DF.Text = "TMP"; - this.lblD_Sen_sNTC_DF.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Sen_sSRV_DT - // - this.lblD_Sen_sSRV_DT.AutoSize = true; - this.lblD_Sen_sSRV_DT.BackColor = System.Drawing.Color.Lavender; - this.lblD_Sen_sSRV_DT.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Sen_sSRV_DT.Location = new System.Drawing.Point(346, 318); - this.lblD_Sen_sSRV_DT.Name = "lblD_Sen_sSRV_DT"; - this.lblD_Sen_sSRV_DT.Size = new System.Drawing.Size(50, 24); - this.lblD_Sen_sSRV_DT.TabIndex = 52; - this.lblD_Sen_sSRV_DT.Text = "FRO"; - this.lblD_Sen_sSRV_DT.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Sen_sSRV_ET - // - this.lblD_Sen_sSRV_ET.AutoSize = true; - this.lblD_Sen_sSRV_ET.BackColor = System.Drawing.Color.Lavender; - this.lblD_Sen_sSRV_ET.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Sen_sSRV_ET.Location = new System.Drawing.Point(72, 318); - this.lblD_Sen_sSRV_ET.Name = "lblD_Sen_sSRV_ET"; - this.lblD_Sen_sSRV_ET.Size = new System.Drawing.Size(50, 24); - this.lblD_Sen_sSRV_ET.TabIndex = 53; - this.lblD_Sen_sSRV_ET.Text = "FRO"; - this.lblD_Sen_sSRV_ET.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Sen_sCOR_3V - // - this.lblD_Sen_sCOR_3V.AutoSize = true; - this.lblD_Sen_sCOR_3V.BackColor = System.Drawing.Color.Transparent; - this.lblD_Sen_sCOR_3V.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Sen_sCOR_3V.Location = new System.Drawing.Point(398, 178); - this.lblD_Sen_sCOR_3V.Name = "lblD_Sen_sCOR_3V"; - this.lblD_Sen_sCOR_3V.Size = new System.Drawing.Size(55, 24); - this.lblD_Sen_sCOR_3V.TabIndex = 54; - this.lblD_Sen_sCOR_3V.Text = "B_3V"; - this.lblD_Sen_sCOR_3V.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Sen_sCOR_5V - // - this.lblD_Sen_sCOR_5V.AutoSize = true; - this.lblD_Sen_sCOR_5V.BackColor = System.Drawing.Color.Transparent; - this.lblD_Sen_sCOR_5V.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Sen_sCOR_5V.Location = new System.Drawing.Point(398, 202); - this.lblD_Sen_sCOR_5V.Name = "lblD_Sen_sCOR_5V"; - this.lblD_Sen_sCOR_5V.Size = new System.Drawing.Size(55, 24); - this.lblD_Sen_sCOR_5V.TabIndex = 55; - this.lblD_Sen_sCOR_5V.Text = "B_5V"; - this.lblD_Sen_sCOR_5V.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Sen_sCOR_7V2 - // - this.lblD_Sen_sCOR_7V2.AutoSize = true; - this.lblD_Sen_sCOR_7V2.BackColor = System.Drawing.Color.Lavender; - this.lblD_Sen_sCOR_7V2.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Sen_sCOR_7V2.Location = new System.Drawing.Point(398, 226); - this.lblD_Sen_sCOR_7V2.Name = "lblD_Sen_sCOR_7V2"; - this.lblD_Sen_sCOR_7V2.Size = new System.Drawing.Size(55, 24); - this.lblD_Sen_sCOR_7V2.TabIndex = 56; - this.lblD_Sen_sCOR_7V2.Text = "B_7V"; - this.lblD_Sen_sCOR_7V2.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Sen_sCOR_12V - // - this.lblD_Sen_sCOR_12V.AutoSize = true; - this.lblD_Sen_sCOR_12V.BackColor = System.Drawing.Color.Lavender; - this.lblD_Sen_sCOR_12V.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Sen_sCOR_12V.Location = new System.Drawing.Point(398, 250); - this.lblD_Sen_sCOR_12V.Name = "lblD_Sen_sCOR_12V"; - this.lblD_Sen_sCOR_12V.Size = new System.Drawing.Size(65, 24); - this.lblD_Sen_sCOR_12V.TabIndex = 57; - this.lblD_Sen_sCOR_12V.Text = "B_12V"; - this.lblD_Sen_sCOR_12V.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Sen_sCOR_19V - // - this.lblD_Sen_sCOR_19V.AutoSize = true; - this.lblD_Sen_sCOR_19V.BackColor = System.Drawing.Color.Lavender; - this.lblD_Sen_sCOR_19V.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Sen_sCOR_19V.Location = new System.Drawing.Point(398, 274); - this.lblD_Sen_sCOR_19V.Name = "lblD_Sen_sCOR_19V"; - this.lblD_Sen_sCOR_19V.Size = new System.Drawing.Size(65, 24); - this.lblD_Sen_sCOR_19V.TabIndex = 58; - this.lblD_Sen_sCOR_19V.Text = "B_19V"; - this.lblD_Sen_sCOR_19V.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Sen_sCOR_24V - // - this.lblD_Sen_sCOR_24V.AutoSize = true; - this.lblD_Sen_sCOR_24V.BackColor = System.Drawing.Color.Lavender; - this.lblD_Sen_sCOR_24V.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Sen_sCOR_24V.Location = new System.Drawing.Point(398, 298); - this.lblD_Sen_sCOR_24V.Name = "lblD_Sen_sCOR_24V"; - this.lblD_Sen_sCOR_24V.Size = new System.Drawing.Size(65, 24); - this.lblD_Sen_sCOR_24V.TabIndex = 59; - this.lblD_Sen_sCOR_24V.Text = "B_24V"; - this.lblD_Sen_sCOR_24V.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Atu_sPRS - // - this.lblD_Atu_sPRS.AutoSize = true; - this.lblD_Atu_sPRS.BackColor = System.Drawing.Color.Lavender; - this.lblD_Atu_sPRS.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Atu_sPRS.Location = new System.Drawing.Point(155, 480); - this.lblD_Atu_sPRS.Name = "lblD_Atu_sPRS"; - this.lblD_Atu_sPRS.Size = new System.Drawing.Size(47, 24); - this.lblD_Atu_sPRS.TabIndex = 61; - this.lblD_Atu_sPRS.Text = "PRS"; - this.lblD_Atu_sPRS.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Atu_sBMB - // - this.lblD_Atu_sBMB.AutoSize = true; - this.lblD_Atu_sBMB.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lblD_Atu_sBMB.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Atu_sBMB.Location = new System.Drawing.Point(196, 418); - this.lblD_Atu_sBMB.Name = "lblD_Atu_sBMB"; - this.lblD_Atu_sBMB.Size = new System.Drawing.Size(78, 24); - this.lblD_Atu_sBMB.TabIndex = 62; - this.lblD_Atu_sBMB.Text = "BOMBA"; - this.lblD_Atu_sBMB.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Lra - // - this.lblD_Lra.AutoSize = true; - this.lblD_Lra.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Lra.Location = new System.Drawing.Point(213, 57); - this.lblD_Lra.Name = "lblD_Lra"; - this.lblD_Lra.Size = new System.Drawing.Size(46, 24); - this.lblD_Lra.TabIndex = 63; - this.lblD_Lra.Text = "LRA"; - this.lblD_Lra.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Atu_sMAS - // - this.lblD_Atu_sMAS.AutoSize = true; - this.lblD_Atu_sMAS.BackColor = System.Drawing.Color.Lavender; - this.lblD_Atu_sMAS.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Atu_sMAS.Location = new System.Drawing.Point(269, 480); - this.lblD_Atu_sMAS.Name = "lblD_Atu_sMAS"; - this.lblD_Atu_sMAS.Size = new System.Drawing.Size(51, 24); - this.lblD_Atu_sMAS.TabIndex = 64; - this.lblD_Atu_sMAS.Text = "MAS"; - this.lblD_Atu_sMAS.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Atu_sFLX - // - this.lblD_Atu_sFLX.AutoSize = true; - this.lblD_Atu_sFLX.BackColor = System.Drawing.Color.Lavender; - this.lblD_Atu_sFLX.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Atu_sFLX.Location = new System.Drawing.Point(212, 480); - this.lblD_Atu_sFLX.Name = "lblD_Atu_sFLX"; - this.lblD_Atu_sFLX.Size = new System.Drawing.Size(46, 24); - this.lblD_Atu_sFLX.TabIndex = 65; - this.lblD_Atu_sFLX.Text = "FLX"; - this.lblD_Atu_sFLX.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Atu_sBIC_B01 - // - this.lblD_Atu_sBIC_B01.AutoSize = true; - this.lblD_Atu_sBIC_B01.BackColor = System.Drawing.Color.Lavender; - this.lblD_Atu_sBIC_B01.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Atu_sBIC_B01.Location = new System.Drawing.Point(36, 528); - this.lblD_Atu_sBIC_B01.Name = "lblD_Atu_sBIC_B01"; - this.lblD_Atu_sBIC_B01.Size = new System.Drawing.Size(32, 24); - this.lblD_Atu_sBIC_B01.TabIndex = 66; - this.lblD_Atu_sBIC_B01.Text = "B1"; - this.lblD_Atu_sBIC_B01.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Atu_sBIC_B02 - // - this.lblD_Atu_sBIC_B02.AutoSize = true; - this.lblD_Atu_sBIC_B02.BackColor = System.Drawing.Color.Lavender; - this.lblD_Atu_sBIC_B02.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Atu_sBIC_B02.Location = new System.Drawing.Point(142, 528); - this.lblD_Atu_sBIC_B02.Name = "lblD_Atu_sBIC_B02"; - this.lblD_Atu_sBIC_B02.Size = new System.Drawing.Size(32, 24); - this.lblD_Atu_sBIC_B02.TabIndex = 67; - this.lblD_Atu_sBIC_B02.Text = "B2"; - this.lblD_Atu_sBIC_B02.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Atu_sBIC_B03 - // - this.lblD_Atu_sBIC_B03.AutoSize = true; - this.lblD_Atu_sBIC_B03.BackColor = System.Drawing.Color.White; - this.lblD_Atu_sBIC_B03.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Atu_sBIC_B03.Location = new System.Drawing.Point(297, 528); - this.lblD_Atu_sBIC_B03.Name = "lblD_Atu_sBIC_B03"; - this.lblD_Atu_sBIC_B03.Size = new System.Drawing.Size(32, 24); - this.lblD_Atu_sBIC_B03.TabIndex = 68; - this.lblD_Atu_sBIC_B03.Text = "B3"; - this.lblD_Atu_sBIC_B03.Click += new System.EventHandler(this.lblModulo_Click); - // - // lblD_Atu_sBIC_B04 - // - this.lblD_Atu_sBIC_B04.AutoSize = true; - this.lblD_Atu_sBIC_B04.BackColor = System.Drawing.Color.White; - this.lblD_Atu_sBIC_B04.Cursor = System.Windows.Forms.Cursors.Hand; - this.lblD_Atu_sBIC_B04.Location = new System.Drawing.Point(398, 528); - this.lblD_Atu_sBIC_B04.Name = "lblD_Atu_sBIC_B04"; - this.lblD_Atu_sBIC_B04.Size = new System.Drawing.Size(32, 24); - this.lblD_Atu_sBIC_B04.TabIndex = 69; - this.lblD_Atu_sBIC_B04.Text = "B4"; - this.lblD_Atu_sBIC_B04.Click += new System.EventHandler(this.lblModulo_Click); + this.lblVersao.Size = new System.Drawing.Size(209, 22); + this.lblVersao.TabIndex = 0; + this.lblVersao.Text = "IHM Rover • v 0.0.0.0"; + this.lblVersao.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // pnlDivisor + // + this.pnlDivisor.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(42)))), ((int)(((byte)(51)))), ((int)(((byte)(57))))); + this.pnlDivisor.Dock = System.Windows.Forms.DockStyle.Right; + this.pnlDivisor.Location = new System.Drawing.Point(216, 7); + this.pnlDivisor.Margin = new System.Windows.Forms.Padding(0); + this.pnlDivisor.Name = "pnlDivisor"; + this.pnlDivisor.Size = new System.Drawing.Size(1, 593); + this.pnlDivisor.TabIndex = 1; + // + // pnlConteudo + // + this.pnlConteudo.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(17)))), ((int)(((byte)(20))))); + this.pnlConteudo.Dock = System.Windows.Forms.DockStyle.Fill; + this.pnlConteudo.Location = new System.Drawing.Point(224, 0); + this.pnlConteudo.Margin = new System.Windows.Forms.Padding(0); + this.pnlConteudo.Name = "pnlConteudo"; + this.pnlConteudo.Size = new System.Drawing.Size(800, 600); + this.pnlConteudo.TabIndex = 1; // // frmIHM // - this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 24F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.Color.White; + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(17)))), ((int)(((byte)(20))))); this.ClientSize = new System.Drawing.Size(1024, 600); - this.Controls.Add(this.lblD_Atu_sBIC_B04); - this.Controls.Add(this.lblD_Atu_sBIC_B03); - this.Controls.Add(this.lblD_Atu_sBIC_B02); - this.Controls.Add(this.lblD_Atu_sBIC_B01); - this.Controls.Add(this.lblD_Atu_sFLX); - this.Controls.Add(this.lblD_Atu_sMAS); - this.Controls.Add(this.lblD_Lra); - this.Controls.Add(this.lblD_Atu_sBMB); - this.Controls.Add(this.lblD_Atu_sPRS); - this.Controls.Add(this.lblD_Sen_sCOR_24V); - this.Controls.Add(this.lblD_Sen_sCOR_19V); - this.Controls.Add(this.lblD_Sen_sCOR_12V); - this.Controls.Add(this.lblD_Sen_sCOR_7V2); - this.Controls.Add(this.lblD_Sen_sCOR_5V); - this.Controls.Add(this.lblD_Sen_sCOR_3V); - this.Controls.Add(this.lblD_Sen_sSRV_ET); - this.Controls.Add(this.lblD_Sen_sSRV_DT); - this.Controls.Add(this.lblD_Sen_sNTC_DF); - this.Controls.Add(this.lblD_Sen_sNTC_EF); - this.Controls.Add(this.lblD_Sen_sNTC_ET); - this.Controls.Add(this.lblD_Sen_sNTC_DT); - this.Controls.Add(this.lblIA); - this.Controls.Add(this.lblProgressoAtualizacao); - this.Controls.Add(this.pgbAtualizacaoArquivos); - this.Controls.Add(this.picWifi); - this.Controls.Add(this.lblCodigoFalha); - this.Controls.Add(this.lblOperacaoLiberada); - this.Controls.Add(this.lblVersao); - this.Controls.Add(this.lblStatus); - this.Controls.Add(this.lblD_Sen_sULT); - this.Controls.Add(this.lblModoManual); - this.Controls.Add(this.picManual); - this.Controls.Add(this.lblDesligar); - this.Controls.Add(this.lblAjustes); - this.Controls.Add(this.lblOperacao); - this.Controls.Add(this.lblDiagnosticos); - this.Controls.Add(this.picDiagnosticos); - this.Controls.Add(this.picOperacao); - this.Controls.Add(this.lblD_Snr); - this.Controls.Add(this.picAjustes); - this.Controls.Add(this.lblD_Cam_0); - this.Controls.Add(this.picDesligar); - this.Controls.Add(this.lblD_Dir_ET); - this.Controls.Add(this.lblD_Mov_ET); - this.Controls.Add(this.lblD_Dir_DT); - this.Controls.Add(this.lblD_Dir_EF); - this.Controls.Add(this.lblD_Mov_EF); - this.Controls.Add(this.lblD_Dir_DF); - this.Controls.Add(this.lblD_Mov_DT); - this.Controls.Add(this.lblD_Imu); - this.Controls.Add(this.lblD_Sen_sCOR_36V); - this.Controls.Add(this.lblMqtt); - this.Controls.Add(this.lblD_Gps); - this.Controls.Add(this.lblD_Sen); - this.Controls.Add(this.lblD_Atu); - this.Controls.Add(this.lblD_Mov_DF); - this.Controls.Add(this.picRobo); - this.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Controls.Add(this.layoutPrincipal); + this.DoubleBuffered = true; + this.Font = new System.Drawing.Font("Segoe UI", 9F); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Margin = new System.Windows.Forms.Padding(6); this.Name = "frmIHM"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Agrobotics Persistence"; + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.frmIHM_FormClosed); this.Load += new System.EventHandler(this.frmIHM_Load); - ((System.ComponentModel.ISupportInitialize)(this.picManual)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.picDiagnosticos)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.picOperacao)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.picAjustes)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.picDesligar)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.picRobo)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.picWifi)).EndInit(); + this.layoutPrincipal.ResumeLayout(false); + this.pnlEsquerdo.ResumeLayout(false); + this.sidebarLayout.ResumeLayout(false); + this.pnlStatusOperacao.ResumeLayout(false); + this.statusLayout.ResumeLayout(false); + this.statusTituloLayout.ResumeLayout(false); + this.pnlResumo.ResumeLayout(false); + this.resumoLayout.ResumeLayout(false); + this.pnlAcoesOperacao.ResumeLayout(false); + this.acoesLayout.ResumeLayout(false); + this.pnlRodape.ResumeLayout(false); this.ResumeLayout(false); - this.PerformLayout(); } #endregion - private System.Windows.Forms.PictureBox picRobo; - private System.Windows.Forms.Label lblD_Mov_DF; - private System.Windows.Forms.Label lblD_Atu; - private System.Windows.Forms.Label lblD_Sen; - private System.Windows.Forms.Label lblD_Gps; - private System.Windows.Forms.Label lblMqtt; - private System.Windows.Forms.Label lblD_Sen_sCOR_36V; - private System.Windows.Forms.Label lblD_Imu; - private System.Windows.Forms.Label lblD_Mov_DT; - private System.Windows.Forms.Label lblD_Dir_DF; - private System.Windows.Forms.Label lblD_Dir_EF; - private System.Windows.Forms.Label lblD_Mov_EF; - private System.Windows.Forms.Label lblD_Dir_DT; - private System.Windows.Forms.Label lblD_Dir_ET; - private System.Windows.Forms.Label lblD_Mov_ET; - private System.Windows.Forms.PictureBox picDiagnosticos; - private System.Windows.Forms.PictureBox picOperacao; - private System.Windows.Forms.PictureBox picDesligar; - private System.Windows.Forms.Label lblD_Cam_0; - private System.Windows.Forms.Label lblD_Snr; - private System.Windows.Forms.PictureBox picAjustes; - private System.Windows.Forms.Label lblDiagnosticos; - private System.Windows.Forms.Label lblOperacao; - private System.Windows.Forms.Label lblAjustes; - private System.Windows.Forms.Label lblDesligar; - private System.Windows.Forms.Label lblModoManual; - private System.Windows.Forms.PictureBox picManual; - private System.Windows.Forms.Label lblD_Sen_sULT; - public System.Windows.Forms.Label lblStatus; + private System.Windows.Forms.TableLayoutPanel layoutPrincipal; + private System.Windows.Forms.Panel pnlEsquerdo; + private System.Windows.Forms.TableLayoutPanel sidebarLayout; + + private AgroBase.Forms.IHM.Controls.HmiRoundedPanel + pnlStatusOperacao; + + private System.Windows.Forms.TableLayoutPanel statusLayout; + private System.Windows.Forms.Label lblContexto; + private System.Windows.Forms.TableLayoutPanel statusTituloLayout; + private System.Windows.Forms.Label lblIndicadorStatus; + private System.Windows.Forms.Label lblStatusOperacao; + private System.Windows.Forms.Label lblStatusOperacaoDetalhes; + + private AgroBase.Forms.IHM.Controls.HmiRoundedPanel + pnlResumo; + + private System.Windows.Forms.TableLayoutPanel resumoLayout; + private System.Windows.Forms.Label lblTituloResumo; + private System.Windows.Forms.FlowLayoutPanel fpnlResumo; + + private AgroBase.Forms.IHM.Controls.HmiRoundedPanel + pnlAcoesOperacao; + + private System.Windows.Forms.TableLayoutPanel acoesLayout; + private System.Windows.Forms.Label lblTituloAcoes; + + private AgroBase.Forms.IHM.Controls.HmiSidebarButton + btnPausarOperacao; + + private AgroBase.Forms.IHM.Controls.HmiSidebarButton + btnParadaEmergencia; + + private AgroBase.Forms.IHM.Controls.HmiSidebarButton + btnFinalizarOperacao; + + private System.Windows.Forms.Panel pnlRodape; + public System.Windows.Forms.Label lblVersao; - private System.Windows.Forms.Label lblOperacaoLiberada; - private System.Windows.Forms.Label lblCodigoFalha; - private System.Windows.Forms.PictureBox picWifi; - public System.Windows.Forms.Label lblProgressoAtualizacao; - public System.Windows.Forms.ProgressBar pgbAtualizacaoArquivos; - private System.Windows.Forms.Label lblIA; - private System.Windows.Forms.Label lblD_Sen_sNTC_DT; - private System.Windows.Forms.Label lblD_Sen_sNTC_ET; - private System.Windows.Forms.Label lblD_Sen_sNTC_EF; - private System.Windows.Forms.Label lblD_Sen_sNTC_DF; - private System.Windows.Forms.Label lblD_Sen_sSRV_DT; - private System.Windows.Forms.Label lblD_Sen_sSRV_ET; - private System.Windows.Forms.Label lblD_Sen_sCOR_3V; - private System.Windows.Forms.Label lblD_Sen_sCOR_5V; - private System.Windows.Forms.Label lblD_Sen_sCOR_7V2; - private System.Windows.Forms.Label lblD_Sen_sCOR_12V; - private System.Windows.Forms.Label lblD_Sen_sCOR_19V; - private System.Windows.Forms.Label lblD_Sen_sCOR_24V; - private System.Windows.Forms.Label lblD_Atu_sPRS; - private System.Windows.Forms.Label lblD_Atu_sBMB; - private System.Windows.Forms.Label lblD_Lra; - private System.Windows.Forms.Label lblD_Atu_sMAS; - private System.Windows.Forms.Label lblD_Atu_sFLX; - private System.Windows.Forms.Label lblD_Atu_sBIC_B01; - private System.Windows.Forms.Label lblD_Atu_sBIC_B02; - private System.Windows.Forms.Label lblD_Atu_sBIC_B03; - private System.Windows.Forms.Label lblD_Atu_sBIC_B04; + + private System.Windows.Forms.Panel pnlDivisor; + private System.Windows.Forms.Panel pnlConteudo; } -} \ No newline at end of file +} diff --git a/AgroBase/AgroBase/Forms/IHM/frmIHM.cs b/AgroBase/AgroBase/Forms/IHM/frmIHM.cs index 5a3fc9e2f..348530fdb 100644 --- a/AgroBase/AgroBase/Forms/IHM/frmIHM.cs +++ b/AgroBase/AgroBase/Forms/IHM/frmIHM.cs @@ -1,441 +1,982 @@ -using AgroBase.Forms.Operacoes; +using AgroBase.Forms.IHM.Controls; using AgroBase.Models; -using AgroBase.Models.Components; -using AgroBase.Models.Modules; using AgroBase.Models.Operadores; -using AgroBase.Properties; -using AgroBase.Services; -using AgroBase.Services.Operadores; -using OpenHardwareMonitor.Hardware; using System; using System.Collections.Generic; -using System.Data; -using System.Diagnostics; using System.Drawing; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; -using static AgroBase.Models.Enums; namespace AgroBase.Forms.IHM { public partial class frmIHM : Form { - AsyncTaskTimerModel tmrDispositivos; + private AsyncTaskTimerModel tmrDispositivos; + + private Form _telaAtual; + + public frmMenu frmMenu = new frmMenu(); + + private StatusOperacaoControl cardBateria; + private StatusOperacaoControl cardReservatorio; + private StatusOperacaoControl cardTemperatura; + private StatusOperacaoControl cardRede; + private StatusOperacaoControl cardGnss; + private StatusOperacaoControl cardBase; + + public event EventHandler PausarOperacaoSolicitado; + public event EventHandler ParadaEmergenciaSolicitada; + public event EventHandler FinalizarOperacaoSolicitado; public frmIHM() { InitializeComponent(); - FuncoesGlobais.DefinirEventosPicBtn(picOperacao, "Erro ao carregar operação!", async () => - { - frmInicioOperacao frm = new frmInicioOperacao(); - frm.ShowDialog(); - }); - FuncoesGlobais.DefinirEventosPicBtn(picDiagnosticos, "Erro ao processar diagnóstico!", async () => - { - frmDiagnosticos frm = new frmDiagnosticos(); - frm.ShowDialog(); - }); - FuncoesGlobais.DefinirEventosPicBtn(picAjustes, "Erro ao realizar ajustes!", async () => - { - frmAjustes frm = new frmAjustes(); - frm.ShowDialog(); - }); - FuncoesGlobais.DefinirEventosPicBtn(picManual, "Erro ao carregar modo de controle manual!", async () => - { - Variaveis.OperacaoEmAndamento = OperacaoModel.CarregarParametrosOperacaoPadrao(ModoOperacao.Manual, CarregarModulos: true); - var op = Variaveis.OperacaoEmAndamento; - if (op.Sensoriamento.Operacao.OperacaoLiberada) - { - frmDialogoMapa frm = new frmDialogoMapa(); - frm.Show(); - frm.InicializarModoManual(); - } - else - { - CustomDialog.ShowDialog( - "Iniciar Operação Manual", - $"{op.Sensoriamento.Operacao.ErroOperacaoLiberada ?? ""}", - MessageBoxIcon.Error, - new Dictionary<(string, dynamic), Action>() - { - { ("OK", null), () => { } }, - } - ); - } - }); - FuncoesGlobais.DefinirEventosPicBtn(picDesligar, "Erro ao desligar equipamento!", async () => - { - if (Variaveis.Producao) - { - var res = CustomDialog.ShowDialog( - "Desligar", - "Deseja Desligar o Equipamento?", - MessageBoxIcon.Question, - new Dictionary<(string, DialogResult?), Action>() - { - { ("Sim", DialogResult.Yes), () => { } }, - { ("Não", DialogResult.No), () => { } }, - } - ); - if (res == DialogResult.Yes) - { - Process.Start("shutdown", "/s /t 0"); - } - } - else - { - this.Close(); - } - }); - FuncoesGlobais.DefinirEventosPicBtn(picWifi, "Erro ao procurar por atualizações!", async () => - { - if (APIService.HasInternet) - { - await VersionamentoService.AtualizarArquivoVersionamento(true); + CriarCardsResumo(); + VincularAcoesLaterais(); + } - var arquivosNaoEncontrados = VersionamentoService.ArquivosNaoEncontrados.ToList(); - bool sucesso = !arquivosNaoEncontrados.Any(); + private void CriarCardsResumo() + { + cardBateria = CriarCard( + "cardBateria", + "Bateria", + "47%", + HmiTheme.Success, + Properties.Resources.bateria); - CustomDialog.ShowDialog( - "Resultado", - "Atualização concluída com " + (sucesso ? "sucesso" : "falha") + "!\r\n\r\n" + - (!sucesso ? - ("Arquivos não encontrados:\r\n\r\n" + string.Join("\r\n", arquivosNaoEncontrados)) : - "Nenhum arquivo pendente!"), - sucesso ? MessageBoxIcon.Asterisk : MessageBoxIcon.Error, - new Dictionary<(string, dynamic), Action>() - { - { ("OK", null), () => { } }, - } - ); - } - else - { - CustomDialog.ShowDialog( - "Equipamento Desconectado", - "Impossível procurar por atualizações!", - MessageBoxIcon.Warning, - new Dictionary<(string, dynamic), Action>() - { - { ("OK", null), () => { } }, - } - ); - } - }); + cardReservatorio = CriarCard( + "cardReservatorio", + "Reservatório", + "23%", + HmiTheme.Info, + Properties.Resources.reservatorio); + + cardTemperatura = CriarCard( + "cardTemperatura", + "Temperatura", + "32°C", + HmiTheme.Warning, + Properties.Resources.temperatura); + + cardRede = CriarCard( + "cardRede", + "Rede", + "100%", + HmiTheme.Success, + Properties.Resources.rede1); + + cardGnss = CriarCard( + "cardGnss", + "GNSS", + "RTK Fixo 0,25 cm", + HmiTheme.Info, + Properties.Resources.gnss); + + cardBase = CriarCard( + "cardBase", + "Base", + "264,7 m", + HmiTheme.Manual, + Properties.Resources._base); + + fpnlResumo.SuspendLayout(); + + try + { + fpnlResumo.Controls.Clear(); + + fpnlResumo.Controls.Add(cardBateria); + fpnlResumo.Controls.Add(cardReservatorio); + fpnlResumo.Controls.Add(cardTemperatura); + fpnlResumo.Controls.Add(cardRede); + fpnlResumo.Controls.Add(cardGnss); + fpnlResumo.Controls.Add(cardBase); + } + finally + { + fpnlResumo.ResumeLayout(true); + } + + AjustarLarguraCards(); + } + + private StatusOperacaoControl CriarCard(string nome, string titulo, string valor, Color cor, Image icon) + { + return new StatusOperacaoControl + { + Name = nome, + Titulo = titulo, + Valor = valor, + CorValor = cor, + CorDestaque = cor, + CorFundo = HmiTheme.SurfaceRaised, + CorBorda = HmiTheme.BorderSoft, + CorTitulo = HmiTheme.Text, + Icone = icon, + Height = 42, + Margin = new Padding(0, 0, 0, 5) + }; + } + + private void VincularAcoesLaterais() + { + btnPausarOperacao.Click += delegate + { + if (PausarOperacaoSolicitado != null) + PausarOperacaoSolicitado(this, EventArgs.Empty); + }; + + btnParadaEmergencia.Click += delegate + { + if (ParadaEmergenciaSolicitada != null) + ParadaEmergenciaSolicitada(this, EventArgs.Empty); + }; + + btnFinalizarOperacao.Click += delegate + { + if (FinalizarOperacaoSolicitado != null) + FinalizarOperacaoSolicitado(this, EventArgs.Empty); + }; } private void frmIHM_Load(object sender, EventArgs e) { - lblVersao.Text = "v " + Variaveis.Versao; + lblVersao.Text = "IHM Rover • v " + Variaveis.Versao; + AbrirTela(frmMenu); + + if (tmrDispositivos != null) + tmrDispositivos.Dispose(); - tmrDispositivos?.Dispose(); tmrDispositivos = new AsyncTaskTimerModel("tmrDispositivos", tmrDispositivos_Tick, 1000, this); - tmrDispositivos.Start(); - lblCodigoFalha.Click -= LblCodigoFalha_Click; - lblCodigoFalha.Click += LblCodigoFalha_Click; + tmrDispositivos.Start(); } - private async Task tmrDispositivos_Tick() + private void frmIHM_FormClosed(object sender, FormClosedEventArgs e) + { + if (tmrDispositivos == null) + return; + + tmrDispositivos.Dispose(); + tmrDispositivos = null; + } + + private Task tmrDispositivos_Tick() { try { - // Atualizar controles da UI de forma segura - if (tmrDispositivos._uiControl.InvokeRequired) + if (IsDisposed || Disposing || !IsHandleCreated) + return Task.CompletedTask; + + if (InvokeRequired) { - tmrDispositivos._uiControl.Invoke(new Action(async () => await AtualizarControlesUI())); + BeginInvoke(new Action(AtualizarControlesUI)); } else { - await AtualizarControlesUI(); + AtualizarControlesUI(); } } catch (Exception ex) { - Console.WriteLine($"Erro no tmrDispositivos_Tick: {ex.Message}"); + Console.WriteLine( + "Erro no tmrDispositivos_Tick: " + ex.Message); } + + return Task.CompletedTask; } - private async Task AtualizarControlesUI() + public void AtualizarControlesUI() { - var Labels = this.Controls.OfType