diff --git a/FATrace.OEMApp/FATrace.OEMApp.csproj b/FATrace.OEMApp/FATrace.OEMApp.csproj
index e0d72f3..2883a18 100644
--- a/FATrace.OEMApp/FATrace.OEMApp.csproj
+++ b/FATrace.OEMApp/FATrace.OEMApp.csproj
@@ -419,7 +419,7 @@
-
+
diff --git a/FATrace.OEMApp/MainApp.Designer.cs b/FATrace.OEMApp/MainApp.Designer.cs
index 0cc57b8..4fee8f6 100644
--- a/FATrace.OEMApp/MainApp.Designer.cs
+++ b/FATrace.OEMApp/MainApp.Designer.cs
@@ -61,9 +61,9 @@ namespace FATrace.OEMApp
txtRUInBagCode = new TextBox();
label5 = new Label();
tabPage2 = new TabPage();
- btnStopHistoryPlay = new Button();
dataGridView1 = new DataGridView();
materialCard1 = new ReaLTaiizor.Controls.MaterialCard();
+ btnStopHistoryPlay = new Button();
label4 = new Label();
txtSearchCode = new TextBox();
btnHistoryVideoSearch = new Button();
@@ -72,13 +72,13 @@ namespace FATrace.OEMApp
label2 = new Label();
label1 = new Label();
PdtHistorySearchStart = new ReaLTaiizor.Controls.PoisonDateTime();
- btnPlayHistoryVideo = new Button();
videoView1 = new LibVLCSharp.WinForms.VideoView();
tabPage3 = new TabPage();
metroProgressBar1 = new ReaLTaiizor.Controls.MetroProgressBar();
DownloadProgressBar = new ProgressBar();
btnStopLoadVideo = new Button();
btnNVRLogin = new Button();
+ imageList2 = new ImageList(components);
statusStrip1.SuspendLayout();
materialTabControl1.SuspendLayout();
tabPage1.SuspendLayout();
@@ -197,10 +197,11 @@ namespace FATrace.OEMApp
//
// txtCsvSaveState
//
+ txtCsvSaveState.Font = new Font("Microsoft YaHei UI", 10F, FontStyle.Bold);
txtCsvSaveState.Location = new Point(27, 264);
txtCsvSaveState.Name = "txtCsvSaveState";
txtCsvSaveState.ReadOnly = true;
- txtCsvSaveState.Size = new Size(493, 32);
+ txtCsvSaveState.Size = new Size(493, 24);
txtCsvSaveState.TabIndex = 15;
//
// label12
@@ -330,6 +331,7 @@ namespace FATrace.OEMApp
//
txtRURawCode.Location = new Point(154, 177);
txtRURawCode.Name = "txtRURawCode";
+ txtRURawCode.ReadOnly = true;
txtRURawCode.Size = new Size(387, 32);
txtRURawCode.TabIndex = 9;
//
@@ -339,12 +341,12 @@ namespace FATrace.OEMApp
gridRULog.AllowUserToDeleteRows = false;
gridRULog.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
gridRULog.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
- gridRULog.Location = new Point(585, 7);
+ gridRULog.Location = new Point(576, 7);
gridRULog.Name = "gridRULog";
gridRULog.ReadOnly = true;
gridRULog.RowHeadersVisible = false;
gridRULog.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
- gridRULog.Size = new Size(1281, 338);
+ gridRULog.Size = new Size(1290, 338);
gridRULog.TabIndex = 8;
//
// btnRawStopLoadVideo
@@ -381,6 +383,7 @@ namespace FATrace.OEMApp
//
txtRURawName.Location = new Point(154, 123);
txtRURawName.Name = "txtRURawName";
+ txtRURawName.ReadOnly = true;
txtRURawName.Size = new Size(387, 32);
txtRURawName.TabIndex = 3;
//
@@ -398,6 +401,7 @@ namespace FATrace.OEMApp
//
txtRUInBagCode.Location = new Point(154, 65);
txtRUInBagCode.Name = "txtRUInBagCode";
+ txtRUInBagCode.ReadOnly = true;
txtRUInBagCode.Size = new Size(387, 32);
txtRUInBagCode.TabIndex = 1;
//
@@ -414,10 +418,8 @@ namespace FATrace.OEMApp
//
// tabPage2
//
- tabPage2.Controls.Add(btnStopHistoryPlay);
tabPage2.Controls.Add(dataGridView1);
tabPage2.Controls.Add(materialCard1);
- tabPage2.Controls.Add(btnPlayHistoryVideo);
tabPage2.Controls.Add(videoView1);
tabPage2.Font = new Font("Microsoft YaHei UI", 14.25F, FontStyle.Bold, GraphicsUnit.Point, 134);
tabPage2.ImageKey = "Load.png";
@@ -429,27 +431,19 @@ namespace FATrace.OEMApp
tabPage2.Text = "录像历史数据";
tabPage2.UseVisualStyleBackColor = true;
//
- // btnStopHistoryPlay
- //
- btnStopHistoryPlay.Location = new Point(628, 14);
- btnStopHistoryPlay.Name = "btnStopHistoryPlay";
- btnStopHistoryPlay.Size = new Size(116, 45);
- btnStopHistoryPlay.TabIndex = 12;
- btnStopHistoryPlay.Text = "停止播放";
- btnStopHistoryPlay.UseVisualStyleBackColor = true;
- btnStopHistoryPlay.Click += btnStopHistoryPlay_Click;
- //
// dataGridView1
//
dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
- dataGridView1.Location = new Point(17, 328);
+ dataGridView1.Location = new Point(17, 235);
dataGridView1.Name = "dataGridView1";
- dataGridView1.Size = new Size(483, 584);
+ dataGridView1.ReadOnly = true;
+ dataGridView1.Size = new Size(835, 677);
dataGridView1.TabIndex = 11;
//
// materialCard1
//
materialCard1.BackColor = Color.FromArgb(255, 255, 255);
+ materialCard1.Controls.Add(btnStopHistoryPlay);
materialCard1.Controls.Add(label4);
materialCard1.Controls.Add(txtSearchCode);
materialCard1.Controls.Add(btnHistoryVideoSearch);
@@ -465,9 +459,20 @@ namespace FATrace.OEMApp
materialCard1.MouseState = ReaLTaiizor.Helper.MaterialDrawHelper.MaterialMouseState.HOVER;
materialCard1.Name = "materialCard1";
materialCard1.Padding = new Padding(14);
- materialCard1.Size = new Size(483, 287);
+ materialCard1.Size = new Size(836, 194);
materialCard1.TabIndex = 10;
//
+ // btnStopHistoryPlay
+ //
+ btnStopHistoryPlay.Location = new Point(642, 132);
+ btnStopHistoryPlay.Name = "btnStopHistoryPlay";
+ btnStopHistoryPlay.Size = new Size(116, 45);
+ btnStopHistoryPlay.TabIndex = 12;
+ btnStopHistoryPlay.Text = "停止播放";
+ btnStopHistoryPlay.UseVisualStyleBackColor = true;
+ btnStopHistoryPlay.Visible = false;
+ btnStopHistoryPlay.Click += btnStopHistoryPlay_Click;
+ //
// label4
//
label4.AutoSize = true;
@@ -488,7 +493,7 @@ namespace FATrace.OEMApp
// btnHistoryVideoSearch
//
btnHistoryVideoSearch.ForeColor = Color.DimGray;
- btnHistoryVideoSearch.Location = new Point(125, 214);
+ btnHistoryVideoSearch.Location = new Point(295, 121);
btnHistoryVideoSearch.Name = "btnHistoryVideoSearch";
btnHistoryVideoSearch.Size = new Size(210, 56);
btnHistoryVideoSearch.TabIndex = 5;
@@ -500,7 +505,7 @@ namespace FATrace.OEMApp
//
label3.AutoSize = true;
label3.ForeColor = Color.Gray;
- label3.Location = new Point(288, 117);
+ label3.Location = new Point(647, 24);
label3.Name = "label3";
label3.Size = new Size(88, 26);
label3.TabIndex = 4;
@@ -509,7 +514,7 @@ namespace FATrace.OEMApp
// PdtHistorySearchEnd
//
PdtHistorySearchEnd.FontSize = ReaLTaiizor.Extension.Poison.PoisonDateTimeSize.Medium;
- PdtHistorySearchEnd.Location = new Point(268, 155);
+ PdtHistorySearchEnd.Location = new Point(627, 62);
PdtHistorySearchEnd.MinimumSize = new Size(0, 29);
PdtHistorySearchEnd.Name = "PdtHistorySearchEnd";
PdtHistorySearchEnd.Size = new Size(131, 32);
@@ -519,7 +524,7 @@ namespace FATrace.OEMApp
//
label2.AutoSize = true;
label2.ForeColor = Color.Gray;
- label2.Location = new Point(75, 116);
+ label2.Location = new Point(501, 24);
label2.Name = "label2";
label2.Size = new Size(88, 26);
label2.TabIndex = 2;
@@ -539,29 +544,19 @@ namespace FATrace.OEMApp
// PdtHistorySearchStart
//
PdtHistorySearchStart.FontSize = ReaLTaiizor.Extension.Poison.PoisonDateTimeSize.Medium;
- PdtHistorySearchStart.Location = new Point(55, 154);
+ PdtHistorySearchStart.Location = new Point(481, 62);
PdtHistorySearchStart.MinimumSize = new Size(0, 29);
PdtHistorySearchStart.Name = "PdtHistorySearchStart";
PdtHistorySearchStart.Size = new Size(131, 32);
PdtHistorySearchStart.TabIndex = 0;
//
- // btnPlayHistoryVideo
- //
- btnPlayHistoryVideo.Location = new Point(506, 14);
- btnPlayHistoryVideo.Name = "btnPlayHistoryVideo";
- btnPlayHistoryVideo.Size = new Size(116, 45);
- btnPlayHistoryVideo.TabIndex = 8;
- btnPlayHistoryVideo.Text = "button1";
- btnPlayHistoryVideo.UseVisualStyleBackColor = true;
- btnPlayHistoryVideo.Click += btnPlayHistoryVideo_Click;
- //
// videoView1
//
videoView1.BackColor = Color.Black;
- videoView1.Location = new Point(506, 65);
+ videoView1.Location = new Point(858, 24);
videoView1.MediaPlayer = null;
videoView1.Name = "videoView1";
- videoView1.Size = new Size(1394, 847);
+ videoView1.Size = new Size(1042, 888);
videoView1.TabIndex = 7;
videoView1.Text = "videoView1";
//
@@ -629,6 +624,13 @@ namespace FATrace.OEMApp
btnNVRLogin.UseVisualStyleBackColor = true;
btnNVRLogin.Click += btnNVRLogin_Click;
//
+ // imageList2
+ //
+ imageList2.ColorDepth = ColorDepth.Depth32Bit;
+ imageList2.ImageStream = (ImageListStreamer)resources.GetObject("imageList2.ImageStream");
+ imageList2.TransparentColor = Color.Transparent;
+ imageList2.Images.SetKeyName(0, "About.png");
+ //
// MainApp
//
AutoScaleDimensions = new SizeF(8F, 17F);
@@ -681,7 +683,6 @@ namespace FATrace.OEMApp
private ProgressBar DownloadProgressBar;
private ReaLTaiizor.Controls.MetroProgressBar metroProgressBar1;
private LibVLCSharp.WinForms.VideoView videoView1;
- private Button btnPlayHistoryVideo;
private ReaLTaiizor.Controls.MaterialCard materialCard1;
private ReaLTaiizor.Controls.PoisonDateTime PdtHistorySearchStart;
private Label label1;
@@ -719,5 +720,6 @@ namespace FATrace.OEMApp
private Label label9;
private Label label12;
private TextBox txtCsvSaveState;
+ private ImageList imageList2;
}
}
\ No newline at end of file
diff --git a/FATrace.OEMApp/MainApp.cs b/FATrace.OEMApp/MainApp.cs
index effe215..e4746e5 100644
--- a/FATrace.OEMApp/MainApp.cs
+++ b/FATrace.OEMApp/MainApp.cs
@@ -29,14 +29,13 @@ namespace FATrace.OEMApp
// 历史表列头中文映射
private readonly Dictionary _historyHeaderMap = new Dictionary
{
- { nameof(VideoAction.Id), "编号" },
- { nameof(VideoAction.Code), "条码" },
- { nameof(VideoAction.User), "用户" },
- { nameof(VideoAction.VideoFilePath), "视频路径" },
- { nameof(VideoAction.VideoName), "视频名称" },
- { nameof(VideoAction.StartTime), "开始时间" },
- { nameof(VideoAction.EndTime), "结束时间" },
- { nameof(VideoAction.CreateTime), "创建时间" }
+ { nameof(OEMRawUse.InBagCode), "内袋二维码" },
+ { nameof(OEMRawUse.RawName), "原料名称" },
+ { nameof(OEMRawUse.RawCode), "原料条码" },
+ { nameof(OEMRawUse.VideoFilePath), "视频路径" },
+ { nameof(OEMRawUse.VideoName), "视频名称" },
+ { nameof(OEMRawUse.User), "用户" },
+ { nameof(OEMRawUse.CreateTime), "创建时间" }
};
private int _lvLogMaxItems = 1000;
@@ -101,6 +100,7 @@ namespace FATrace.OEMApp
private PLCDataService PLCDataService { get; set; }
private TimeClearDataService TimeClearService { get; set; }
private System.Windows.Forms.Timer _statusTimer;
+
///
/// 主窗体加载:
@@ -175,8 +175,7 @@ namespace FATrace.OEMApp
_ = UpdateNasStatusAsync();
_ = UpdateNvrStatusAsync();
StartStatusTimer();
-
- //materialListView1.DataBindings
+
try
{
var systemName = Program.SystemName;
@@ -211,11 +210,18 @@ namespace FATrace.OEMApp
//解析Code条码数据,内包条码数据
CurParsedCodeInfo = NVRCom.ParseCodeFull(Code);
+ BeginInvoke(new Action(() =>
+ {
+ txtRUInBagCode.Text = CurParsedCodeInfo.Code;
+ txtRURawName.Text= CurParsedCodeInfo.RawName;
+ txtRURawCode.Text = CurParsedCodeInfo.RawCode;
+ }));
+
var taskId = DownloadTaskWorker.Instance.Enqueue(
CurParsedCodeInfo,
user: CurUserName,
- start: DateTime.Now,
- end: DateTime.Now.AddSeconds(DownloadTaskWorker.VideoTime+2)
+ start: DateTime.Now.AddDays(-2),
+ end: DateTime.Now.AddDays(-2).AddSeconds(DownloadTaskWorker.VideoTime + 2)
);
//MessageBox.Show($"[Test] 已入队下载任务,Id={taskId}");
@@ -412,20 +418,8 @@ namespace FATrace.OEMApp
}
-
#endregion
- ///
- /// 测试手动播放
- ///
- ///
- ///
- private void btnPlayHistoryVideo_Click(object sender, EventArgs e)
- {
- string path = "D:\\Downtest_Channel2025-09-12 102454.mp4";
- _mediaPlayer.Play(new Media(_libVLC, path));
- }
-
///
/// 停止播放当前的视频文件
///
@@ -455,7 +449,7 @@ namespace FATrace.OEMApp
/// 采用 BindingList + BindingSource,使数据变化自动触发 UI 刷新
///
private BindingSource historyBindingSource { get; set; }
- private BindingList historyVideoBindingList { get; set; }
+ private BindingList historyVideoBindingList { get; set; }
///
@@ -464,7 +458,7 @@ namespace FATrace.OEMApp
private void InitHistoryGridBinding()
{
historyBindingSource = new BindingSource();
- historyVideoBindingList = new BindingList();
+ historyVideoBindingList = new BindingList();
historyBindingSource.DataSource = historyVideoBindingList;
// 绑定到 WinForms 原生 DataGridView
dataGridView1.AutoGenerateColumns = true;
@@ -482,12 +476,20 @@ namespace FATrace.OEMApp
private void btnHistoryVideoSearch_Click(object sender, EventArgs e)
{
- var query = FSqlContext.FDb.Select();
+ var query = FSqlContext.FDb.Select();
if (!string.IsNullOrEmpty(txtSearchCode.Text.Trim()))
{
- query = query.Where(a => a.Code!.Contains(txtSearchCode.Text.Trim()));
+ var kw = txtSearchCode.Text.Trim();
+ query = query.Where(a => (a.InBagCode != null && a.InBagCode.Contains(kw))
+ || (a.RawCode != null && a.RawCode.Contains(kw))
+ || (a.RawName != null && a.RawName.Contains(kw)));
}
- query.Where(a => a.CreateTime >= PdtHistorySearchStart.Value && a.CreateTime <= PdtHistorySearchEnd.Value);
+ // 日期范围:起始日00:00:00(含)到结束日次日00:00:00(不含),覆盖整天
+ var startDate = PdtHistorySearchStart.Value.Date;
+ var endDate = PdtHistorySearchEnd.Value.Date;
+ if (endDate < startDate) endDate = startDate;
+ var endExclusive = endDate.AddDays(1);
+ query = query.Where(a => a.CreateTime >= startDate && a.CreateTime < endExclusive);
// 拉取结果并刷新绑定列表
var resultList = query.ToList();
@@ -526,9 +528,9 @@ namespace FATrace.OEMApp
try
{
var row = dataGridView1.Rows[e.RowIndex];
- if (row?.DataBoundItem is VideoAction va)
+ if (row?.DataBoundItem is OEMRawUse item)
{
- var path = va.VideoFilePath;
+ var path = item.VideoFilePath;
if (string.IsNullOrWhiteSpace(path))
{
MessageBox.Show("该记录没有可播放的视频路径。", "播放提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
@@ -557,18 +559,62 @@ namespace FATrace.OEMApp
{
if (dataGridView1 == null || dataGridView1.Columns.Count == 0) return;
+ var allowedProps = new HashSet
+ {
+ nameof(OEMRawUse.InBagCode),
+ nameof(OEMRawUse.RawName),
+ nameof(OEMRawUse.RawCode),
+ nameof(OEMRawUse.VideoFilePath),
+ nameof(OEMRawUse.VideoName),
+ nameof(OEMRawUse.User),
+ nameof(OEMRawUse.CreateTime)
+ };
+
foreach (DataGridViewColumn col in dataGridView1.Columns)
{
var propName = col.DataPropertyName;
-
+
// 设置列头中文
if (!string.IsNullOrWhiteSpace(propName) && _historyHeaderMap.TryGetValue(propName, out var headerText))
{
col.HeaderText = headerText;
}
+ switch (col.Name)
+ {
+ case "InBagCode":
+ col.Width = 400;
+ break;
+ case "RawName":
+ col.Width = 200;
+ break;
+ case "RawCode":
+ col.Width = 200;
+ break;
+ case "VideoFilePath":
+ col.Width = 490;
+ break;
+ case "VideoName":
+ col.Width = 450;
+ break;
+ case "User":
+ col.Width = 100;
+ break;
+ case "CreateTime":
+ col.Width = 200;
+ break;
+ default:
+ break;
+ }
// 隐藏 Id 列
- if (propName == nameof(VideoAction.Id))
+ if (propName == nameof(OEMRawUse.Id))
+ {
+ col.Visible = false;
+ continue;
+ }
+
+ // 仅显示指定字段,其他隐藏
+ if (!allowedProps.Contains(propName))
{
col.Visible = false;
continue;
@@ -585,7 +631,7 @@ namespace FATrace.OEMApp
//}
// 时间列格式化
- if (propName is nameof(VideoAction.StartTime) or nameof(VideoAction.EndTime) or nameof(VideoAction.CreateTime))
+ if (propName is nameof(OEMRawUse.CreateTime))
{
col.DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss";
col.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
@@ -610,11 +656,13 @@ namespace FATrace.OEMApp
///
private void btnTestAction_Click(object sender, EventArgs e)
{
+ if (CurParsedCodeInfo==null) return ;
+
var taskId = DownloadTaskWorker.Instance.Enqueue(
CurParsedCodeInfo,
user: CurUserName,
- start: DateTime.Now,
- end: DateTime.Now.AddSeconds(DownloadTaskWorker.VideoTime)
+ start: DateTime.Now.AddDays(-2),
+ end: DateTime.Now.AddDays(-2).AddSeconds(DownloadTaskWorker.VideoTime)
);
//MessageBox.Show($"[Test] 已入队下载任务,Id={taskId}");
}
@@ -947,7 +995,7 @@ namespace FATrace.OEMApp
}
else
{
- DownloadProgressBarMain.Value = 0;
+ BeginInvoke(new Action(() => DownloadProgressBarMain.Value = 0));
}
_lastProgressLogged = -1;
}
@@ -1044,7 +1092,7 @@ namespace FATrace.OEMApp
else
{
try { BeginInvoke(new Action(() => DownloadFileName.Text = name ?? string.Empty)); } catch { }
-
+
}
}
catch { }
diff --git a/FATrace.OEMApp/MainApp.resx b/FATrace.OEMApp/MainApp.resx
index 31552f1..c258c49 100644
--- a/FATrace.OEMApp/MainApp.resx
+++ b/FATrace.OEMApp/MainApp.resx
@@ -128,7 +128,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAaCEAAAJNU0Z0AUkBTAIBAQgB
- AAGIAQEBiAEBARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAATADAAEBAQABIAYAATD/
+ AAG4AQEBuAEBARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAATADAAEBAQABIAYAATD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AFIAAdsBlgESAf8B2wGWARIB/wQAAxIBGANJAYgB
2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wQAAdsB
lgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8UAAHbAZYB
@@ -271,6 +271,42 @@
/gHHAfEBwAGDAewBAwHPAfwBxwHxAv8B7wHzAd8B+AHHAfEBwAGDAewBcwHzAfABhwHwAd4BuQHsAXMB
4QHgAQMB4AG+Ab0B7wHzAeABwQGAAQABvgG9AeABAwHwAWMB8AEHAZ4BvQHwAQcB+AE/AfABDwHBAYEC
/wH+AR8B8QHHAuME/wH9Ad8C/ws=
+
+
+
+ 257, 17
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
+ LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
+ SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA/gUAAAJNU0Z0AUkBTAMBAQAB
+ EAEAARABAAEQAQABEAEABP8BIQEACP8BQgFNATYHAAE2AwABKAMAAUADAAEQAwABAQEAASAGAAEQKgAB
+ 2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/5AAB2wGWARIB/wHbAZYBEgH/AdsB
+ lgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf/YAAHbAZYB
+ EgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B
+ 2wGWARIB/wHbAZYBEgH/AdsBlgESAf/QAAHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsB
+ lgESAf8IAAHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/8wAAdsB
+ lgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wwAAdsBlgESAf8B2wGWARIB/wHbAZYB
+ EgH/AdsBlgESAf8B2wGWARIB/8gAAdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB
+ /wHbAZYBEgH/CAAB2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B
+ 2wGWARIB/8QAAdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/CAAB
+ 2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/8QAAdsB
+ lgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wwAAW0BYAFHAagB2wGWARIB/wHbAZYB
+ EgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf/EAAHbAZYBEgH/AdsBlgESAf8B2wGWARIB
+ /wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wMGAQgIAAHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYB
+ EgH/AdsBlgESAf8B2wGWARIB/8QAAdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB
+ /wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsB
+ lgESAf8B2wGWARIB/wHbAZYBEgH/xAADEgEYAdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B
+ 2wGWARIB/wHbAZYBEgH/BAABggFtAUMBvwHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsB
+ lgESAf/MAAHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wgAAdsB
+ lgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/9AAAdsBlgESAf8B2wGWARIB/wHbAZYB
+ EgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AUsBSAFBAXgB2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B
+ 2wGWARIB/9gAAdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsB
+ lgESAf8B2wGWARIB/wHbAZYBEgH/4AADEgEYAdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B
+ 2wGWARIB//8A1QABQgFNAT4HAAE+AwABKAMAAUADAAEQAwABAQEAAQEFAAGAFwAD/wEAAfwBHwYAAfAB
+ BwYAAeABAwYAAcEBgQYAAsEGAAGBAYAGAAGBAYAGAAGDAYAGAAGAAcAGAAGABwABgAGBBgABwAHBBgAB
+ 4AEDBgAB8AEHBgAB+AEfBgAC/wYACw==