blob: 53bf40fcfb5bb709192c4cf6dbc4341c20d87573 [file] [log] [blame]
Matt Spinler97f7abc2019-11-06 09:40:23 -06001/**
2 * Copyright © 2019 IBM Corporation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
Matt Spinler07eefc52019-09-26 11:18:26 -050016#include "elog_entry.hpp"
17#include "extensions/openpower-pels/pel.hpp"
18#include "pel_utils.hpp"
19
20#include <filesystem>
21#include <fstream>
22
23#include <gtest/gtest.h>
24
25namespace fs = std::filesystem;
26using namespace openpower::pels;
27
28class PELTest : public CleanLogID
Patrick Williams2544b412022-10-04 08:41:06 -050029{};
Matt Spinler07eefc52019-09-26 11:18:26 -050030
31// A PEL from a real system
32const std::vector<uint8_t> realPELData{
33 0x50, 0x48, 0x0, 0x30, 0x1, 0x0, 0xA8, 0x0, 0x20, 0x19, 0x6, 0x14,
34 0x12, 0x0, 0x41, 0x51, 0x20, 0x19, 0x6, 0x14, 0x12, 0x0, 0x41, 0x56,
35 0x45, 0x0, 0x1, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
36 0x0, 0x0, 0x0, 0x0, 0x50, 0x1, 0xF, 0xA5, 0x50, 0x1, 0xF, 0xA5,
37 0x55, 0x48, 0x0, 0x18, 0x1, 0x0, 0xF1, 0x0, 0x81, 0x3, 0x0, 0x1,
38 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x1, 0x44, 0x0,
39 0x50, 0x53, 0x0, 0x74, 0x1, 0x1, 0xA8, 0x0, 0x2, 0x1, 0x0, 0x9,
40 0x0, 0x0, 0x0, 0x6C, 0x3, 0x1, 0x0, 0xF0, 0x2C, 0xC6, 0x1B, 0x10,
41 0xC1, 0x39, 0x20, 0x0, 0x40, 0x0, 0x0, 0xFF, 0x10, 0x69, 0x14, 0xD8,
42 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
43 0x42, 0x31, 0x38, 0x31, 0x41, 0x38, 0x30, 0x45, 0x20, 0x20, 0x20, 0x20,
44 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
45 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xC0, 0x0, 0x0, 0x9,
46 0x10, 0x28, 0x48, 0x0, 0x49, 0x44, 0xC, 0x42, 0x46, 0x53, 0x50, 0x53,
47 0x50, 0x30, 0x34, 0x0, 0x10, 0x28, 0x4C, 0x0, 0x49, 0x44, 0xC, 0x42,
48 0x46, 0x53, 0x50, 0x53, 0x50, 0x30, 0x36, 0x0, 0x45, 0x48, 0x0, 0x60,
49 0x1, 0x0, 0x31, 0x0, 0x38, 0x34, 0x30, 0x38, 0x2D, 0x45, 0x38, 0x45,
50 0x31, 0x30, 0x36, 0x37, 0x41, 0x44, 0x56, 0x0, 0x0, 0x0, 0x0, 0x0,
51 0x54, 0x56, 0x38, 0x36, 0x30, 0x5F, 0x32, 0x30, 0x37, 0x0, 0x0, 0x0,
52 0x0, 0x0, 0x0, 0x0, 0x62, 0x30, 0x36, 0x31, 0x33, 0x61, 0x5F, 0x31,
53 0x39, 0x32, 0x34, 0x2E, 0x38, 0x36, 0x31, 0x0, 0x0, 0x0, 0x0, 0x0,
54 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14,
55 0x42, 0x31, 0x38, 0x31, 0x41, 0x38, 0x30, 0x45, 0x5F, 0x32, 0x43, 0x43,
56 0x36, 0x31, 0x42, 0x31, 0x30, 0x0, 0x0, 0x0, 0x55, 0x44, 0x0, 0x9C,
57 0x2, 0x4, 0x31, 0x0, 0x0, 0x0, 0xB, 0x53, 0x2F, 0x6F, 0x70, 0x74,
58 0x2F, 0x66, 0x69, 0x70, 0x73, 0x2F, 0x62, 0x69, 0x6E, 0x2F, 0x66, 0x77,
59 0x64, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x0, 0x0, 0x0, 0x0,
60 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
61 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
62 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
63 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
64 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x66, 0x69, 0x70, 0x73,
65 0x38, 0x36, 0x31, 0x2F, 0x62, 0x30, 0x36, 0x31, 0x33, 0x61, 0x5F, 0x31,
66 0x39, 0x32, 0x34, 0x2E, 0x38, 0x36, 0x31, 0x0, 0x0, 0x0, 0x0, 0x0,
67 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2,
68 0x50, 0x0, 0x0, 0x2, 0x20, 0x0, 0x1, 0xC, 0x0, 0x0, 0x0, 0x9,
69 0x0, 0x4, 0x70, 0xD0, 0x0, 0x0, 0x0, 0x0, 0x4D, 0x54, 0x0, 0x1C,
70 0x1, 0x0, 0x31, 0x0, 0x38, 0x34, 0x30, 0x38, 0x2D, 0x45, 0x38, 0x45,
71 0x31, 0x30, 0x36, 0x37, 0x41, 0x44, 0x56, 0x0, 0x0, 0x0, 0x0, 0x0,
72 0x55, 0x44, 0x1, 0xF8, 0x1, 0xC, 0x31, 0x0, 0x1, 0x28, 0x4, 0x42,
73 0x46, 0x57, 0x44, 0x42, 0x45, 0x52, 0x52, 0x0, 0x0, 0x0, 0x0, 0x0,
74 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xF0, 0x0, 0x0, 0x0, 0x0,
75 0x0, 0x0, 0x1, 0xF0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
76 0x0, 0x0, 0x5, 0x1C, 0x2D, 0x86, 0x75, 0xD0, 0x0, 0x0, 0xC, 0x9B,
77 0x0, 0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7, 0x0, 0x0, 0x0, 0xB5,
78 0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49,
79 0x6E, 0x66, 0x6F, 0x0, 0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54,
80 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1A,
81 0x0, 0x0, 0xA8, 0x9, 0x50, 0x1, 0xE, 0xE3, 0x0, 0x0, 0x0, 0x0,
82 0x0, 0x0, 0x0, 0x4C, 0x0, 0x0, 0x5, 0x33, 0x1F, 0xEA, 0xE7, 0x12,
83 0x0, 0x0, 0xD, 0x9D, 0x0, 0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7,
84 0x0, 0x0, 0x0, 0xB5, 0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63,
85 0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0, 0x73, 0x65, 0x74, 0x42,
86 0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0, 0x0,
87 0x0, 0x0, 0x0, 0x1A, 0x0, 0x0, 0xA8, 0x9, 0x50, 0x1, 0xF, 0xA,
88 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4C, 0x0, 0x0, 0x5, 0x38,
89 0x26, 0x43, 0xFB, 0x66, 0x0, 0x0, 0xB, 0x7D, 0x0, 0x30, 0x43, 0x4F,
90 0x27, 0x67, 0x44, 0xB7, 0x0, 0x0, 0x0, 0xB5, 0x66, 0x77, 0x64, 0x62,
91 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0,
92 0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F,
93 0x75, 0x74, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1A, 0x0, 0x0, 0xA8, 0x9,
94 0x50, 0x1, 0xF, 0xE, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4C,
95 0x0, 0x0, 0x5, 0x72, 0x13, 0xB8, 0x3D, 0x1C, 0x0, 0x0, 0x23, 0x33,
96 0x0, 0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7, 0x0, 0x0, 0x0, 0xB5,
97 0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49,
98 0x6E, 0x66, 0x6F, 0x0, 0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54,
99 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1A,
100 0x0, 0x0, 0xA8, 0x9, 0x50, 0x1, 0xF, 0x5D, 0x0, 0x0, 0x0, 0x0,
101 0x0, 0x0, 0x0, 0x4C, 0x0, 0x0, 0x5, 0x88, 0x20, 0xE1, 0xE0, 0x7,
102 0x0, 0x0, 0xD, 0x82, 0x0, 0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7,
103 0x0, 0x0, 0x0, 0xB5, 0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63,
104 0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0, 0x73, 0x65, 0x74, 0x42,
105 0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0, 0x0,
106 0x0, 0x0, 0x0, 0x1A, 0x0, 0x0, 0xA8, 0x9, 0x50, 0x1, 0xF, 0x9B,
107 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4C, 0x0, 0x0, 0x5, 0x89,
108 0x12, 0xE, 0xFE, 0x6E, 0x0, 0x0, 0xB, 0x69, 0x0, 0x30, 0x43, 0x4F,
109 0x27, 0x67, 0x44, 0xB7, 0x0, 0x0, 0x0, 0xB5, 0x66, 0x77, 0x64, 0x62,
110 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0,
111 0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F,
112 0x75, 0x74, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1A, 0x0, 0x0, 0xA8, 0x9,
113 0x50, 0x1, 0xF, 0xA4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4C,
114 0x55, 0x44, 0x0, 0x40, 0x1, 0x1, 0xA8, 0x0, 0x6E, 0x6F, 0x20, 0x73,
115 0x75, 0x63, 0x68, 0x20, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x3A, 0x20, 0x63,
116 0x62, 0x6C, 0x76, 0x5F, 0x63, 0x61, 0x62, 0x6C, 0x65, 0x5F, 0x63, 0x6F,
117 0x6E, 0x6E, 0x65, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x5F, 0x73, 0x74, 0x61,
118 0x74, 0x75, 0x73, 0x5F, 0x70, 0x75, 0x62, 0x6C, 0x69, 0x63, 0x5F, 0x76,
119 0x69, 0x65, 0x77, 0x0, 0x55, 0x44, 0x1, 0xE8, 0x1, 0xC, 0x31, 0x0,
120 0x1, 0x28, 0x4, 0x42, 0x46, 0x57, 0x44, 0x42, 0x53, 0x52, 0x56, 0x0,
121 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xE0,
122 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xE0, 0x0, 0x0, 0x0, 0x0,
123 0x0, 0x0, 0x0, 0xB, 0x0, 0x0, 0x5, 0x89, 0x11, 0x9B, 0xBA, 0x9,
124 0x0, 0x0, 0x23, 0x88, 0x0, 0x18, 0x43, 0x4F, 0x80, 0x10, 0xFA, 0x28,
125 0x0, 0x0, 0xC, 0xFD, 0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54,
126 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0, 0x0, 0xDB, 0xFB, 0xCB, 0x98,
127 0x0, 0x1, 0xD4, 0xC0, 0x0, 0x0, 0x0, 0x34, 0x0, 0x0, 0x5, 0x89,
128 0x12, 0x4, 0x1A, 0xF1, 0x0, 0x0, 0x23, 0x88, 0x0, 0x18, 0x43, 0x4F,
129 0xCB, 0x1C, 0xBA, 0x66, 0x0, 0x0, 0x1F, 0x6D, 0x63, 0x68, 0x61, 0x6E,
130 0x67, 0x65, 0x55, 0x73, 0x65, 0x43, 0x6E, 0x74, 0x0, 0x0, 0x0, 0x0,
131 0x0, 0x0, 0x0, 0xC, 0xDB, 0xFB, 0xCB, 0x98, 0x0, 0x0, 0x0, 0x34,
132 0x0, 0x0, 0x5, 0x89, 0x12, 0x36, 0x78, 0xA9, 0x0, 0x0, 0x23, 0x88,
133 0x0, 0x0, 0x43, 0x4F, 0xCB, 0x12, 0xB6, 0x5D, 0x0, 0x0, 0x9, 0xF2,
134 0x0, 0x0, 0x0, 0x1C, 0x0, 0x0, 0x5, 0x89, 0x12, 0x36, 0xB8, 0x93,
135 0x0, 0x0, 0x23, 0x88, 0x0, 0x10, 0x43, 0x4F, 0x89, 0x7D, 0x0, 0x8C,
136 0x0, 0x0, 0x23, 0x5D, 0x73, 0x65, 0x72, 0x76, 0x44, 0x65, 0x74, 0x61,
137 0x63, 0x68, 0x0, 0x0, 0xDB, 0xFB, 0xCB, 0x98, 0x0, 0x0, 0x0, 0x2C,
138 0x0, 0x0, 0x5, 0x89, 0x12, 0x36, 0xD2, 0x7A, 0x0, 0x0, 0x23, 0x88,
139 0x0, 0x0, 0x43, 0x4F, 0xBD, 0xF0, 0x6E, 0xE3, 0x0, 0x0, 0x9, 0xF4,
140 0x0, 0x0, 0x0, 0x1C, 0x0, 0x0, 0x5, 0x89, 0x12, 0xAA, 0x51, 0x96,
141 0x0, 0x0, 0x23, 0x88, 0x0, 0x0, 0x43, 0x4F, 0x8F, 0x6A, 0x83, 0x3,
142 0x0, 0x0, 0x9, 0xA9, 0x0, 0x0, 0x0, 0x1C, 0x0, 0x0, 0x5, 0x89,
143 0x12, 0xAE, 0x7B, 0x85, 0x0, 0x0, 0x23, 0x88, 0x0, 0x10, 0x43, 0x4F,
144 0xF3, 0x35, 0x3F, 0x8D, 0x0, 0x0, 0x22, 0x35, 0x73, 0x65, 0x72, 0x76,
145 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x0, 0x0, 0x9D, 0x86, 0xE6, 0xD3,
146 0x0, 0x0, 0x0, 0x2C, 0x0, 0x0, 0x5, 0x89, 0x13, 0xA5, 0x23, 0xFA,
147 0x0, 0x0, 0x23, 0x88, 0x0, 0x0, 0x43, 0x4F, 0xFC, 0x5A, 0x7F, 0x97,
148 0x0, 0x0, 0x9, 0xB3, 0x0, 0x0, 0x0, 0x1C, 0x0, 0x0, 0x5, 0x89,
149 0x14, 0x5B, 0x57, 0xCE, 0x0, 0x0, 0x23, 0x88, 0x0, 0x0, 0x43, 0x4F,
150 0x4, 0x88, 0x89, 0x7B, 0x0, 0x0, 0x9, 0x3B, 0x0, 0x0, 0x0, 0x1C,
151 0x0, 0x0, 0x5, 0x89, 0x14, 0x5F, 0xCC, 0x54, 0x0, 0x0, 0x23, 0x88,
152 0x0, 0x50, 0x43, 0x4F, 0x94, 0xA2, 0x26, 0x7C, 0x0, 0x0, 0x14, 0xE1,
153 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x53, 0x74, 0x6D, 0x74, 0x0,
154 0x0, 0x0, 0x0, 0x1, 0x6E, 0x6F, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20,
155 0x74, 0x61, 0x62, 0x6C, 0x65, 0x3A, 0x20, 0x63, 0x62, 0x6C, 0x76, 0x5F,
156 0x63, 0x61, 0x62, 0x6C, 0x65, 0x5F, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63,
157 0x74, 0x69, 0x6F, 0x6E, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5F,
158 0x70, 0x75, 0x62, 0x6C, 0x69, 0x63, 0x5F, 0x76, 0x69, 0x65, 0x77, 0x0,
159 0x10, 0x69, 0x14, 0xD8, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x6C,
160 0x55, 0x44, 0x3, 0xC0, 0x1, 0xC, 0x31, 0x0, 0x1, 0x28, 0x4, 0x42,
161 0x46, 0x57, 0x44, 0x42, 0x53, 0x51, 0x4C, 0x0, 0x0, 0x0, 0x0, 0x0,
162 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xB8, 0x0, 0x0, 0x0, 0x0,
163 0x0, 0x0, 0x3, 0xB8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xB,
164 0x0, 0x0, 0x5, 0x89, 0x5, 0xFC, 0x1E, 0x6C, 0x0, 0x0, 0x23, 0x88,
165 0x0, 0x40, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4, 0x0, 0x0, 0x21, 0x6,
166 0x14, 0x9, 0xC2, 0x11, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x2A,
167 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x73, 0x79, 0x73, 0x2E, 0x70, 0x6F,
168 0x6C, 0x69, 0x63, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6E,
169 0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x27, 0x70, 0x6F, 0x77, 0x65, 0x72,
170 0x2D, 0x64, 0x65, 0x66, 0x2D, 0x66, 0x69, 0x6C, 0x65, 0x6E, 0x61, 0x6D,
171 0x65, 0x73, 0x27, 0x0, 0x0, 0x0, 0x0, 0x5C, 0x0, 0x0, 0x5, 0x89,
172 0x6, 0xB1, 0x42, 0x3B, 0x0, 0x0, 0x23, 0x88, 0x0, 0x40, 0x43, 0x4F,
173 0x92, 0x41, 0x1B, 0xD4, 0x0, 0x0, 0x21, 0x6, 0x14, 0x9, 0xC2, 0x11,
174 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x2A, 0x20, 0x66, 0x72, 0x6F,
175 0x6D, 0x20, 0x73, 0x79, 0x73, 0x2E, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79,
176 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20,
177 0x3D, 0x20, 0x27, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x2D, 0x64, 0x65, 0x66,
178 0x2D, 0x66, 0x69, 0x6C, 0x65, 0x6E, 0x61, 0x6D, 0x65, 0x73, 0x27, 0x0,
179 0x0, 0x0, 0x0, 0x5C, 0x0, 0x0, 0x5, 0x89, 0x7, 0x14, 0xD2, 0x68,
180 0x0, 0x0, 0x23, 0x88, 0x0, 0x40, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
181 0x0, 0x0, 0x21, 0x6, 0x14, 0x9, 0xC2, 0x11, 0x73, 0x65, 0x6C, 0x65,
182 0x63, 0x74, 0x20, 0x2A, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x73, 0x79,
183 0x73, 0x2E, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79, 0x20, 0x77, 0x68, 0x65,
184 0x72, 0x65, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x27, 0x70,
185 0x6F, 0x77, 0x65, 0x72, 0x2D, 0x64, 0x65, 0x66, 0x2D, 0x66, 0x69, 0x6C,
186 0x65, 0x6E, 0x61, 0x6D, 0x65, 0x73, 0x27, 0x0, 0x0, 0x0, 0x0, 0x5C,
187 0x0, 0x0, 0x5, 0x89, 0x7, 0x9A, 0x9D, 0x6F, 0x0, 0x0, 0x23, 0x88,
188 0x0, 0x40, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4, 0x0, 0x0, 0x21, 0x6,
189 0x14, 0x9, 0xC2, 0x11, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x2A,
190 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x73, 0x79, 0x73, 0x2E, 0x70, 0x6F,
191 0x6C, 0x69, 0x63, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6E,
192 0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x27, 0x70, 0x6F, 0x77, 0x65, 0x72,
193 0x2D, 0x64, 0x65, 0x66, 0x2D, 0x66, 0x69, 0x6C, 0x65, 0x6E, 0x61, 0x6D,
194 0x65, 0x73, 0x27, 0x0, 0x0, 0x0, 0x0, 0x5C, 0x0, 0x0, 0x5, 0x89,
195 0x7, 0xD4, 0xF8, 0x2D, 0x0, 0x0, 0x23, 0x88, 0x0, 0x40, 0x43, 0x4F,
196 0x92, 0x41, 0x1B, 0xD4, 0x0, 0x0, 0x21, 0x6, 0x14, 0x9, 0xC2, 0x11,
197 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x2A, 0x20, 0x66, 0x72, 0x6F,
198 0x6D, 0x20, 0x73, 0x79, 0x73, 0x2E, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79,
199 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20,
200 0x3D, 0x20, 0x27, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x2D, 0x64, 0x65, 0x66,
201 0x2D, 0x66, 0x69, 0x6C, 0x65, 0x6E, 0x61, 0x6D, 0x65, 0x73, 0x27, 0x0,
202 0x0, 0x0, 0x0, 0x5C, 0x0, 0x0, 0x5, 0x89, 0x12, 0xB4, 0xBC, 0xA6,
203 0x0, 0x0, 0x23, 0x88, 0x0, 0x38, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
204 0x0, 0x0, 0x21, 0x6, 0x9D, 0x86, 0xE6, 0xD3, 0x41, 0x54, 0x54, 0x41,
205 0x43, 0x48, 0x20, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x20,
206 0x27, 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x70, 0x31, 0x2F, 0x66, 0x77, 0x73,
207 0x6D, 0x2F, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x73, 0x79, 0x73,
208 0x27, 0x20, 0x41, 0x53, 0x20, 0x73, 0x79, 0x73, 0x3B, 0xA, 0x0, 0x0,
209 0x0, 0x0, 0x0, 0x54, 0x0, 0x0, 0x5, 0x89, 0x12, 0xBC, 0xD8, 0x8A,
210 0x0, 0x0, 0x23, 0x88, 0x0, 0x38, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
211 0x0, 0x0, 0x21, 0x6, 0x9D, 0x86, 0xE6, 0xD3, 0x41, 0x54, 0x54, 0x41,
212 0x43, 0x48, 0x20, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x20,
213 0x27, 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x70, 0x30, 0x2F, 0x66, 0x77, 0x73,
214 0x6D, 0x2F, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x70, 0x30, 0x27,
215 0x20, 0x41, 0x53, 0x20, 0x70, 0x30, 0x3B, 0xA, 0x0, 0x0, 0x0, 0x0,
216 0x0, 0x0, 0x0, 0x54, 0x0, 0x0, 0x5, 0x89, 0x13, 0x97, 0x51, 0x64,
217 0x0, 0x0, 0x23, 0x88, 0x0, 0x38, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
218 0x0, 0x0, 0x21, 0x6, 0x9D, 0x86, 0xE6, 0xD3, 0x41, 0x54, 0x54, 0x41,
219 0x43, 0x48, 0x20, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x20,
220 0x27, 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x70, 0x31, 0x2F, 0x66, 0x77, 0x73,
221 0x6D, 0x2F, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x70, 0x31, 0x27,
222 0x20, 0x41, 0x53, 0x20, 0x70, 0x31, 0x3B, 0xA, 0x0, 0x0, 0x0, 0x0,
223 0x0, 0x0, 0x0, 0x54, 0x0, 0x0, 0x5, 0x89, 0x13, 0xA2, 0x85, 0x51,
224 0x0, 0x0, 0x23, 0x88, 0x0, 0x38, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
225 0x0, 0x0, 0x21, 0x6, 0x9D, 0x86, 0xE6, 0xD3, 0x41, 0x54, 0x54, 0x41,
226 0x43, 0x48, 0x20, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x20,
227 0x27, 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x70, 0x33, 0x2F, 0x66, 0x77, 0x73,
228 0x6D, 0x2F, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x70, 0x33, 0x27,
229 0x20, 0x41, 0x53, 0x20, 0x70, 0x33, 0x3B, 0xA, 0x0, 0x0, 0x0, 0x0,
230 0x0, 0x0, 0x0, 0x54, 0x0, 0x0, 0x5, 0x89, 0x14, 0x5B, 0x84, 0x7B,
231 0x0, 0x0, 0x23, 0x88, 0x0, 0x58, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
232 0x0, 0x0, 0x21, 0x6, 0x9D, 0x86, 0xE6, 0xD3, 0x73, 0x65, 0x6C, 0x65,
233 0x63, 0x74, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65, 0x69, 0x64,
234 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x63, 0x62, 0x6C, 0x76, 0x5F, 0x63,
235 0x61, 0x62, 0x6C, 0x65, 0x5F, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74,
236 0x69, 0x6F, 0x6E, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5F, 0x70,
237 0x75, 0x62, 0x6C, 0x69, 0x63, 0x5F, 0x76, 0x69, 0x65, 0x77, 0x20, 0x77,
238 0x68, 0x65, 0x72, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65,
239 0x69, 0x64, 0x20, 0x21, 0x3D, 0x20, 0x30, 0x0, 0x0, 0x0, 0x0, 0x74,
240 0x55, 0x44, 0x0, 0xC, 0x1, 0xC, 0x31, 0x0, 0x0, 0x0, 0x0, 0x0,
241 0x53, 0x53, 0x0, 0x50, 0x1, 0x1, 0xA8, 0x0, 0x2, 0x0, 0x0, 0x9,
242 0x0, 0x0, 0x0, 0x48, 0x3, 0x1, 0x0, 0xF0, 0x2C, 0xC6, 0x19, 0x10,
243 0xC1, 0x39, 0x20, 0x0, 0x40, 0x0, 0x0, 0xFF, 0x9D, 0x86, 0xE6, 0xD3,
244 0x0, 0x0, 0x0, 0x3, 0x10, 0x69, 0x14, 0xD8, 0x0, 0x0, 0x0, 0x0,
245 0x42, 0x31, 0x38, 0x31, 0x41, 0x38, 0x30, 0x45, 0x20, 0x20, 0x20, 0x20,
246 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
247 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x44, 0x1, 0xF4,
248 0x1, 0xC, 0x31, 0x0, 0x1, 0x28, 0x4, 0x42, 0x46, 0x57, 0x44, 0x42,
249 0x45, 0x52, 0x52, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
250 0x0, 0x0, 0x1, 0xEC, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xEC,
251 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x5, 0x33,
252 0x1F, 0xEA, 0xE7, 0x12, 0x0, 0x0, 0xD, 0x9D, 0x0, 0x30, 0x43, 0x4F,
253 0x27, 0x67, 0x44, 0xB7, 0x0, 0x0, 0x0, 0xB5, 0x66, 0x77, 0x64, 0x62,
254 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0,
255 0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F,
256 0x75, 0x74, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1A, 0x0, 0x0, 0xA8, 0x9,
257 0x50, 0x1, 0xF, 0xA, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4C,
258 0x0, 0x0, 0x5, 0x38, 0x26, 0x43, 0xFB, 0x66, 0x0, 0x0, 0xB, 0x7D,
259 0x0, 0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7, 0x0, 0x0, 0x0, 0xB5,
260 0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49,
261 0x6E, 0x66, 0x6F, 0x0, 0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54,
262 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1A,
263 0x0, 0x0, 0xA8, 0x9, 0x50, 0x1, 0xF, 0xE, 0x0, 0x0, 0x0, 0x0,
264 0x0, 0x0, 0x0, 0x4C, 0x0, 0x0, 0x5, 0x72, 0x13, 0xB8, 0x3D, 0x1C,
265 0x0, 0x0, 0x23, 0x33, 0x0, 0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7,
266 0x0, 0x0, 0x0, 0xB5, 0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63,
267 0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0, 0x73, 0x65, 0x74, 0x42,
268 0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0, 0x0,
269 0x0, 0x0, 0x0, 0x1A, 0x0, 0x0, 0xA8, 0x9, 0x50, 0x1, 0xF, 0x5D,
270 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4C, 0x0, 0x0, 0x5, 0x88,
271 0x20, 0xE1, 0xE0, 0x7, 0x0, 0x0, 0xD, 0x82, 0x0, 0x30, 0x43, 0x4F,
272 0x27, 0x67, 0x44, 0xB7, 0x0, 0x0, 0x0, 0xB5, 0x66, 0x77, 0x64, 0x62,
273 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0,
274 0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F,
275 0x75, 0x74, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1A, 0x0, 0x0, 0xA8, 0x9,
276 0x50, 0x1, 0xF, 0x9B, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4C,
277 0x0, 0x0, 0x5, 0x89, 0x12, 0xE, 0xFE, 0x6E, 0x0, 0x0, 0xB, 0x69,
278 0x0, 0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7, 0x0, 0x0, 0x0, 0xB5,
279 0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49,
280 0x6E, 0x66, 0x6F, 0x0, 0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54,
281 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1A,
282 0x0, 0x0, 0xA8, 0x9, 0x50, 0x1, 0xF, 0xA4, 0x0, 0x0, 0x0, 0x0,
283 0x0, 0x0, 0x0, 0x4C, 0x0, 0x0, 0x5, 0x89, 0x15, 0x7A, 0x13, 0xA4,
284 0x0, 0x0, 0x23, 0x88, 0x0, 0x2C, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7,
285 0x0, 0x0, 0x0, 0xB5, 0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63,
286 0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0, 0x73, 0x65, 0x72, 0x76,
287 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x0, 0x0, 0x0, 0x0, 0x1B,
288 0x0, 0x0, 0xA8, 0xE, 0x50, 0x1, 0xF, 0xA5, 0x0, 0x0, 0x0, 0x0,
289 0x0, 0x0, 0x0, 0x48, 0x55, 0x44, 0x1, 0xE8, 0x1, 0xC, 0x31, 0x0,
290 0x1, 0x28, 0x4, 0x42, 0x46, 0x57, 0x44, 0x42, 0x53, 0x52, 0x56, 0x0,
291 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xE0,
292 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xE0, 0x0, 0x0, 0x0, 0x0,
293 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x5, 0x89, 0x12, 0x36, 0xB8, 0x93,
294 0x0, 0x0, 0x23, 0x88, 0x0, 0x10, 0x43, 0x4F, 0x89, 0x7D, 0x0, 0x8C,
295 0x0, 0x0, 0x23, 0x5D, 0x73, 0x65, 0x72, 0x76, 0x44, 0x65, 0x74, 0x61,
296 0x63, 0x68, 0x0, 0x0, 0xDB, 0xFB, 0xCB, 0x98, 0x0, 0x0, 0x0, 0x2C,
297 0x0, 0x0, 0x5, 0x89, 0x12, 0x36, 0xD2, 0x7A, 0x0, 0x0, 0x23, 0x88,
298 0x0, 0x0, 0x43, 0x4F, 0xBD, 0xF0, 0x6E, 0xE3, 0x0, 0x0, 0x9, 0xF4,
299 0x0, 0x0, 0x0, 0x1C, 0x0, 0x0, 0x5, 0x89, 0x12, 0xAA, 0x51, 0x96,
300 0x0, 0x0, 0x23, 0x88, 0x0, 0x0, 0x43, 0x4F, 0x8F, 0x6A, 0x83, 0x3,
301 0x0, 0x0, 0x9, 0xA9, 0x0, 0x0, 0x0, 0x1C, 0x0, 0x0, 0x5, 0x89,
302 0x12, 0xAE, 0x7B, 0x85, 0x0, 0x0, 0x23, 0x88, 0x0, 0x10, 0x43, 0x4F,
303 0xF3, 0x35, 0x3F, 0x8D, 0x0, 0x0, 0x22, 0x35, 0x73, 0x65, 0x72, 0x76,
304 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x0, 0x0, 0x9D, 0x86, 0xE6, 0xD3,
305 0x0, 0x0, 0x0, 0x2C, 0x0, 0x0, 0x5, 0x89, 0x13, 0xA5, 0x23, 0xFA,
306 0x0, 0x0, 0x23, 0x88, 0x0, 0x0, 0x43, 0x4F, 0xFC, 0x5A, 0x7F, 0x97,
307 0x0, 0x0, 0x9, 0xB3, 0x0, 0x0, 0x0, 0x1C, 0x0, 0x0, 0x5, 0x89,
308 0x14, 0x5B, 0x57, 0xCE, 0x0, 0x0, 0x23, 0x88, 0x0, 0x0, 0x43, 0x4F,
309 0x4, 0x88, 0x89, 0x7B, 0x0, 0x0, 0x9, 0x3B, 0x0, 0x0, 0x0, 0x1C,
310 0x0, 0x0, 0x5, 0x89, 0x14, 0x5F, 0xCC, 0x54, 0x0, 0x0, 0x23, 0x88,
311 0x0, 0x50, 0x43, 0x4F, 0x94, 0xA2, 0x26, 0x7C, 0x0, 0x0, 0x14, 0xE1,
312 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x53, 0x74, 0x6D, 0x74, 0x0,
313 0x0, 0x0, 0x0, 0x1, 0x6E, 0x6F, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20,
314 0x74, 0x61, 0x62, 0x6C, 0x65, 0x3A, 0x20, 0x63, 0x62, 0x6C, 0x76, 0x5F,
315 0x63, 0x61, 0x62, 0x6C, 0x65, 0x5F, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63,
316 0x74, 0x69, 0x6F, 0x6E, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5F,
317 0x70, 0x75, 0x62, 0x6C, 0x69, 0x63, 0x5F, 0x76, 0x69, 0x65, 0x77, 0x0,
318 0x10, 0x69, 0x14, 0xD8, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x6C,
319 0x0, 0x0, 0x5, 0x89, 0x15, 0x79, 0xCE, 0xB1, 0x0, 0x0, 0x23, 0x88,
320 0x0, 0x68, 0x43, 0x4F, 0xF9, 0xB, 0x8E, 0x3C, 0x0, 0x0, 0x21, 0x3E,
321 0x73, 0x65, 0x72, 0x76, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x0,
322 0x9D, 0x86, 0xE6, 0xD3, 0x0, 0x0, 0x0, 0x3, 0x73, 0x65, 0x6C, 0x65,
323 0x63, 0x74, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65, 0x69, 0x64,
324 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x63, 0x62, 0x6C, 0x76, 0x5F, 0x63,
325 0x61, 0x62, 0x6C, 0x65, 0x5F, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74,
326 0x69, 0x6F, 0x6E, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5F, 0x70,
327 0x75, 0x62, 0x6C, 0x69, 0x63, 0x5F, 0x76, 0x69, 0x65, 0x77, 0x20, 0x77,
328 0x68, 0x65, 0x72, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65,
329 0x69, 0x64, 0x20, 0x21, 0x3D, 0x20, 0x30, 0x0, 0x0, 0x0, 0x0, 0x84,
330 0x55, 0x44, 0x3, 0xC0, 0x1, 0xC, 0x31, 0x0, 0x1, 0x28, 0x4, 0x42,
331 0x46, 0x57, 0x44, 0x42, 0x53, 0x51, 0x4C, 0x0, 0x0, 0x0, 0x0, 0x0,
332 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xB8, 0x0, 0x0, 0x0, 0x0,
333 0x0, 0x0, 0x3, 0xB8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xB,
334 0x0, 0x0, 0x5, 0x89, 0x5, 0xFC, 0x1E, 0x6C, 0x0, 0x0, 0x23, 0x88,
335 0x0, 0x40, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4, 0x0, 0x0, 0x21, 0x6,
336 0x14, 0x9, 0xC2, 0x11, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x2A,
337 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x73, 0x79, 0x73, 0x2E, 0x70, 0x6F,
338 0x6C, 0x69, 0x63, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6E,
339 0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x27, 0x70, 0x6F, 0x77, 0x65, 0x72,
340 0x2D, 0x64, 0x65, 0x66, 0x2D, 0x66, 0x69, 0x6C, 0x65, 0x6E, 0x61, 0x6D,
341 0x65, 0x73, 0x27, 0x0, 0x0, 0x0, 0x0, 0x5C, 0x0, 0x0, 0x5, 0x89,
342 0x6, 0xB1, 0x42, 0x3B, 0x0, 0x0, 0x23, 0x88, 0x0, 0x40, 0x43, 0x4F,
343 0x92, 0x41, 0x1B, 0xD4, 0x0, 0x0, 0x21, 0x6, 0x14, 0x9, 0xC2, 0x11,
344 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x2A, 0x20, 0x66, 0x72, 0x6F,
345 0x6D, 0x20, 0x73, 0x79, 0x73, 0x2E, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79,
346 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20,
347 0x3D, 0x20, 0x27, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x2D, 0x64, 0x65, 0x66,
348 0x2D, 0x66, 0x69, 0x6C, 0x65, 0x6E, 0x61, 0x6D, 0x65, 0x73, 0x27, 0x0,
349 0x0, 0x0, 0x0, 0x5C, 0x0, 0x0, 0x5, 0x89, 0x7, 0x14, 0xD2, 0x68,
350 0x0, 0x0, 0x23, 0x88, 0x0, 0x40, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
351 0x0, 0x0, 0x21, 0x6, 0x14, 0x9, 0xC2, 0x11, 0x73, 0x65, 0x6C, 0x65,
352 0x63, 0x74, 0x20, 0x2A, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x73, 0x79,
353 0x73, 0x2E, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79, 0x20, 0x77, 0x68, 0x65,
354 0x72, 0x65, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x27, 0x70,
355 0x6F, 0x77, 0x65, 0x72, 0x2D, 0x64, 0x65, 0x66, 0x2D, 0x66, 0x69, 0x6C,
356 0x65, 0x6E, 0x61, 0x6D, 0x65, 0x73, 0x27, 0x0, 0x0, 0x0, 0x0, 0x5C,
357 0x0, 0x0, 0x5, 0x89, 0x7, 0x9A, 0x9D, 0x6F, 0x0, 0x0, 0x23, 0x88,
358 0x0, 0x40, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4, 0x0, 0x0, 0x21, 0x6,
359 0x14, 0x9, 0xC2, 0x11, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x2A,
360 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x73, 0x79, 0x73, 0x2E, 0x70, 0x6F,
361 0x6C, 0x69, 0x63, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6E,
362 0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x27, 0x70, 0x6F, 0x77, 0x65, 0x72,
363 0x2D, 0x64, 0x65, 0x66, 0x2D, 0x66, 0x69, 0x6C, 0x65, 0x6E, 0x61, 0x6D,
364 0x65, 0x73, 0x27, 0x0, 0x0, 0x0, 0x0, 0x5C, 0x0, 0x0, 0x5, 0x89,
365 0x7, 0xD4, 0xF8, 0x2D, 0x0, 0x0, 0x23, 0x88, 0x0, 0x40, 0x43, 0x4F,
366 0x92, 0x41, 0x1B, 0xD4, 0x0, 0x0, 0x21, 0x6, 0x14, 0x9, 0xC2, 0x11,
367 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x2A, 0x20, 0x66, 0x72, 0x6F,
368 0x6D, 0x20, 0x73, 0x79, 0x73, 0x2E, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79,
369 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20,
370 0x3D, 0x20, 0x27, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x2D, 0x64, 0x65, 0x66,
371 0x2D, 0x66, 0x69, 0x6C, 0x65, 0x6E, 0x61, 0x6D, 0x65, 0x73, 0x27, 0x0,
372 0x0, 0x0, 0x0, 0x5C, 0x0, 0x0, 0x5, 0x89, 0x12, 0xB4, 0xBC, 0xA6,
373 0x0, 0x0, 0x23, 0x88, 0x0, 0x38, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
374 0x0, 0x0, 0x21, 0x6, 0x9D, 0x86, 0xE6, 0xD3, 0x41, 0x54, 0x54, 0x41,
375 0x43, 0x48, 0x20, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x20,
376 0x27, 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x70, 0x31, 0x2F, 0x66, 0x77, 0x73,
377 0x6D, 0x2F, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x73, 0x79, 0x73,
378 0x27, 0x20, 0x41, 0x53, 0x20, 0x73, 0x79, 0x73, 0x3B, 0xA, 0x0, 0x0,
379 0x0, 0x0, 0x0, 0x54, 0x0, 0x0, 0x5, 0x89, 0x12, 0xBC, 0xD8, 0x8A,
380 0x0, 0x0, 0x23, 0x88, 0x0, 0x38, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
381 0x0, 0x0, 0x21, 0x6, 0x9D, 0x86, 0xE6, 0xD3, 0x41, 0x54, 0x54, 0x41,
382 0x43, 0x48, 0x20, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x20,
383 0x27, 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x70, 0x30, 0x2F, 0x66, 0x77, 0x73,
384 0x6D, 0x2F, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x70, 0x30, 0x27,
385 0x20, 0x41, 0x53, 0x20, 0x70, 0x30, 0x3B, 0xA, 0x0, 0x0, 0x0, 0x0,
386 0x0, 0x0, 0x0, 0x54, 0x0, 0x0, 0x5, 0x89, 0x13, 0x97, 0x51, 0x64,
387 0x0, 0x0, 0x23, 0x88, 0x0, 0x38, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
388 0x0, 0x0, 0x21, 0x6, 0x9D, 0x86, 0xE6, 0xD3, 0x41, 0x54, 0x54, 0x41,
389 0x43, 0x48, 0x20, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x20,
390 0x27, 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x70, 0x31, 0x2F, 0x66, 0x77, 0x73,
391 0x6D, 0x2F, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x70, 0x31, 0x27,
392 0x20, 0x41, 0x53, 0x20, 0x70, 0x31, 0x3B, 0xA, 0x0, 0x0, 0x0, 0x0,
393 0x0, 0x0, 0x0, 0x54, 0x0, 0x0, 0x5, 0x89, 0x13, 0xA2, 0x85, 0x51,
394 0x0, 0x0, 0x23, 0x88, 0x0, 0x38, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
395 0x0, 0x0, 0x21, 0x6, 0x9D, 0x86, 0xE6, 0xD3, 0x41, 0x54, 0x54, 0x41,
396 0x43, 0x48, 0x20, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x20,
397 0x27, 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x70, 0x33, 0x2F, 0x66, 0x77, 0x73,
398 0x6D, 0x2F, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x70, 0x33, 0x27,
399 0x20, 0x41, 0x53, 0x20, 0x70, 0x33, 0x3B, 0xA, 0x0, 0x0, 0x0, 0x0,
400 0x0, 0x0, 0x0, 0x54, 0x0, 0x0, 0x5, 0x89, 0x14, 0x5B, 0x84, 0x7B,
401 0x0, 0x0, 0x23, 0x88, 0x0, 0x58, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
402 0x0, 0x0, 0x21, 0x6, 0x9D, 0x86, 0xE6, 0xD3, 0x73, 0x65, 0x6C, 0x65,
403 0x63, 0x74, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65, 0x69, 0x64,
404 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x63, 0x62, 0x6C, 0x76, 0x5F, 0x63,
405 0x61, 0x62, 0x6C, 0x65, 0x5F, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74,
406 0x69, 0x6F, 0x6E, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5F, 0x70,
407 0x75, 0x62, 0x6C, 0x69, 0x63, 0x5F, 0x76, 0x69, 0x65, 0x77, 0x20, 0x77,
408 0x68, 0x65, 0x72, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65,
409 0x69, 0x64, 0x20, 0x21, 0x3D, 0x20, 0x30, 0x0, 0x0, 0x0, 0x0, 0x74,
410 0x55, 0x44, 0x0, 0xC, 0x1, 0xC, 0x31, 0x0, 0x0, 0x0, 0x0, 0x0,
411 0x53, 0x53, 0x0, 0x50, 0x1, 0x1, 0xA8, 0x0, 0x2, 0x0, 0x0, 0x9,
412 0x0, 0x0, 0x0, 0x48, 0x3, 0x1, 0x0, 0xF0, 0x2C, 0xC6, 0x67, 0x10,
413 0xC1, 0x39, 0x20, 0x0, 0x40, 0x0, 0x0, 0xFF, 0x0, 0x0, 0x0, 0x3,
414 0x9D, 0x86, 0xE6, 0xD3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
415 0x42, 0x31, 0x38, 0x31, 0x41, 0x38, 0x30, 0x35, 0x20, 0x20, 0x20, 0x20,
416 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
417 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x44, 0x1, 0xF4,
418 0x1, 0xC, 0x31, 0x0, 0x1, 0x28, 0x4, 0x42, 0x46, 0x57, 0x44, 0x42,
419 0x45, 0x52, 0x52, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
420 0x0, 0x0, 0x1, 0xEC, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xEC,
421 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x5, 0x38,
422 0x26, 0x43, 0xFB, 0x66, 0x0, 0x0, 0xB, 0x7D, 0x0, 0x30, 0x43, 0x4F,
423 0x27, 0x67, 0x44, 0xB7, 0x0, 0x0, 0x0, 0xB5, 0x66, 0x77, 0x64, 0x62,
424 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0,
425 0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F,
426 0x75, 0x74, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1A, 0x0, 0x0, 0xA8, 0x9,
427 0x50, 0x1, 0xF, 0xE, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4C,
428 0x0, 0x0, 0x5, 0x72, 0x13, 0xB8, 0x3D, 0x1C, 0x0, 0x0, 0x23, 0x33,
429 0x0, 0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7, 0x0, 0x0, 0x0, 0xB5,
430 0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49,
431 0x6E, 0x66, 0x6F, 0x0, 0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54,
432 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1A,
433 0x0, 0x0, 0xA8, 0x9, 0x50, 0x1, 0xF, 0x5D, 0x0, 0x0, 0x0, 0x0,
434 0x0, 0x0, 0x0, 0x4C, 0x0, 0x0, 0x5, 0x88, 0x20, 0xE1, 0xE0, 0x7,
435 0x0, 0x0, 0xD, 0x82, 0x0, 0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7,
436 0x0, 0x0, 0x0, 0xB5, 0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63,
437 0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0, 0x73, 0x65, 0x74, 0x42,
438 0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0, 0x0,
439 0x0, 0x0, 0x0, 0x1A, 0x0, 0x0, 0xA8, 0x9, 0x50, 0x1, 0xF, 0x9B,
440 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4C, 0x0, 0x0, 0x5, 0x89,
441 0x12, 0xE, 0xFE, 0x6E, 0x0, 0x0, 0xB, 0x69, 0x0, 0x30, 0x43, 0x4F,
442 0x27, 0x67, 0x44, 0xB7, 0x0, 0x0, 0x0, 0xB5, 0x66, 0x77, 0x64, 0x62,
443 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0,
444 0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F,
445 0x75, 0x74, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1A, 0x0, 0x0, 0xA8, 0x9,
446 0x50, 0x1, 0xF, 0xA4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4C,
447 0x0, 0x0, 0x5, 0x89, 0x15, 0x7A, 0x13, 0xA4, 0x0, 0x0, 0x23, 0x88,
448 0x0, 0x2C, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7, 0x0, 0x0, 0x0, 0xB5,
449 0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49,
450 0x6E, 0x66, 0x6F, 0x0, 0x73, 0x65, 0x72, 0x76, 0x45, 0x78, 0x65, 0x63,
451 0x75, 0x74, 0x65, 0x0, 0x0, 0x0, 0x0, 0x1B, 0x0, 0x0, 0xA8, 0xE,
452 0x50, 0x1, 0xF, 0xA5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48,
453 0x0, 0x0, 0x5, 0x89, 0x16, 0xA5, 0xF7, 0xAC, 0x0, 0x0, 0xB, 0x69,
454 0x0, 0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7, 0x0, 0x0, 0x0, 0xB5,
455 0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49,
456 0x6E, 0x66, 0x6F, 0x0, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4E,
457 0x6F, 0x46, 0x6D, 0x74, 0x53, 0x74, 0x72, 0x0, 0x0, 0x0, 0x0, 0x1B,
458 0x0, 0x0, 0xA8, 0xE, 0x50, 0x1, 0xF, 0xA5, 0x0, 0x0, 0x0, 0x0,
459 0x0, 0x0, 0x0, 0x4C, 0x55, 0x44, 0x1, 0xEC, 0x1, 0xC, 0x31, 0x0,
460 0x1, 0x28, 0x4, 0x42, 0x46, 0x57, 0x44, 0x42, 0x43, 0x4D, 0x44, 0x0,
461 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xE4,
462 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xE4, 0x0, 0x0, 0x0, 0x0,
463 0x0, 0x0, 0x0, 0xD, 0x0, 0x0, 0x5, 0x89, 0x5, 0xF9, 0x4B, 0x5C,
464 0x0, 0x0, 0x23, 0x72, 0x0, 0x0, 0x43, 0x4F, 0x32, 0x5F, 0xF6, 0x1,
465 0x0, 0x0, 0x1, 0x59, 0x0, 0x0, 0x0, 0x1C, 0x0, 0x0, 0x5, 0x89,
466 0x6, 0x36, 0xBE, 0xE8, 0x0, 0x0, 0x23, 0x72, 0x0, 0x0, 0x43, 0x4F,
467 0xC9, 0x49, 0xE2, 0x7E, 0x0, 0x0, 0x1, 0xD6, 0x0, 0x0, 0x0, 0x1C,
468 0x0, 0x0, 0x5, 0x89, 0x6, 0xAE, 0x6C, 0x5C, 0x0, 0x0, 0x23, 0x72,
469 0x0, 0x0, 0x43, 0x4F, 0x32, 0x5F, 0xF6, 0x1, 0x0, 0x0, 0x1, 0x59,
470 0x0, 0x0, 0x0, 0x1C, 0x0, 0x0, 0x5, 0x89, 0x6, 0xC3, 0x48, 0x7A,
471 0x0, 0x0, 0x23, 0x72, 0x0, 0x0, 0x43, 0x4F, 0xC9, 0x49, 0xE2, 0x7E,
472 0x0, 0x0, 0x1, 0xD6, 0x0, 0x0, 0x0, 0x1C, 0x0, 0x0, 0x5, 0x89,
473 0x7, 0x12, 0x50, 0xB6, 0x0, 0x0, 0x23, 0x72, 0x0, 0x0, 0x43, 0x4F,
474 0x32, 0x5F, 0xF6, 0x1, 0x0, 0x0, 0x1, 0x59, 0x0, 0x0, 0x0, 0x1C,
475 0x0, 0x0, 0x5, 0x89, 0x7, 0x2C, 0x43, 0xFE, 0x0, 0x0, 0x23, 0x72,
476 0x0, 0x0, 0x43, 0x4F, 0xC9, 0x49, 0xE2, 0x7E, 0x0, 0x0, 0x1, 0xD6,
477 0x0, 0x0, 0x0, 0x1C, 0x0, 0x0, 0x5, 0x89, 0x7, 0x97, 0x92, 0x5F,
478 0x0, 0x0, 0x23, 0x72, 0x0, 0x0, 0x43, 0x4F, 0x32, 0x5F, 0xF6, 0x1,
479 0x0, 0x0, 0x1, 0x59, 0x0, 0x0, 0x0, 0x1C, 0x0, 0x0, 0x5, 0x89,
480 0x7, 0xAF, 0x7C, 0xC6, 0x0, 0x0, 0x23, 0x72, 0x0, 0x0, 0x43, 0x4F,
481 0xC9, 0x49, 0xE2, 0x7E, 0x0, 0x0, 0x1, 0xD6, 0x0, 0x0, 0x0, 0x1C,
482 0x0, 0x0, 0x5, 0x89, 0x7, 0xD2, 0x84, 0xF, 0x0, 0x0, 0x23, 0x72,
483 0x0, 0x0, 0x43, 0x4F, 0x32, 0x5F, 0xF6, 0x1, 0x0, 0x0, 0x1, 0x59,
484 0x0, 0x0, 0x0, 0x1C, 0x0, 0x0, 0x5, 0x89, 0x8, 0x6E, 0xBC, 0x17,
485 0x0, 0x0, 0x23, 0x72, 0x0, 0x0, 0x43, 0x4F, 0xC9, 0x49, 0xE2, 0x7E,
486 0x0, 0x0, 0x1, 0xD6, 0x0, 0x0, 0x0, 0x1C, 0x0, 0x0, 0x5, 0x89,
487 0x13, 0xA8, 0x5C, 0x6F, 0x0, 0x0, 0xB, 0x69, 0x0, 0x0, 0x43, 0x4F,
488 0x32, 0x5F, 0xF6, 0x1, 0x0, 0x0, 0x1, 0x59, 0x0, 0x0, 0x0, 0x1C,
489 0x0, 0x0, 0x5, 0x89, 0x16, 0xA5, 0x8F, 0x96, 0x0, 0x0, 0xB, 0x69,
490 0x0, 0x6C, 0x43, 0x4F, 0x9A, 0x1E, 0xAD, 0xA5, 0x0, 0x0, 0x1, 0x9D,
491 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4E, 0x6F, 0x46, 0x6D, 0x74,
492 0x53, 0x74, 0x72, 0x0, 0x0, 0x0, 0x0, 0x3, 0x73, 0x65, 0x6C, 0x65,
493 0x63, 0x74, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65, 0x69, 0x64,
494 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x63, 0x62, 0x6C, 0x76, 0x5F, 0x63,
495 0x61, 0x62, 0x6C, 0x65, 0x5F, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74,
496 0x69, 0x6F, 0x6E, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5F, 0x70,
497 0x75, 0x62, 0x6C, 0x69, 0x63, 0x5F, 0x76, 0x69, 0x65, 0x77, 0x20, 0x77,
498 0x68, 0x65, 0x72, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65,
499 0x69, 0x64, 0x20, 0x21, 0x3D, 0x20, 0x30, 0x0, 0x9D, 0x86, 0xE6, 0xD3,
500 0x0, 0x0, 0x0, 0x88, 0x55, 0x44, 0x1, 0xD0, 0x1, 0xC, 0x31, 0x0,
501 0x1, 0x28, 0x4, 0x42, 0x46, 0x57, 0x44, 0x42, 0x55, 0x54, 0x49, 0x4C,
502 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xC8,
503 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xC8, 0x0, 0x0, 0x0, 0x0,
504 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x5, 0x89, 0x13, 0xA7, 0xC0, 0xB6,
505 0x0, 0x0, 0xB, 0x69, 0x0, 0x3C, 0x43, 0x4F, 0x4C, 0x53, 0x3A, 0xE0,
506 0x0, 0x0, 0x1, 0xF7, 0x45, 0x58, 0x49, 0x54, 0x0, 0x0, 0x0, 0x0,
507 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x0, 0x0, 0x9D, 0x86, 0xE6, 0xD3,
508 0x0, 0x0, 0xB, 0x60, 0x0, 0x0, 0xB, 0x69, 0x2F, 0x6F, 0x70, 0x74,
509 0x2F, 0x66, 0x69, 0x70, 0x73, 0x2F, 0x62, 0x69, 0x6E, 0x2F, 0x68, 0x65,
510 0x61, 0x6C, 0x74, 0x68, 0x6D, 0x6F, 0x6E, 0x0, 0x0, 0x0, 0x0, 0x0,
511 0x0, 0x0, 0x43, 0x8F, 0x0, 0x0, 0x0, 0x58, 0x0, 0x0, 0x5, 0x89,
512 0x13, 0xA8, 0xF8, 0x3A, 0x0, 0x0, 0xB, 0x69, 0x0, 0x88, 0x43, 0x4F,
513 0x4C, 0x53, 0x3A, 0xE0, 0x0, 0x0, 0x1, 0xF7, 0x45, 0x4E, 0x54, 0x52,
514 0x0, 0x0, 0x0, 0x0, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x65,
515 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65, 0x69, 0x64, 0x20, 0x66, 0x72, 0x6F,
516 0x6D, 0x20, 0x63, 0x62, 0x6C, 0x76, 0x5F, 0x63, 0x61, 0x62, 0x6C, 0x65,
517 0x5F, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x5F,
518 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5F, 0x70, 0x75, 0x62, 0x6C, 0x69,
519 0x63, 0x5F, 0x76, 0x69, 0x65, 0x77, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65,
520 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65, 0x69, 0x64, 0x20, 0x21,
521 0x3D, 0x20, 0x30, 0x0, 0x9D, 0x86, 0xE6, 0xD3, 0x0, 0x0, 0xB, 0x60,
522 0x0, 0x0, 0xB, 0x69, 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x66, 0x69, 0x70,
523 0x73, 0x2F, 0x62, 0x69, 0x6E, 0x2F, 0x68, 0x65, 0x61, 0x6C, 0x74, 0x68,
524 0x6D, 0x6F, 0x6E, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
525 0x0, 0x0, 0x0, 0xA4, 0x0, 0x0, 0x5, 0x89, 0x16, 0xA5, 0x62, 0xFB,
526 0x0, 0x0, 0xB, 0x69, 0x0, 0x88, 0x43, 0x4F, 0x4C, 0x53, 0x3A, 0xE0,
527 0x0, 0x0, 0x1, 0xF7, 0x45, 0x58, 0x49, 0x54, 0x0, 0x0, 0x0, 0x0,
528 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72,
529 0x5F, 0x65, 0x69, 0x64, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x63, 0x62,
530 0x6C, 0x76, 0x5F, 0x63, 0x61, 0x62, 0x6C, 0x65, 0x5F, 0x63, 0x6F, 0x6E,
531 0x6E, 0x65, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x5F, 0x73, 0x74, 0x61, 0x74,
532 0x75, 0x73, 0x5F, 0x70, 0x75, 0x62, 0x6C, 0x69, 0x63, 0x5F, 0x76, 0x69,
533 0x65, 0x77, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x65, 0x72, 0x72,
534 0x6F, 0x72, 0x5F, 0x65, 0x69, 0x64, 0x20, 0x21, 0x3D, 0x20, 0x30, 0x0,
535 0x9D, 0x86, 0xE6, 0xD3, 0x0, 0x0, 0xB, 0x60, 0x0, 0x0, 0xB, 0x69,
536 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x66, 0x69, 0x70, 0x73, 0x2F, 0x62, 0x69,
537 0x6E, 0x2F, 0x68, 0x65, 0x61, 0x6C, 0x74, 0x68, 0x6D, 0x6F, 0x6E, 0x0,
538 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC5, 0x63, 0x0, 0x0, 0x0, 0xA4};
539
540TEST_F(PELTest, RealPELTest)
541{
542 auto origData = realPELData;
543 PEL pel{origData};
544
545 EXPECT_TRUE(pel.valid());
546
547 // Check that the flat data is correct
548 auto flat = pel.data();
549 EXPECT_EQ(realPELData, flat);
Matt Spinlerf1b46ff2020-01-22 14:10:04 -0600550 EXPECT_EQ(realPELData.size(), pel.size());
Matt Spinler07eefc52019-09-26 11:18:26 -0500551
552 // Check that the code can extract an object for every section.
553 //(The PrivateHeader and UserHeader account for the + 2 below.)
554 const auto& sections = pel.optionalSections();
Matt Spinler97d19b42019-10-29 11:34:03 -0500555 EXPECT_EQ(pel.privateHeader().sectionCount(), sections.size() + 2);
Matt Spinler07eefc52019-09-26 11:18:26 -0500556
Matt Spinlerceac9692019-10-11 15:02:24 -0500557 auto src = pel.primarySRC();
558 EXPECT_EQ(src.value()->asciiString(), "B181A80E ");
559
Matt Spinler07eefc52019-09-26 11:18:26 -0500560 // Check that the last section (a 'UD' section) is indeed the last
Matt Spinlerceac9692019-10-11 15:02:24 -0500561 // section object by checking the ID and the last byte.
Matt Spinler07eefc52019-09-26 11:18:26 -0500562 auto& last = pel.optionalSections().back();
Matt Spinlerceac9692019-10-11 15:02:24 -0500563 EXPECT_EQ(last->header().id, 0x5544); // "UD"
564
Matt Spinler07eefc52019-09-26 11:18:26 -0500565 std::vector<uint8_t> lastSectionData;
566 Stream stream{lastSectionData};
567 last->flatten(stream);
Matt Spinler07eefc52019-09-26 11:18:26 -0500568 EXPECT_EQ(lastSectionData.back(), 0xA4);
569}