summaryrefslogtreecommitdiff
path: root/python/openvino/demo/ip/intel_ai_ip/verilog/dla_alm_pipelined_accum.sv
blob: e2151be4f02c3599d9c2cc5d62da8bae3ec1631f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
`pragma protect begin_protected
`pragma protect version=1
`pragma protect author="Intel Corporation"
`pragma protect encrypt_agent="Quartus Prime Pro Software"
`pragma protect encrypt_agent_info="17.1"

`pragma protect key_keyowner="Intel Corporation"
`pragma protect key_method="rsa"
`pragma protect key_keyname="Intel-FPGA-Quartus-RSA-1"
`pragma protect encoding=(enctype = "base64", line_length = 76, bytes = 256)
`pragma protect key_block
kxf5pJb0FJ7DPt7z7l+70wvBRAIjd3SM0fWh4BPOUmYtXQKPz5P8+fGK6qFaT7a/43Ky4VWKw0Qh
1HAbsZ5uHL6Jq/qDOu85ocSOkNFbrMwYYiqbGCC1MolKOYZGS0oCwDHbqcMTmQh1BSehNtY1RSH1
G62eS+Nclqwa9sttFLOdCDnUcNkSeizrUJO3/Jvo6TyfpIqJ8deqcQhn5RKYxfSx+kw2PEPw0bng
io7XUYGmMeu289Vn75skB4hHjBblN5aChD7VItVKGruDjXXVqOTWvbA4wSvZpitjll4MR+b9WDUV
Fi1yezCOzeensksnTF3ivR0sQ/BdRr34tLEW6g==

`pragma protect data_method="aes128-cbc"
`pragma protect encoding=(enctype = "base64", line_length = 76, bytes = 9920)
`pragma protect data_block
lxF8CFoSCF32wb/ZCX+bB1FIehMgIr+g0xC6OcNKNI1A1rrC9waV14rn5QnoujeLllBFVFWcSrKr
sdvCubVOx99SUB+h5pL7ELmgeOuhp0FW4DuCyUZ48d3dB3GrSUmpZZacUY0pGNsMI3bfftzJdG7F
rzEZqh3eoDQTBHefoim+zv3Bcc6dtop22RUyrO6kVRVXLZMEO3Pp6tlZicbcblNzGC/QtBL2vU4i
zX6xmLTHpEg/7SoSpBDb8pG2OFET6ROiTTA0PpIa+gwRiZIuoFtCiJGvL8qe9uv0MgOXVpSAjtj4
cdegjv+jVaunksqH9dfAXo1wUhqyweL7+C/bmF2oyQfdJzdGYZp4jCVVpk/Q0p487fHLVw+qHZ8E
kOCnKJz1NtWYYs7w2U4Ekge2RpRb/h14XQl0bm3pDjkr1bKpgdLpesgkLDUiEavrWqe4ac5wFvLS
a2AvxvR0nqLu/KeG/11jwy3KhGhu+/1ID05c+RJtPNi8v7Z50CXyEU2UInHD4YNCigEHkYcKmAQQ
greoJxmusnTpMvtPRUd4tNGuO7V0ab8ZgAPcLOfsJ7dZJ+0WOP4uudlvxxpmRvxaXRJBvHT6G9vH
5rk3L11k3wUDwaIrXCPkYCXb2q0OriwzZsYe0Ma+uD9lcSbXGTuZqP0n1kx4jmBh9Nl5cthnviMo
9zU8A1D2+xuzP22WkGP1ujzh+ltSS3nwSehbp/J0nzfx9knNfX6p5bSoGiL3Km5PY7r5vCcueLJh
ZDHxCi704rb/EYpnoOY51glxj08oQi5XwyYlJEdIbysdtO/8nWSoCuj61Lw7Xv+dMJagPZXwNHAY
XbdJtOwhtm0aENZYBEpM/JzNCz4rJyibMEhESohqpHq2jERqhtGxuCSAbDeoV0rCpw8f45KYMK55
A+lqIoGguOsN3eMkgobRm2P42/5k3jojLfGpbPqpRmxaJv0RraVvVw7okEPmoeJtuXL3OAGfprfd
yEBQXOhFFa0WZF3xoqqcL253ZzD73poNbQsqFJXVtS0Ru9dCNE2BSHRRXdVlwaOgNXrahrbfy5i0
1PP0vrJsYTBlgreLanGVb3y4NIfSiXLGvm34xd4VR9YI/4T1L6qOdZ1mkGYnZUMWyfA09bdqErN5
y9kz4Fny8x2mWEoz4J5uipWTiwEY8WqPqZ+66lsbg6hEAl5S+kq6MS+tMLKBvQO2Rletawo6C53I
lxLswtlhTTffi7BctjZ1vNgrnD5ldmvN43s3HKsnbDClKTEdwJZtD+rjOJ6F/HOMJzzcchgsn2Ye
7Fm4f+UNj6VbZhIwlBRhsHrQWZOlpF2Vfb2iGOpUblyKfKU8QdiSZioLxvtC7DpL92zqG6XAH+Yc
NY/w28FoZp035bWzs8itFz+nq0ardoGzu1O6ogWALNG77hDbeuUnu7f7GpMJyQ1oFNDKaRvuId/I
MPbhr6jRSJ3T195j3WC4RmIgzr9jSpss630Yrnztadii0F4hoOdSVKG0twykXENIeKyoPFLWMGMC
mE08KiQWmreWO8dg/Eahm2tmSs1BvVQDtByNVLKDSJYpOv0oJx9X2gkFCYls/i4C26yK1S9msdh7
XTfLjfUwoknyX2pi8ffMXiQL4soIE6g8zSqM/JAHbeJW4rbJPlyzTvRfkMRccPPahpgaZ+b/vESM
zpMKSbk07LM+6jk3xaRtOw8FH6wtyWH1qzgN3qS/vTzUWpXx8EOZhHHO1+LKezNZ/Z5cTd22H3y3
mS8sqxsHfGoBd8VMx6nXFtOFwElhLdpT4qUQwjTx9qjsxpfXohWNY1pIo/u0D1g7c09JIRxcdsGc
aAWguepOV66rJhna7V+JapiMCqc85QPl8EXeXbbLPHugSUqV+E3V2Q1CoAANYTYiKwVws83H2O4r
5aVmSH74URSGPKyz64oz0mjUmvE544FieRE2lXT/s/S9vFIztP1CHVmbTaTAlijRZSJN0bxAU230
JcFI6O9RuSJUGoRIBygAuCfRN3yQOulUVwvEeq6HJt6ncgDzn6DWQk46MYgfDAruYdTxoZwZG6Ly
zv/7fcHjIrIWfiqm4qHEJogVBiQuEsLBl3rnt5gSb+QGppOJrZWRGxrL55+Hh2SlVJ78GUNONijx
Cp3W3PONOzGrZ/sTqNLj5MVSU30DqPVTpiygZAVvhqh5UBPKAZg8+MiKfx8W+M1O33S2QvrHT5Bb
5upvES920bcSHbPEvcylantnESU6ZI4ksgUIc8bQx2ehOrobk2q6V8WTWeSMUmKl5U3DHRZWvYWu
LHMTAiLVvemQ1fpwF/ZYd86TRakc5KpOWrvBjIyuLKm7iD5KE8bVH6OxbtR4ZfdL7Pto0y1nSiAF
BaF5AjeRh/QFX5uXWYHpIuxgI78yemymq0Nsj9qeb6d0N6cTkJ3HMvgPau1UAOZSMFlYqn3zATkW
IFTHsEVlj5nCeDioWkZldeWXBb4hutIasTh/A0D7vA0vifEB1YIMzuEb9NozodxfGDbaFoyHJx4T
+j6s76Ocyk9+vDyngVLAb9fBO827sWfe9clhH0wn2PASOub7Rs7f8Ma9d71uhhsFi389XYwLrmR4
ItCC3CmF/12wHpdel9RFAMsqzSso73euRsYAFdALQsVdSWhrR2Mh9JJxU699oVcLfWl1Ukt/XMGp
4nuK9YxcuKPN6sB55/5wRfhhrHT82a+W4sw2WOl6+kr00pup+2Lq9xDXKZsgMVBFLYvskLTLnAJC
p7e0+5p2H5J9f2ntNC5dbx8XLDKax81jQ7xYGTUgmLf7wia1QbCfYdKDa+j0BNNzefgHWpoKhuKS
c/eXSuRuHsT+Q1c3OoPjBAcQpT2TuvmcMZ9s9SxCoWDNaTbn3vp3nBNHN+eI0WGTkD0nX4AGARdc
dTvLZ2RWKhR8ZhRJvyJ+p7XX280UYMHOjIjEr7s7vmfB04W1UXefkrfwhAxgK7GVwHR7bkIFUcUF
cmzntslMRNYUlIFZRAOZDgtmVkX0ZW+9ePR9KmoaBdqoi2G0euM0UL5+OfdlfvXIPUpjOH1YRG3p
DxgwGFTbMwDQGATWif7u/c3MvCKp97SSdtZo1WM9KcvZy1I7DDxpJHCAdB9WO5/5TMIGscto3Hvp
2S1zwt8qAd5ICCXrdPVyAlANN2W8Tu9FANDgCp5TXNQ39RxNw/pgbu0Shc2MIig9Tkvn3HbgfbEt
lMllOeNtceyLgYGoMYvPNK8Fgpnq+ikG4bFtgAzei78pMMNKmxBJocqFy/YjiiGx9D1Yp1oxTDEA
hAPerYvN8hP+2Z+r//Vk9gEK/LZWi7Y5L9bTwoNt+lrj1OsA8e9YbjzijJG1ngx4bXPEeNiGXfBO
FkjnDEqsWUDOzS399RbkuEUcGRmh4by04/0csvUTqbRHgWOfLyZVUwohQxlAJESuFPP1n9YhGqSL
eE0le+WqGZORpyUMWarXsiSutNtAg1iuYCpFJ+ZLzXGbjnsmuYx3KGX39qJ9JNCV3FvJeejFPhMS
EnfIo7+E495H0IXeihwsd0BV430oCcH0JHZmFCw3abJKqsKEiHcgQJNF6F1Cb0NGaRFpv5bU4u2d
4E3RHlJMQpAyupEYHcxl+k2M1bSehHTFZGGA/9SdCopVoVnJBzTHA+rhEV1if/hZ9m4QOCZbk9sR
Ylx1XXAUfXDewsVMd+Y9IXbvC0n3shr7EeOhwKb5DLc0227eFLOc0ddORgVkRVqIdJ4+UlDy+k2J
UkDkPoE6w11VRpkUZqUFlrqfAxHM8vhAwxhkezIT6AiPdH1rKTFkrcJSQa3qIG/n1WZGYgoX+yC7
JKVrO4RzDYgoxeaGHBgWxsSoAy3r4qmTFYXtlL7ntP1s8MJUXZ87ySjMPaRUqDww57sbDIl/WPb4
3FQnJOD4jm6vsvEt4xYiWXOZo8LSdZK5PRRM8ZDFSEp8iSAorTGM5lwhEsnU+9C50AjeroDSsq6a
EPOq+SrhTc06o8yAe0c7QH9E6eNvlYNOzF7OrWzRk+uDHGKP7jQRQEqofG0xvNig7w5jFHRbuVQZ
foGXz2Hf2osouqym85JlNHOnrewukxQunq93jiHc1YQp6ln4Tqi35ykR58rgDu2u+Q1LD4prI2P/
ORbDjOn9Y7eSZBXL/53CfFWsCe/XLQpjRaR9lTe4+JinTMKWumyl0qYILuFSboVQx1mIJnZVAMiV
uKmVypq+pHvyjor1EdLlasxcKl1vVUgp9visM2zxlPEbU/uZVU84HNkqnelrX2EOD9zvFTUVOQfs
KoCtnYdWtPmBI9tt2lzGkhBdQV6PMbKpRAjoxvBT0lcBm4dxG/+0ffMYZN5IazOVyzoXOaG32Krp
v+tZVuEvua08hRGktqTTxRuNoIBdiwwQqsoD8iUwrcjdTcken3mYm/HmmTuG5Tsry0dTyumbGDnk
AATjK+m5Mycd1CFkZOox5Rx11KLsE+bgXGshf5ZXWS8s/LepErmR/TVvsUSr06RvkepCF/FRINDV
m+SGPV1ybrarnwUsWT6ytg6eEcAsuMofylmrhsUD5uEK1k85OL3ySR1pCQ0iPiJO0OVmUHHY4QPD
tgaIkbTUaKkWlH1HEUowW9EaaFBu3nCz8GXAl8V5xKt0tzZUHJ6qfqsZ0aG+NbS1tB0+x5bKSm4h
nPTW+BH49VVI8qa1ufQvCczCkORscQsnK30wBE2Y2jVbZlzarkD864pr3ErS77EObbHT1IZ0LGJy
sX6i25EmntF//cWtc4r9Rh9DcwJeduBULwdzMXbFwTYgqhT00UqaB+szPN9TNwVS6Oiebs9uPRc1
TTS140TQcFdBGPdq6Ljt+4smaFCN5BVM712GmtwUIDXmYTNtQVu6Oxk9AabySdfk8n/n0Tps/VEr
ptUWba1HLRrm0OKBasU+Q2gkrJgJnlyIn9j7lk3dnap8NBQfOtX2wsY26q7sb0/nO6P2MoDJyxa4
DgqPeR06WxoQYdhmxA9cT52Ki97tiU09Wlf3Jj7xwgAoiKVWb7mjo1a6Z/UDENrTnNOxjZPruRA8
RSWcUIf/UNlXv4/mXXD/d0w9+KwFI5RKpPzMTXWdfBNqrjW7/0D4MuFIq2RVijI62CkYclcsDdag
tDj+7Jb5ZniazVcKbOm742plYb3k06bfFeA0lm2CdM5ye++9aS8hAH2GR4pL7NYpW1FF95eqM6lG
idM4r+CKAkTjPvc1TFtpK4B1A5ihLqJr+mxlYv9JtMw1XwFWS7Ye+PD+KcQkt7gT5x9eeAeoWPQG
QRG/yKUrp7javkWmbQU9Un8KaEEggprLnjTmt9vYyuIGSnUNFVI+CiSZalOs43BhRdt7sUZ0TrgN
nVGGUD4vJ/baSkfE3K1BTHwniiuM5Bc3qBdC1tzXnjdDhZeHkvqh6pEwc4PUu2LcvK/ttvYZxbij
mWgjUf8Q28kAJKAAChtaxnythBYePED0BvP/m7Nh1pv5dtfS6kYyq21G6SNrWllnIGnHzX0vDyg0
vVuWevJFNKkG99ZNM4WH2S3hli4NQZt45NT14HtraCn6X0OGP3KBz8w/FQcCqt+nAuZtZaejqFFm
JYae9MZjcl6mWUS8Hwm2dkzjg/bYhcxZ7E5OhmzAeXBVr3YxsFricil1NMhC0JHEvgTRLf2lmePY
ETDv7Ogag8/ARHBwS9alWJ1kBy+fArUMrdwsGJj6sdIQmIXvupagAdDu7bmSAWWoar5WGsmW1r4j
baW4PZgC+BQNJz/KL3ryhOmQHHZ2BMFO9F4ldIGB7t5+ikE86EhN13TlGBy3kJH4wtHVFzgafbT4
Vrc9nx1Lgr+BdWmkiE6p/iP6ryfCC5VnmYyIek3Ua6+3jg9KPAqi72tFALXpAgOyojoVPp8UmZZF
3r+MlsOjn3yu5vFt1zdDfzvuA3c5CMchxVgHkCgg4hkF37KuObXZzQBGe63VYkxWhL8NgmHQ46HK
lYUMIg5LfjB213wGDaS3zUisgTjeOnNUaTovh5RshHWeeLgVjyzBLoCMQohE0s2bO5cKxfVB3qlI
gooC3Gi2rfdjdYH1N+kDKoPsKyKqufICsCRS37AD/EaCMQWoAOT4IPLCHLrHPMHZGu/2rfwR/peH
hrgrjZBfvoCrkWKo+2H572ogiuPqbljXje64TYPmPm4KcyVA8n3jKLtmPhLiNY6nvFgOO0lyN67d
iLGkUPauaDCNsqOySdH1rCQxHjaNBSTbb0qfCjt2+Dv6XIt+bjIceSW21RD+7Se1mrLhY69hEDe0
TGtrkOXWJ41JrGhz5LL3ZWNnUM1N39WmaNONlSakvzp8i7Tw5WEv8D6yr69gmxQaz82FJGYGiwj0
XMN+CdLg72T7/bjfjli4XKxcyhBSqVuOm+zWLuv98B0JtX+eoAsvBufEL48evBZ2o47/KMM6lMbJ
SN5m/+XF8LUx0PLyFOgk4s2VqWjMBsZaXjE7LDPNzRq8gsWvhWmYJXisHm79RVbuzp0jX/3+Ix//
nbL+fVrZtZxuCK2I9AFEuAvJ+KKS0h0iGwwWj/Nh5KLjlCMgWJ1Wh5AAOw3gaHH2ueYvxivlovRD
78dV7wNHQYaDSB27DNOraS6ne3haziEQtlYmD7WbKWwTpptEY9i27k+DuvF7Ij5F6KUA1xn64s67
6FtUokTZHG9qbATnWVGHiXPNV6P9Fsz/Wir3GJJkDEnu0YiVD7FaiQ5wObJIr8BJ7zLi+GHqEdX0
aLgo3AaltYUbbEn1LqIoUSPOjFJWLvCQjcLklGhLneuQs8/HMfZ5cxllVz91/UyaicKDdjxH32B/
mngYZjU3OvqXppEP15UMP7I1Vlc1QGi9EVpJRx9LaVv7UEgLzv9I2kt6cZ+WbX0K8MeohGHGAZL6
XVeDHI8LKBk4u3yFS0oytzAfUAB6iGvKYBoQZxp4KzBINv9L6IXNkCz7D5O3HyMTIWllX9J1B7Mw
1oWZk6QGzSIcr4Ckibm+le8IB28dtRPlhqbrAn4vGhxsc4loUHbZjCTA3oo1NFG5tHKX5aHoPA7U
eP82Kd/SiZgJX1sxgc3i9eoL/9ishgq2j54hmQB38OBuL34CjlezTayzkoyr1njlGGB/sDBRUH22
KCCK8D/0SS1TC+UaQgHGwhP5TRVjgKrDZQX5h25cISggbC5gRHJxs6TvirKXu6xfPYs5QZ5oPbvm
gd6Xs/jefphn0cCAWUJjrFKptZuCb1JPTLY5GE7IuOtre/Em7wuzBiKAM6u+tkf4Y71pFp4TymLw
4LG0qPTGPL771qvrFTZwc9/yaMLM+npRVSHJLpPcnYDzSzSnHMZv/pOpG5kfT53bnsanXwx5ggBx
VmqAVueu5VXL2QE2i+NApqfrYOwz73e5JXdQH+9RQODybLDMw9wRuflwFsfX5fnVm/m7hf8M4P9s
Q55ZdQ7Nv1Wewo50VzQu5bLTOQKOOck4iFsblJpfNK2RioboF4ru05pg7VmGnRx0m4HzvvOW0h7f
FUu2LwOLtpMaLGMcwdc+9GuoYus40kbeILglqPRLwbQCMKk92+fi+qBzPzCbb+T8uKqH6AY9CgkK
zBjqI+6yRg9VXrryGWJJ7K4DJYzabYtfwsVPoA8zlqCgMreaLdfcwsBPyCm9G31HqU7OyxRbkZAZ
tZRJUmUtn9kQbib6WAbgEre2oUTOwCYigonevIHDKrqpGMT0Ca06MVV6NDAkrz3XjV5RiawMnQCm
efMKjmDNdpVHrxilO4Gr+7QikQ3h2GY6jhgwgTUJ8QhDNMNUjlPm+BfS31Dm8/uli1tJMqHU5ti0
qd2FPQg3nN0ApSfhr1Bnp9yO83U+UdE0oTZLUlTeavflUn3Emd4SujI/banjGOyKNokzQje7WOV6
p3PcjUtmlVJsGK2+4uxBPn5mV24R0lbAYpG3KoJhYey6wwBN8VLJrwRPKGeyYDUl+XFdvYccF6L1
ksy1dmP/aatujRu8W7FfVQP305abLiiq9yhfAPZC95RBRD9akNEeQpNnAQ9ssyiQHlRZO/XjuZsE
ABzR94vsGtU0XMsHpR9BSrAnpyatHlkz8CngV7I8DlLrU9FQmiixEEPUWANTp8S+oz7tsAzK7Y0c
K4vogXrwW6fIlkRu5CjydlvzDDaKh5EaoEEl0+fi0sY59yydvG+Kg1p45OrgRzTDbxQzwqkDNTsc
0/ok/EGtHPQsIvMc/QrKmtwZY9+X+fQz6HWrmuB4a+VjEANJ2hlfn1VdNFUpu5/17hf1OkaV3SZv
b1PHHJKCItxyCZkge8liohUv6zqs124jdICtpo9SkiL8by35FCATsVKqlJ7c0CFj1vXU1CfrBb7O
8ZElmF5GB9J4TjV4ZMWBz3saOshVBCUO7553lI3XYj2p9MGHi7AzQUp75GcMbfNTrSKz0FniZUJB
YAa97Zm1fd+EpGvdAz0x2nOWtKUfdyqy0+XEaCxV5qcyR+FCLwHMDX+vDR3JwGyxC0+y7gFxlbUV
aSMvBg4Q77RWbJtSXcpyo1ffGHwgY4nMAjAAEPdllvTyvsJAovXeFZh5phZg8U42qUi++oURc5Dg
PojCuteZHdgKpi7Fbroi6JXsPU0elx/o3D8jQSvedvlrxEeLdwXV1jMkjKdY7dsCkYmxVA0eLZzb
dtF+0Ty1rYomlx6bFXrNbd/mufdyjE7F7Ed2F75I4gOY0blxDg4he5Jg6FJeCImK8I6/a7fnupbk
0vPF71f/DJatQEBdv1IokTWYxgOoY4vFmlL8VWNLwbODUWuJ7tK2g3lhKEkpsqxvfxQCDaOO0IGE
Cz6e04LBqd4tJ2ikXiOKa57kGgUY+PVsP4EqF20G4l9wnOYFQMxp5LwZctMoaJkR1bzeDydu1P9U
4Cz3nWd5i4ppizdpe0haspHDQ1/ni/XbRDySqZPvHnt5vj+qnE3Sl/1VyXacgMjREH0J7sntkDDE
GVR0Ps+JdcdlfELPRqSkD1wX0EIRQo1qotOMn3vNH8FpDUNUTUXa5NVtudxtGTcXLRjfJco8y+ZO
Jn8/JveSII4eyyj49jvtMtS5Rw6XlxWUYTCW4jshqG2oGohr4YKWHfoPR/ojK8GT4P+w0iyAscI9
foqnUCrkgT6PqvQqPvXryFXwpbgShSyYG84UWNKgGTB061q0BTWkhaGFxWXgPizmMUMnwk8Kx6oL
rccmy2xC05OqGOa6GziIbL9zrzzS3JRtcnaDgeheiOhxAs1THMJz3ipmnq6MOYzv0SmwnFb2i/rG
dEV9XUh69BK7MND1VvJ7QegimNB8Hvp5phyVkI4zsVAxrPKLvAiMQQd+xNCdRrDWmWo25Z9ntB9y
w8xI+q89y/ak5cqKkQW90jj9nCtVrJaLkx/u3Msh3e4482gw5ghgMxDAI9E+jHEbmFac4YIWUAHs
M4Hng3vjUA2CJtiGKNnPe4OX1KhJQxYeulYayWgFmlp39Nv7+dhwvA4NjbaR/KtV24Rgdd5ORYhF
OBOwnJjrhQenkdFl29vNDib87tcOEqYUHofOodFwbKEk5S9Hxat4lU1xAcu2JjLu1S5mIYN5bmUK
uJZ9JQ3WxobB2DB3uyqQdZpZCeRFGnwUqed0IarbPkS5PgtZuPfCJbunbY80U1QcLbUwGxfst6Ng
hBVgbLAMrHwjXc/zHvCxa/MJk0XXVIpN4jiMT+AZtrL6mHRsSJVBh5O1pRhTznw+O+kfIlVvu929
E5byHlWpa4HljnzIKTDvSobN9SICphrVnYTw1Y6uEPR6mp+F/cVky/UM4IYrLR9yr55YlRk6Md9Q
+qOql95QoeIlPh3kOW+cTECYi+HfQyDq9G+ABE9CrJYFYQcd0vBRfoMfARmsR3KCp8cXSt1Go8Jd
dTmg2rLy+ztUTHbc4owwdGG1PZis766qiyusA12qQLko9sdCpeUS+CtJrTKNcVdKqnUum/AxqPhv
TH8rnf7xOeHBjizHsZmWtudoOxmuFltwBo7UwW42+08tqhMnU8D5iVBbpqKLXmlG9N1JZCLSprlP
zLYpQ2UmAkWlFCUSLTGBV+4rz40GNY2khGAgcPo5mygOicvzM9p+2XnSvWLh71yF8BtMQypKoK/D
bk9hvMMJ0Ex8c/b/y+tGWBgJb4d6NehU4PLbyOG6nzL0NgS7cQdgGUshydJR+Uv5OWGsqzzWpf9C
nkFVD5GaWSIPu+Wkv3mKbdhk+xnwtzjwUDNsG3/NBBtW1qnLQoDFlHfDqjdBN7babcNiC0yu5v48
AquL42MNmXD9pBpkIMD5+kbJVzv7T+misuPSAAa58q7NMrZgOPY2n4qCwnrs6hBHuWcRzSO797tq
QuevDr9BIm97HbGHocaHN5kETWwe9eRa+GaiL6k4xy+oTLMKAPTHIdNASn7h75ojblAajMI4kqsu
tllO0KAZHBg0acvqa3eAGOHpgm0ZcswT4qk889enPdNbG/lzVTihIKhrFQGPwYG++OCGpV1dfNd3
IfYJmTwTIDODQAlPoG+lVObmqzf1p7CFA25uNaAT4j9pCsSQ+Lv0rcZdsfk4WqYBFLzBCDMKfM3C
7t1/0hxywDGd6P/Fd9k3HGrdjP/qkNi9xZK62gIrwEkLAprnoTrLi6SYptMN05ESQBImBuR6Kc+l
nJHus6xzhrRyQneZQTfpQVbpGxlG3UaPsMTLYprr012MuV7Uy3RK2wGrpgrDY60ZwZkbQCPWgaFO
LKl3VdL+XReCsJm05tdx+lmMyQoFBMafPx1mfMhEktUdD808vkwEs4gm0qQXZJltft9/RkyMro/3
Qhv0rSOOqwCZj0bBUgBjmUSXg+1I85JG2pvYeEFFDC9hZdRtRPUU6e2a5fgwKI4JF08W8nLtqpVE
e5aKA37wa+VPW6pRIXuGnkmpKtADmD37083mv+glQfV1d6W2npBTO7JT8anLJNeEmlXfX3N0MEvY
iOgriz+tXyaKVQ+941fQe3OIT274JvUt1zvDYXd1e8pSa8ChPhefNF3++AoV0fgtSiWer2mY0LKk
PUV5Y5I5Rd+q714+6YGaHy9O2fHsVvOyve4UO+ZnitHWHUE58YW2Klp+jVXGQ+BYczttMS+fcqaI
Se+CVY09U3DYRt6kfWwOijKJQvyzg/MFtkVDk1As4T4SOfIQj1gOHJJwbFx0Vk3WIVpWyltnIG28
nMdsn4daD3HK+gnrPvBcImEii3LHgFOT+BhRcQCJUTGS9k5SuKOj90aSAiGfZU3maaeovYFgNwa5
gv0jU8yjnamECsI8ntMis+pg25r5OgmYPNUhiZxcjNpzhoHekkKd43iNShxh92HPi1khzTtf9CM2
m3xH7yqvC2M2lD06AY6n2hFhCKbMhQxN0lFjRewIK00S58dOXAt14Xv7mDdnj2NXIQCz3f8Fb+zd
6PxdYX7h4jpCdUX0s/wCpamSwXUXswvK2v/LbT2szQYkAkY+NGlhy+PnajGj/2gRuHa4m0UHMydW
5rSMeSVgddbk+38POpEQ1yC0F2ycFfT9SpmJIL2BqsrGe63IhkIRboRYoUgLd8JxgLQQ0DtEPWiy
slRBnT26Qvn7H7H0OCpyl1kzlVL2erAsLHChFrCj4MbYtoNces7qzRxgZ/5jP9sE2lBCh0qAO2h6
QLrdCNvL7dSacM6NF6/ZydGDJpFsXz+KjqhwFMyS91CyDimM7ZpnJ/dfpy7W5L53WJ0hRlz83R9Z
2MIPthMYeMvjo4esx/aiSeRB+0U3ODDQjHwpv5sLUb56/4edT8gzL/W2G+aehrgX06Ubk08V2YSY
9SPF8pYBkBFk/PSyLUBNZzioWMoaYzuNsWGHbCqM9+7XPxds0IzXyJX3iY10AXW7x8EANPRU9zcK
r1a8yJ11RJ8E8ynVOqo6qIgFpm0P9DWv+l+jDSyua4X+2K4Wzzb4Pku48XB7miRg+qG9JLDuiHsz
IrerHtdLttHlZ/olXbcJiKsGqIoDJo74RbK//0q0Qn86yanvjhM5fnk25tXbL7JLmeAGvV0sjTJE
KYYPm69PlUzvUjDzEh81Ct2bNorAWWSwbYbr5TbTGyL+R6O06TIDa9G+9DOjPWyau5fLyzZ/kyF7
in/UhBFkywe/VrOk+MZK9iY8rhkP9TWQhmxUGMPMABodnsbuYBuUxrcj4FYE/bPgFhPLXres4iY0
XlejtN5U9XATYyG5aZpk7O63hd45dSfCkCDyWnnpmMX4nFco0touRs/T7yzeH8tAnc7hrA9hXWhF
r6auMLcrpBdGuoo9QhIhU/6EN4K0w/j1fPH7aEiyR1sbN06o4++V+rO/r/ymgKTlA70RSktbwrmn
/gb44wFd7Ylw9M79jfUPiQ01c591fT+lduevmJvnhRmu45TfHXJr98T2cCTjgzk1ddhAKNugeOtU
7ZNBzyPaQrex3RRHhdRT4xnKCBa2usBhXZRDck/fw/A0FOy7jHusP3gVhYzDzRclIdWfWomFfKYw
qGCXL9i2t8CG+QgcBhc3ex4Lyw66TcCA9LSf+6OZfdW489evkLws4vpRGfSurUv/o9dVYupf35gu
ZLo8MLHhsWBQ1l4snt/iqBGLUqSzXaHrG9MI+AEPwBQe3gOV+1sexJ5H//uB9UPkUnTunUCyN6Yh
kHZQIWk9Heh5+LmXL39Y9jUKGZndVmXxkJz3WgSECGZvgUM++qBZFKSWlXmF8tAvoeCFB72wKSSA
/59HQILhmYJKQAnH0UM6s3fi2loZUiBVHjDcPj4RLbmyjYvaPQZ0hZxAMp0XyISwZpeO3nbhIWC6
745YsldwB2OTkrNRcHBPJGzcD9jCK7ihgLlLVyQP6P2wDB6nDEPuMk7POs0+ZLqrL4dj1We8JMly
yKOhBqZAnvGmOzekPSIEzBpsRwKNFF7dx43uF1tP2N2REVo/iczldSUZ2R6BhA+yj8EC8t8Y8qli
4HsrdYH7NLfbxsTkWowsFoXti9yD0XNh6wHZdRfyA4hcmAmqdj8ulNw+eP4KLkweAsf5DekXhlja
IpqQ6S3x+PTDGwQaenn1iyl7s6inJkeghGHLiXtomAN++Sqib7VzRPOLh79/Pnk3EJ3426VhwSDw
tQPL9FStwgmPZaD+6aDMc1EHKwGUq0Jt+w851xmO4zfwssi6ZEEhl5xlnD/iHEFSErvYVWRsgJeU
waxPD6feu1is8Npb4wyibw0vY+m1y6HWXb5DVQwIOWUCW7bGqgIMT+FnpP6pmHK0Y864Q88idk+a
Kzu5RjVH32b8giavvxtlseC1g1BdL3Bms+Tl0c1JFr7XlT852pQ307e3soX0SrYTo0l8B+gKqKh9
jvs=
`pragma protect end_protected