Topic: Result type erased packaged_task


Author: Sergey Vidyuk <sir.vestnik@gmail.com>
Date: Sun, 19 Feb 2017 20:49:41 -0800 (PST)
Raw View
------=_Part_536_1465922027.1487566181277
Content-Type: multipart/alternative;
 boundary="----=_Part_537_1306053170.1487566181277"

------=_Part_537_1306053170.1487566181277
Content-Type: text/plain; charset=UTF-8

Sometimes it's required to store std::packaged_task instances with the same
argumet types but different result type in the same collection (especially
when implementing your own executor-like class). I've started to work on a
proposal to provide partial specialization for the std::packaged_task class
template which erases result type for the task. The text is here:
https://github.com/VestniK/portable_concurrency/blob/result-erased-task-proposal/proposal/proposal.tex
pdf version is in attachement.

Github repository provides reference implemetntation for the proposed idea.
My implementation uses the same design for the packaged_task as gcc and
boost implementations (shared state erases wrapped functor type). Those two
implementations can be adjusted to have proposed feature quite easily.
Clang implementation requires some extra work since they store type erasure
for wrapped function and promise. I haven't investigated Visual Studio
implementation so don't know if it's hard to add proposed feature to their
standard library.

I would like to ask for feedback on the proposed idea and the document text.

Sergey Vidyuk

--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/70f3e931-3691-4db5-a50c-ed44abdf7bc1%40isocpp.org.

------=_Part_537_1306053170.1487566181277
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Sometimes it&#39;s required to store std::packaged_task in=
stances with the same argumet types but different result type in the same c=
ollection (especially when implementing your own executor-like class). I&#3=
9;ve started to work on a proposal to provide partial specialization for th=
e std::packaged_task class template which erases result type for the task. =
The text is here: https://github.com/VestniK/portable_concurrency/blob/resu=
lt-erased-task-proposal/proposal/proposal.tex pdf version is in attachement=
.. <br><br>Github repository provides reference implemetntation for the prop=
osed idea. My implementation uses the same design for the packaged_task as =
gcc and boost implementations (shared state erases wrapped functor type). T=
hose two implementations can be adjusted to have proposed feature quite eas=
ily. Clang implementation requires some extra work since they store type er=
asure for wrapped function and promise. I haven&#39;t investigated Visual S=
tudio implementation so don&#39;t know if it&#39;s hard to add proposed fea=
ture to their standard library.<br><br>I would like to ask for feedback on =
the proposed idea and the document text.<br><br>Sergey Vidyuk<br></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/70f3e931-3691-4db5-a50c-ed44abdf7bc1%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/70f3e931-3691-4db5-a50c-ed44abdf7bc1=
%40isocpp.org</a>.<br />

------=_Part_537_1306053170.1487566181277--

------=_Part_536_1465922027.1487566181277
Content-Type: application/pdf; name=result-erased-packaged-task.pdf
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=result-erased-packaged-task.pdf
X-Attachment-Id: e1fab994-14b9-4226-a1fe-070435d98358
Content-ID: <e1fab994-14b9-4226-a1fe-070435d98358>

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
lrmKuRNzLXO7s5n12Sp4MIH/OFRSZIuKYKCSFxUhnqtgURE6eglVYSjVLdll6fqypPE+9gpzz6Cv
IANexqgKfgjVWnEqnc7SbMeZyBlUaBf9ueZeOCWNydchwRAk2H+CBJvCw2O+10NuAsK9g+nCfr08
lJvKo2dNQwkM3AUrmueCeC6Pjg2tLmoGcuBtjEj/AVE9BEVkNpgvhaICAsFq6YAdVsulF74/x0Dw
DImCb8tiggc6Eqxw7BTzf6FKXEBV9k2oEsZhZMAD7JViRhVLqMI85nBWTJ69yCQFXg9fOfcVH7Iv
/osPjZivGZgShlHRUBlZ+AycZ5wlrwEEon8FV7HAU+fy5gJv4UJeXlzOAWgx5T3dlgilC85Grnno
tiysmDudjZ14rGeOqtTOvnRT6oFX34QbRU4ProWHHihSeBFyIaanKb74ZoD3ntR03YEzk7FgIBqP
fzfHTYuvpp6CQ/IbcYM7gRJLpXpMVQIgWtcSsFgR5O3aSQFXUmvWQkhhUnCBCy7IVWqysyT5a+UV
CDoph0cZTANlubgO+NpVOl8+zZCdxANd4l8h4+CdUe7LmyZM4SctEHvf1Pyk71EQHug0hE8Bmssd
vZm6/m567Ib5+G7s4G22cqEv5/8LunraG1B78TdCfwCt6Ln04qfrF38D/l8yqgplbmRzdHJlYW0K
ZW5kb2JqCjEwMyAwIG9iago8PAovTGVuZ3RoIDk4ICAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNv
ZGUKPj4Kc3RyZWFtCnjaMzXRszBTMFAwU9A1tFAwsQRSpgophlyFXCZGQGEDBWOoVHIul5Mnl364
gokRl76HgjGXvqevQklRaSqXvlOAs4Ihl76LQrShgkEsl6eLwn8QOIBMcrl6cgVyAQCAiiN5CmVu
ZHN0cmVhbQplbmRvYmoKMTA0IDAgb2JqCjw8Ci9MZW5ndGggMTI0ICAgICAgIAovRmlsdGVyIC9G
bGF0ZURlY29kZQo+PgpzdHJlYW0KeNoztNQztVQwUDBTMDJVMDRTMDFTSDHkKuQCiRkoGBlCJJJz
uZw8ufTDFSy59D2Aolz6nr4KJUWlqVz6TgHOCkC+i0K0oYJBLJeni4INQx3DfxBs+N9Q32DbwAiG
zA3MDMwM7AxsDHwMMgwWDAUMCQxcrp5cgVwAOo4cfwplbmRzdHJlYW0KZW5kb2JqCjEwNSAwIG9i
ago8PAovTGVuZ3RoIDkwICAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnja
M7TUM7VUMFAwA2JDUwULhRRDrkIuCyDPAMgBiSbncjl5cumHK1hw6XuACE9fhZKi0lQufacAZwVD
Ln0XhWhDBYNYLk8XBZu6/0BQZ8Pl6skVyAUAb84WOQplbmRzdHJlYW0KZW5kb2JqCjEwNiAwIG9i
ago8PAovTGVuZ3RoIDk4ICAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnja
M7TUM7VUMFAwA2JDUwUjS4UUQ65CLgsg1wDEA4kn53I5eXLphytYcOl7AAW59D19FUqKSlO59J0C
nBUMufRdFKINFQxiuTxdFGzq/gNBnQ0DMoAJcrl6cgVyAQCqMBxCCmVuZHN0cmVhbQplbmRvYmoK
MTA3IDAgb2JqCjw8Ci9MZW5ndGggOTQgICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+Pgpz
dHJlYW0KeNozMtYzNVQwUDBUMDRWMALS5gophlyFXIYWQEEDBROIRHIul5Mnl364gqEFl76HggmX
vqevQklRaSqXvlOAs4Ihl76LQjTQmFguTxeF//8PwBGXqydXIBcAU/wcmAplbmRzdHJlYW0KZW5k
b2JqCjEwOCAwIG9iago8PAovTGVuZ3RoIDE2MyAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUK
Pj4Kc3RyZWFtCnjaMzHUMzRRMFAwBGITUwUTc4UUQ65CLhNjIN8AxAVJJOdyOXly6YcrmBhz6XsA
Rbn0PX0VSopKU7n0nQKcFQy59F0UooEqY7k8XRQYGP431DEwsP9/+L+BQb6h/vABBjuG+vYHDDUM
/9kfMPxg+Mf+gPEDiGT+wPCHsYEZJMNAHvkfCP5ASUrMoQXJDvQjA0P9f/7/H6Akl6snVyAXANWY
Z9MKZW5kc3RyZWFtCmVuZG9iagoxMDkgMCBvYmoKPDwKL0xlbmd0aCAxNDEgICAgICAgCi9GaWx0
ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jM10LM0UTBQMAJiE0sFE1OFFEOuQi4TMyDfAMQF
SSTncjl5cumHK5iYcel7AEW59D19FUqKSlO59J0CnBUMufRdFKINFQxiuTxdFOr/A8EPKMnAf4D5
Rw2QZPhRACItIGQCiJSAkA9ApAyEPAAieXCRDCCSYXCT8g9AxP//D6Akl6snVyAXAMAATxIKZW5k
c3RyZWFtCmVuZG9iagoxMTAgMCBvYmoKPDwKL0xlbmd0aCAxNzIgICAgICAgCi9GaWx0ZXIgL0Zs
YXRlRGVjb2RlCj4+CnN0cmVhbQp42tXPPQrCQBAF4BcCCoOY1kJwLqCbNT+kE2IEtxC0shBBUEtB
RTvRHM2j5AgpLRbiRPEQTvHBvGGKFw0HScA+B9zXHPkcRrzTdKIwllDW+HvZHig1pJYSkJp+NDO+
nK97Uul8zJpUxivN/ppMxlVVupX96lpg9HRegIfaxl/ZBsQWYH92gRvQAe5AItWAI9ADNlIwdwqg
Wbg55NmDzMPWeiVAE0MLegMWRUjRCmVuZHN0cmVhbQplbmRvYmoKMTExIDAgb2JqCjw8Ci9MZW5n
dGggMTc3ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNpdizsKwlAQRW8Q
EpjGDYhvNqD5PIKdgRjBFIJWFmKllhaKdpIn2LqodG7DHZgyRUgc0UaLw4VzuDrsBwP2WHPPZx2y
9nnj055kvbcOPmW9ozgldyGd3IloctMpHw+nLbnxbMRiE17KZ0VpwmgAp8nRtgp0UCLCWRh+idCF
Av5x5GQaWLWCUyioXCG6KBhpmVBD2dUPkV0LGYxt8Lyp671qN63SqqwHjVOa0wv+bjHfCmVuZHN0
cmVhbQplbmRvYmoKMTEyIDAgb2JqCjw8Ci9MZW5ndGggMTgyICAgICAgIAovRmlsdGVyIC9GbGF0
ZURlY29kZQo+PgpzdHJlYW0KeNozttQztFQwUDBS0DVUMDZXMDFTSDHkKuQyNgEKGiiYmENkknO5
nDy59MMVjE249D2Awlz6nr4KJUWlqVz6TgHOCoZc+i4K0YYKBrFcni4K7AcYGBj+wwl+EMFOEfEP
SBz/38DAfp75AQP7HcYPDOw/GGoY2D8w1DGwP2CwA6mTBxMNMIIfTBwggUDoBRtlDzX5A8iiDQw/
GNj3gOzlA4qysQPdwsD4h4GBy9WTK5ALAPnbTbcKZW5kc3RyZWFtCmVuZG9iagoxMTMgMCBvYmoK
PDwKL0xlbmd0aCAxNjcgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42o3N
MQrCQBAF0FlSBKbJDZy5gG52FwM2CcQIbiFoZSFWammhaCdxj7ZHyRFSWqRw0MLW4jX/w//OTNyU
c7Y8Nmxn7AwfDV7QFhLm7Oy3OZyx9qi3bAvUS4lR+xXfrvcT6no9Z4O64Z3hfI++YaAO4DmA6keQ
dCmkkUIWKBBQqEQJGbQAHw8x/KH9iZUgULKqQhaTkMqH6kv5fAFQBFx43OAb3h4wPgplbmRzdHJl
YW0KZW5kb2JqCjExNCAwIG9iago8PAovTGVuZ3RoIDE4MCAgICAgICAKL0ZpbHRlciAvRmxhdGVE
ZWNvZGUKPj4Kc3RyZWFtCnjaM7bUM7RUMFAwUtA1VDA2VzAxU0gx5CrkMjYBChoomJhDZJJzuZw8
ufTDFYxNuPQ9gMJc+p6+CiVFpalc+k4BzgqGXPouCtGGCgaxXJ4uCgwMDD+AWB5OMIIIBvIJ/gdA
ov7HD6BBcj8YmB+w/2BgP8D8g4G/AWiyPMh4e5A6OxBRByf+kELUoOq1Y4CZLN8AtogdZC/fHwbG
Dzb/DzDUfwAS8gd+MHC5enIFcgEA8rhZHwplbmRzdHJlYW0KZW5kb2JqCjExNSAwIG9iago8PAov
TGVuZ3RoIDE3NCAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaXc0xCsJA
EAXQH1IEptkbmLmAbnaDAUEixAimELSyECu1tFAULCTu0fYoHiGlRSBuooXI8Ir/fzGxGsRDjlhz
X7Eecax4r+hEOnFlxLH+LLsjZQXJNeuE5NzVJIsFX87XA8lsOWVFMueN4mhLRc4IDdBU8J83BDaF
MD2E3QnTphJBy96d+kfTNJ0awL/yKwXsxAnhWWF8I6zv/gh41Rh4vIDQgmYFregNlZs4vgplbmRz
dHJlYW0KZW5kb2JqCjExNiAwIG9iago8PAovTGVuZ3RoIDEzMSAgICAgICAKL0ZpbHRlciAvRmxh
dGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLUMzVVMFAwBGIjMwUTc4UUQ65CLiMTIN8AxAVJJOdyOXly
6YcrGJlw6XsARbn0PX0VSopKU7n0nQKcFQy59F0UooEqY7k8XRQYmD8w8P9hsJNjqLFn+GHP+AGE
mB/wMD9gwIP+/38ARPjVEI/YPzDU/28AIi5XT65ALgB5P0IbCmVuZHN0cmVhbQplbmRvYmoKMTE3
IDAgb2JqCjw8Ci9MZW5ndGggMTk5ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJl
YW0KeNptyz0KwkAQBeAnFguDkAtIMhfQJK7BJhjwB0whaGUhVmppoSikSJGjCV5Eb7DlVq4jKlpY
fDPDmxmdtDs9jrjDrThh3WUd8SamPelY0oi7yXu13tEgp3DBOqZwIjmF+ZSPh9OWwsFsyJKOeClP
K8pHjAwW7nKv35yvqtL3qrIRoI+nV/3vM8k9VFXAuxk03BnNDGjiyxeB8JwVDsq5s3TjQ9kUsAVQ
WmGA9NczK2XfR80EqF/VNahq7g5kBjTOaU4PyfFCQAplbmRzdHJlYW0KZW5kb2JqCjExOCAwIG9i
ago8PAovTGVuZ3RoIDE0NiAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnja
M7bUM7RUMFAwAmJjcwUTM4UUQ65CLmMTIN8AxAVJJOdyOXly6YcrGJtw6XsARbn0PX0VSopKU7n0
nQKcFQy59F0Uog0VDGK5PF0U2A8wMDD8hxP8IIKdIuIfkDj8v4GB/TjzAwb2e4wfGNh/gIgPDD+g
xAM4cYBWBP8Dxj8M///J/z8AJrhcPbkCuQAL/lpQCmVuZHN0cmVhbQplbmRvYmoKMTE5IDAgb2Jq
Cjw8Ci9MZW5ndGggMTE4ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNoz
tNQztVQwUDACYkNzBRMzhRRDrkIuQxMg3wDEBUkk53I5eXLphysYmnDpewBFufQ9fRVKikpTufSd
ApwVDLn0XRSiDRUMYrk8XRTYG/gPyD+AQP4D7A0MaID9wH8gBMqQBPkf/P/z/w+XqydXIBcAPSE0
NQplbmRzdHJlYW0KZW5kb2JqCjEyMCAwIG9iago8PAovTGVuZ3RoIDE4NiAgICAgICAKL0ZpbHRl
ciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjapc0xCsIwFAbgSIfAG8wFBN8JTNtIdXKoFcwg6OQg
TuooqOgqPVrBwdEjmCN0rFBa3yvUCzjkg/e/5I8ZDUKDPoZ0TITDCPcBnMFw5vPIi90RYgt6jcaA
nlMK2i7werkdQMfLKQagE9wE6G/BJigzIUT9QzHyf/pVi8oJSomU6PK2x4yZE+OIB72TT+bF4zsn
PkxeEK7ke3dm0tQ3cJ/K2nrPMfxbpxDKeaWoK1mnDTCzsIIvidpREwplbmRzdHJlYW0KZW5kb2Jq
CjEyMSAwIG9iago8PAovTGVuZ3RoIDEwNSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4K
c3RyZWFtCnjaM7TUM7VUMFAwAmJDCwUTM4UUQ65CLkNTIN8AxAVJJOdyOXly6YcrGJpy6XsARbn0
PX0VSopKU7n0nQKcFQy59F0Uog0VDGK5PF0U2A/8B0L+A+xUhfwP/v/7/4/L1ZMrkAsAIsI6BApl
bmRzdHJlYW0KZW5kb2JqCjEyMiAwIG9iago8PAovTGVuZ3RoIDE2NCAgICAgICAKL0ZpbHRlciAv
RmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaM7XQM7dQMFAwAmJTCwVjA4UUQ65CLlNTIN8AxAVJJOdy
OXly6YcrmJpy6XsARbn0PX0VSopKU7n0nQKcFQy59F0Uog0VDGK5PF0U2A/UM7B/YPh/+P8B+z8M
/483f6iwZ+A/x/jjgXwD+x2Gnwf4G9h/MPxv4D8AVAVUeoD9AUMdEnWAoWbgKP4HDP8Y+B/8/8f/
H0hAKS5XT65ALgCaGWBcCmVuZHN0cmVhbQplbmRvYmoKMTIzIDAgb2JqCjw8Ci9MZW5ndGggMTM3
ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozttQztFQwUDACYmNzBWMD
hRRDrkIuYxMg3wDEBUkk53I5eXLphysYm3DpewBFufQ9fRVKikpTufSdApwVDLn0XRSiDRUMYrk8
XRTYD/xjYPh/+H8Dw//jzA8Y+O8xfmBg/wEiPjD8gBIP4MQBWhH8Dxj/MPz/J///AJjgcvXkCuQC
AIm0TcsKZW5kc3RyZWFtCmVuZG9iagoxMjQgMCBvYmoKPDwKL0xlbmd0aCAxNTcgICAgICAgCi9G
aWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jM21TMyVzBQMFLQNVQwNlYwNlRIMeQq5DI2
UABBYyOITHIul5Mnl364grEBl74HUJhL39NXoaSoNJVL3ynAWcGQS99FIdpQwSCWy9NFgUH+AQND
/Q8Gxg92DMwH+BnYG9gb+IEseQbmB3ZgUcYPNQwMP2D4DwPDH0IYphamH2QWCPM3sB9gP8DfABIF
2Qmym8vVkyuQCwDXdj9YCmVuZHN0cmVhbQplbmRvYmoKMTI1IDAgb2JqCjw8Ci9MZW5ndGggMTg2
ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNqNzj0KwjAUB/AnDoG39Ah9
F9AkpiBdLNQKZhB0chAndXRQdBPp0erkphdwyBE6diiNCdShm8tv+L9PFQ9lTIJGNJCK1JiUoL3E
E6rIpYIi1ZZ2R0w18jWpCPnc5cj1gi7n6wF5upySRJ7RRpLYos6IFQ2Afdoc7LtvIPj0SmAV1MBK
uAMzMAFWQOIJ8w5B8R9h0RlL2n3Gry/h5qmA1f7uy6XM/8IeNfi+/wmMwzY/cKZxhV+zB1FuCmVu
ZHN0cmVhbQplbmRvYmoKMTI2IDAgb2JqCjw8Ci9MZW5ndGggMTg2ICAgICAgIAovRmlsdGVyIC9G
bGF0ZURlY29kZQo+PgpzdHJlYW0KeNqNzrEKwjAQBuALHQo32NVB6L2AJmkK7SAItYIdBJ0cxEkd
HRSFTrWPlkfpI3TMIGpS6uDm8g3/HfefSiaRIkERjaUilZASdJR4QRXbVFCs+tHhjFmBfEsqRr60
OfJiRbfr/YQ8W89JIs9pJ0nsscgJgmYI8DApMDNKwWsGJfjaLyGoPQNhzQzM4EsF0PNyPP+k+qU7
FXa4jkD7xvUaYO3U2F9aS6gtbvl/mO2C8K07cFHgBj+QDVMCCmVuZHN0cmVhbQplbmRvYmoKMTI3
IDAgb2JqCjw8Ci9MZW5ndGggMTI0ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJl
YW0KeNozMtczsVQwUDACYTMFYwOFFEOuQi4jYyDfAMQFSSTncjl5cumHKxgZc+l7AEW59D19FUqK
SlO59J0CnBUMufRdFKINFQxiuTxdFNgbP/xv//N/Xh3/jDr2HXXsG+rYP9iwP2CAogMkI/4HDP//
gxCXqydXIBcAoL4xUgplbmRzdHJlYW0KZW5kb2JqCjEyOCAwIG9iago8PAovTGVuZ3RoIDE2OSAg
ICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaJck7CgIxFEbhP5VwG9upnLsB
zSQDOoUo+ACnELSyECu1tFAUptJtWWYpghtImSJ4DQpfdY4d9CrLBVvuGrZ9Lg0fDJ3JlikWXNr/
2Z9oUpPesC1JL1ImXS/5erkdSU9WUzakZ7w1XOyonrH6ZC15dlQYIjRoPKqfLAnIIjIBHh5jQS6u
LV5JQB6hosPdYZS80En8T8AwiWhE+bc4J6B5TWv6AvrZO6UKZW5kc3RyZWFtCmVuZG9iagoxMjkg
MCBvYmoKPDwKL0xlbmd0aCAxMzggICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVh
bQp42jMy1zMxVjBQMFTQNVQwMlYwMVRIMeQq5DIyBAoaKJgYQWSSc7mcPLn0wxWMDLn0PYDCXPqe
vgolRaWpXPpOAc4KQFEXhWignlguTxcFhgQGBHoARYwPGJjBiP0Bg/wDhv//PwARM0yQOCSBDVkw
fjBg/FDA8COBwf4BA38Dl6snVyAXAEWCO0cKZW5kc3RyZWFtCmVuZG9iagoxMzAgMCBvYmoKPDwK
L0xlbmd0aCAxMzkgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jO21DO0
VDBQMFLQNVQwNlcwNlBIMeQq5DI2AQoaKBgbQmSSc7mcPLn0wxWMTbj0PYDCXPqevgolRaWpXPpO
Ac4KQL6LQrShgkEsl6eLAvsBhh8M/w/IQwn+A4w/GMBiNCIYUQnmHwzMD9hBBN8fBsYfMv8PMNT/
ABLyD34wcLl6cgVyAQC1HE1zCmVuZHN0cmVhbQplbmRvYmoKMTMxIDAgb2JqCjw8Ci9MZW5ndGgg
MTY3ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNtczMlYwUDBU0DVU
MDZTMLJUSDHkKuQyNgEKGigYQ2WSc7mcPLn0wxWMTbj0PYDCXPqevgolRaWpXPpOAc4Khlz6LgrR
hgoGsVyeLgr//zD+PwAm+B8w1DGwP2CoAREWDMwPGAxARAED4weGBAjB8IPhADJRw9gAJeyYGaCE
PTuQkGeDEfw9cOIOkGC/ASOYP6AQjA9gBMhgLldPrkAuAF94M9cKZW5kc3RyZWFtCmVuZG9iagox
MzIgMCBvYmoKPDwKL0xlbmd0aCAxOTUgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0
cmVhbQp42jM10LM0UTBQMFTQNVQwNVAwslRIMeQq5DKxAAoaKBhDZZJzuZw8ufTDFUwsuPQ9gMJc
+p6+CiVFpalc+k4BzgqGXPouCtGGCgaxXJ4uCv//2P9j/w8h+R8wf2D8wX+A+QHDB/YDjA8YHgDJ
DwwPmIHiDAdgJPsPRqAoWwVjA5T8wVfD3MDwg8eGmQFK1kjIsSFIeSBpZ8DPg0T2MDDIJ7DPQCJv
MDAALf6ASrI3AB2BQgINP8DA5erJFcgFAHF6R3gKZW5kc3RyZWFtCmVuZG9iagoxMzMgMCBvYmoK
PDwKL0xlbmd0aCAyMDQgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42k3M
PQrCQBAF4FkWDAxCLiA4F9DNZoM/jYI/YApBKwsRBLUUoihYBPEA4pk8hmWOYGkR0FmTiMV8xXvM
M826b8gjTTUdkGmQ36a1xh2agFOPApNXqy32QlQzMgGqEeeowjEd9scNqt6kTxrVgOaavAWGA3qn
4n3/4iZwBieB2NICmYAH8gkRiCcsM+AF95xUMLG4AJwl05GQUy39uDHutcB5FPDqPyIpsMMZdjhD
fuE7WdLSj7KlYosWE0VM14649gGHIU7xA1cGPgEKZW5kc3RyZWFtCmVuZG9iagoxMzQgMCBvYmoK
PDwKL0xlbmd0aCAxNzYgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42h3K
OwrCQBSF4TNMEbhNlpC7AicPAhGEQIxgCkErCxEG1FJQ0TbO0rKULCFliuA4k+KD+/izZJHlHHPq
FZwu+ZrQk1J/i/3qH5c7VQ2pI6c5qa27kmp2/H59bqSq/ZoTUjWfEo7P1NRcWmtmKM0KJQq0iDHh
ISZoMULLATroocMeCDsgMnAZ8HVaZxJGjMJIbxAm6KUJO2miTrpUujRwWYifm6y1M9o0dKA/uyI2
DwplbmRzdHJlYW0KZW5kb2JqCjEzOCAwIG9iago8PAovTGVuZ3RoIDE2OSAgICAgICAKL0ZpbHRl
ciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaVcoxCsJAEIXhEYvANHuEzAncJKtJGYgR3ELQykKs
1NJC0To52h4l3iBlQMg4g1hY7Adv53f5bFFQQpk8V1CW0znFG7q57ESnHk5XrDzaPbk52rX8ovUb
etyfF7TVdkkp2poOKSVH9DUB9wARjwCGuYW4Kzsh7gWjRMOXqBWk/FHyAFMWzCiz1KTRhPU6/sNg
lFiS0EjMbw6GXxwmDBxw5XGHHzurSl0KZW5kc3RyZWFtCmVuZG9iagoxMzkgMCBvYmoKPDwKL0xl
bmd0aCAxNTQgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jM21jMxVzBQ
MAJiY0MFIzOFFEOuQi4jCyDfAMQFSSTncjl5cumHKxhZcOl7AEW59D19FUqKSlO59J0CnBUMufRd
FKINFQxiuTxdFBjk/zAw/P/fwPz//wH+H/IPQND+ABA3yD+oB2P2hv8MQCV4cH0DBNsfYPhg/4Dx
g/wHxgf8f9gfgMwEms3AIP+DgcvVkyuQCwB2Qjr3CmVuZHN0cmVhbQplbmRvYmoKMTQwIDAgb2Jq
Cjw8Ci9MZW5ndGggMTYyICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNoz
MdQzN1IwUABhEzBKMeQq5DI2B/LBXJBEci6XkyeXfriCsTmXvgdQlEvf01ehpKg0lUvfKcBZwZBL
30Uh2lDBIJbL00WBgYH9fwMywVBPDiH/A0j8/1/fwPz///8G/h9Ao+QfMP5vsD/AACQagErq4cR/
BuKIegaYDqABIKMYQYYyg4zn/w+26AfD/3/1PxjkP9T/4HL15ArkAgAngl4sCmVuZHN0cmVhbQpl
bmRvYmoKMTQxIDAgb2JqCjw8Ci9MZW5ndGggMTY0ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29k
ZQo+PgpzdHJlYW0KeNpFzLEKwjAUBdBXOgTe0k/o+wLTpkXoFKgVzCDo5CBO6uigKHRrPi2fkk/o
mKnPFCkOZ7j3wq3qVV1SQSqqFKk13Up8ompiLuY4D9cHtgbliVSDchdblGZP79fnjrI9bKhE2dE5
3lzQdAQ6QMITpMw2C9rlXnjtUq9tOg42GQdIAi+Y/wBgMdgfbaHPHfSZhyCCGOOnB2YH+QS4NXjE
L45cRDkKZW5kc3RyZWFtCmVuZG9iagoxNDIgMCBvYmoKPDwKL0xlbmd0aCAyMTUgICAgICAgCi9G
aWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42l2OPU7DQBCFH0qBNAW+ATsXgLW9FhbVSkmQ
cIFEqhSIiqSkAJE23htwpb2Br7BSLkEBHmadVGk+zcz70bj29o5Lrvmmqtm1XLe8qeiDXKPXkt39
SXp7p3lHds2uIfuod7LdE3997rZk588Lrsgu+aXi8pW6JQO4Bnzqw4X8SbwUGWKR/Hc00QzRhGKI
PhQHKNI5VI1QX4QmAjQLFPILXPk01Z5gJmRVkdQiPxljTkieBF4RekDCqN8E7TBHTOtegT5AfWk2
HgtmuQpedXroaEX/j7NfkwplbmRzdHJlYW0KZW5kb2JqCjE0MyAwIG9iago8PAovTGVuZ3RoIDEx
NiAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLUM7BUMFAwBmJDSwUT
Q4UUQ65CLkNTIN8AxAVJJOdyOXly6YcrGJpy6XsARbn0PX0VSopKU7n0nQKcFYB8F4VoQwWDWC5P
FwX2Bv4D8g/sP0Cg/AP+A+wNDHDw/wMI8hMJ//8DQS5XT65ALgAuZzq0CmVuZHN0cmVhbQplbmRv
YmoKMTQ0IDAgb2JqCjw8Ci9MZW5ndGggOTcgICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+
PgpzdHJlYW0KeNozMtQzsFQwUDAGYiMDBRMDhRRDrkIuQzMgH8wFSSTncjl5cumHKxiacel7AEW5
9D19FUqKSlO59J0CnBUMufRdFKINFQxiuTxdFP5/AEF+KsD/YMDl6skVyAUAZQw/OgplbmRzdHJl
YW0KZW5kb2JqCjE0NSAwIG9iago8PAovTGVuZ3RoIDE2NiAgICAgICAKL0ZpbHRlciAvRmxhdGVE
ZWNvZGUKPj4Kc3RyZWFtCnjaMzPSMzZTMFAwBmIzIwUjM4UUQ65CLlMLIN8AxAVJJOdyOXly6Ycr
mFpw6XsARbn0PX0VSopKU7n0nQKcFQy59F0Uog0VDGK5PF0U/j+Qf8Dwn4Hh/4P/f9j/A5kP///j
//+Bgf/5wf92/D8Y+N8z/K9gB9LvGOo/MP9h4P/DUP8ARP9gqD+ATH9gqG+gI/3/P/v/H/b/D6DT
XK6eXIFcAOcOccEKZW5kc3RyZWFtCmVuZG9iagoxNDYgMCBvYmoKPDwKL0xlbmd0aCAxMzYgICAg
ICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMx1DM3UjBQMAZiE0MFIzOFFEOu
Qi5jcyDfAMQFSSTncjl5cumHKxibc+l7AEW59D19FUqKSlO59J0CnBUMufRdFKINFQxiuTxdFP4/
kH/A8P/B/z8M/x/+/8fA//zgfwb+9wxA4h1DfQP/HxDxA058oAbx/z/7/x8IgsvVkyuQCwD1DFDe
CmVuZHN0cmVhbQplbmRvYmoKMTQ3IDAgb2JqCjw8Ci9MZW5ndGggMTYzICAgICAgIAovRmlsdGVy
IC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNtczUzBQMAJiYzMFIzOFFEOuQi5jYyDfAMQFSSTn
cjl5cumHKxgbc+l7AEW59D19FUqKSlO59J0CnBUMufRdFKINFQxiuTxdFBjk/zAwMPz/38DA/P//
Awb2H/wfGPgfMP9gkG9g+MNg38Dwj6GeAYgQxH8g0YCfgChuACoFG2B/gPEfg/wD5j8M/D/4f0As
AlsJtpzL1ZMrkAsAeb1BWwplbmRzdHJlYW0KZW5kb2JqCjE0OCAwIG9iago8PAovTGVuZ3RoIDE2
OSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzHUMzdSMFAwUtA1NFQw
ATLMFFIMuQq5jM2BogYKQAoilZzL5eTJpR8OFOHS9wCTnr4KJUWlqVz6TgHOCoZc+i4K0YYKBrFc
ni4K/z/UH2D4//n/D4b/////Y+D/3/C/gf8PQ/0B/h8M9g/4PzDIgwj+D3DiB5Bgx0uAlSB0AA0A
G/UPZOh/xv9AO0AWgazkB1kOVMJADPH/PwrB5erJFcgFAKA2XaIKZW5kc3RyZWFtCmVuZG9iagox
NDkgMCBvYmoKPDwKL0xlbmd0aCAxMjYgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0
cmVhbQp42jM21DMwVTBQMAJhSwUjM4UUQ65CLiBtABIxA0sk53I5eXLphwP5XPoeYNLTV6GkqDSV
S98pwFnBkEvfRSHaUMEglsvTReH/gz8M/x/+Z/j//H8D//P9B/jf2R/g/wPFP0CYn4H/BwMD/wfS
8f//DXDM5erJFcgFAHHwO9sKZW5kc3RyZWFtCmVuZG9iagoxNTAgMCBvYmoKPDwKL0xlbmd0aCAx
NjQgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42h3LMQ6CQBAF0E/spuEG
MidwYRNQG00QE7cw0crCWKmlhUY7g3s0T+AZOAIlBWEcyOQV82e+nU+mGcdsezO2GV8SupNNdY/7
tT+cb5Q7Mge2KZmNpmTclp+P15VMvltxQqbgY8LxiVzBgfwQSoelKnXeWKDBeNACkEqJVzU+0gx/
oQhGSgOPQHyNSIW+Ua3qEEF8qZ126FXyBa0d7ekPRQ9B8QplbmRzdHJlYW0KZW5kb2JqCjE1MSAw
IG9iago8PAovTGVuZ3RoIDEzMSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFt
CnjaM7LUMzZVMFAwBGIjUwVjc4UUQ65CLiNjIN8AxAVJJOdyOXly6YcrGBlz6XsARbn0PX0VSopK
U7n0nQKcFQy59F0UooEqY7k8XRQYKhgQ6AcIMYIR8w8G9h8M8j8Y/v//A0HsYBEikBwqsmP+U8P4
H2jQBwb7A1yunlyBXABOdD2OCmVuZHN0cmVhbQplbmRvYmoKMTUyIDAgb2JqCjw8Ci9MZW5ndGgg
MTI4ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMdQzN1IwUDAGYhND
BSMzhRRDrkIuY3Mg3wDEBUkk53I5eXLphysYm3PpewBFufQ9fRVKikpTufSdApwVDLn0XRSiDRUM
Yrk8XRT+f2D/34Ag+D8w1FOZ+A8jGP83sP8A2sH8/3/9D8b/f+p/MNh/qP/B5erJFcgFAJbkT3wK
ZW5kc3RyZWFtCmVuZG9iagoxNTMgMCBvYmoKPDwKL0xlbmd0aCAxNzYgICAgICAgCi9GaWx0ZXIg
L0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42kXMsQqCYBQF4CMOwl18hO4T9Ks/SUEkmEEOQU0N0VSN
DUVBQ1Dgi7X5Gr6Bjg7i3xWShvvBOReOngzDkD0O5PSYg5CPPl1IjyR7XewehzPFKakt6xGppbSk
0hXfrvcTqXg9Z59UwjufvT2lCZsWpvjjVojg1pjBqTGF0+AJu8EDdosaVosKlrEqwFiFkAmv7CPk
QpS/hVIYlBCM4LY9svXDrnu6JVqktKEvRZ0+SAplbmRzdHJlYW0KZW5kb2JqCjE1NCAwIG9iago8
PAovTGVuZ3RoIDIxMyAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaRcyx
SsRAFAXQO6QIvCatlXk/oJPZgXEFMRAjmELQagvZarW0WFEQEZNP2/2Tlf2BwBamCBnfxIDNKe57
99rzU+c4Y8MnxrCd88zxo6E12ZBmbM+m0+qZior0gq0jfSM56eqWX1/enkgXd1dsSJf8YDhbUlVy
7VG3/8Qd0ibukSLqcYxowCXUgAsoj0/A411oOqDetMJWyL93QLoPHDZA8hPwDRD/ASAaGQQ10gsY
6SaOIEtfSvBKlnwUiGXJJzLykctXHap5KCRyBF1XdE+/cu5LxwplbmRzdHJlYW0KZW5kb2JqCjE1
OCAwIG9iago8PAovTGVuZ3RoIDk0ICAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3Ry
ZWFtCnjaRYm7DkBQEAX78xXnC+zdLELrkbiFhEohKpQKwu/jJgpTTDGTaJRldEypxjg45aLYYXmI
jvaNeUPhIQMthzQ0iG95HtcKKbqSCqk4Kt0EX/EJ3L9Qe/R4AdgHIK4KZW5kc3RyZWFtCmVuZG9i
agoxNTkgMCBvYmoKPDwKL0xlbmd0aCAxMzUgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+
CnN0cmVhbQp42jM20TMwVDBQMFUwUjCyVDAyV0gx5CrkMjIGihkoGJmCJZJzuZw8ufTDFYyMufQ9
gKJc+p6+CiVFpalc+k4BzgqGXPouCtFAY2K5PF0UGCwYkFGCBc8PC7s/FnX/LP7Z7/7B/v8A438G
hhoGIAlkA0WA4kBZoBqgSjS9XK6eXIFcAAoLKbUKZW5kc3RyZWFtCmVuZG9iagoxNjMgMCBvYmoK
PDwKL0xlbmd0aCAxNjMgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jM2
1TMwUTBQMFTQNTRVMDFUMDFRSDHkKuQytgSKGiiYWkKlknO5nDy59MMVjC259D2A4lz6nr4KJUWl
qVz6TgHOCoZc+i4K0YYKBrFcni4KDEDABiL4QIQMiJAAERYgwgBEFICIByDiABAzggjmBhABEmKH
a+XBoh+sNQGmH6yVsQGmnx3VaoR+UqzG6XS8VuN0Oi6rGbhcPbkCuQA2sSU7CmVuZHN0cmVhbQpl
bmRvYmoKMTY0IDAgb2JqCjw8Ci9MZW5ndGggMTY1ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29k
ZQo+PgpzdHJlYW0KeNozNtUzMFEwUDBX0DVUMDZTMDJTSDHkKuQysgAKGigYmUNkknO5nDy59MMV
jCy49D2Awlz6nr4KJUWlqVz6TgHOCoZc+i4K0YYKBrFcni4KDPINDAz1BxgYPjxnYD5Qz8DeYM/A
zwDBcgzyDHZAaAPENVD8A0gi4w9AEogL4Jjxw4MPzB8eVLADMd/HAzY2HxvkfwDNfSDHwOXqyRXI
BQDP4DhiCmVuZHN0cmVhbQplbmRvYmoKMTY1IDAgb2JqCjw8Ci9MZW5ndGggMTczICAgICAgIAov
RmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNo1zDEKwjAYBeCUDoV/6Q3MfwFN0hZxKAZq
BTMIOjmIkzoKKgoZivYmXiVHyREydnAwaRG+5b0HLxeTaY4cZzgWmAssOJ4E3CDLfMmxEMNyvECl
gO0wy4CtfA1MrfFxf56BVZsF+lzjXiA/gKoxckT2YhskAxOkgzag3ofQt6HWSuNkqyXRc6JfpPGa
3jfouj8XuZ51sWdc0l5TokekLAl14R+WCrbwAw+LQWcKZW5kc3RyZWFtCmVuZG9iagoxNjYgMCBv
YmoKPDwKL0xlbmd0aCAxNTIgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4
2jM21DMzVjBQsFDQNVQwNlIwMlNIMeQq5DICCRooGJlDZJJzuZw8ufTDFYyMufQ9gMJc+p6+CiVF
palc+k4BzgqGXPouCtGGCgaxXJ4uCgz8DxjsfzD8sGF8IMfcIMfeYMfPYCfHYGPHIGHDwFADRj+Q
0AcE4vjAIFPBYFPBUGHD+EGO/QD/fwbmHwxcrp5cgVwAfGMobAplbmRzdHJlYW0KZW5kb2JqCjE2
NyAwIG9iago8PAovTGVuZ3RoIDE5MiAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3Ry
ZWFtCnjaPc09CsJAEAXgkRSBKfQGyVxAd2MiIRAU/AFTCFpZiJVaCioKFsHsDbzS3sAr5AauXQoL
J4lafAPzXvH8XkcGJCmktkd+SIGkrYdH7EYcSgq8utnscZigWFI3QjHlGEUyo/PpskMxnI+I/zGt
PJJrTMYEAAWA+9UwNesnr9k/utbS4N41ZA8F5qksnSlbDVQLBlByWJ/FfNPKjUdK6dcbTKU4/DVM
biyTX23WfOk4fim3yHjVAZwkuMAPE9pJBQplbmRzdHJlYW0KZW5kb2JqCjE2OCAwIG9iago8PAov
TGVuZ3RoIDE2MSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzbUMzNW
MFCwUNA1VDA2VDAyU0gx5CrkMjICChooGJlDZJJzuZw8ufTDFYyMuPQ9gMJc+p6+CiVFpalc+k4B
zgqGXPouCtGGCgaxXJ4uCgz8BxjqPzB8sGA+IMPeIMPPICPPICPHIGPHYFHDUFDD/qD+f8P/Pww/
GBDoAxRxVDDIVDDYWDBU2DB+kGM/wP+fgfkHA5erJ1cgFwAReCsXCmVuZHN0cmVhbQplbmRvYmoK
MTY5IDAgb2JqCjw8Ci9MZW5ndGggMTc2ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+Pgpz
dHJlYW0KeNozMtQztlQwUNA1BCIjBSNLBRNDhRRDrkIuI5CwgYKpMUwuOZfLyZNLPxyoiEvfAyjB
pe/pq1BSVJrKpe8U4KxgyKXvohBtqGAQy+XposDAwH6AgYH/AwODTQEQVzAwVPyA4B9AsR8JQMzA
wPgBEzM/AGPG//8PgDCYDzIKHfODcAMmlmfAxHZYcA0aBjrHAuTCD1AXAq39CMSFQGvsgcbKAZVw
uXpyBXIBALbfQE8KZW5kc3RyZWFtCmVuZG9iagoxNzAgMCBvYmoKPDwKL0xlbmd0aCAxODUgICAg
ICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jXLsQrCMBCA4ZMMgRvaFxByL6Bt
aBUHiVArmEHQyUEEQR0FFd2K9NHyKIIPYMcORU2bOnzD/XcXDfphTCHF1JMUDSkO6SDxgpG00Wbp
NvsTJhqDNUUSg7nNGOgF3a73IwbJckp2Tmljf7aoUwIFwD8OZK2qVTqdv8JhjQrY6wvszXNeccNL
ZnhhPZnxTY0bP3dEw88FOBMQUFMgPAXKezSybuaMKhiH1q4EYc72HmcaV/gDRzc/kQplbmRzdHJl
YW0KZW5kb2JqCjE3MSAwIG9iago8PAovTGVuZ3RoIDE1NCAgICAgICAKL0ZpbHRlciAvRmxhdGVE
ZWNvZGUKPj4Kc3RyZWFtCnjaMzLUM7ZUMFAwVdA1VDAyUgByUgy5CrkMzYCCBgomUJnkXC4nTy79
cAVDMy59D6Awl76nr0JJUWkql75TgLOCIZe+i0K0oYJBLJeniwIDH4Mcgx0QyjCgAeYD7B94KiQq
LCoMKgp+FPx48OPhB8YPzA9AkP0A+wH+Bv52/nZ5dnk+eT45HjkZPgv+D8wHuFw9uQK5ALEeJzQK
ZW5kc3RyZWFtCmVuZG9iagoxNzIgMCBvYmoKPDwKL0xlbmd0aCAyMDAgICAgICAgCi9GaWx0ZXIg
L0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jXOvQrCQAwH8JQbDrL0ES4voO1ZvyYLfoAdBJ0cRBDU
UVDRTaTgSzm2CE4+RDZXR4ciRk+H35B/QpLIlusRhVSjkqUoompIC4sbrDQkDKlqXWe+wnaCwZgq
DQz6EmOQDGi33S8xaA87JHWXJpbCKSZdghaAfjlw+Cl+no7393DUl04Vm0xxkzXPRM46P7G+KPav
XubfAPyzYAAj80b2mzgF42cQa4ZYMbQU88fxK88OTlqoS1p4dzn9grU8hL0ER/gGtzhJIQplbmRz
dHJlYW0KZW5kb2JqCjE3MyAwIG9iago8PAovTGVuZ3RoIDE1MiAgICAgICAKL0ZpbHRlciAvRmxh
dGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzTXs7RQMFAwVdA1VDAyUDAxUEgx5CrkMjQBCgK5hhCZ5Fwu
J08u/XAFQxMufQ+gMJe+p69CSVFpKpe+U4CzApDvohBtqGAQy+XposBQw/+H/w/DD4YfjCD4gfED
Mwg+YH7ADoIH2A/wg2ADf4M8CDLIM9gDoR0Q1gFhjQUI/igAwoSKBxUH7Bv4GbhcPbkCuQCLKjEu
CmVuZHN0cmVhbQplbmRvYmoKMTc0IDAgb2JqCjw8Ci9MZW5ndGggMjA3ICAgICAgIAovRmlsdGVy
IC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNdUzNVQwUDBV0DVUMDVXMDJTSDHkKuQCCxooGJlD
ZJJzuZw8ufTDFUwNufQ9gMJc+p6+CiVFpalc+k4BzgpAUReFaKCeWC5PFwX2BvkG/gMM/A/qH9h/
YJD4+ODDhwoGi88NPw/UMBj8Z6husGEo+MdQzwCk/jDUgagfDDVA6uEPhj9AxsMPDCA+IwrF/ADM
wKSADPYDYD6EegCimB/AKP4G9gPsBw8gU4cbQBTzYQZ5Bv4G5uNgivEPAx8DOwPQTC5XT65ALgD9
oVqYCmVuZHN0cmVhbQplbmRvYmoKMTc1IDAgb2JqCjw8Ci9MZW5ndGggMTgzICAgICAgIAovRmls
dGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNpVyzEKwkAUBNAfUix8xG0thPwL6GazRmMlxAim
ELSyECu1FKJoH/BiK15kc4OITQpRF4KCzWOYYVTU7YXkU0gdSWpIQZ+2Eg+olC19Cgb1stljnKJY
klIoprZGkc7odDzvUMTzMUkUCa0k+WtME2L5KAdu3hra96uB6OGUEL2ghOxZU0FW2VRUdihKi/PD
Na75g2lguuaWM80vNTz3GHxpWngDPOAtCyuhaY+AkxQX+AHur0DJCmVuZHN0cmVhbQplbmRvYmoK
MTc2IDAgb2JqCjw8Ci9MZW5ndGggMTY1ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+Pgpz
dHJlYW0KeNpNyTEKwkAQBdAfUixMkxskcwHd3cSYJijECG4haGUhVmppoShYWORoOUqOkHILQTdr
I58385nJ8rGasOKCR5qznNMpnzRdKS3cUbFb/nO8UGVI7tyB5MpPs+b77XEmWW0WrEnWvNesDmRq
huiB+RuwMYIuQtiKZsjQYmfmlAi7109rIf41FlHTewl6xE6Jp49rQYdEtIg+QGABWhra0hf5yzJ/
CmVuZHN0cmVhbQplbmRvYmoKMTc3IDAgb2JqCjw8Ci9MZW5ndGggMTkyICAgICAgIAovRmlsdGVy
IC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNo1ybEKglAUgOEjd7hwBnsB8Z4XqOv1Zi2hYAY5BDU1
RFM1NhQFDhI+Sc/iowgNrY4OUpnW8C3/r72BMySHXOorRdojd0R7hSfUblMd0uPf2h0xjFGuSbso
501HGS/ocr4eUIbLKSmUEW0UOVuMI4KS50YtSnZPEm4XEy5yyxSZbQqwzQBsKwBh+SDg69byIf2p
WylUrcSooOwYhVGxnNU8Yy8B7FkDe5TAC+jknd5fBiAa76qDsxhX+AFUyT0OCmVuZHN0cmVhbQpl
bmRvYmoKMTc4IDAgb2JqCjw8Ci9MZW5ndGggMTc3ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29k
ZQo+PgpzdHJlYW0KeNotybEKgkAYwPFPHA6+xTfovheo8zyxBlEwgxyCmhqiqRqDioIGMR/NrbFX
uEe4LYfAjhJ+0/+v5ChS5NOEhlKSUhREtJd4xiC01Sc17tfuiFmBYk1BiGJuO4piQdfL7YAiW05J
oshpI8nfYpETcBceL0d3btOx+uFBxSEZQJJAFUNZ/rTwaaH9M45leq4xTJ+YvnMdp5q/G/ZsgDXg
WXWPWwApuJ2xcFbgCr/h4z/tCmVuZHN0cmVhbQplbmRvYmoKMTc5IDAgb2JqCjw8Ci9MZW5ndGgg
MTQ2ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozstQzMFcwUDBV0DVU
MDZSMDJTSDHkKuQC0gZAaGQOkUnO5XLy5NIPB8pz6XsAhbn0PX0VSopKU7n0nQKcFQy59F0Uog0V
DGK5PF0U2BvqGPgf/m+Q+dx8wOI74wGLf8wHCv6wHyj4AcLMDQ8/MDCAMCMUMz9AxewHUDF/AyqW
Z4BgPiDmcvXkCuQCALWeML4KZW5kc3RyZWFtCmVuZG9iagoxODAgMCBvYmoKPDwKL0xlbmd0aCAx
NjEgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42iXJPwrCMBSA8RcyBN7S
I/RdQPMH1A6dagUzCDo5iJM6ClUUOhTM0XKUHOGNTsai8E2/z1VT58jQjCaWXEVuTmeLN/yhIbf4
n9MVG496T86hXo+M2m/ocX9eUDfbJVnULR0smSP6lqCM8GLgXsRaxlqF4VdfBFMkUHksqBxlTpAZ
SgbJleAeeAB+i8QidTJ2MtQFlB9QDLjyuMMvdAIyvQplbmRzdHJlYW0KZW5kb2JqCjE4MSAwIG9i
ago8PAovTGVuZ3RoIDE0OCAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnja
MzLWM1QwUDBT0DVUMDJVMDZXSDHkKuQytAAKGigYW0BkknO5nDy59MMVDC249D2Awlz6nr4KJUWl
qVz6TgHOCoZc+i4K0UCDYrk8XRQYLBgYasDoBwIxfkAg5gcM//8fACIgg/0AAvE3IJA8AwLZARFz
AwixM9QAER9DDQ+DjQyDjQWDPNgELldPrkAuAGLoLfQKZW5kc3RyZWFtCmVuZG9iagoxODIgMCBv
YmoKPDwKL0xlbmd0aCAxNjcgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4
2jM20zM3VTBQMFXQNVQwtlAwMlNIMeQq5DI2AgoaKBiZQ2SSc7mcPLn0wxWMjbj0PYDCXPqevgol
RaWpXPpOAc4Khlz6LgrRhgoGsVyeLgrMDxgY2D8wFPBUMPyQqGH4YVHD+MEAiAtA+Afjhwc/mB+A
MOMHGGY/wPwAgdkP8DcAcTsCy/NBsD0f84F6GcYH7yUY/rf/YLBnfMDl6skVyAUA+4w9/AplbmRz
dHJlYW0KZW5kb2JqCjE4MyAwIG9iago8PAovTGVuZ3RoIDE3NyAgICAgICAKL0ZpbHRlciAvRmxh
dGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzHVMzJXMFAwVdA1VDAxUzAyU0gx5CrkMjFQAEGgHFgmOZfL
yZNLP1zBxIBL3wMozKXv6atQUlSayqXvFOCsYMil76IQbahgEMvl6aLA/ICBgY/9A8MDeZ4Kxg/y
EjVAwqKG+YG8AZDgLwATP4DEgx/sB/jABOMHBMHfIAOUQybYD8gzWKASBVDCnuEBM5h4UN94gPHD
88MNDP8P/2dgsG/4w8Dl6skVyAUA0NZC6gplbmRzdHJlYW0KZW5kb2JqCjE4NCAwIG9iago8PAov
TGVuZ3RoIDE5NSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaVckxS8NA
GIfx/3FD4B2S1UHM+wXsXXJEUpAW0hS8QdDJQZzUUYii4BBoP1nJR7mPcOMN0vaCLaXDb3keYybG
sOaKr4uSTcXlDb8V9EnlNFbNpj6s1w9qLKknLqek7mInZe/5++vnnVTzsOCCVMvPBesXsi1LByQe
XfqLcNEj1L3wOupGQXgXpBsJf5QM0p0kQ7Y+l+PfHHJYQbgtsNsA8xmAUY80yhEij5lwuJUDLpM1
rnIg+wOkB2hp6ZH2VIFFBAplbmRzdHJlYW0KZW5kb2JqCjE4OCAwIG9iago8PAovTGVuZ3RoIDEw
MCAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLTMzFTMFAwVtA1VTAC
koYKKYZchVyGlkBBAwUTiERyLpeTJ5d+uIKhJZe+h4IJl76nr0JJUWkql75TgLOCIZe+i0K0oYJB
LJeni0L9/wP//z8AIiCDy9WTK5ALAEpJG9oKZW5kc3RyZWFtCmVuZG9iagoxODkgMCBvYmoKPDwK
L0xlbmd0aCA5MSAgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMy0zMx
UzBQsARiQ3MFc4UUQ65CLnMgzwDIAYkm53I5eXLphyuYc+l7gAhPX4WSotJULn2nAGcFQy59F4Vo
QwWDWC5PFwWLmn///tVYcLl6cgVyAQBRzxUoCmVuZHN0cmVhbQplbmRvYmoKMTkwIDAgb2JqCjw8
Ci9MZW5ndGggMTQ3ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMtMz
MVMwUDBW0DVRMDJWMDZVSDHkKuQytAQKAoUtITLJuVxOnlz64QqGllz6HkBhLn1PX4WSotJULn2n
AGcFQy59F4VoQwWDWC5PFwUGhgMMjA8YmCHoAAM7GPE3gJA8AwjJMTDYgVENGP0AIcYPYATTh6yJ
nwGqD1lTBVQfwwcGhgQGBi5XT65ALgAXySleCmVuZHN0cmVhbQplbmRvYmoKMTkxIDAgb2JqCjw8
Ci9MZW5ndGggOTcgICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMtMz
MVMwULAEYkNzBSNDhRRDrkIucyDXAMQDiSfncjl5cumHK5hz6XsABbn0PX0VSopKU7n0nQKcFYB8
F4VoQwWDWC5PFwWLmn///tVYMEAAlMfl6skVyAUA0EkaDgplbmRzdHJlYW0KZW5kb2JqCjE5MiAw
IG9iago8PAovTGVuZ3RoIDkyICAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFt
CnjaPcixDkAwFAXQ/X7F/QLPq6ZiLRIdJEwGMWE0EHZ/XiySMx3jEuuY0rKgMdSMi2KH5u99+/28
wQfIQM0hDS0ktDyPa4X4rqRCKo7KdEKoGOP9Qx3Q4wEpqxtLCmVuZHN0cmVhbQplbmRvYmoKMTkz
IDAgb2JqCjw8Ci9MZW5ndGggMTY1ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJl
YW0KeNoVizEOgkAQRb+hIJlCLjDCnMCFRamsEBO3MNHKwlippYVGEzuw8haexaN4BEoKIg7Jm+T/
mTc2G08yiSXRsVNJYzkmdCGbao/72h8OZ8odma3YlMxSt2TcSm7X+4lMvp5LQqaQnZp7coWUXtO9
WkUDex/2KvYrDsAhmMEz8ANcgxuMWkTKG9EQUYDQR2+qr1+Dbw/qEm33/CkaaOFoQ3/B4S/hCmVu
ZHN0cmVhbQplbmRvYmoKMTk0IDAgb2JqCjw8Ci9MZW5ndGggMTMyICAgICAgIAovRmlsdGVyIC9G
bGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMtMzMVMwUDBU0DVUMDJVMDZQSDHkKuQyMgYKGigYG0Jk
knO5nDy59MMVjIy59D2Awlz6nr4KJUWlqVz6TgHOCkC+i0K0oYJBLJeni8L/5n9wJMfwAYL4GR8g
UPMD9uYDcMR8vAGOGI8zML5HIIZ3DAz/YKgGhLhcPbkCuQBQFDgHCmVuZHN0cmVhbQplbmRvYmoK
MTk1IDAgb2JqCjw8Ci9MZW5ndGggMTUwICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+Pgpz
dHJlYW0KeNozMtMzMVMwUDACYTMFI0OFFEOuQi4jYyDfAMQFSSTncjl5cumHKxgZc+l7AEW59D19
FUqKSlO59J0CnBWAfBeFaEMFg1guTxcF/h8M8v8Z7P832P8/YMf/QIb5AQPjA4b/D9j/P5D//6D+
44M6xgc/GB98AKMfzA/+8D+o///P/v8/+T//2D/Ucbl6cgVyAQAD2DV/CmVuZHN0cmVhbQplbmRv
YmoKMTk2IDAgb2JqCjw8Ci9MZW5ndGggMTQ0ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+
PgpzdHJlYW0KeNozMtMzMVMwAEMjEwVjA4UUQ65CLiNjsIgxRCI5l8vJk0s/XMHImEvfAyjKpe/p
q1BSVJrKpe8U4KxgyKXvohBtqGAQy+XpolDPwPAfjIAMfjQkf4C//gH//w/8/3/wP/jD31DDz2DD
z2DHzyCHghrs+Bts+A/U8D/8AVIJVF//gF2+gcvVkyuQCwAldyqLCmVuZHN0cmVhbQplbmRvYmoK
MTk3IDAgb2JqCjw8Ci9MZW5ndGggMTM4ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+Pgpz
dHJlYW0KeNozMtMzMVMwUDAGYiMTBSNDhRRDrkIuIwMFEARyQRLJuVxOnlz64QpGBlz6HkBRLn1P
X4WSotJULn2nAGcFIN9FIdpQwSCWy9NFgfF/A/v/A/z/H8j/f2DP/KCO8UAFA8MPBoYPqOgHw4ca
hg91jB/sm0Eq+f8fYP/fwPiPgcvVkyuQCwBFHC37CmVuZHN0cmVhbQplbmRvYmoKMTk4IDAgb2Jq
Cjw8Ci9MZW5ndGggMTQ5ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNpV
irsKwjAUhhsyCGfJI+Q8gblJVqFWMIOgk4M4aUcHRcGh6KueR7BbhdqYuBW+H/6b9dOZR402y6PT
eDJwAetS1jnm4XiGMoDaoXWgVqkFFdZ4u95rUOVmgQZUhXuD+gChwkJQIf8kw0bwlsSXZKR5pJeg
htODUcfoPaZLPadmQk+Znr2Mg/gMvO1hGWALP/WtPysKZW5kc3RyZWFtCmVuZG9iagoxOTkgMCBv
YmoKPDwKL0xlbmd0aCAxNDIgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4
2jMy0zMxUzBQMAJhYwUjQ4UUQ65CLiMDBRAEckESyblcTp5c+uEKRgZc+h5AUS59T1+FkqLSVC59
pwBnBSDfRSHaUMEglsvTRYHxDwP7fwb+/w3y/w/Ysz+oYXxQwfjhB8OH//8R6AcDA1CkhuFDHeMH
+8MP5P8/4P9/gP1/A8M/Bi5XT65ALgBwojZ3CmVuZHN0cmVhbQplbmRvYmoKMjAwIDAgb2JqCjw8
Ci9MZW5ndGggMTc2ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMtMz
MVMwUDBU0DU0UjAyVTAyUkgx5CrkMjIGihooGJtApZJzuZw8ufTDFYyMufQ9gOJc+p6+CiVFpalc
+k4BzgqGXPouCtGGCgaxXJ4uCgwMFYw//7D//8f//5/8/3ny/HPs2A/YMCMQkCvP3yD/H4gY5P8x
yP5gkGFgkGVgAIt8sP//o4bhzwcGuQcMfBAEZP9gsKtn/AOUAirg//+A8T8Dl6snVyAXAJLHPWEK
ZW5kc3RyZWFtCmVuZG9iagoyMDEgMCBvYmoKPDwKL0xlbmd0aCAxMzIgICAgICAgCi9GaWx0ZXIg
L0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMy0zMxUzAAQyMzBWMDhRRDrkIuI1OwiDFEIjmXy8mT
Sz9cwciUS98DKMql7+mrUFJUmsql7xTgrGDIpe+iEG2oYBDL5emiUM/AwPAfikFsfmxY/gADf/0D
Bv7/H4D4BwP/AyBuqIBgBuJw/cP/DP8//28AYRCby9WTK5ALAPGpMBoKZW5kc3RyZWFtCmVuZG9i
agoyMDIgMCBvYmoKPDwKL0xlbmd0aCAxMTQgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+
CnN0cmVhbQp42jMy0zMxUzBQMAZiI2MFY0OFFEOuQi5DSyDfAMQFSSTncjl5cumHKxhacul7AEW5
9D19FUqKSlO59J0CnBWAfBeFaEMFg1guTxcFxgcMzB8QCMhFBvUfEIiBOFT//8D//w+ACMjgcvXk
CuQCAMSmM1YKZW5kc3RyZWFtCmVuZG9iagoyMDMgMCBvYmoKPDwKL0xlbmd0aCAxNDYgICAgICAg
Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMy0zMxUzBQMARiIzMFYwOFFEOuQi4j
EyDfAMQFSSTncjl5cumHKxiZcOl7AEW59D19FUqKSlO59J0CnBUMufRdFKKBKmO5PF0U/jEwwBEf
GuL/wyf/D4SADPYGPn4GPjkGPhsGvgoGvj8M/EB0j4G/n4EfKMV8AIQYH/x//O//4/9g9I/L1ZMr
kAsAJ/4uVQplbmRzdHJlYW0KZW5kb2JqCjIwNCAwIG9iago8PAovTGVuZ3RoIDEwOCAgICAgICAK
L0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLTMzFTMFAwBmIjEwVjA4UUQ65CLiMD
BRA0hkgk53I5eXLphysYGXDpewBFufQ9fRVKikpTufSdApwVDLn0XRSiDRUMYrk8XRTqPzD8ByMg
g4FiVP//wf//H4AIyOBy9eQK5AIA4643hgplbmRzdHJlYW0KZW5kb2JqCjIwNSAwIG9iago8PAov
TGVuZ3RoIDEyNyAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLTMzFT
MFDQNQQSRuYKRoYKKYZchVxApgFIxBAik5zL5eTJpR8OVMKl7wEU5tL39FUoKSpN5dJ3CnBWAPJd
FKKBKmO5PF0Uan7UMPz/+4/h//9/DPX//zPIy/czyPGzg7EMH3G4Xr7/wP/99x+AMIjN5erJFcgF
AFUBKk8KZW5kc3RyZWFtCmVuZG9iagoyMDYgMCBvYmoKPDwKL0xlbmd0aCAxMjEgICAgICAgCi9G
aWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMy0zMxUzAAQyMzBSNDhRRDrkIuI1OIiCGY
Ss7lcvLk0g9XMDLl0vcAinLpe/oqlBSVpnLpOwU4KwD5LgrRQLWxXJ4uCvXyBxj+1z9g+P//A0P9
/x8M/A+AuKECghmIw/UP/zP8//y/AYRBbC5XT65ALgD+qy+TCmVuZHN0cmVhbQplbmRvYmoKMjA3
IDAgb2JqCjw8Ci9MZW5ndGggMTI2ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJl
YW0KeNozMtMzMVMwUDACYRMFI0OFFEOuQi4gbQASMQRLJOdyOXly6YcD+Vz6HmDS01ehpKg0lUvf
KcBZAch3UYgGaonl8nRRYPzDwP6fgf9/g/z/A/bsD2oYP1QwfPjB8OMDQwUyAooAxYGyQDVAlUD1
QF1AvVyunlyBXAB8Qi9OCmVuZHN0cmVhbQplbmRvYmoKMjA4IDAgb2JqCjw8Ci9MZW5ndGggMTU2
ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMtMzMVMwAEJdQ0MFIxMF
I0OFFEOuQi4jY7CosRFUKjmXy8mTSz9cwciYS98DKM6l7+mrUFJUmsql7xTgrGDIpe+iEG2oYBDL
5emiUC9/4H/9g///P9T//8H/4A9/Qw0/gw0/gx0/gxwKarDjb7DhP1DD//AHP1Dl/w/89Q/45Rv4
GRgwUf0Dhv8fQAjI4HL15ArkAgApFzHTCmVuZHN0cmVhbQplbmRvYmoKMjA5IDAgb2JqCjw8Ci9M
ZW5ndGggMTIzICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMtMzMVMw
UDAEYiNTBSNDhRRDrkIuI2Mg3wDEBUkk53I5eXLphysYGXPpewBFufQ9fRVKikpTufSdApwVgHwX
hWigylguTxeF+sM//p//8//+v/r//5j/2TH/kGH+wMD8AIwOYEf1/xv+gxGQweXqyRXIBQDQkzAQ
CmVuZHN0cmVhbQplbmRvYmoKMjEwIDAgb2JqCjw8Ci9MZW5ndGggMTQ3ICAgICAgIAovRmlsdGVy
IC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMtMzMVMwUDABYiNjBSNDhRRDrkIuQwsg3wDEBUkk
53I5eXLphysYWnDpewBFufQ9fRVKikpTufSdApwVgHwXhWhDBYNYLk8XBf7fDfb/G+rB6A9/wwd2
EPrDwFD/gMH+D4P8fwbG/w0M/AcKmA98YD7wg/nAH/4D//83/P/P8P8fw/MfDFyunlyBXAD09DMl
CmVuZHN0cmVhbQplbmRvYmoKMjExIDAgb2JqCjw8Ci9MZW5ndGggMTI2ICAgICAgIAovRmlsdGVy
IC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMtMzMVMwUDAEYiMjBSMLhRRDrkIuIwMFEARyQRLJ
uVxOnlz64QpGBlz6HkBRLn1PX4WSotJULn2nAGcFQy59F4VooMpYLk8XBcYDDMwYqP7/g/8wxIxN
AfOBBOYDH6Do4Qfmxw8Y/wPRAYb/DQx2DFyunlyBXAAhUjZ0CmVuZHN0cmVhbQplbmRvYmoKMjEy
IDAgb2JqCjw8Ci9MZW5ndGggMTE1ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJl
YW0KeNozMtMzMVMwAEMjMwUjQ4UUQ65CLiNTiIghmErO5XLy5NIPVzAy5dL3AIpy6Xv6KpQUlaZy
6TsFOCsA+S4K0UC1sVyeLgr1zD8Y/rNDMIjNz1BBAgaqbwbi//8Z2P//b2AGYsY/9Qxcrp5cgVwA
o1wpdQplbmRzdHJlYW0KZW5kb2JqCjIxMyAwIG9iago8PAovTGVuZ3RoIDE2NiAgICAgICAKL0Zp
bHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLTMzFTMFAwVNA1NFQwMlUwMlRIMeQq5DIy
BooaKBgbQaWSc7mcPLn0wxWMjLn0PYDiXPqevgolRaWpXPpOAc4Khlz6LgrRhgoGsVyeLgr1h//8
P/4PiIAMPoYH7EDEeIC98QAzEDU3MB9uYASi4wwMz8HoGQNDGgNDHQODDQxZwFAFg0ABQ80HhtoH
DPVAdIDBvoFBjoGBy9WTK5ALAO1gMgwKZW5kc3RyZWFtCmVuZG9iagoyIDAgb2JqCjw8Ci9UeXBl
IC9PYmpTdG0KL04gMTAwCi9GaXJzdCA3ODkKL0xlbmd0aCAyNTY0ICAgICAgCi9GaWx0ZXIgL0Zs
YXRlRGVjb2RlCj4+CnN0cmVhbQp42q1aXY/cthV9n1/BR/thKd7L72IRwHbqxmhcBLabtN0uivGu
bA9izxgz2iD59z1XGmk4H7vSToz1SCJ1SF6S9xxeUiZllFeWVVAuqqxiVmRUZkVWETtF8g8/rygG
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
agoyMjkgMCBvYmoKPDwKL0xlbmd0aCAxNTkgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+
CnN0cmVhbQp42jMy1bM0VjBQMFbQNTRVMLRUMDFRSDHkKuQC8gyA0NQSKpWcy+XkyaUfrmBoyqXv
ARTn0vf0VSgpKk3l0ncKcFYw5NJ3UYg2VDCI5fJ0UTjAkMBgwCDBwMPAx8DOwNzA3MB4gPEBwwOG
D0BYwFABhjZwaMcghxXaIamB6CkAm/CA8QHjAZCp7EDzeYD2GADtO8DA5erJFcgFAOY2KDAKZW5k
c3RyZWFtCmVuZG9iagoyMzAgMCBvYmoKPDwKL0xlbmd0aCAxNTQgICAgICAgCi9GaWx0ZXIgL0Zs
YXRlRGVjb2RlCj4+CnN0cmVhbQp42jM10LM0VTBQMFXQNVEwMVUwNlZIMeQq5DK2BAoaKBibQ2SS
c7mcPLn0wxWMLbn0PYDCXPqevgolRaWpXPpOAc4Khlz6LgrRhgoGsVyeLgoMQMAHImxAxAcgZj4A
JPgxheRBvBogZnwAJNgbgIQcSKgCuxDDAzgLLAaWZcQtCDIZYgfYNrC9EBfwYxPk43L15ArkAgCE
JiQlCmVuZHN0cmVhbQplbmRvYmoKMjMxIDAgb2JqCjw8Ci9MZW5ndGggMTUwICAgICAgIAovRmls
dGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNdCzNFUwUDBV0DVRMDFVMDZWSDHkKuQytgQK
GigYm0NkknO5nDy59MMVjC259D2Awlz6nr4KJUWlqVz6TgHOCoZc+i4K0YYKBrFcni4KDxiAoAJE
yIEI9gYgwYhV8AOIWQMi+EEE8wEQCRa0wSnIB2d9gMny4xCqgdkBtk0O5gKwW1CFGMDO43L15Ark
AgDXOCT3CmVuZHN0cmVhbQplbmRvYmoKMjMyIDAgb2JqCjw8Ci9MZW5ndGggMTAxICAgICAgIAov
RmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNoztNAzt1QwUDBV0DU0VTA0VzAxUUgx5Crk
MjQEigLFLaFSyblcTp5c+uEKhoZc+h5AcS59T1+FkqLSVC59pwBnBaCoi0I0UFMsl6eLwv8H/x/8
YKAnBNnI5erJFcgFAAn4T0QKZW5kc3RyZWFtCmVuZG9iagoyMzMgMCBvYmoKPDwKL0xlbmd0aCAx
MDEgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jO00DO3VDBQMFTQNTRV
MDRWMDFRSDHkKuQyNASKGiiYWkKlknO5nDy59MMVDA259D2A4lz6nr4KJUWlqVz6TgHOCkBRF4Vo
oKZYLk8Xhf8P/j9gpisE2cjl6skVyAUApvhKtQplbmRzdHJlYW0KZW5kb2JqCjIzNCAwIG9iago8
PAovTGVuZ3RoIDE0NyAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzbW
M7BQMFAwUdA1NFUwslAwMVFIMeQq5DIyBooaKJhaQqWSc7mcPLn0wxWMjLn0PYDiXPqevgolRaWp
XPpOAc4Khlz6LgrRhgoGsVyeLgoMDHUMzP8Y+B8wyDMw2DEw1JCLfoAQ4wcG9gcM/xsY/jCASCAb
KAKRIt9koKuAbgO6EOhOhjouV0+uQC4Ak/s2AwplbmRzdHJlYW0KZW5kb2JqCjIzNSAwIG9iago8
PAovTGVuZ3RoIDE0NSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzbW
M7BQMFAwUdA1NFUwslAwMVFIMeQq5DIyBooaKJhaQqWSc7mcPLn0wxWMjLn0PYDiXPqevgolRaWp
XPpOAc4Khlz6LgrRhgoGsVyeLgp/GBj+NzDwP2Bg/MDA8IOBoYZcZAdG8gwM/AcYmP8xMNSBSCBb
HiZFtsk/QG4DuhDoTqBruVw9uQK5ACirNN0KZW5kc3RyZWFtCmVuZG9iagoyMzYgMCBvYmoKPDwK
L0xlbmd0aCA5NiAgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jM10LM0
VTBQMFXQNTRXMAFRJgophlyFXMaWQGEDBWOoVHIul5Mnl364grEll76HgjGXvqevQklRaSqXvlOA
s4Ihl76LQrShgkEsl6eLwn8g+IcguFw9uQK5AA/UITUKZW5kc3RyZWFtCmVuZG9iagoyMzcgMCBv
YmoKPDwKL0xlbmd0aCAxMDkgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4
2jO00DO3VDBQMFXQNTRUMDRRMFdIMeQq5LIAihkoGFpAJZJzuZw8ufTDFSy49D2Awlz6nr4KJUWl
qVz6TgHOCoZc+i4K0YYKBrFcni4KFjX//v+vt2ZmZmZjY+ORsChQ4HL15ArkAgCvPxdXCmVuZHN0
cmVhbQplbmRvYmoKMjM4IDAgb2JqCjw8Ci9MZW5ndGggOTEgICAgICAgIAovRmlsdGVyIC9GbGF0
ZURlY29kZQo+PgpzdHJlYW0KeNoztNAzt1QwUDAFYkNjBXOFFEOuQi5zIM8AyAGJJudyOXly6Ycr
mHPpe4AIT1+FkqLSVC59pwBnBUMufReFaEMFg1guTxcFi5p///7VWHC5enIFcgEAUL0VIwplbmRz
dHJlYW0KZW5kb2JqCjIzOSAwIG9iago8PAovTGVuZ3RoIDk4ICAgICAgICAKL0ZpbHRlciAvRmxh
dGVEZWNvZGUKPj4Kc3RyZWFtCnjaM7TQM7dUMFAwBWJDYwUjU4UUQ65CLnMg1wDEA4kn53I5eXLp
hyuYc+l7AAW59D19FUqKSlO59J0CnBUMufRdFKINFQxiuTxdFCxq/v37V2PBgABQES5XT65ALgAl
XRoVCmVuZHN0cmVhbQplbmRvYmoKMjQwIDAgb2JqCjw8Ci9MZW5ndGggMTE4ICAgICAgIAovRmls
dGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNoztNAzt1QwUDBV0DU0VDA0UTAyVUgx5CrksgAK
GigYm0FlknO5nDy59MMVLLj0PYDCXPqevgolRaWpXPpOAc4Khlz6LgrRhgoGsVyeLgoWNf/+/aux
YEAAoMj///XWzMzMbGxsPBIWBQpcrp5cgVwAolQb6QplbmRzdHJlYW0KZW5kb2JqCjI0MSAwIG9i
ago8PAovTGVuZ3RoIDEwMiAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnja
MzXQszRVMFAwVjBXMDFXMDJSSDHkKuQyMQaKGSgYmoIlknO5nDy59MMVTIy59D2Aolz6nr4KJUWl
qVz6TgHOCoZc+i4K0YYKBrFcni4K/0HgAYRkoBggm8bl6skVyAUAooYpIwplbmRzdHJlYW0KZW5k
b2JqCjI0MiAwIG9iago8PAovTGVuZ3RoIDI1MCAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUK
Pj4Kc3RyZWFtCnjadc7BSsNAEAbgfwm4MEh79VDIvIAmMSlGUAu1gjkI7cmDCAX1KFRR8CDp+iS+
yj7KPsIeIw2JO/HsHL7DDP/MTNOj0ymnnPNhxsUJFxk/ZvRCRR6aKRfHf5OHZ5pXlNxykVNyHdqU
VDf89vr+RMl8eckZJQu+yzi9p2rB0BahYi+eleLHgdhMRL8fUP86GSwH08GN2DjJ/gybdybqHXqI
HbAFPsMhoAbKwZDogTVU0CH6NspCx1YZjMY2MrjQToeE9nshGjUjoFXyXIu2FOuNuHXizGLdIQ7W
0A6uxtjDznDeKBN/+VpD9zbuoDpEDeiqohX9AsHjU58KZW5kc3RyZWFtCmVuZG9iagoyNDMgMCBv
YmoKPDwKL0xlbmd0aCAxOTYgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4
2mXNTQqCUBAH8BEhYYjctgicE/T8eESuBDPIRVCrFhEE1TKiqG0JXcxd1/AGuXQh2HuWCjYwP5gZ
mD8fD12XTLJF8xFxm/YWnpE7YjblKA+7I/ohshVxB9lMbJGFc7pebgdk/mJCFrKA1haZGwwDAuiB
rK/Gn17U9hQ3vhPpq1F5pi1VJavtKLkUGrtwrx3AQ9gHr9YsI72iqN2CHlcmoIvIGLRKJQI1/akK
M6kI1kqNGNQcikx8Sr7iNMQlfgBiDEbqCmVuZHN0cmVhbQplbmRvYmoKMjQ0IDAgb2JqCjw8Ci9M
ZW5ndGggMTQ4ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMdKzMFIw
UABhY0sFEwOFFEOuQi5jMyDfAMQFSSTncjl5cumHKxibcel7AEW59D19FUqKSlO59J0CnBUMufRd
FKINFQxiuTxdFP4DwQEwwf6BQf4A8wcG5gdAghFEMCCIBFTCAEYcABMMyAQjnGAHEkCDoQSYiyTL
gI1gIJpg/wEk/v9/ACW4XD25ArkAJsFXVgplbmRzdHJlYW0KZW5kb2JqCjI0NSAwIG9iago8PAov
TGVuZ3RoIDE4MSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjalc29CgIx
DADgyA2FLD6CeQFtKwFvOzgV7CDo5CCCoI6Cis7eo92j9BE6Ogi1dxEEB8ESPkiaH84HNidDQ+pb
4hGxob3FMzKnoiG28rM7YulQr4gZ9SyVUbs5XS+3A+pyMaaUT2htyWzQTSjGWAEkA4AK8ATIAhSt
3apR1a2+MRN/h//0y6zskZ3N/vbW29CRi3e523b2RJn9Q/Ol8if1SG5jrLPgk5AivQJw6nCJL0h5
ZWYKZW5kc3RyZWFtCmVuZG9iagoyNDYgMCBvYmoKPDwKL0xlbmd0aCAxNzAgICAgICAgCi9GaWx0
ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jM21jOwUDBQMFLQNVQwNlIwMldIMeQq5DKyBAoC
hS0gMsm5XE6eXPrhCkaWXPoeQGEufU9fhZKi0lQufacAZwVDLn0XhWhDBYNYLk8XBYZ/DAzs/w8w
8DM/YJBh+MBgx1DBYM9QA8Q2QGzHIAfEDMjY/h8D4/9/DOwf7BjkD9iB1dRB8R8GOwkErpOoA+P7
FvbN/R/4//E/YP7BfoDL1ZMrkAsA7howAAplbmRzdHJlYW0KZW5kb2JqCjI0NyAwIG9iago8PAov
TGVuZ3RoIDE0NiAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaM7LUMzVU
MFAwUtA1VDAyB6EUQ65CLiMToCBQ2AIik5zL5eTJpR+uYGTCpe8BFObS9/RVKCkqTeXSdwpwVjDk
0ndRiAYaFMvl6aLAYH+A4f8P5gc27Af4+Bvk5Rns7cCojkGuhoEBiP5gQ0DxOhBitmNglmdg429g
Yz/Aw/zBguH/Awb7Bi5XT65ALgAeQiiECmVuZHN0cmVhbQplbmRvYmoKMjQ4IDAgb2JqCjw8Ci9M
ZW5ndGggMTYyICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNtMzM1Uw
UDBS0DVUMDZRMDFQSDHkKuQyNgQKGiiYGEJkknO5nDy59MMVjA259D2Awlz6nr4KJUWlqVz6TgHO
CkC+i0I0UE8sl6eLAgMD8wMGBnsoZn8A4ROB7ZsfMP5//ID5gfUD9gb+B/xAvfJAcTsgrgPiGij+
gwfD1NRB9cmBzQCa1SD/gflB8T+g+f8Y6pkfcLl6cgVyAQBZ0EqQCmVuZHN0cmVhbQplbmRvYmoK
MjQ5IDAgb2JqCjw8Ci9MZW5ndGggMTU2ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+Pgpz
dHJlYW0KeNozstQzNVQwUDBS0DVUMDIHoRRDrkIuIxOgIFDYAiKTnMvl5MmlH65gZMKl7wEU5tL3
9FUoKSpN5dJ3CnBWMOTSd1GIBhoUy+XposBgz8D4/wHzww/8DT/kGWrkGezsGOzqGOTqGORrGOT/
gNF/MPjDwABHNQwMdSDEbMfALM/Azt/Ax35AhvlBBcP/Bwz2DVyunlyBXABLQi5HCmVuZHN0cmVh
bQplbmRvYmoKMjUwIDAgb2JqCjw8Ci9MZW5ndGggMTMwICAgICAgIAovRmlsdGVyIC9GbGF0ZURl
Y29kZQo+PgpzdHJlYW0KeNozMtAzNVcwUDAEYiMTBRNDhRRDrkIuIyMg3wDEBUkk53I5eXLphysY
GXHpewBFufQ9fRVKikpTufSdApwVgHwXhWigylguTxcFBvYHDPYfGGoqGD78YXzwhxmIDlSwHzBg
P8CAFf3/3wBEuGSJQfwPGOr/gRCXqydXIBcAqo87IQplbmRzdHJlYW0KZW5kb2JqCjI1MSAwIG9i
ago8PAovTGVuZ3RoIDE5MSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnja
bYo9CsJAFAY/SRF4IHsBMe8CutksiDYp/AFTCFpZiJVaWigKFhJzE68S8CI5wpYWwnMDgggW08yM
td24zzEn3DGWreGkx1tDB0pqG7MdfNJmT8OM9JKTPump96SzGZ+O5x3p4XzEhvSYV4bjNWVjRh5U
Dbm78PFyCs5FeKKNC1Jc/1K3+vEv1KNCUwq0cqCFL22PEt/lhVAEkUiRIiovCD1B5dD4wbvy6lsK
VagyRyBP4FaCJhkt6A2HLEN9CmVuZHN0cmVhbQplbmRvYmoKMjUyIDAgb2JqCjw8Ci9MZW5ndGgg
MTM1ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNtMzM1UwUDACYmMT
BRMDhRRDrkIuY0Mg3wDEBUkk53I5eXLphysYG3LpewBFufQ9fRVKikpTufSdApwVgKIuCtFALbFc
ni4K/A0MDP+hWB6I+YnFjX8Y+Pv/M/DP4W/g38B+gP8BEB9gfgDHDeRj+QPsH/7/sP8HwlyunlyB
XADvgEX9CmVuZHN0cmVhbQplbmRvYmoKMjUzIDAgb2JqCjw8Ci9MZW5ndGggMTE0ICAgICAgIAov
RmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNoztNAzt1QwUDACYkMzBRMDhRRDrkIuQ2Mg
3wDEBUkk53I5eXLphysYGnPpewBFufQ9fRVKikpTufSdApwVDLn0XRSiDRUMYrk8XRT4GOwbYJCP
ARWwN/wHQvkGfqKgfMP/H/9/cLl6cgVyAQC7hCjECmVuZHN0cmVhbQplbmRvYmoKMjU0IDAgb2Jq
Cjw8Ci9MZW5ndGggMTY5ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNoz
NtGzMFcwUDACYmNjBRMDhRRDrkIuYwMFEDSBSCTncjl5cumHKxgbcOl7AEW59D19FUqKSlO59J0C
nBUMufRdFKINFQxiuTxdFPgbGBj+Q7E8EPOThO1/QLD8ASAG8m2AuAKIHzDwNx5g4G9uYODvB6qb
D6T3A/F3oNhhkNwHIP4BVAfCNUBsBzILiOUb+Bv4DwBNe/D/h/0fEOZy9eQK5AIASTE/ugplbmRz
dHJlYW0KZW5kb2JqCjI1NSAwIG9iago8PAovTGVuZ3RoIDEwNSAgICAgICAKL0ZpbHRlciAvRmxh
dGVEZWNvZGUKPj4Kc3RyZWFtCnjaM7TQM7dUMFAwAmJDMwUTA4UUQ65CLkNjIN8AxAVJJOdyOXly
6YcrGBpz6XsARbn0PX0VSopKU7n0nQKcFQy59F0Uog0VDGK5PF0U+Bv+A6F8Az/FUP7A/x//f3C5
enIFcgEA+ZUtBwplbmRzdHJlYW0KZW5kb2JqCjI1NiAwIG9iago8PAovTGVuZ3RoIDE1MCAgICAg
ICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzXRMzVSMFAAYSDDyEwhxZCrkMvE
Esg3AHFBEsm5XE6eXPrhCiaWXPoeQFEufU9fhZKi0lQufacAZwVDLn0XhWhDBYNYLk8XBf7GPwz1
DAz/+/8z/z/A8H8OfzvzAwb5DexnGD8w8D9gvwGiDjB/YPiBTjUA1dGDkj/A/oHxD8P/H/b/+P83
QCkuV0+uQC4AbMVZLwplbmRzdHJlYW0KZW5kb2JqCjI1NyAwIG9iago8PAovTGVuZ3RoIDEyNSAg
ICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzbTMzNVMFAwAmJjEwUjM4UU
Q65CLmNDIN8AxAVJJOdyOXly6YcrGBty6XsARbn0PX0VSopKU7n0nQKcFYCiLgrRQC2xXJ4uCvyN
fxj+9/9n+D+Hv0F+A/sB/gdAfID5ARw3kI/lD7B/+P/D/h8Ic7l6cgVyAQCnzj43CmVuZHN0cmVh
bQplbmRvYmoKMjU4IDAgb2JqCjw8Ci9MZW5ndGggMTUxICAgICAgIAovRmlsdGVyIC9GbGF0ZURl
Y29kZQo+PgpzdHJlYW0KeNozNtYzsFAwUDBS0DVUMAbS5gophlyFXEDaACRsAZFJzuVy8uTSDwfK
c+l7AIW59D19FUqKSlO59J0CnBUMufRdFKINFQxiuTxdFBjsGxgY/j9gYH7wg4G9wYaBn0EOCPkZ
7Bj4G0C4hoH9AAz/YWB/gAvD1NQx8B8A6QOZIQ+EIFNAZjP+/8AAsovL1ZMrkAsA6x00lwplbmRz
dHJlYW0KZW5kb2JqCjI1OSAwIG9iago8PAovTGVuZ3RoIDE2NyAgICAgICAKL0ZpbHRlciAvRmxh
dGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzbTMzNVMFAwUtA1NFQwNlEwMlNIMeQq5DI2BIoaKBibQ6WS
c7mcPLn0wxWMDbn0PYDiXPqevgolRaWpXPpOAc4KQFEXhWigplguTxcF/sY/DP/7/zP838N/QP4D
+wP+A8wf+BsYQfgHfwPDHyiuAeI6PLgGoRao7wBQ/wHmB/wf2A/w75Fv4Aeaz9/8gwEojxPLH2Bg
+P8DgrlcPbkCuQA/7ENvCmVuZHN0cmVhbQplbmRvYmoKMjYwIDAgb2JqCjw8Ci9MZW5ndGggMTcw
ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNtGzMFcwUDBS0DU0VDA2
UTAyU0gx5CrkMjYEihooGJtDpZJzuZw8ufTDFYwNufQ9gOJc+p6+CiVFpalc+k4BzgpAUReFaKCm
WC5PFwUG+4YExv8PHjB/KHjAfkDyAX8D7wN5BvYH9kBcx8AMxjVA/AcProGqA2F7IAbpl2/gf8B/
QPoB84PiB4z/Hz9gqGd+wMCAD7N/YGCw/wfCXK6eXIFcALTXSNAKZW5kc3RyZWFtCmVuZG9iagoy
NjEgMCBvYmoKPDwKL0xlbmd0aCAxMjIgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0
cmVhbQp42jMy1bM0VjBQMAJhEwUjM4UUQ65CLiNDIN8AxAVJJOdyOXly6YcrGBly6XsARbn0PX0V
SopKU7n0nQKcFYCiLgrRQC2xXJ4uCvzsB/7Lf/hv8UO+8Ad/4g/+gz/4D3zgP8DA30ACkj/A8P8P
CHG5enIFcgEACXArMQplbmRzdHJlYW0KZW5kb2JqCjI2MiAwIG9iago8PAovTGVuZ3RoIDE2MyAg
ICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaLYk7CgIxEEAnbBGYxiM4F9Bs
RvADgrIqmELQykKs1FJQUbDb9WbTeY2cQFJusRi/vFe9x+0m9yglpoYlbhF3aGvxiJzSB+7+zmaP
mUOzJE7RTN8ZjZvR+XTZocnmI7JoxrSylK7RjSkph7Wn9LVcEzkoCfC3BKkAcoG8gkGEeix0FIge
tJckiAoCwX8N4IPypZKHLu4RbhXgxOECX5asPSMKZW5kc3RyZWFtCmVuZG9iagoyNjMgMCBvYmoK
PDwKL0xlbmd0aCAxMzYgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMy
1bM0VjBQMFTQNVQwMlIwNlNIMeQq5DIyUABBY3OITHIul5Mnl364gpEBl74HUJhL39NXoaSoNJVL
3ynAWcGQS99FIdpQwSCWy9NFgeEAAxwxwhDzAQb2Awz8BxjkDzD8//8AiNjBIoSQASZifpAARIwf
gAY1MNgzcLl6cgVyAQAPfzY+CmVuZHN0cmVhbQplbmRvYmoKMjY0IDAgb2JqCjw8Ci9MZW5ndGgg
MTI5ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNtMzM1UwUDBS0DVU
MDZRMDJTSDHkKuQyNgQKAoXNITLJuVxOnlz64QrGhlz6HkBhLn1PX4WSotJULn2nAGcFoKiLQjRQ
TyyXp4sCfwPzg/8N9mAs38D+AMSnDLODMXsD/wP2A9IfmB8U/2P8//gfQ33zAy5XT65ALgCkET6j
CmVuZHN0cmVhbQplbmRvYmoKMjY1IDAgb2JqCjw8Ci9MZW5ndGggMTU3ICAgICAgIAovRmlsdGVy
IC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNtGzMFcwUDBU0DVUMDZWMDJVSDHkKuQyNgQKGigY
mUFkknO5nDy59MMVjA259D2Awlz6nr4KJUWlqVz6TgHOCkBRF4VooJ5YLk8Xhf8/2P+BMP8Dxg/8
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
fFQWKvVNCSpwitOMX6ywtwTDxQQdMvQfDgkkikyHbwMxFcOUSmM0fO7Q5Q7dnBiO5H44Mv2NO+Gg
ZVN6mfEa6Ra60ik8xjhgrxPNik45eXuD0TLKaB/gm54f+AflbKGXCmVuZHN0cmVhbQplbmRvYmoK
Mjc2IDAgb2JqCjw8Ci9MZW5ndGggMjE0ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+Pgpz
dHJlYW0KeNqtkDEKwkAQRSdsEZgmR8hcQDeRRbExECOYQtDKQqzU0kJRsBCSo+2RUqYIGWcTReyF
4RV/dj7/r5kOJ1OKyNAgJjMhM6ZjjBc0IxGjTnGbwxnTHPWWzAj1UmTU+Ypu1/sJdbqeU4w6o11M
0R7zjACSBgA8ZgsQMFciMItUVKoFYOsxKC4Vg++m9FvHoGPYfJnUb8rLogavdYSH2Ij7m/wnOudf
Jj0ltrI9Qwnv28CxDFiqlRIPQolnYSZ1K3jKcaPqrm/VdZcfUMwfP1zkuMEXAuZ0wQplbmRzdHJl
YW0KZW5kb2JqCjI3NyAwIG9iago8PAovTGVuZ3RoIDIyMSAgICAgICAKL0ZpbHRlciAvRmxhdGVE
ZWNvZGUKPj4Kc3RyZWFtCnjaxdAxCsIwFAbglA6Ft+QIeRfQtNIqTgWtYAdBJwdxUkcHRed4A6/k
DbyCN9CxQ+nzPRVxKDiJGfLBCwn/n3ar2YoxxBgbESZdbHdxGcEGEhmG2HmdLNbQy8FOMYnBDnkM
Nh/hbrtfge2N+xiBzXAWYTiHPEPFy69kD+gryjzR/yC9CD6VgiY6MinRmaFCAnp08hifDspVHJmP
q8dVTq3LxyvmSVrU4F7cPqEf4GqpiyRxzRupwo0CxklN7k1S2icq+W1zZRz/C2Oo0kxAhaDcSRcK
BjlM4A53brZpCmVuZHN0cmVhbQplbmRvYmoKMjc4IDAgb2JqCjw8Ci9MZW5ndGggMjI2ICAgICAg
IAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNp1jz1uwkAQhWflYqVpfATPBZJlxQbS
WeJHiotIoaJAVIGSAkRq+2g+io+wpQvkydtYChTJFp9W7715mnnxz97LRKby5CW8SpjJwfOZQ4A4
kTAfnc8TLyp2WwmB3RtkdtW7XC9fR3aLj6V4divZoWjP1UqIyp6IMtWGKFftIKhGorpPhrb2Rkab
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
afbGodl52tYo28Zz9sTnk0c9kda3ILdHqNQjuPSh7h+WyrOK3/gH4JVwSAplbmRzdHJlYW0KZW5k
b2JqCjI4OSAwIG9iago8PAovTGVuZ3RoIDEyNiAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUK
Pj4Kc3RyZWFtCnjaMzXTMzBUMFCwBGITCwUzU4UUQ65CLmMLIN8AxAVJJOdyOXly6YcrGFtw6XsA
Rbn0PX0VSopKU7n0nQKcFQy59F0UooHGxHJ5uigwMDAfYGBgYAcR8iCiHkgw/wcS9kDi/38sxOH/
MCUjjAB6//8fbASXqydXIBcA2AaanwplbmRzdHJlYW0KZW5kb2JqCjI5MCAwIG9iago8PAovTGVu
Z3RoIDI2NiAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjabdCxTsMwEAbg
izxEuiWPED8BSaSmq6W2SGRAgokBMQFjBxBIHZDiR/Oj+BE8doh6/HeigARDPsX277PP4/qiH3zv
R/0Gvx7908AvvNJxr0P9edzzZuLuzq9G7q4wy9107d9e35+529xs/cDdzt+jzANPO08kmYgaOcEg
EjEhmHLwSPXisNBkmoXaiPUYNJtmohommOeCcJZClRRsOXuE9J/Iw5DVNqk4+SzWtMIv9XbuS6Rx
YrT70rftogYrEHQTzdmKJSugv067Qze2ySKtRUK0ONGB6KRWi+pQC80jUqhJKpqHaB5+oGrBOrlS
4ZWk6FtJrs3GbM1gzqb8mP7KlxPf8icHicQmCmVuZHN0cmVhbQplbmRvYmoKMjkxIDAgb2JqCjw8
Ci9MZW5ndGggMjU4ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNqFkLFO
hWAMhXvDQNLlfwT6Agok92cluV4TGUx0cjBOekcHjc7waDwKj8DIQKg9hRDj4vIN7enpaWN1XZRS
SJSrUmIpVZS3kj/4GK1YSFWtndd3PjWcP8kxcn5nZc6be/n6/L5wfnq4kZLzszyb0Qs3ZyHSkYhS
VWOm2hO1ipJSO1EyUb1QOlgHDEphMm0XFjADe7T+o+v7dMaUeQbtbFvASjiDC1jPoO2lLdZBBxd2
SLh4zmlPm3raTbnNBvdZ/VNn4qLEjVYeNuuV02+GHqxH0GLs1PkPx53JxgHvMo64tB3AukOSbMSN
FkzxBFUY+odbz5/5XX4o3zb8yD/6ZLWjCmVuZHN0cmVhbQplbmRvYmoKMjk1IDAgb2JqCjw8Ci9M
ZW5ndGggMTEzICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNDHSMzRU
MFAwNFXQNTFXMDQyV9A1tlRIMeQq5DIEyxgoWMBkk3O5nDy59MMVgDJc+h4KFlz6nr4KJUWlqVz6
TgHOCkBBF4VooKZYLk8XBfv/SOBHPTLvDzLn/z/ieaimoNrA5erJFcgFAD/egF0KZW5kc3RyZWFt
CmVuZG9iagoyOTYgMCBvYmoKPDwKL0xlbmd0aCAxMjkgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVj
b2RlCj4+CnN0cmVhbQp42jM10DM3VTBQMAQRxuYK5uYKKYZchVxGhkC+AYgLlknO5XLy5NIPVzAy
5NL3AApz6Xv6KpQUlaZy6TsFOCsARV0UooF6Yrk8XRQY/zCw/2fg/98g//+A/f8H9f8/ANH//z8w
EUQKqAaoEqgeqAuol26AQndyuXpyBXIBAAPLbTYKZW5kc3RyZWFtCmVuZG9iagoyOTcgMCBvYmoK
PDwKL0xlbmd0aCAyNjYgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jM0
MtEzN1MwUDAFYkNDUyC2UEgx5CrkMjSwBAoZgAVAksm5XE6eXPrhCkAJLn0PkDiXvqevQklRaSqX
vlOAs4Ihl76LQrShgkEsl6eLwn8YeMAABHDe/wYU3g8U3n9U3gEU3geQOfb//wBJ9v9gCspjqP//
D4nHD7EDymMGGwPjMUCcA+PVgw2F8ezBroHx5ME0jMcPtgLGYwe7FDuPGWw9Eu8AgseIn/cAF48B
7HuyeD8GLY8sH+ELJXyhixErDbhj8x/OeEdNE6jpBTUtoaQz1DTID7YOa9plh2QIIA8579gjZx04
D+YGJIUwHjTg4CE4yhvlDToeosSnHo/L1ZMrkAsA6XwWMAplbmRzdHJlYW0KZW5kb2JqCjI5OCAw
IG9iago8PAovTGVuZ3RoIDM1NiAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFt
CnjatZOxTsQwDIZTdYiUJY8QvwC0VQXcTZGOQ6IDEkwM6CZgZADBSrvxWt14jbwBN3aoMLGT9oIA
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
s/YS5BRDn2ooyIXOrQ3ozAGMF/3uNX14fveWPK32b1QJInO/NM6MBZGbVjpUSa/mX5r9/Z1A+Tkf
y6OIZ3wHBCgFNAplbmRzdHJlYW0KZW5kb2JqCjMxMSAwIG9iago8PAovTGVuZ3RoIDMzOCAgICAg
ICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjabdHBSsNAEAbgCTkU9pIXELIvoEmE
tvYUqBXMQdCTB/GkHj0oehOSN/CV8iaub5BjwCXjP7OrLaWH8NHt/JnZyfL0pFza0i7scWUXC7tc
2cfKvJj5CoelPYv/PDybdWOKWztfmeISx6Zoruzb6/uTKdbX57YyxcbeVba8N83GEs3Y0RERMU/0
IT+ZO0+Uw2/Ywh/Inmo8Kfd4PMpIz2YTbD1lKKHaUz7CHA4Qh7U429o6mO6ZeOJDEhz2HKM+OkVl
Hr1Fr7YhIOP/qYka13FRico1JaIikok+rEGiqdpRojppEArlBTJMvhuAWjjFDtI7jWplF2YMZnHY
ZDt0H4d0PhQE8YmmXdNowo4Pie3FTvv2odOOLjpovvt31D5hz6I0xMfWq2Rip99Zd1KPxF8IIMyf
jLF74jTsTSokO8o+UDLEW8smpYW5aMyN+QUtRSsUCmVuZHN0cmVhbQplbmRvYmoKMzEyIDAgb2Jq
Cjw8Ci9MZW5ndGggMjE4ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNrt
0rEKwjAQgOGUDoVb+gi9F9DkkFqcClXBDoJODuKkjg6KrtpH81F8BMcOpbFJD0VFUBxcvOWDCwkE
/oiaKkSFLWwQtglJdXBBsIYwqrYKifhsvoIkBTnBMAI5MHuQ6RC3m90SZDLqIoHs4ZRQzSDtoRCi
EPV8qPOm7gu9F/oPBg/G7IHV9zqsy3pswMasrvW1mULoN72+9/cLg+w3xlndRWz6KJ/dm370zdKG
ktnkDzpzcuvRzW1IJ+9sw8r9k/2Y1kcbnrlhL5ZcXs5lVsfQT2EMFzCrDKAKZW5kc3RyZWFtCmVu
ZG9iagozMTMgMCBvYmoKPDwKL0xlbmd0aCAyMjAgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2Rl
Cj4+CnN0cmVhbQp42u3TvQrCMBAH8IQMgVv6CL0X0DaD1k4FP8AOgk4O4qSODopODgq+mOCLCL6A
4OIgntcz4iAO4mogdz8uJGT5u9iVKxhjFUsO0xomNRw7mEHqeBhjkj5ORlOo5xD1MXUQtXkMUd7B
xXw5gajebSBPmzjgO0PIm6gMXRQvuvGmwhn9arWWN0NxKLbiQGz+/vtL2y8dfHD4ZivOPnglNnTl
en5ZP6wLm6M3V7snkjRxDbZEOwnDRmWG83Eonj7pm3fI7eptuZ28NbeddxEo9bTmH0laoZVDD+6H
b3wDCmVuZHN0cmVhbQplbmRvYmoKMzE0IDAgb2JqCjw8Ci9MZW5ndGggNDE0ICAgICAgIAovRmls
dGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNql0jtOw0AQgOGxXKy0jY/gvQAkViISV5ZCkEiB
BBUFogJKChC0cW7AEbiKb0KOkNKF5WH2OUtiSIGL+EusrP2vpzw7nU7UWE3UyWSqyomazdRjIV/k
vKRfx6ooCnft4VkuVnJ0q+alHF3qC3K0ulJvr+9PcrS4Plf0fanuCjW+l6ulQjp6gJROm/8YcmyB
jpwIGXbaqf70bvcs9F/JO7bQptWMt+xMO9E3ITfsfN+AqE/5hl0Z16iXqIBdG1eob7mO3B/YhnXs
xNrEJC07tTYxJstZHNqEmUTnzNrEmERnm2VjbJZ1NWAdZhOta2cds47cO+fkLriNnXhTmEs0Tr0p
xiUaC++UvA3G2Jk3hX007E9vivnasDG4tmPwpyvsB51jd9QZtoMWuBt0itujTrAZNHDWT9dw3OvI
fWROgSQ2p0D6mzkLRGyXkuzCcILowA8n7R+E4ayiQTUOAxkPZxMNZxOytPvIHTuJHB6Z1g+PSQ5D
VSHk3nkPtd/xrOVdzjrR8/vkAaAh5B3B6CVW0QsSvLHyYiVv5DfUy0t9CmVuZHN0cmVhbQplbmRv
YmoKMzE4IDAgb2JqCjw8Ci9MZW5ndGggMTQxICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+
PgpzdHJlYW0KeNozMtMzNVYwUDBXMLJUMDJSMLVQSDHkKuQyNAEKGoAEwTLJuVxOnlz64QqGJlz6
HkARLn1PX4WSotJULn2nAGcFQy59F4VoQwWDWC5PFwX+BvsH9R/qP/z/AYR/QLAeCO3/8M9hkGGw
YbAAwwqGAoYPjA8YHzAfYG/gZ5AHSkkwcLl6cgVyAQB6Ciu5CmVuZHN0cmVhbQplbmRvYmoKMzE5
IDAgb2JqCjw8Ci9MZW5ndGggMTQzICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJl
YW0KeNozMtMzNVYwUDBX0DU0UzAyUjA0Vkgx5CrkMjQBihooGFlCpZJzuZw8ufTDFQxNuPQ9gOJc
+p6+CiVFpalc+k4BzgqGXPouCtGGCgaxXJ4uCvwN9g/qP9R/+P8DCP+AYD0Q2v/hn8Mgw2DDYAGG
FQwFDB8YHzA+YD7A3sDPIA+UkmDgcvXkCuQCAKaHLAIKZW5kc3RyZWFtCmVuZG9iagozMjAgMCBv
YmoKPDwKL0xlbmd0aCAxMDIgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4
2jMy0zM1VjBQMAdiI0MFQ2OFFEOuQi5DkJgBiAuSSM7lcvLk0g8H8rn0PcCkp69CSVFpKpe+U4Cz
giGXvotCtKGCQSyXp4sCf4P9g/oP9R/+/4BBEM/+AX8Dl6snVyAXACGRJIcKZW5kc3RyZWFtCmVu
ZG9iagozMjEgMCBvYmoKPDwKL0xlbmd0aCAxMTEgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2Rl
Cj4+CnN0cmVhbQp42jMy0zM1VjBQMAdiI0MFY3OFFEOuQi5DkJgBiAuSSM7lcvLk0g9XMDTm0vcA
inLpe/oqlBSVpnLpOwU4Kxhy6bsoRBsqGMRyeboo8DfYP6j/UP/h/w8YBPHsH/A3MGAFuNVzuXpy
BXIBAEQRN4QKZW5kc3RyZWFtCmVuZG9iagozMjIgMCBvYmoKPDwKL0xlbmd0aCA5MyAgICAgICAg
Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMx1zM3VTAAQiNDBRMLBSMThRRDrkIu
E3OwoDFEIjmXy8mTSz9cwcScS99DwZhL39NXoaSoNJVL3ynAWcGQS99FIdpQwSCWy9NF4T8I/EMm
uVw9uQK5AEquI50KZW5kc3RyZWFtCmVuZG9iagozMjMgMCBvYmoKPDwKL0xlbmd0aCAyNTYgICAg
ICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42n3QsU7DMBCA4Ys8WLolj+B7ApwU
JcDSSKVIZECCiQExASMDCDbU5NHyKO0bROqSIeph+9ohFsFSpM/24D93sThbUEbn7iuvqLik1xw/
sCzcPvNbf/Hyjqsa7SOVBdpbd4q2vqOvz+83tKv7a8rRrukpp+wZ6zUBgNqCLN3HSIdZmDFGdZhF
wzGY2xkkzJ1gf4TasySqXQy9Y2nV3RFpx5KYtk0E0zbSaqASVKfEJZgIGzDS+gOpYHQIiQPoKRIP
35r0oAIUu7X9E9qjD8nup/uQ7DCEUjehCYzHGJJBoqvTXJf+dIKNB4dkkOhDQOtmO4R323+ANzU+
4C9HsJ4lCmVuZHN0cmVhbQplbmRvYmoKMzI0IDAgb2JqCjw8Ci9MZW5ndGggMTk2ICAgICAgIAov
RmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozN9YzMlYwUABhMwsFU3OFFEOuQi4zEyDf
AMQFSSTncjl5cumHK5iZcOl7AEW59D19FUqKSlO59J0CnBUMufRdFKINFQxiuTxdFP6DQAMDA5j+
AaX/w+gDDAz1PxjY/38A03As/w9C8/+H0MxAE0A0I1ADMs3w/wGErv+AStv/QKP/QGh5dPofAfo/
jWlC9v9BdT+chvqr/geqv2HhAaVh4QQLP/b/qOFb/wce/rD4QImfP1AaGH9crp5cgVwAMm/JmQpl
bmRzdHJlYW0KZW5kb2JqCjMyNSAwIG9iago8PAovTGVuZ3RoIDEwMSAgICAgICAKL0ZpbHRlciAv
RmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzbTMzJUMFAwBmETBVNzhRRDrkIuYwMFEARyQRLJuVxO
nlz64QrGBlz6HkBRLn1PX4WSotJULn2nAGcFQy59F4VooDGxXJ4uCv////+DjBnqfzAMdYzuJy5X
T65ALgCV9Xk5CmVuZHN0cmVhbQplbmRvYmoKMzI2IDAgb2JqCjw8Ci9MZW5ndGggMjYxICAgICAg
IAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNpl0b1KxEAQwPFZUgSmySNknsBN/Lhc
t3CeYApBKwuxUksLRUGxiL6Zvkl8g7NTiBlnd3YvJ1cs/GYH/sVus7/T7FFF/jS7dNDQdY13OJvL
XPnRL65ucdGiPafZHO2x3KJtT+jh/vEG7eL0kGq0S7qoqbrEdknMA0DGvNrAmMAK6PhVtALBO4Dp
PXrFi6wDnid8K558MaAbIxxHlFIMKKT4H7mkAzIpBhgpBoAUFVJUuDU4QtIKKSqkqJCiQooKmDBE
dGOE44iS3xQFfyhy/lRkE74Uhn8UwL8R4bE8XEK5hSIhT8gSTAKs0W3BJZSCwaPoIfwp5AlZgtkA
HrV4hn9uq8S6CmVuZHN0cmVhbQplbmRvYmoKMzI3IDAgb2JqCjw8Ci9MZW5ndGggMTk5ICAgICAg
IAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNp1zr0KwjAQB/ArGYRb8gi5JzCtFh0D
foAdBJ0cxEkdHRSd7ZuZR+kjdOwgPe+qoIsh+UH+uRyXj/r5gFIayslHNBzTIcMzdlmqV33Yn3BS
oN9QPkC/kBR9saTr5XZEP1lNKUM/o21G6Q6LGUFoAcAwVwCWuQFwtZUo1IbFJuFSBI5f79VHV6u2
Uk2pyvoxfJqKdzXhRvIel/qr/fYJXZ/35rfxr6w1SVemhronQ7une3C03DqOhhurg1aGI84LXOML
OC55CAplbmRzdHJlYW0KZW5kb2JqCjMyOCAwIG9iago8PAovTGVuZ3RoIDE5MSAgICAgICAKL0Zp
bHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjatc+xCsIwEADQSIbCLf0E7wtMq5a6BWoFMwg6
OYiTOjooOref1k/JJ2TsUHteikNFnMSQPLjcJbkkk1GUYIRjXgnPGR5juMA05bgLfeJwhsyA2uI0
BbXkXVBmhbfr/QQqW88xBpXjLsZoDyZHQYIHfTHolH90QCUbkmM1NWzLKckxlZKsKCrJFdr6eu28
w7pn4w37tj/4cdvbW67rhK1EYV+9PRx/QNZN0ArpNNVC2pAzsvInYGFgA0907YSACmVuZHN0cmVh
bQplbmRvYmoKMzI5IDAgb2JqCjw8Ci9MZW5ndGggMTg0ICAgICAgIAovRmlsdGVyIC9GbGF0ZURl
Y29kZQo+PgpzdHJlYW0KeNqVzjsKwkAQBuAJKQLT5AJC5gRuYhLEKhAjuIWglYVYqaWFoq3Zo+Uo
OULKFEvGWSNYW8wH84I/m02zjGJKXS0ondM5wRumufSxa93idMVSo9pTmqNayxSV3tDj/rygKrdL
SlBVdEgoPqKuCDxuAEK2ADUzABs2/gDcBFY2YS9EHzqhGJGjuoUahIlDvv6h/tEJxRevjfoRvw0t
BE0wQGB8hshInJfLZ11SOffYAK407vANK9JcqAplbmRzdHJlYW0KZW5kb2JqCjMzMCAwIG9iago8
PAovTGVuZ3RoIDE5NiAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjatZA9
CsJAEEYTUgSmyREyJ3CzJCF2gRjBLQStLMRKLS0UrRNvlqPoDbSLkGScsfKvExfmwbcz7Dw2DntB
jAGGXLHGuI8rDVuIEs6BRGksN5AZUDOMElAjvgVlxrjfHdagsskANagc5xqDBZgcLT5FKaDvdB60
/0SbjkyPrsyUWiZVvNchy6fSbSyXSq8RB7+Wef8iTJ9YnN5JP/DltY9d7MAmXi1W7OaxZ8eeFbda
6vi/biT5zLTJpg6GBqZwByBopcEKZW5kc3RyZWFtCmVuZG9iagozMzEgMCBvYmoKPDwKL0xlbmd0
aCAxOTEgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42l3OvQrCMBQF4FM6
CHfJI+Q+gW2p0LGgFewg6OQgTurooCi4peCL9VHyCBkzFOOtCv5cyAcngZszyodFwSnnckYZ5wXv
MjpS3t+lfewftgca15SsJFMye1rP+Xy67CkZLyacUVLxOuN0Q3XFiEMD6OAAEzpE4XZHfIdpBh3K
RnmUrfbQVjuhdFDuibFvvDDw4YPMNxbAH+YX2ffiqnvkS3jVAU4axC4KUBahNa30C4CSktLSgqY1
LekBUWxlgAplbmRzdHJlYW0KZW5kb2JqCjMzMiAwIG9iago8PAovTGVuZ3RoIDE1NSAgICAgICAK
L0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaM7LUM7RQMFAwBmELBVMLhRRDrkIuYxMg
3wDEBUkk53I5eXLphysYm3DpewBFufQ9fRVKikpTufSdApwVDLn0XRSiDRUMYrk8XRQYGOQ/MDAw
/v/DwMD+/z+Q96O+gcH+wf8Ghv8H/x8AE4z/G6EE839GEMHwvwFG2DEACQZiiP8g09EIYvXSjfj/
/x8GweXqyRXIBQCOWG81CmVuZHN0cmVhbQplbmRvYmoKMzMzIDAgb2JqCjw8Ci9MZW5ndGggMjY0
ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNqFkL1OxDAMx10xRPJyb3D1
C0BatVWZiHQcEh2QYGI4MQEjAwjm9A14pWyMvEIkHoCON5xi7LRCYiKKfrHsvz/itj/pO6qooeO6
p7an5pQeanzGthFvRV23hO6fcDOgvaW2QXspfrTDFb2+vD2i3VyfU412S7uaqjsctgRySgCTgAN4
/uJQMPN3NMnwe1ztCy5jOYHYTvgZXQT/EZQij//fWblw0iZabQStrG2lMayY90LPEWCtDljrWAvP
Mt3MMc8bMnOWUKopo9YRlxEe4EiYsp1ylMEFEYCXTB6lNfgx/dL94RxVpZdX9JpbJJ3cHHRV8hHd
kozhWcWGJwC8GPAGfwBygZjUCmVuZHN0cmVhbQplbmRvYmoKMzM0IDAgb2JqCjw8Ci9MZW5ndGgg
MTU3ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNdYzMFUwUDAGYlMj
BVMLhRRDrkIuEwsg3wDEBUkk53I5eXLphyuYWHDpewBFufQ9fRVKikpTufSdApwVDLn0XRSiDRUM
Yrk8XRQY/jMAwX8cJDuYZKYlWX8ASDL//wEk+f//A5LyQEHm/zaM/xuY/1eAyQ8MIPIBw/8DzP8P
IJENSCTDAJL///+x//8fk+Ry9eQK5AIACleeSAplbmRzdHJlYW0KZW5kb2JqCjMzNSAwIG9iago8
PAovTGVuZ3RoIDEyMiAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLT
MzVWMFAAYSNTBVNLhRRDrkIuI0Mg3wDEBUkk53I5eXLphysYGXLpewBFufQ9fRVKikpTufSdApwV
gKIuCtFALbFcni4KjB8Y2P8w8P8DIfn/KAgiCJQFqsEH/jPUIyH2/wzM1Eb///+AIy5XT65ALgCd
G05xCmVuZHN0cmVhbQplbmRvYmoKMzM2IDAgb2JqCjw8Ci9MZW5ndGggMTk4ICAgICAgIAovRmls
dGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNq10LEKwjAQBuBKhsItfYTeE5hUWuhWqBXsIOjk
IE7q6KDoan20voGv0EfomCH0zJ2DgzoayAd39yeEZGacosGJ32mOWY77BE6QZr42XPJgd4SyBr3G
NAM9913Q9QIv5+sBdLmcYgK6wk2CZgt1hQEFftEPQ1H904i6ryrHU9VLpmPjO1vIqZvoWGXZsGOj
lo3FRjrUi5Ih9/YxSN6/Qg0h+ZsHJY6o9QbUiT3biIVlYycObPSS/F/ZguynMKthBU9Qh4yxCmVu
ZHN0cmVhbQplbmRvYmoKMzM3IDAgb2JqCjw8Ci9MZW5ndGggMTA1ICAgICAgIAovRmlsdGVyIC9G
bGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMtMzNVYwUABhIzMFUwuFFEOuQi4jIyDfAMQFSSTncjl5
cumHKxgZcel7AEW59D19FUqKSlO59J0CnBUMufRdFKINFQxiuTxdFBj+M/xHQuz/GZgHGfr//w8c
cbl6cgVyAQDKGlf5CmVuZHN0cmVhbQplbmRvYmoKMzM4IDAgb2JqCjw8Ci9MZW5ndGggMTg4ICAg
ICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNrdzT0KwmAMBuCIQyGLR2hO4Nci
2gqCoBXsIOjkIE7q6KAouLXSwWt5A28gPcI3OpS+psXJwQM4hDz5IQn67W4onnQ0Qk2BbH0+cNDT
ui6rwWbPo5jNUoIem6l22cQzOR3POzaj+Vh8NpGsfPHWHEdCJSU5tQoilA0UNESqcgACcpV7RWaH
VjUg3FLXklNeCA9yX9Qstf+spbtJUZ1p4k7J61spJfZb9Hn8LwIKF8gA+1s8iXnBb6hStYAKZW5k
c3RyZWFtCmVuZG9iagozMzkgMCBvYmoKPDwKL0xlbmd0aCAxNTEgICAgICAgCi9GaWx0ZXIgL0Zs
YXRlRGVjb2RlCj4+CnN0cmVhbQp42jM11jMwVTBQMAZiUyMFY3OFFEOuQi4TCyDfAMQFSSTncjl5
cumHK5hYcOl7AEW59D19FUqKSlO59J0CnBUMufRdFKINFQxiuTxdFBj+MdQfYPj/j/n/DyDJ//8f
kJRn/g8kbRj/N7D/qwCSzP8+MADJ/w8Y/h9g/n8AiWxAIhkGkPz//4/9//+YJJerJ1cgFwCO4YkO
CmVuZHN0cmVhbQplbmRvYmoKMzQwIDAgb2JqCjw8Ci9MZW5ndGggMTc2ICAgICAgIAovRmlsdGVy
IC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMdczN1UwUDAGYhNTBWNzhRRDrkIuE0Mg3wDEBUkk
53I5eXLphyuYGHLpewBFufQ9fRVKikpTufSdApwVgKIuCtFALbFcni4KDIz/DzAwMPD//wEk6///
B5L/G/43MDD/Y7B/wMD+h0H+AwP/DxACMiBcIGkPJMEKgMrqgeR/FPI/iGwglcQ0B2I+xC5k2yHu
gXAh7mQEGnIA5n75/3+AJNhfXK6eXIFcAC1pbqsKZW5kc3RyZWFtCmVuZG9iagozNDEgMCBvYmoK
PDwKL0xlbmd0aCAxOTMgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42q3Q
vw6CMBAG8JoOJLfwCN4LaFsBGUkQEzuY6ORgnNTRQaMzPhqPwiMwMhDOK5po1E2H/ob7+udLo2Co
I9Q4woEZY6QxiHFn4AhhzFONUfCItgdILagVhjGoGc9B2TmeT5c9qHQxQQMqw7VBvQGboaAeXQWR
TxWbUMO2HrEVB5JKQYXkHXkpSYi8cib1037zrt/+4Mdt/Ze3kqprwhZdn3s3N5TUeK2Q3L9mfU4k
uRNu/UPif/kmTC0s4QYaA4sKCmVuZHN0cmVhbQplbmRvYmoKMzQyIDAgb2JqCjw8Ci9MZW5ndGgg
MTQ0ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozttQzNlYwUDACYmNz
EEox5CrkMjYB8sEiIInkXC4nTy79cAVjEy59D6Aol76nr0JJUWkql75TgLOCIZe+i0K0oYJBLJen
iwLDP+YPDP//8f8DEvb/gURNfcP/fz/+H2D/9+H/Aeb/D0DEATjRUN8AJOwZgAQPiGAAEgw0J/7/
/4dBcLl6cgVyAQAXOFfWCmVuZHN0cmVhbQplbmRvYmoKMzQzIDAgb2JqCjw8Ci9MZW5ndGggMTg3
ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNoljD0KwlAQhDekELbxCNkT
mISHxi7gD5hC0MpCrNTSQlGwEJOjeZQc4ZVbhIz7SPHBzszOuGIyKyQTF5iKK+SS851dbjoLMgTn
Gy8qTg/ick435nJabeX5eF05XeyWYu5KjlY5cbUSKv08Rq9jQJPfWEuK9UuRfoi0G3j3BgINEcwA
WqrtqIGmBH4J4EM/NizsKAlftdVGvafIoF4Hvt3Ax8LONhVNpPAjD9tRgNpEidcV7/kP1ARhFwpl
bmRzdHJlYW0KZW5kb2JqCjM0NCAwIG9iago8PAovTGVuZ3RoIDE1MCAgICAgICAKL0ZpbHRlciAv
RmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzbXMzRRMFAwAmJjIwVTY4UUQ65CLiNLIN8AxAVJJOdy
OXly6YcrGFly6XsARbn0PX0VSopKU7n0nQKcFQy59F0Uog0VDGK5PF0UGPgZGDCwPBq2h+J6IP4P
wYxAzA7E8v//P/iPhJmBYlTCFQTwD8b/DR8Y/zd+YPh/+AGD/f8DQMc0MDD/Y+By9eQK5AIAznBS
FwplbmRzdHJlYW0KZW5kb2JqCjM0NSAwIG9iago8PAovTGVuZ3RoIDE0OSAgICAgICAKL0ZpbHRl
ciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzXWMzBVMFAwBmJTIwVjc4UUQ65CLhMLIN8AxAVJ
JOdyOXly6YcrmFhw6XsARbn0PX0VSopKU7n0nQKcFQy59F0Uog0VDGK5PF0UGP4zMNgf+P+fwf4/
FpL9PwPj/wPMQDUDSjIikcwwkvE/AzuIbOD//wCozA7o4vr/f4Ck/P8P/0EqGv7/53L15ArkAgDw
jIF/CmVuZHN0cmVhbQplbmRvYmoKMzQ2IDAgb2JqCjw8Ci9MZW5ndGggMjM2ICAgICAgIAovRmls
dGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNp1zrFKxEAQBuA5UixMs29w2SdwEz0ShXCB8wRT
CFpZiNWdpYWicEUg+2j7KPsIe13EI+PMWphGmOFjZhj4q8uzq9oU5py7qs1FbfYlvmG14rmQUQ67
V9x0aB9NtUJ7y1u03Z35eP98Qbu5vzYl2q15Kk3xjN3WEB2JXEv/qSbQI2QhI1CsF09Jxyq/IJdN
oByrRCAvLyBSMmiCHGBg3VLMk21cDq751YvjevA9QD42bTiIfRtGAH065DHOnKI+sor9CixF/c1m
FBT5uZyRXYjuTyDOCnNTcTCAae4aoBebVHjT4QP+ABWmi2oKZW5kc3RyZWFtCmVuZG9iagozNDcg
MCBvYmoKPDwKL0xlbmd0aCAyNDUgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVh
bQp42mXPsUrEQBCA4VlSBKbJG9zOC+gmXqIWh4HzBFMIWlmIlVpaKApXnCSdLyUS8UXyCFtuEW6c
WeQC2nzFLPwzW+X7JeV0QHvFIZXHND+i+wKfsKxkmlM1/326e8Rlg+6aygrduczRNRf08vz6gG55
eUoFuhXdFJTfYrMiZm84/DdhAAvqTOzgBIy4EHvYAIhrcYAA0A7gRW/E2ptBDKoNSb9zTMVsTDtx
m4npNgORrZjwLPopGv6IjiJw+GvrJ+th0vaTmt8Jkzaqq2r5j1S6hXb7TXQd1SX8pXn+1nD7rsk3
q7GaYyVelsYL8KzBK/wBmn5v7AplbmRzdHJlYW0KZW5kb2JqCjM1MSAwIG9iago8PAovTGVuZ3Ro
IDE4OSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjanY8xCsJAEEV/sAhM
oTcwcwHd7AqSQLCIEdxC0MpChIBaWigKFhY5Wo6SI1haOklWm3TCq/4MM+9PzNjEHHLEIxOyiXhq
+KjpQrpOJTdudDhTakltWceklpKTsiu+Xe8nUul6zppUxjvN4Z5sxkAOVPBK9Ar4QB8YAgnwaHjB
q2p6ZY0vFBgIqAmaXWH25dnh/RfdO78X7ccAzkFkRMkvnWFrK9rOP2m2pZRUk4JSU8oip4WlDX0A
R6tAFQplbmRzdHJlYW0KZW5kb2JqCjM1MiAwIG9iago8PAovTGVuZ3RoIDE4OCAgICAgICAKL0Zp
bHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjanY8xCsJAEEW/pAhMES8gOhfQza5BIohFjOAW
glYWYqWWgoqChUWOlqPkCB7BzSSx0E541cxn5v2hGZgxhxxx34RsIh4ZPmi6kC6nIcemXu1PlFhS
G9ZjUgs3J2WXfLvej6SS1Yw1qZS3msMd2ZRzoADOQAx0gABoA34GLy9pud1LeAhPYAJMga7Qk3RJ
VuPn33jFP/ze+byoPvYah6koPRtDsXXalb8v8UCqxVLTFXKVaW5pTW9Fy0JzCmVuZHN0cmVhbQpl
bmRvYmoKMzUzIDAgb2JqCjw8Ci9MZW5ndGggMTY1ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29k
ZQo+PgpzdHJlYW0KeNozM9EztVAwUDBX0DVSALJMTBRSDLkKuUwNFEDQxAwik5zL5eTJpR+uYGrA
pe8BFObS9/RVKCkqTeXSdwpwVjDk0ndRiDZUMIjl8nRRYAABxgNgir0BTMmBSYYfYJL5AZjih4jZ
QKgPEKkDmFKMECn2A8gmVUCkHpBjCYyCCkKVQDVAtcMMgxoNtQhqLVzyALID0c07QLZlB7hcPbkC
uQAEsysFCmVuZHN0cmVhbQplbmRvYmoKMzU0IDAgb2JqCjw8Ci9MZW5ndGggMTYxICAgICAgIAov
RmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozM9EztVAwUDBX0DVSALJMTBRSDLkKuUwN
FEDQxAwik5zL5eTJpR+uYGrApe8BFObS9/RVKCkqTeXSdwpwVjDk0ndRiDZUMIjl8nRReMAABhUQ
Sg5CsR8AU4wfIFwbCMUPoZghkgzYJaHm/UA1rwFiHtmWQSl+ZCVQDVDtcshGQy2CWiuH7CSoA1FM
gnqFREsYoL7hcvXkCuQCALVkKoUKZW5kc3RyZWFtCmVuZG9iagozNTUgMCBvYmoKPDwKL0xlbmd0
aCAxMDMgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMz0TO1UDBQMFfQ
NbRUADJ1DU0VUgy5CrlMDRRA0AQqlZzL5eTJpR+uYGrApe+hYMKl7+mrUFJUmsql7xTgrGDIpe+i
EG2oYBDL5emiUP8fBBrA5P8DUAoqyOXqyRXIBQAtCSu0CmVuZHN0cmVhbQplbmRvYmoKMzU2IDAg
b2JqCjw8Ci9MZW5ndGggMTMwICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0K
eNotybEKwjAUheEbCgpn8AkynCcwuS2lmWsFMwg6OYggVEdBRefm0fJm2qJ82/+X1dI39GxYVdTA
OvCieEA9J2X9O/0NbYQ7UD3cZsxwccvX832Fa3crKlzHo9KfEDtaGeSTRnkyZJvlz2STTCpSIXOZ
yUKsBLnLWbCO2OMLLFAjjAplbmRzdHJlYW0KZW5kb2JqCjM1NyAwIG9iago8PAovTGVuZ3RoIDE2
NCAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzHUMzVSMFAwVTAyUzA2
VzAzUkgx5CrkMjYEChooGJtBZJJzuZw8ufTDFYwNufQ9gMJc+p6+CiVFpalc+k4BzgpAUReFaKCe
WC5PFwUG5gYGBvYDOHEFc4PNH+aGun/MDf/qm5v/2B9u/8H/uP8B8+/9DQz//zEw2P9gYOB/AMEg
NlAMJAdSA1IL0gPSCzIDZBY+u0Bu4XL15ArkAgBUtkTtCmVuZHN0cmVhbQplbmRvYmoKMzU4IDAg
b2JqCjw8Ci9MZW5ndGggMTMxICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0K
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
WEpbsMwOYQneI+UJfVK6OiVlLXYbwXYTUwe9ldQ9VQE67umcvgGaZXOWCmVuZHN0cmVhbQplbmRv
YmoKMzY2IDAgb2JqCjw8Ci9MZW5ndGggMTk0ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+
PgpzdHJlYW0KeNozM9YzMVYwUABhUwsFU3OFFEOuQi5TEyDfAMQFSSTncjl5cumHK5iacOl7AEW5
9D19FUqKSlO59J0CnBUMufRdFKINFQxiuTxdFP4DwQEGBhD1A0L9Y2Bg/N8AREAuA4P9AzDF/wFM
Mf8AU4x/wBTDPwhVj0LZN0CoA2BKHko9AFP8UOoDFor9Bx7qDw0oPPahORDF8VCvQD0G820DchD8
Qw4laJhBQxAYnqCgBSEQQAl5YDxwuXpyBXIBAD0wlGQKZW5kc3RyZWFtCmVuZG9iagozNjcgMCBv
YmoKPDwKL0xlbmd0aCAyNTQgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4
2q3RsUrEQBAG4D9sEZgmj5B5AU0iJmC1cJ5gCkErC7E6LS0UrTdg4WtNZ+kr5A288orj1tnNJiBY
muZLZpLN7L9de9x0XPMpH51w13B7xg8NPVMbinWoxM7miVY9VbfcdlRdapmq/opfX94eqVpdn7M+
r/mu4fqe+jUD8AMEKPw2U6zfB/xgjcDskX8Iii3Ml6AcgW+B1bYTuAHh1usCpWSHiL6vC0m+U/IZ
/RowM2GRmUxsQiIugL/RITHN+k94vSbCHxJwY8RKwibGSPmLuKOFuNuFmISdckkppczclKBf8ix2
MJ+a9QH5e2zYdA7pVJaJ6aKnG/oB7haU2wplbmRzdHJlYW0KZW5kb2JqCjM2OCAwIG9iago8PAov
TGVuZ3RoIDEyNSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzPSM7JQ
MFAwBmJTSwVTc4UUQ65CLlNTIN8AxAVJJOdyOXly6YcrmJpy6XsARbn0PX0VSopKU7n0nQKcFQy5
9F0Uog0VDGK5PF0U/v//z/j//z9UivF/AwPzfwYGIGL8NzgpIMCkBq9zkSlo6GINeS5XT65ALgAh
u6U3CmVuZHN0cmVhbQplbmRvYmoKMzY5IDAgb2JqCjw8Ci9MZW5ndGggMTA2ICAgICAgIAovRmls
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
MPDBf/zifahBVL4BefNN3hg206I1bAb2GpaiLgPLNbLAaYZLfAKk+FSjCmVuZHN0cmVhbQplbmRv
YmoKMzc5IDAgb2JqCjw8Ci9MZW5ndGggMTk4ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+
PgpzdHJlYW0KeNozMdMzNFYwUDBS0DVUMDFWMLVQSDHkKuQyMVAAQVNLiExyLpeTJ5d+uIKJAZe+
B1CYS9/TV6GkqDSVS98pwFnBkEvfRSHaUMEglsvTRYH5AwMDw39Ugh9EMFOdkH8AJOp/MDB/fGDH
wPy5Qb6B+TsD/wHmfwzsD5j/AOWYfzAw/gAqBhMMf+DEPzhRByLqSSbqUE0BGcr4B2LbD5C9YMvf
gZxxDOSg4w3yDMyND+oYmBn+/wA6Xf4AA5erJ1cgFwDIY2tBCmVuZHN0cmVhbQplbmRvYmoKMzgw
IDAgb2JqCjw8Ci9MZW5ndGggMTgyICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJl
YW0KeNqNzkEKgmAQBeAnPygMkRcInAuU/fwUuhLMIBdBrVpEq2oZWNQuzKN5FI/g0oVUY3WAFt/m
DY83ZjoKNY/Z8FCzmbAJ+KDpTKYLJQ6/l/2J4pT8DRtN/kJi8tMlXy+3I/nxasaSJryVzo7ShKFa
wHsVyFVlNchUjcaprNYt1YdXqDbqwGoeQC3QycXzT/mv04kAOypgewX6XomeW2LgVAhkN5P9Cnen
lH8ApwHNU1rTGwS7PRAKZW5kc3RyZWFtCmVuZG9iagozODEgMCBvYmoKPDwKL0xlbmd0aCAxOTgg
ICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMx0zM0VjBQMFbQNVQwMVEw
tVBIMeQq5DIxUABBU0uITHIul5Mnl364gokBl74HUJhL39NXoaSoNJVL3ynAWcGQS99FIdpQwSCW
y9NFgYGBgf8AAwPzfxSCwf4AVIJ6BPMPICH/H0jUsfcfYPjB+P4A8weG+gPsD4C2gaQghHwDULE9
mABpq4cTdSDiH8lEHaop9nACaJE8hADaaw9yRj3IQe8/MP5gPP+foYa9/z+D/D/+/wzsQIdzuXpy
BXIBAG9YaEkKZW5kc3RyZWFtCmVuZG9iagozODIgMCBvYmoKPDwKL0xlbmd0aCAxODkgICAgICAg
Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42l3OMQrCQBAF0B8WXJhCLyA4F9BNsija
GNAIphC0shArtRRUtJPo0XKUHCHlFmIcSQpx4cEyM/wZO+iNAvY55G7Ats92yPuAzmRDKfpsR1Vn
d6RJQmbNNiQzlzKZZMHXy+1AZrKcckAm5o0EbSmJGdoBnRK4tzLPqVwVXqFzz7UyuM4T968ISMX4
UYlS8f5R1k/++JfWHjXJUdETSnK17GjoDE2do+0VGMLhhFTlco9MvECzhFb0Ab2jQAsKZW5kc3Ry
ZWFtCmVuZG9iagozODMgMCBvYmoKPDwKL0xlbmd0aCAxNDEgICAgICAgCi9GaWx0ZXIgL0ZsYXRl
RGVjb2RlCj4+CnN0cmVhbQp42jMy1TM2VzBQMARiYwMFU0uFFEOuQi4jCyAfzAVJJOdyOXly6Ycr
GFlw6XsARbn0PX0VSopKU7n0nQKcFQy59F0UooEqY7k8XRQYGOoYGJj/NzDwH3zAIN/+gMGe/wND
HRT/gWDGH8wHGH8wMJCK////A8fk6KcUM/9hYKj//wOOuVw9uQK5AKImWwQKZW5kc3RyZWFtCmVu
ZG9iagozODQgMCBvYmoKPDwKL0xlbmd0aCAyMzcgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2Rl
Cj4+CnN0cmVhbQp42o2Pv0oEMRDGvxAwMIXxDXZeQLM57+SKw4XzBLcQtLIQK7UUVLRbuH20PEoe
IWWKxTg5hAOxkMAvQ+b7Q+b+ZDHjlmd87Jc893y65CdPbyR3K2dx9rN6fKF1T+5OBOSu5J1cf80f
75/P5NY3F+zJbfjec/tA/YYB6ASbbEY3rVbIzeugko2DjiYMJuh4ZENVVDSjyv/B3lEDUKOkxY7Q
uQFMNwEHNgGH0v4bdo8gMKWEigxdyhdUKWWUqQRJ20ZJs+m8fmEA1A45i+tPTHW701VH7CQ8Sood
TUQHNSkRbEuqnQBd9nRL39BJarcKZW5kc3RyZWFtCmVuZG9iagozODUgMCBvYmoKPDwKL0xlbmd0
aCAxNTUgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMx0zM0VjBQMAJi
ExMFUwuFFEOuQi4TQyDfAMQFSSTncjl5cumHK5gYcul7AEW59D19FUqKSlO59J0CnBWAoi4K0UAt
sVyeLgrMHxiA4D8GyQ8mmWlOguxh/mD/B0R+sAeSHw/INzAwf27gP8DA/J0BRP4Dk38Y2B/AyB8Y
5IeBJNl/gILr//+D//83IJNcrp5cgVwADx95HQplbmRzdHJlYW0KZW5kb2JqCjM4NiAwIG9iago8
PAovTGVuZ3RoIDEyMiAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLW
MzBXMFAwAmFDBVMzhRRDrkIuQwsg3wDEBUkk53I5eXLphysYWnDpewBFufQ9fRVKikpTufSdApwV
DLn0XRSiDRUMYrk8XRSYGxj4HzDIf0BBQBGgOH7A/IHhPwyxfwBxqY7YfzD8/38AgrhcPbkCuQAo
Q0VgCmVuZHN0cmVhbQplbmRvYmoKMzg3IDAgb2JqCjw8Ci9MZW5ndGggMTUwICAgICAgIAovRmls
dGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMtUzNlcwUNA1UdA1NFcwtFAwNVNIMeQq5DIy
BAobKJgbw+SSc7mcPLn0wxWMDLn0PYASXPqevgolRaWpXPpOAc4KQFEXhWigrlguTxcFBsYDDOwf
GPh/oCCgCFAcP2D8wfAfhth/gLj0RTaMP+oYf/xn/PCfGYIe/GM/UMN+wIafgf8fA/MPBi5XT65A
LgD/p1f1CmVuZHN0cmVhbQplbmRvYmoKMzg4IDAgb2JqCjw8Ci9MZW5ndGggMTk2ICAgICAgIAov
RmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNq1zTEKwkAQBdCVFIFpcgMzJ3ATjZAuECOY
QtDKQqzUUlBRsBDN0XIUjxCxMEXIOj8g6gFk2QezM/M36HXCLnuMG/S4H/LKpx0FHuNIicZyQ3FK
esaBR3okr6TTMR/2xzXpeDJgn3TCc5+9BaUJW4VSyvziAOs/tEz1jbrmAN0z2IIb5nLBygQba20Q
ghOohDt41MIzEupIhksXGw52HaTYQBIlrwQV4hsu6v1v1JAJbm6XKiqMyY35QMOUpvQCRB1yBQpl
bmRzdHJlYW0KZW5kb2JqCjM4OSAwIG9iago8PAovTGVuZ3RoIDEwOCAgICAgICAKL0ZpbHRlciAv
RmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLWMzBXMFAwAmFDBVMLhRRDrkIuQwsg3wDEBUkk53I5
eXLphysYWnDpewBFufQ9fRVKikpTufSdApwVDLn0XRSiDRUMYrk8XRSYPzD8hyH+DwzMgw+x/2D4
//8ABHG5enIFcgEAxoJRLgplbmRzdHJlYW0KZW5kb2JqCjM5MCAwIG9iago8PAovTGVuZ3RoIDE3
NyAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaM7PUM1IwUABhM3MFY3OF
FEOuQi4zEyDfAMQFSSTncjl5cumHK5iZcOl7AEW59D19FUqKSlO59J0CnBUMufRdFKINFQxiuTxd
FJg/8H9gkH/A8P+D/R+G+h9A+oM944M6hv8fD8g3N9gz8H9u4D/OIN/A/J2B/xyI/sfAfwdE/2Fg
/8HAfwBO/2Bg/4CN/sDA/mAI0CBPgALi//+D//83//+PTnO5enIFcgEAI9+IFAplbmRzdHJlYW0K
ZW5kb2JqCjM5MSAwIG9iago8PAovTGVuZ3RoIDE0NyAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNv
ZGUKPj4Kc3RyZWFtCnjaMzHTMzRWMFAwAmITEwVjc4UUQ65CLhNDIN8AxAVJJOdyOXly6YcrmBhy
6XsARbn0PX0VSopKU7n0nQKcFYCiLgrRQC2xXJ4uCswf+D8wMPz/YP8HRH6wB5IfD8g3MPB/buA/
wMD8nQFE/gOTfxjYH8DIHxjkh4Ek2X8wAL3x///B//8bkEkuV0+uQC4Af4dlJQplbmRzdHJlYW0K
ZW5kb2JqCjM5MiAwIG9iago8PAovTGVuZ3RoIDE4OCAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNv
ZGUKPj4Kc3RyZWFtCnjajY4xDoJAEEW/oSCZhiMwF9BlBYM2kCAmbmGilYWxUksLjXYGORpH4QiU
VOJkKUiszE5eZv7u/vmRnsymHPCUx5qjgMM5nzXdKIxFlHHR35yulBlSew5jUmuRSZkNP+7PC6ls
u2RNKueD5uBIJmc4HwBeVwKJUwOtnFGDF2RI4Fbw4ZVSvqDyIUoqqC0KwGl+IG5O+y+Gb2/xawZn
u83u9SRB6dZI5RGKPh8K6eF3FWx6Whna0RcISUvaCmVuZHN0cmVhbQplbmRvYmoKMzkzIDAgb2Jq
Cjw8Ci9MZW5ndGggMTk2ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNqd
zrEKwkAMBuBIhkIWH6F5Ab2erXUUagU7CDo5iJM6Oii62j5aH6WPcCLYG4rnXXHQUQl8Q0KSP4r7
MuSAB9yTMUchhyPeSTpSFLCrYfgebQ+UZCRWHAUkZrZPIpvz+XTZk0gWE5YkUl5LDjaUpYzKr8Co
XIO5VVcw98IvvBq6JT7Bq7ABVKgBNSrotDQWaHl+k//M94H2sqX9pt3fBjxlY3QrfLhAdTEGdCFR
GTf3S3C7f+BpizHlJzTNaEkvr+tvhgplbmRzdHJlYW0KZW5kb2JqCjM5NCAwIG9iago8PAovTGVu
Z3RoIDIwMiAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzHWszBSMFAw
VtA1NFMwMVEwNldIMeQq5DIxUABBU2OoVHIul5Mnl364gokBl74HUJxL39NXoaSoNJVL3ynAWcGQ
S99FIdpQwSCWy9NFgYH5B8MBBvl/jAcY6tgbDzD8YTx8gPkDw+MD7B8Yyg/wP2AwP8B/gMH+gDxQ
0QH7BgjBf6CeAYX4RzKBZoA9mAAZLw8mQFaC7WV/wFAPctD7A4w/GM+DHNkPci5Qjv0HkABpI4uQ
f8DAwPz/P4LgcvXkCuQCAEa6ZiMKZW5kc3RyZWFtCmVuZG9iagozOTUgMCBvYmoKPDwKL0xlbmd0
aCAxNDAgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jM20jM1UjBQAGFj
QwVjc4UUQ65CLiMLIN8AxAVJJOdyOXly6YcrGFlw6XsARbn0PX0VSopKU7n0nQKcFQy59F0Uog0V
DGK5PF0U2B/IM/x/UH/g/8PHD/4/bv/A/5z9A/MzIH4HxG+YHzD/YWhg/sHAgII/UBezA838//8D
HHO5enIFcgEAatlGhAplbmRzdHJlYW0KZW5kb2JqCjM5NiAwIG9iago8PAovTGVuZ3RoIDE5NSAg
ICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaPc6xSsRAEAbgH7ZYmGbfwMwL
eHubYFQQAvEEUwh31RWHlVoKKgpXCO6j7aPEyjZgkyI4ziVHio+Z+f9minxxfsZLLvg0cKHzgh8D
vVJeaqjn5dQ8PFPdkN9yXpK/1Zh8c8fvbx9P5Ov1NQfyK94FXt5Ts2KIgZEfuCg4QYUrZNjD4QUW
3cygPxqUAPhqlS6VtMikhxNt5A8QDa1EbVUWE1xKsKMWZtZNYg8bh5HD4YPf9Ilv6ZCqCLppaEP/
gENHpQplbmRzdHJlYW0KZW5kb2JqCjM5NyAwIG9iago8PAovTGVuZ3RoIDE1MSAgICAgICAKL0Zp
bHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzbSM7JUMFAwVNA1VDCyUDA1VEgx5CrkMjID
ChoomBpBZJJzuZw8ufTDFYzMuPQ9gMJc+p6+CiVFpalc+k4BzgqGXPouCtGGCgaxXJ4uCgwSDAwY
2AIJVyDhHwwMjEDMDMTsQCz//z/DfyhmhMpRAR8ghBn+MIJwA0MNcwNDHTMDgz07AwP/P7BmLldP
rkAuABd1SJYKZW5kc3RyZWFtCmVuZG9iagozOTggMCBvYmoKPDwKL0xlbmd0aCAxNTMgICAgICAg
Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMx0zM0VjBQMFLQNVQwMVEwNldIMeQq
5DIxBAoaKBhbQGSSc7mcPLn0wxVMDLn0PYDCXPqevgolRaWpXPpOAc4KQFEXhWignlguTxcF5g8M
7A8Y/n9g/I9K8n9gkH/AAJEdcJIfgwS6jRFC/mCwf8DA8IOh/AcDwx+G5/8bGOyZjwNJ+f/tQJL5
D9AELldPrkAuABMxYwMKZW5kc3RyZWFtCmVuZG9iagozOTkgMCBvYmoKPDwKL0xlbmd0aCAxODMg
ICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42lXMsQqCUBTG8SMXEg6Ra1vn
BeqqV0onwQxyCGpqiCCoxoaitoj7aD6Kj2CbUGiXupdq+Q3/D75ADEKfXPKp71HgkxjSzsMjikhF
l8Tos2wPmGTIlyQi5FOVkWczOp8ue+TJfEwe8pRWHrlrzFJqGhnXX5wKnNIuwS5YCSxnFTBpKeAN
PKGlqaEDcIO2JoauQYYAPelqnHxjKBR2kWvYXf5iPcDQKNS/4fpPqMFJhgt8AUajP+oKZW5kc3Ry
ZWFtCmVuZG9iago0MDAgMCBvYmoKPDwKL0xlbmd0aCAyMzMgICAgICAgCi9GaWx0ZXIgL0ZsYXRl
RGVjb2RlCj4+CnN0cmVhbQp42lXOPUvDUBjF8XMJWHgQs3Yo5vkCehPL7ctioK1gBkEnBxEK1lF8
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
ago0MTAgMCBvYmoKPDwKL0xlbmd0aCAxOTcgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+
CnN0cmVhbQp42pXOsQrCQAwG4EjBQgZ9AdG8gN5d9aSThapgB0EnBxEEdRSqKLjZR/NR7hF8g5pU
Wujg4JH7hj8kdyMzsAFpstQPaGTIjulo8IJDyyHH4bdzOGOcoNrQ0KJacIwqWdLtej+hildTMqhm
tDWkd5jMSAOfUJgIUZ7nrs7rWZIJkAI0YQ/QEjpCCA5Awwu4xziBCxqClzG+7G4KLaFTUbz8EFLh
LTgZrfAKZJNf0a7TK8hKol88/yGSr3T54jzBNX4AbPpRLQplbmRzdHJlYW0KZW5kb2JqCjQzMCAw
IG9iago8PAovQXV0aG9yKCkvVGl0bGUoKS9TdWJqZWN0KCkvQ3JlYXRvcihMYVRlWCB3aXRoIGh5
cGVycmVmIHBhY2thZ2UpL1Byb2R1Y2VyKHBkZlRlWC0xLjQwLjE3KS9LZXl3b3JkcygpCi9DcmVh
dGlvbkRhdGUgKEQ6MjAxNzAyMTkxNzQ0MzYrMDcnMDAnKQovTW9kRGF0ZSAoRDoyMDE3MDIxOTE3
NDQzNiswNycwMCcpCi9UcmFwcGVkIC9GYWxzZQovUFRFWC5GdWxsYmFubmVyIChUaGlzIGlzIHBk
ZlRlWCwgVmVyc2lvbiAzLjE0MTU5MjY1LTIuNi0xLjQwLjE3IChUZVggTGl2ZSAyMDE2L0FyY2gg
TGludXgpIGtwYXRoc2VhIHZlcnNpb24gNi4yLjIpCj4+CmVuZG9iagoyMjAgMCBvYmoKPDwKL1R5
cGUgL09ialN0bQovTiA0OAovRmlyc3QgNDA5Ci9MZW5ndGggMjk4MCAgICAgIAovRmlsdGVyIC9G
bGF0ZURlY29kZQo+PgpzdHJlYW0KeNqtWkuPHLcRvs+v4NF7UA/J4hMQDFhWjATxQ7Ac5CDoMJZG
8gLSjrA7Cpx/n6/IJlkz3RrtroNVc5pkkSwWWV89WkRKK2uNsoTHWmU9HkuKtFNkFbmMqlc+8m9Q
PiX8RhW4z6jgMSpklZLb2KiV4T4bjTIhGcwBWociY04XHV6IyTFF5orjubAK5iXjsVbAGINKiDx7
VJQd5jXKYRp0J+Wcj4UnF8EQea28cVGZrLzHYGcMc+rxYlWwFnSGFGbDQqSip4gGp2LQaQOKGIJX
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
sQlfpxyna2kuJv/p8Ha//dfdfrh3v3za33xXGFAjf/4/MkW6WQplbmRzdHJlYW0KZW5kb2JqCjQz
MSAwIG9iago8PAovVHlwZSAvWFJlZgovSW5kZXggWzAgNDMyXQovU2l6ZSA0MzIKL1cgWzEgMyAx
XQovUm9vdCA0MjkgMCBSCi9JbmZvIDQzMCAwIFIKL0lEIFs8RDI4NjZCNEY4RjA0QzM2NjZDRUY3
RURFQzZEOUFFOUM+IDxEMjg2NkI0RjhGMDRDMzY2NkNFRjdFREVDNkQ5QUU5Qz5dCi9MZW5ndGgg
MTIwNyAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNod1nt8z1Ucx/Fz5rKZ
y+Y617GL2WY2drGZO3PfXIbNfS4hcid0eZQuLglJLrklokSSS6FCKkpSlCIOSu6XCKVy6/06/zwf
333P73u+n3PO5/v5zBhjHgYYE2CsmTzYcBUiXA2uLARAKPeqc1UICkMs98K5KgJFIRCCrTEhfqog
flKRq2JclQM/VVXulYCSUAaKWxOQ6h8rxU8YdX4C3ub8QGnoD0wVUAfKWhN4zo+WhwoQBn2gB/gI
KkE3qAxVwIdRDfw6/AL9yiMgEqIgGmpCDNSCOIiH2pAAnSEJmkCiNaG3fGh1oR4kQwqkQhrUh3TI
gAaQCQ2hETSGTtDUmrD5ftJm0BxaQEvIglbQGtpAW2gH7aEDZEMOdLQmfIZOv3pDUSMItoiIISKy
vIgqBhdE9FlR87yIuSZqnROxl0XcJRG/U9T+SSRsF3WeFYkzRVKWqNtA1Csrkq1IKSFSw4BJ006J
+jtE+gKRMVs0WCkyd/mldoFc6GpNw90aaMSPG68WTRaJprNEs62i+ROiRW3RMhLuiqzrohVBtia0
NhtE2+dEu1zRvqt/R3fIg3xrOjBLdqwf6Am9oLc1OUYDObdFR1be6aLofFh0OSNyj4iu7EG306L7
NyLvd5H/rehxVfTk2V4825vQ+twXfX8V/X4QBdtE/41iwCb/8r7QDwqsGbhXA4OeFI/EiMHB8KkY
MkwMLRCPpophVeCeGH5UPMbJjFgmRi4Xo8aJ0WliTEUg3LFrxLjRYnwTMYH9m3BHPH5CTFwnJo3y
AQ2AgTDImuePaeCFpeJFnYLN8DvpqBuOuuEKWTN1nr9HjXDUCBdozTQimD5QzOAAXmosZkbDcfHy
XDFrgpidJ+YEAit/ZayYy+/mXhGvrhLzyMT5lK/5pOgC/lzIoSw6IF7fJRavF0ueEUvniGVk9vI4
8UYUnBQrvhRvzhMr2d1VxPfWSLE6Q6xJEG8XAbbzHWJZS2a/+5pfmy9uwaAatm6FBtb3EO+Rpxv2
i43E9wGv3JQvNvPsln5i6xTx4Xjx0WKx7aDYzmM7yNiPWcwnfB87S4ITu9P9KymbztfJEGs+Y749
2eLzcPEFubs3UexjD77OEftJwgNjxMGnxXcjxCGiOrRPHL4hfhwqjpCTP/PZH+VLOcZjx0P9Kym+
jkrtVHJPPNSAY+tOklynOK3TpN5pPoPfUsSZtvBAnO0mzvHK87z8wlRxcYm4RF5dXiiusN6rzHdt
rfiDPbjOOm5ME3+OEjfJzlt8tbfJnL+493d3cYfK9c9kHyQ9wNEDXJg1/3L6//Hl3f1F3Pte3N8j
HjDzQ22YyoWw5UEpYAN0+raQDsoWhiKDRdHpIlB7b4MUpA3W92GLl4CvREmuSnUWIVqvDZ0oSjNQ
5n1RVhHYctorW6GqCNO+2IqZolIXUVkfrK2i5LdVnxLVdAA2PFlUryRqJIIS3UYoD2ykioyNUp20
0bdETClgtBbTxyr5bRw/iddSbYIKra1TXyRqr2zScFF3kqjHepMJMmWzSNU+27SbfutokI7e6OiN
jrbo6IOOPujog44+6OiDjj7o6IPO/xtAM3Q0Q0czdDRDR3d2iZBkbboai80aav4H9URemwplbmRz
dHJlYW0KZW5kb2JqCnN0YXJ0eHJlZgo4MzA0NwolJUVPRgo=
------=_Part_536_1465922027.1487566181277--

.


Author: Bryce Glover <randomdsdevel@gmail.com>
Date: Mon, 20 Feb 2017 17:34:49 -0500
Raw View
--Apple-Mail=_B2EE9FA9-AC6E-4775-A136-421DF5FEB253
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8

     You might want to run your proposal through a spelling and grammar che=
cker, as I can see at first glance that at least the title is misspelled; =
=E2=80=98possibility=E2=80=99 has two =E2=80=99s'es in it.  It also looks l=
ike your formatting=E2=80=99s somewhat scrambled with respect to font usage=
 on page 4. =20

Regards,=20
     Bryce Glover
     RandomDSdevel@gmail.com

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/9DB2BA50-6CF9-4824-84FC-87EBA7DC67E8%40gmail.com=
..

--Apple-Mail=_B2EE9FA9-AC6E-4775-A136-421DF5FEB253
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=UTF-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html charset=
=3Dutf-8"></head><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: s=
pace; -webkit-line-break: after-white-space;" class=3D""><div class=3D"">&n=
bsp; &nbsp; &nbsp;You might want to run your proposal through a spelling an=
d grammar checker, as I can see at first glance that at least the title is =
misspelled; =E2=80=98possibility=E2=80=99 has two =E2=80=99s'es in it. &nbs=
p;It also looks like your formatting=E2=80=99s somewhat scrambled with resp=
ect to font usage on page 4. &nbsp;</div><br class=3D""><div class=3D"">
<div style=3D"color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; t=
ext-align: start; text-indent: 0px; text-transform: none; white-space: norm=
al; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-w=
rap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-=
space;" class=3D""><div style=3D"color: rgb(0, 0, 0); letter-spacing: norma=
l; orphans: auto; text-align: start; text-indent: 0px; text-transform: none=
; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke=
-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-=
break: after-white-space;" class=3D""><div style=3D"color: rgb(0, 0, 0); le=
tter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; t=
ext-transform: none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: s=
pace; -webkit-line-break: after-white-space;" class=3D""><div class=3D"">Re=
gards,&nbsp;</div><div class=3D"">&nbsp; &nbsp; &nbsp;Bryce Glover</div><di=
v class=3D"">&nbsp; &nbsp; &nbsp;<a href=3D"mailto:RandomDSdevel@gmail.com"=
 class=3D"">RandomDSdevel@gmail.com</a></div></div></div></div>
</div>
</body></html>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/9DB2BA50-6CF9-4824-84FC-87EBA7DC67E8%=
40gmail.com?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/9DB2BA50-6CF9-4824-84FC-87EBA7DC67E8%=
40gmail.com</a>.<br />

--Apple-Mail=_B2EE9FA9-AC6E-4775-A136-421DF5FEB253--

.


Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
Date: Mon, 20 Feb 2017 16:03:41 -0800 (PST)
Raw View
------=_Part_6877_32859773.1487635421765
Content-Type: multipart/alternative;
 boundary="----=_Part_6878_1510583970.1487635421766"

------=_Part_6878_1510583970.1487635421766
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Sunday, February 19, 2017 at 8:49:41 PM UTC-8, Sergey Vidyuk wrote:
>
> Sometimes it's required to store std::packaged_task instances with the=20
> same argumet types but different result type in the same collection=20
> (especially when implementing your own executor-like class). I've started=
=20
> to work on a proposal to provide partial specialization for the=20
> std::packaged_task class template which erases result type for the task.=
=20
> The text is here:=20
> https://github.com/VestniK/portable_concurrency/blob/result-erased-task-p=
roposal/proposal/proposal.tex=20
> pdf version is in attachement.=20
>
> Github repository provides reference implemetntation for the proposed=20
> idea. My implementation uses the same design for the packaged_task as gcc=
=20
> and boost implementations (shared state erases wrapped functor type). Tho=
se=20
> two implementations can be adjusted to have proposed feature quite easily=
..=20
> Clang implementation requires some extra work since they store type erasu=
re=20
> for wrapped function and promise. I haven't investigated Visual Studio=20
> implementation so don't know if it's hard to add proposed feature to thei=
r=20
> standard library.
>
> I would like to ask for feedback on the proposed idea and the document=20
> text.
>

(I agree that there's something wonky with the formatting.)

I don't understand why we couldn't solve this problem more simply just by=
=20
making std::function<void(A...)> constructible from=20
std::function<R(A...)>&&, std::future<void> constructible from=20
std::future<T>&&, std::packaged_task<void(A...)> constructible from=20
std::packaged_task<R(A...)>&&, and so on (just in case I missed any).

There might be a good reason for not doing that =E2=80=94 e.g. it might sub=
vert the=20
type system too much, or it might introduce inefficiency behind the scenes=
=20
=E2=80=94 but I would want to see that you'd considered the possibility and=
=20
rejected it *for reasons*, and weren't proposing a new tag type out of=20
"laziness".

My intuition is that

    std::packaged_task<int()> pti( [](){ return 42; } );
    std::future<int> fi =3D pti.get_future();
    std::packaged_task<void()> ptv =3D std::move(pti);

ought to be legal, IMHO, because its meaning is "obvious"; it's equivalent=
=20
to

    std::packaged_task<void()> ptv( [pti_ =3D std::move(pti)](){ pti_(); } =
);

Even

    std::packaged_task<int()> pti( [](){ return 42; } );
    std::packaged_task<void()> ptv =3D std::move(pti);
    std::future<void> fv =3D ptv.get_future();

has an "obvious" meaning IMHO, and I'd like to see it supported if it helps=
=20
use-cases like Sergey's.

*C++ already allows implicit conversion of std::function<T(A...)> to=20
std::function<U(A...)>* in exactly the cases I'd consider it appropriate.=
=20
C++ just doesn't allow it for std::future or std::packaged_task. This=20
suggests to me that the reason is inefficiency-behind-the-scenes, but I=20
don't know if that's an insurmountable obstacle or just nobody's thought up=
=20
and proposed an efficient solution yet.

If I'm missing something and your tag type ignore_t isn't basically=20
interchangeable with void, please let me know. :)

=E2=80=93Arthur

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/a833a5ee-d6d3-4954-ac2f-63f7a39310d5%40isocpp.or=
g.

------=_Part_6878_1510583970.1487635421766
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Sunday, February 19, 2017 at 8:49:41 PM UTC-8, Sergey V=
idyuk wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-lef=
t: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr">S=
ometimes it&#39;s required to store std::packaged_task instances with the s=
ame argumet types but different result type in the same collection (especia=
lly when implementing your own executor-like class). I&#39;ve started to wo=
rk on a proposal to provide partial specialization for the std::packaged_ta=
sk class template which erases result type for the task. The text is here: =
<a href=3D"https://github.com/VestniK/portable_concurrency/blob/result-eras=
ed-task-proposal/proposal/proposal.tex" target=3D"_blank" rel=3D"nofollow" =
onmousedown=3D"this.href=3D&#39;https://www.google.com/url?q\x3dhttps%3A%2F=
%2Fgithub.com%2FVestniK%2Fportable_concurrency%2Fblob%2Fresult-erased-task-=
proposal%2Fproposal%2Fproposal.tex\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCN=
GJf5h3rca1GPrxGRvgJ_8k4dPWIw&#39;;return true;" onclick=3D"this.href=3D&#39=
;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2FVestniK%2Fporta=
ble_concurrency%2Fblob%2Fresult-erased-task-proposal%2Fproposal%2Fproposal.=
tex\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGJf5h3rca1GPrxGRvgJ_8k4dPWIw&#3=
9;;return true;">https://github.com/VestniK/<wbr>portable_concurrency/blob/=
<wbr>result-erased-task-proposal/<wbr>proposal/proposal.tex</a> pdf version=
 is in attachement. <br><br>Github repository provides reference implemetnt=
ation for the proposed idea. My implementation uses the same design for the=
 packaged_task as gcc and boost implementations (shared state erases wrappe=
d functor type). Those two implementations can be adjusted to have proposed=
 feature quite easily. Clang implementation requires some extra work since =
they store type erasure for wrapped function and promise. I haven&#39;t inv=
estigated Visual Studio implementation so don&#39;t know if it&#39;s hard t=
o add proposed feature to their standard library.<br><br>I would like to as=
k for feedback on the proposed idea and the document text.<br></div></block=
quote><div><br></div><div>(I agree that there&#39;s something wonky with th=
e formatting.)</div><div><br></div><div>I don&#39;t understand why we could=
n&#39;t solve this problem more simply just by making std::function&lt;void=
(A...)&gt; constructible from std::function&lt;R(A...)&gt;&amp;&amp;, std::=
future&lt;void&gt; constructible from std::future&lt;T&gt;&amp;&amp;, std::=
packaged_task&lt;void(A...)&gt; constructible from std::packaged_task&lt;R(=
A...)&gt;&amp;&amp;, and so on (just in case I missed any).</div><div><br><=
/div><div>There might be a good reason for not doing that =E2=80=94 e.g. it=
 might subvert the type system too much, or it might introduce inefficiency=
 behind the scenes =E2=80=94 but I would want to see that you&#39;d conside=
red the possibility and rejected it <i>for reasons</i>, and weren&#39;t pro=
posing a new tag type out of &quot;laziness&quot;.</div><div><br></div><div=
>My intuition is that</div><div><br></div><div><font face=3D"courier new, m=
onospace">=C2=A0 =C2=A0 std::packaged_task&lt;int()&gt; pti( [](){ return 4=
2; } );</font></div><div><font face=3D"courier new, monospace">=C2=A0 =C2=
=A0 std::future&lt;int&gt; fi =3D pti.get_future();</font></div><div><font =
face=3D"courier new, monospace">=C2=A0 =C2=A0 std::packaged_task&lt;void()&=
gt; ptv =3D std::move(pti);</font></div><div><br></div><div>ought to be leg=
al, IMHO, because its meaning is &quot;obvious&quot;; it&#39;s equivalent t=
o</div><div><br></div><div><font face=3D"courier new, monospace">=C2=A0 =C2=
=A0 std::packaged_task&lt;void()&gt; ptv( [pti_ =3D std::move(pti)](){ pti_=
(); } );</font></div><div><br></div><div>Even</div><div><br></div><div><fon=
t face=3D"courier new, monospace">=C2=A0 =C2=A0 std::packaged_task&lt;int()=
&gt; pti( [](){ return 42; } );</font></div><div><span style=3D"font-family=
: &#39;courier new&#39;, monospace;">=C2=A0 =C2=A0 std::packaged_task&lt;vo=
id()&gt; ptv =3D std::move(pti);</span><br></div><div><div><font face=3D"co=
urier new, monospace">=C2=A0 =C2=A0 std::future&lt;void&gt; fv =3D ptv.get_=
future();</font></div></div><div><font face=3D"courier new, monospace"><br>=
</font></div><div>has an &quot;obvious&quot; meaning IMHO, and I&#39;d like=
 to see it supported if it helps use-cases like Sergey&#39;s.</div><div><br=
></div><div><b>C++ already allows implicit conversion of std::function&lt;T=
(A...)&gt; to std::function&lt;U(A...)&gt;</b> in exactly the cases I&#39;d=
 consider it appropriate. C++ just doesn&#39;t allow it for std::future or =
std::packaged_task. This suggests to me that the reason is inefficiency-beh=
ind-the-scenes, but I don&#39;t know if that&#39;s an insurmountable obstac=
le or just nobody&#39;s thought up and proposed an efficient solution yet.<=
/div><div><br></div><div>If I&#39;m missing something and your tag type <fo=
nt face=3D"courier new, monospace">ignore_t</font> isn&#39;t basically inte=
rchangeable with <font face=3D"courier new, monospace">void</font>, please =
let me know. :)</div><div><br></div><div>=E2=80=93Arthur</div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/a833a5ee-d6d3-4954-ac2f-63f7a39310d5%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/a833a5ee-d6d3-4954-ac2f-63f7a39310d5=
%40isocpp.org</a>.<br />

------=_Part_6878_1510583970.1487635421766--

------=_Part_6877_32859773.1487635421765--

.


Author: Sergey Vidyuk <sir.vestnik@gmail.com>
Date: Mon, 20 Feb 2017 18:22:22 -0800 (PST)
Raw View
------=_Part_1255_489570171.1487643742289
Content-Type: multipart/alternative;
 boundary="----=_Part_1256_819061439.1487643742290"

------=_Part_1256_819061439.1487643742290
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable



=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 21 =D1=84=D0=B5=D0=B2=D1=80=D0=
=B0=D0=BB=D1=8F 2017 =D0=B3., 7:03:42 UTC+7 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=
=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Arthur O'Dwyer=20
=D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
> On Sunday, February 19, 2017 at 8:49:41 PM UTC-8, Sergey Vidyuk wrote:
>>
>> Sometimes it's required to store std::packaged_task instances with the=
=20
>> same argumet types but different result type in the same collection=20
>> (especially when implementing your own executor-like class). I've starte=
d=20
>> to work on a proposal to provide partial specialization for the=20
>> std::packaged_task class template which erases result type for the task.=
=20
>> The text is here:=20
>> https://github.com/VestniK/portable_concurrency/blob/result-erased-task-=
proposal/proposal/proposal.tex=20
>> pdf version is in attachement.=20
>>
>> Github repository provides reference implemetntation for the proposed=20
>> idea. My implementation uses the same design for the packaged_task as gc=
c=20
>> and boost implementations (shared state erases wrapped functor type). Th=
ose=20
>> two implementations can be adjusted to have proposed feature quite easil=
y.=20
>> Clang implementation requires some extra work since they store type eras=
ure=20
>> for wrapped function and promise. I haven't investigated Visual Studio=
=20
>> implementation so don't know if it's hard to add proposed feature to the=
ir=20
>> standard library.
>>
>> I would like to ask for feedback on the proposed idea and the document=
=20
>> text.
>>
>
> (I agree that there's something wonky with the formatting.)
>
> I don't understand why we couldn't solve this problem more simply just by=
=20
> making std::function<void(A...)> constructible from=20
> std::function<R(A...)>&&, std::future<void> constructible from=20
> std::future<T>&&, std::packaged_task<void(A...)> constructible from=20
> std::packaged_task<R(A...)>&&, and so on (just in case I missed any).
>
> There might be a good reason for not doing that =E2=80=94 e.g. it might s=
ubvert=20
> the type system too much, or it might introduce inefficiency behind the=
=20
> scenes =E2=80=94 but I would want to see that you'd considered the possib=
ility and=20
> rejected it *for reasons*, and weren't proposing a new tag type out of=20
> "laziness".
>
> My intuition is that
>
>     std::packaged_task<int()> pti( [](){ return 42; } );
>     std::future<int> fi =3D pti.get_future();
>     std::packaged_task<void()> ptv =3D std::move(pti);
>
> ought to be legal, IMHO, because its meaning is "obvious"; it's equivalen=
t=20
> to
>
>     std::packaged_task<void()> ptv( [pti_ =3D std::move(pti)](){ pti_(); =
} );
>
> Even
>
>     std::packaged_task<int()> pti( [](){ return 42; } );
>     std::packaged_task<void()> ptv =3D std::move(pti);
>     std::future<void> fv =3D ptv.get_future();
>
> has an "obvious" meaning IMHO, and I'd like to see it supported if it=20
> helps use-cases like Sergey's.
>
>
packaged_task is not just type-erasure for function. It's write end of the=
=20
single-value thread-safe communication channel with capabilities to notify=
=20
read channel about value delivery combined together with type-erasure for=
=20
function with additional protection from calling wrapped function twice.=20
Using it like std::function just because you want to store move-only=20
function object involves 1 (or 2 in case of libc++) extra allocation, 1=20
extra indirection, thread-safe check if shared state is empty before the=20
call, thread-safe operation of storing a value in the shared state.
=20

> *C++ already allows implicit conversion of std::function<T(A...)> to=20
> std::function<U(A...)>* in exactly the cases I'd consider it appropriate.=
=20
> C++ just doesn't allow it for std::future or std::packaged_task. This=20
> suggests to me that the reason is inefficiency-behind-the-scenes, but I=
=20
> don't know if that's an insurmountable obstacle or just nobody's thought =
up=20
> and proposed an efficient solution yet.
>
> If I'm missing something and your tag type ignore_t isn't basically=20
> interchangeable with void, please let me know. :)
>
> =E2=80=93Arthur
>

The main motivation of this proposal is to provide building block to=20
implement executors (especially when this concept will be published with=20
Concurrency TS 2). For example Implementation of TwoWayExecutor (p0443r1=20
terminology) which uses std::future for communication channel requires to=
=20
pack together shared state and function to be executed, take a future from=
=20
it and erase the result type of the packaged task in order to store it in=
=20
the execution context till the time it will be executed. My proposal is to=
=20
provide zero cost way to erase result type of the packaged_task. There are=
=20
no ways to write such type erasure in the user code right now (any user=20
code implementation will not be zero cost).

Sergey=20

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/e23e9321-cbc3-40b3-8531-79879d7182d4%40isocpp.or=
g.

------=_Part_1256_819061439.1487643742290
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br>=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 21 =D1=
=84=D0=B5=D0=B2=D1=80=D0=B0=D0=BB=D1=8F 2017 =D0=B3., 7:03:42 UTC+7 =D0=BF=
=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Arthur O=
&#39;Dwyer =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:<blockquote class=3D"=
gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc so=
lid;padding-left: 1ex;"><div dir=3D"ltr">On Sunday, February 19, 2017 at 8:=
49:41 PM UTC-8, Sergey Vidyuk wrote:<blockquote class=3D"gmail_quote" style=
=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"=
><div dir=3D"ltr">Sometimes it&#39;s required to store std::packaged_task i=
nstances with the same argumet types but different result type in the same =
collection (especially when implementing your own executor-like class). I&#=
39;ve started to work on a proposal to provide partial specialization for t=
he std::packaged_task class template which erases result type for the task.=
 The text is here: <a href=3D"https://github.com/VestniK/portable_concurren=
cy/blob/result-erased-task-proposal/proposal/proposal.tex" rel=3D"nofollow"=
 target=3D"_blank" onmousedown=3D"this.href=3D&#39;https://www.google.com/u=
rl?q\x3dhttps%3A%2F%2Fgithub.com%2FVestniK%2Fportable_concurrency%2Fblob%2F=
result-erased-task-proposal%2Fproposal%2Fproposal.tex\x26sa\x3dD\x26sntz\x3=
d1\x26usg\x3dAFQjCNGJf5h3rca1GPrxGRvgJ_8k4dPWIw&#39;;return true;" onclick=
=3D"this.href=3D&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.c=
om%2FVestniK%2Fportable_concurrency%2Fblob%2Fresult-erased-task-proposal%2F=
proposal%2Fproposal.tex\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGJf5h3rca1G=
PrxGRvgJ_8k4dPWIw&#39;;return true;">https://github.com/VestniK/<wbr>portab=
le_concurrency/blob/<wbr>result-erased-task-proposal/<wbr>proposal/proposal=
..tex</a> pdf version is in attachement. <br><br>Github repository provides =
reference implemetntation for the proposed idea. My implementation uses the=
 same design for the packaged_task as gcc and boost implementations (shared=
 state erases wrapped functor type). Those two implementations can be adjus=
ted to have proposed feature quite easily. Clang implementation requires so=
me extra work since they store type erasure for wrapped function and promis=
e. I haven&#39;t investigated Visual Studio implementation so don&#39;t kno=
w if it&#39;s hard to add proposed feature to their standard library.<br><b=
r>I would like to ask for feedback on the proposed idea and the document te=
xt.<br></div></blockquote><div><br></div><div>(I agree that there&#39;s som=
ething wonky with the formatting.)</div><div><br></div><div>I don&#39;t und=
erstand why we couldn&#39;t solve this problem more simply just by making s=
td::function&lt;void(A...)&gt; constructible from std::function&lt;R(A...)&=
gt;&amp;&amp;, std::future&lt;void&gt; constructible from std::future&lt;T&=
gt;&amp;&amp;, std::packaged_task&lt;void(A...)&gt; constructible from std:=
:packaged_task&lt;R(A...)&gt;&amp;&amp;, and so on (just in case I missed a=
ny).</div><div><br></div><div>There might be a good reason for not doing th=
at =E2=80=94 e.g. it might subvert the type system too much, or it might in=
troduce inefficiency behind the scenes =E2=80=94 but I would want to see th=
at you&#39;d considered the possibility and rejected it <i>for reasons</i>,=
 and weren&#39;t proposing a new tag type out of &quot;laziness&quot;.</div=
><div><br></div><div>My intuition is that</div><div><br></div><div><font fa=
ce=3D"courier new, monospace">=C2=A0 =C2=A0 std::packaged_task&lt;int()&gt;=
 pti( [](){ return 42; } );</font></div><div><font face=3D"courier new, mon=
ospace">=C2=A0 =C2=A0 std::future&lt;int&gt; fi =3D pti.get_future();</font=
></div><div><font face=3D"courier new, monospace">=C2=A0 =C2=A0 std::packag=
ed_task&lt;void()&gt; ptv =3D std::move(pti);</font></div><div><br></div><d=
iv>ought to be legal, IMHO, because its meaning is &quot;obvious&quot;; it&=
#39;s equivalent to</div><div><br></div><div><font face=3D"courier new, mon=
ospace">=C2=A0 =C2=A0 std::packaged_task&lt;void()&gt; ptv( [pti_ =3D std::=
move(pti)](){ pti_(); } );</font></div><div><br></div><div>Even</div><div><=
br></div><div><font face=3D"courier new, monospace">=C2=A0 =C2=A0 std::pack=
aged_task&lt;int()&gt; pti( [](){ return 42; } );</font></div><div><span st=
yle=3D"font-family:&#39;courier new&#39;,monospace">=C2=A0 =C2=A0 std::pack=
aged_task&lt;void()&gt; ptv =3D std::move(pti);</span><br></div><div><div><=
font face=3D"courier new, monospace">=C2=A0 =C2=A0 std::future&lt;void&gt; =
fv =3D ptv.get_future();</font></div></div><div><font face=3D"courier new, =
monospace"><br></font></div><div>has an &quot;obvious&quot; meaning IMHO, a=
nd I&#39;d like to see it supported if it helps use-cases like Sergey&#39;s=
..</div><div><br></div></div></blockquote><div><br>packaged_task is not just=
 type-erasure for function. It&#39;s write end of the single-value thread-s=
afe communication channel with capabilities to notify read channel about va=
lue delivery combined together with type-erasure for function with addition=
al protection from calling wrapped function twice. Using it like std::funct=
ion just because you want to store move-only function object involves 1 (or=
 2 in case of libc++) extra allocation, 1 extra indirection, thread-safe ch=
eck if shared state is empty before the call, thread-safe operation of stor=
ing a value in the shared state.<br>=C2=A0</div><blockquote class=3D"gmail_=
quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;pa=
dding-left: 1ex;"><div dir=3D"ltr"><div></div><div><b>C++ already allows im=
plicit conversion of std::function&lt;T(A...)&gt; to std::function&lt;U(A..=
..)&gt;</b> in exactly the cases I&#39;d consider it appropriate. C++ just d=
oesn&#39;t allow it for std::future or std::packaged_task. This suggests to=
 me that the reason is inefficiency-behind-the-<wbr>scenes, but I don&#39;t=
 know if that&#39;s an insurmountable obstacle or just nobody&#39;s thought=
 up and proposed an efficient solution yet.</div><div><br></div><div>If I&#=
39;m missing something and your tag type <font face=3D"courier new, monospa=
ce">ignore_t</font> isn&#39;t basically interchangeable with <font face=3D"=
courier new, monospace">void</font>, please let me know. :)</div><div><br><=
/div><div>=E2=80=93Arthur</div></div></blockquote><div><br>The main motivat=
ion of this proposal is to provide building block to implement executors (e=
specially when this concept will be published with Concurrency TS 2). For e=
xample Implementation of TwoWayExecutor (p0443r1 terminology) which uses st=
d::future for communication channel requires to pack together shared state =
and function to be executed, take a future from it and erase the result typ=
e of the packaged task in order to store it in the execution context till t=
he time it will be executed. My proposal is to provide zero cost way to era=
se result type of the packaged_task. There are no ways to write such type e=
rasure in the user code right now (any user code implementation will not be=
 zero cost).<br><br>Sergey <br></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/e23e9321-cbc3-40b3-8531-79879d7182d4%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/e23e9321-cbc3-40b3-8531-79879d7182d4=
%40isocpp.org</a>.<br />

------=_Part_1256_819061439.1487643742290--

------=_Part_1255_489570171.1487643742289--

.


Author: Sergey Vidyuk <sir.vestnik@gmail.com>
Date: Mon, 20 Feb 2017 20:22:40 -0800 (PST)
Raw View
------=_Part_1214_526021802.1487650960636
Content-Type: multipart/alternative;
 boundary="----=_Part_1215_357781423.1487650960637"

------=_Part_1215_357781423.1487650960637
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable



=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 21 =D1=84=D0=B5=D0=B2=D1=80=D0=
=B0=D0=BB=D1=8F 2017 =D0=B3., 5:34:55 UTC+7 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=
=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Bryce Glover=20
=D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
>      You might want to run your proposal through a spelling and grammar=
=20
> checker, as I can see at first glance that at least the title is=20
> misspelled; =E2=80=98possibility=E2=80=99 has two =E2=80=99s'es in it.  I=
t also looks like your=20
> formatting=E2=80=99s somewhat scrambled with respect to font usage on pag=
e 4. =20
>
> Regards,=20
>      Bryce Glover
>      Random...@gmail.com <javascript:>
>

Spellchecker find terrible mistakes in my text :( attaching fixed version.

What's wrong with formatting on the page 4? The only thing I can see is=20
template arguments for the intext std::packaged_task<R(A...)> looks like=20
R(A...) use different font size. Is the issue you are talking about?

Sergey

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/6afd1b95-0578-4961-800c-4a0f4f47fdab%40isocpp.or=
g.

------=_Part_1215_357781423.1487650960637
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br>=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 21 =D1=
=84=D0=B5=D0=B2=D1=80=D0=B0=D0=BB=D1=8F 2017 =D0=B3., 5:34:55 UTC+7 =D0=BF=
=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Bryce Gl=
over =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:<blockquote class=3D"gmail_=
quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;pa=
dding-left: 1ex;"><div style=3D"word-wrap:break-word"><div>=C2=A0 =C2=A0 =
=C2=A0You might want to run your proposal through a spelling and grammar ch=
ecker, as I can see at first glance that at least the title is misspelled; =
=E2=80=98possibility=E2=80=99 has two =E2=80=99s&#39;es in it. =C2=A0It als=
o looks like your formatting=E2=80=99s somewhat scrambled with respect to f=
ont usage on page 4. =C2=A0</div><br><div>
<div style=3D"color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-=
indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wra=
p:break-word"><div style=3D"color:rgb(0,0,0);letter-spacing:normal;text-ali=
gn:start;text-indent:0px;text-transform:none;white-space:normal;word-spacin=
g:0px;word-wrap:break-word"><div style=3D"color:rgb(0,0,0);letter-spacing:n=
ormal;text-align:start;text-indent:0px;text-transform:none;white-space:norm=
al;word-spacing:0px;word-wrap:break-word"><div>Regards,=C2=A0</div><div>=C2=
=A0 =C2=A0 =C2=A0Bryce Glover</div><div>=C2=A0 =C2=A0 =C2=A0<a href=3D"java=
script:" target=3D"_blank" gdf-obfuscated-mailto=3D"xM_DMBLEBgAJ" rel=3D"no=
follow" onmousedown=3D"this.href=3D&#39;javascript:&#39;;return true;" oncl=
ick=3D"this.href=3D&#39;javascript:&#39;;return true;">Random...@gmail.com<=
/a></div></div></div></div></div></div></blockquote><div><br>Spellchecker f=
ind terrible mistakes in my text :( attaching fixed version.<br><br>What&#3=
9;s wrong with formatting on the page 4? The only thing I can see is templa=
te arguments for the intext std::packaged_task&lt;R(A...)&gt; looks like R(=
A...) use different font size. Is the issue you are talking about?<br><br>S=
ergey<br></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/6afd1b95-0578-4961-800c-4a0f4f47fdab%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/6afd1b95-0578-4961-800c-4a0f4f47fdab=
%40isocpp.org</a>.<br />

------=_Part_1215_357781423.1487650960637--

------=_Part_1214_526021802.1487650960636
Content-Type: application/pdf; name=proposal.pdf
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=proposal.pdf
X-Attachment-Id: 149e8c76-23f2-4245-9ff6-2bfb58b2353e
Content-ID: <149e8c76-23f2-4245-9ff6-2bfb58b2353e>

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
cgzVwFwI3Ja5irkTcy1zu7OZ9dkqeDCB/zhUUmSLimCgkhcVIZ6rYFEROnoJVWEo1S3ZZen6sqTx
PvYKc8+gryADXsaoCn4I1VpxKp3O0mzHmcgZVGgX/bnmXjgljcnXIcEQJNh/ggSbwsNjvtdDbgLC
vYPpwn69PJSbyqNnTUMJDNwFK5rngnguj44NrS5qBnLgbYxI/wFRPQRFZDaYL4WiAgLBaumAHVbL
pRe+P8dA8AyJgm/LYoIHOhKscOwU83+hSlxAVfZNqBLGYWTAA+yVYkYVS6jCPOZwVkyevcgkBV4P
Xzn3FR+yL/6LD42YrxmYEoZR0VAZWfgMnGecJa8BBKJ/BVexwFPn8uYCb+FCXl5czgFoMeU93ZYI
pQvORq556LYsrJg7nY2deKxnjqrUzr50U+qBV9+EG0VOD66Fhx4oUngRciGmpym++GaA957UdN2B
M5OxYCAaj383x02Lr6aegkPyG3GDO4ESS6V6TFUCIFrXErBYEeTt2kkBV1Jr1kJIYVJwgQsuyFVq
srMk+WvlFQg6KYdHGUwDZbm4DvjaVTpfPs2QncQDXeJfIePgnVHuy5smTOEnLRB739T8pO9REB7o
NIRPAZrLHb2Zuv5ueuyG+fhu7OBttnKhL+f/C7p62htQe/E3Qn8Arei59OKn6xd/A/5fMqoKZW5k
c3RyZWFtCmVuZG9iagoxMDMgMCBvYmoKPDwKL0xlbmd0aCA5OCAgICAgICAgCi9GaWx0ZXIgL0Zs
YXRlRGVjb2RlCj4+CnN0cmVhbQp42jM10bMwUzBQMFPQNbRQMLEEUqYKKYZchVwmRkBhAwVjqFRy
LpeTJ5d+uIKJEZe+h4Ixl76nr0JJUWkql75TgLOCIZe+i0K0oYJBLJeni8J/EDiATHK5enIFcgEA
gIojeQplbmRzdHJlYW0KZW5kb2JqCjEwNCAwIG9iago8PAovTGVuZ3RoIDEyNCAgICAgICAKL0Zp
bHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaM7TUM7VUMFAwUzAyVTA0UzAxU0gx5CrkAokZ
KBgZQiSSc7mcPLn0wxUsufQ9gKJc+p6+CiVFpalc+k4BzgpAvotCtKGCQSyXp4uCDUMdw38QbPjf
UN9g28AIhswNzAzMDOwMbAx8DDIMFgwFDAkMXK6eXIFcADqOHH8KZW5kc3RyZWFtCmVuZG9iagox
MDUgMCBvYmoKPDwKL0xlbmd0aCA5MCAgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0
cmVhbQp42jO01DO1VDBQMANiQ1MFC4UUQ65CLgsgzwDIAYkm53I5eXLphytYcOl7gAhPX4WSotJU
Ln2nAGcFQy59F4VoQwWDWC5PFwWbuv9AUGfD5erJFcgFAG/OFjkKZW5kc3RyZWFtCmVuZG9iagox
MDYgMCBvYmoKPDwKL0xlbmd0aCA5OCAgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0
cmVhbQp42jO01DO1VDBQMANiQ1MFI0uFFEOuQi4LINcAxAOJJ+dyOXly6YcrWHDpewAFufQ9fRVK
ikpTufSdApwVDLn0XRSiDRUMYrk8XRRs6v4DQZ0NAzKACXK5enIFcgEAqjAcQgplbmRzdHJlYW0K
ZW5kb2JqCjEwNyAwIG9iago8PAovTGVuZ3RoIDk0ICAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNv
ZGUKPj4Kc3RyZWFtCnjaMzLWMzVUMFAwVDA0VjAC0uYKKYZchVyGFkBBAwUTiERyLpeTJ5d+uIKh
BZe+h4IJl76nr0JJUWkql75TgLOCIZe+i0I00JhYLk8Xhf//D8ARl6snVyAXAFP8HJgKZW5kc3Ry
ZWFtCmVuZG9iagoxMDggMCBvYmoKPDwKL0xlbmd0aCAxNjMgICAgICAgCi9GaWx0ZXIgL0ZsYXRl
RGVjb2RlCj4+CnN0cmVhbQp42jMx1DM0UTBQMARiE1MFE3OFFEOuQi4TYyDfAMQFSSTncjl5cumH
K5gYc+l7AEW59D19FUqKSlO59J0CnBUMufRdFKKBKmO5PF0UGBj+N9QxMLD/f/i/gUG+of7wAQY7
hvr2Bww1DP/ZHzD8YPjH/oDxA4hk/sDwh7GBGSTDQB75Hwj+QElKzKEFyQ70IwND/X/+/x+gJJer
J1cgFwDVmGfTCmVuZHN0cmVhbQplbmRvYmoKMTA5IDAgb2JqCjw8Ci9MZW5ndGggMTQxICAgICAg
IAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNdCzNFEwUDACYhNLBRNThRRDrkIu
EzMg3wDEBUkk53I5eXLphyuYmHHpewBFufQ9fRVKikpTufSdApwVDLn0XRSiDRUMYrk8XRTq/wPB
DyjJwH+A+UcNkGT4UQAiLSBkAoiUgJAPQKQMhDwAInlwkQwgkmFwk/IPQMT//w+gJJerJ1cgFwDA
AE8SCmVuZHN0cmVhbQplbmRvYmoKMTEwIDAgb2JqCjw8Ci9MZW5ndGggMTcyICAgICAgIAovRmls
dGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNrVzz0KwkAQBeAXAgqDmNZCcC6gmzU/pBNiBLcQ
tLIQQVBLQUU70RzNo+QIKS0W4kTxEE7xwbxhihcNB0nAPgfc1xz5HEa803SiMJZQ1vh72R4oNaSW
EpCafjQzvpyve1LpfMyaVMYrzf6aTMZVVbqV/epaYPR0XoCH2sZf2QbEFmB/doEb0AHuQCLVgCPQ
AzZSMHcKoFm4OeTZg8zD1nolQBNDC3oDFkVI0QplbmRzdHJlYW0KZW5kb2JqCjExMSAwIG9iago8
PAovTGVuZ3RoIDE3NyAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaXYs7
CsJQEEVvEBKYxg2Ibzag+TyCnYEYwRSCVhZipZYWinaSJ9i6qHRuwx2YMkVIHNFGi8OFc7g67AcD
9lhzz2cdsvZ549OeZL23Dj5lvaM4JXchndyJaHLTKR8Ppy258WzEYhNeymdFacJoAKfJ0bYKdFAi
wlkYfonQhQL+ceRkGli1glMoqFwhuigYaZlQQ9nVD5FdCxmMbfC8qeu9ajet0qqsB41TmtML/m4x
3wplbmRzdHJlYW0KZW5kb2JqCjExMiAwIG9iago8PAovTGVuZ3RoIDE4MiAgICAgICAKL0ZpbHRl
ciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaM7bUM7RUMFAwUtA1VDA2VzAxU0gx5CrkMjYBChoo
mJhDZJJzuZw8ufTDFYxNuPQ9gMJc+p6+CiVFpalc+k4BzgqGXPouCtGGCgaxXJ4uCuwHGBgY/sMJ
fhDBThHxD0gc/9/AwH6e+QED+x3GDwzsPxhqGNg/MNQxsD9gsAOpkwcTDTCCH0wcIIFA6AUbZQ81
+QPIog0MPxjY94Ds5QOKsrED3cLA+IeBgcvVkyuQCwD52023CmVuZHN0cmVhbQplbmRvYmoKMTEz
IDAgb2JqCjw8Ci9MZW5ndGggMTY3ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJl
YW0KeNqNzTEKwkAQBdBZUgSmyQ2cuYBudhcDNgnECG4haGUhVmppoWgncY+2R8kRUlqkcNDC1uI1
/8P/zkzclHO2PDZsZ+wMHw1e0BYS5uzstzmcsfaot2wL1EuJUfsV3673E+p6PWeDuuGd4XyPvmGg
DuA5gOpHkHQppJFCFigQUKhECRm0AB8PMfyh/YmVIFCyqkIWk5DKh+pL+XwBUARceNzgG94eMD4K
ZW5kc3RyZWFtCmVuZG9iagoxMTQgMCBvYmoKPDwKL0xlbmd0aCAxODAgICAgICAgCi9GaWx0ZXIg
L0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jO21DO0VDBQMFLQNVQwNlcwMVNIMeQq5DI2AQoaKJiY
Q2SSc7mcPLn0wxWMTbj0PYDCXPqevgolRaWpXPpOAc4Khlz6LgrRhgoGsVyeLgoMDAw/gFgeTjCC
CAbyCf4HQKL+xw+gQXI/GJgfsP9gYD/A/IOBvwFosjzIeHuQOjsQUQcn/pBC1KDqtWOAmSzfALaI
HWQv3x8Gxg82/w8w1H8AEvIHfjBwuXpyBXIBAPK4WR8KZW5kc3RyZWFtCmVuZG9iagoxMTUgMCBv
YmoKPDwKL0xlbmd0aCAxNzQgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4
2l3NMQrCQBAF0B9SBKbZG5i5gG52gwFBIsQIphC0shArtbRQFCwk7tH2KB4hpUUgbqKFyPCK/38x
sRrEQ45Yc1+xHnGseK/oRDpxZcSx/iy7I2UFyTXrhOTc1SSLBV/O1wPJbDllRTLnjeJoS0XOCA3Q
VPCfNwQ2hTA9hN0J06YSQcvenfpH0zSdGsC/8isF7MQJ4VlhfCOs7/4IeNUYeLyA0IJmBa3oDZWb
OL4KZW5kc3RyZWFtCmVuZG9iagoxMTYgMCBvYmoKPDwKL0xlbmd0aCAxMzEgICAgICAgCi9GaWx0
ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMy1DM1VTBQMARiIzMFE3OFFEOuQi4jEyDfAMQF
SSTncjl5cumHKxiZcOl7AEW59D19FUqKSlO59J0CnBUMufRdFKKBKmO5PF0UGJg/MPD/YbCTY6ix
Z/hhz/gBhJgf8DA/YMCD/v9/AET41RCP2D8w1P9vACIuV0+uQC4AeT9CGwplbmRzdHJlYW0KZW5k
b2JqCjExNyAwIG9iago8PAovTGVuZ3RoIDE5OSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUK
Pj4Kc3RyZWFtCnjabcs9CsJAEAXgJxYLg5ALSDIX0CSuwSYY8AdMIWhlIVZqaaEopEiRowleRG+w
5VauIypaWHwzw5sZnbQ7PY64w604Yd1lHfEmpj3pWNKIu8l7td7RIKdwwTqmcCI5hfmUj4fTlsLB
bMiSjngpTyvKR4wMFu5yr9+cr6rS96qyEaCPp1f97zPJPVRVwLsZNNwZzQxo4ssXgfCcFQ7KubN0
40PZFLAFUFphgPTXMytl30fNBKhf1TWoau4OZAY0zmlOD8nxQkAKZW5kc3RyZWFtCmVuZG9iagox
MTggMCBvYmoKPDwKL0xlbmd0aCAxNDYgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0
cmVhbQp42jO21DO0VDBQMAJiY3MFEzOFFEOuQi5jEyDfAMQFSSTncjl5cumHKxibcOl7AEW59D19
FUqKSlO59J0CnBUMufRdFKINFQxiuTxdFNgPMDAw/IcT/CCCnSLiH5A4/L+Bgf048wMG9nuMHxjY
f4CIDww/oMQDOHGAVgT/A8Y/DP//yf8/ACa4XD25ArkAC/5aUAplbmRzdHJlYW0KZW5kb2JqCjEx
OSAwIG9iago8PAovTGVuZ3RoIDExOCAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3Ry
ZWFtCnjaM7TUM7VUMFAwAmJDcwUTM4UUQ65CLkMTIN8AxAVJJOdyOXly6YcrGJpw6XsARbn0PX0V
SopKU7n0nQKcFQy59F0Uog0VDGK5PF0U2Bv4D8g/gED+A+wNDGiA/cB/IATKkAT5H/z/8/8Pl6sn
VyAXAD0hNDUKZW5kc3RyZWFtCmVuZG9iagoxMjAgMCBvYmoKPDwKL0xlbmd0aCAxODYgICAgICAg
Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42qXNMQrCMBQG4EiHwBvMBQTfCUzbSHVy
qBXMIOjkIE7qKKjoKj1awcHRI5gjdKxQWt8r1As45IP3v+SPGQ1Cgz6GdEyEwwj3AZzBcObzyIvd
EWILeo3GgJ5TCtou8Hq5HUDHyykGoBPcBOhvwSYoMyFE/UMx8n/6VYvKCUqJlOjytseMmRPjiAe9
k0/mxeM7Jz5MXhCu5Ht3ZtLUN3Cfytp6zzH8W6cQynmlqCtZpw0ws7CCL4naURMKZW5kc3RyZWFt
CmVuZG9iagoxMjEgMCBvYmoKPDwKL0xlbmd0aCAxMDUgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVj
b2RlCj4+CnN0cmVhbQp42jO01DO1VDBQMAJiQwsFEzOFFEOuQi5DUyDfAMQFSSTncjl5cumHKxia
cul7AEW59D19FUqKSlO59J0CnBUMufRdFKINFQxiuTxdFNgP/AdC/gPsVIX8D/7/+/+Py9WTK5AL
ACLCOgQKZW5kc3RyZWFtCmVuZG9iagoxMjIgMCBvYmoKPDwKL0xlbmd0aCAxNjQgICAgICAgCi9G
aWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jO10DO3UDBQMAJiUwsFYwOFFEOuQi5TUyDf
AMQFSSTncjl5cumHK5iacul7AEW59D19FUqKSlO59J0CnBUMufRdFKINFQxiuTxdFNgP1DOwf2D4
f/j/Afs/DP+PN3+osGfgP8f444F8A/sdhp8H+BvYfzD8b+A/AFQFVHqA/QFDHRJ1gKFm4Cj+Bwz/
GPgf/P/H/x9IQCkuV0+uQC4AmhlgXAplbmRzdHJlYW0KZW5kb2JqCjEyMyAwIG9iago8PAovTGVu
Z3RoIDEzNyAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaM7bUM7RUMFAw
AmJjcwVjA4UUQ65CLmMTIN8AxAVJJOdyOXly6YcrGJtw6XsARbn0PX0VSopKU7n0nQKcFQy59F0U
og0VDGK5PF0U2A/8Y2D4f/h/A8P/48wPGPjvMX5gYP8BIj4w/IASD+DEAVoR/A8Y/zD8/yf//wCY
4HL15ArkAgCJtE3LCmVuZHN0cmVhbQplbmRvYmoKMTI0IDAgb2JqCjw8Ci9MZW5ndGggMTU3ICAg
ICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNtUzMlcwUDBS0DVUMDZWMDZU
SDHkKuQyNlAAQWMjiExyLpeTJ5d+uIKxAZe+B1CYS9/TV6GkqDSVS98pwFnBkEvfRSHaUMEglsvT
RYFB/gEDQ/0PBsYPdgzMB/gZ2BvYG/iBLHkG5gd2YFHGDzUMDD9g+A8Dwx9CGKYWph9kFgjzN7Af
YD/A3wASBdkJspvL1ZMrkAsA13Y/WAplbmRzdHJlYW0KZW5kb2JqCjEyNSAwIG9iago8PAovTGVu
Z3RoIDE4NiAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjajc49CsIwFAfw
Jw6Bt/QIfRfQJKYgXSzUCmYQdHIQJ3V0UHQT6dHq5KYXcMgROnYojQnUoZvLb/i/TxUPZUyCRjSQ
itSYlKC9xBOqyKWCItWWdkdMNfI1qQj53OXI9YIu5+sBebqckkSe0UaS2KLOiBUNgH3aHOy7byD4
9EpgFdTASrgDMzABVkDiCfMOQfEfYdEZS9p9xq8v4eapgNX+7sulzP/CHjX4vv8JjMM2P3CmcYVf
swdRbgplbmRzdHJlYW0KZW5kb2JqCjEyNiAwIG9iago8PAovTGVuZ3RoIDE4NiAgICAgICAKL0Zp
bHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjajc6xCsIwEAbgCx0KN9jVQei9gCZpCu0gCLWC
HQSdHMRJHR0UhU61j5ZH6SN0zCBqUurg5vIN/x33n0omkSJBEY2lIpWQEnSUeEEV21RQrPrR4YxZ
gXxLKka+tDnyYkW36/2EPFvPSSLPaSdJ7LHICYJmCPAwKTAzSsFrBiX42i8hqD0DYc0MzOBLBdDz
cjz/pPqlOxV2uI5A+8b1GmDt1NhfWkuoLW75f5jtgvCtO3BR4AY/kA1TAgplbmRzdHJlYW0KZW5k
b2JqCjEyNyAwIG9iago8PAovTGVuZ3RoIDEyNCAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUK
Pj4Kc3RyZWFtCnjaMzLXM7FUMFAwAmEzBWMDhRRDrkIuI2Mg3wDEBUkk53I5eXLphysYGXPpewBF
ufQ9fRVKikpTufSdApwVDLn0XRSiDRUMYrk8XRTYGz/8b//zf14d/4w69h117Bvq2D/YsD9ggKID
JCP+Bwz//4MQl6snVyAXAKC+MVIKZW5kc3RyZWFtCmVuZG9iagoxMjggMCBvYmoKPDwKL0xlbmd0
aCAxNjkgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42iXJOwoCMRRG4T+V
cBvbqZy7Ac0kAzqFKPgApxC0shArtbRQFKbSbVlmKYIbSJkieA0KX3WOHfQqywVb7hq2fS4NHwyd
yZYpFlza/9mfaFKT3rAtSS9SJl0v+Xq5HUlPVlM2pGe8NVzsqJ6x+mQteXZUGCI0aDyqnywJyCIy
AR4eY0Euri1eSUAeoaLD3WGUvNBJ/E/AMIloRPm3OCegeU1r+gL62TulCmVuZHN0cmVhbQplbmRv
YmoKMTI5IDAgb2JqCjw8Ci9MZW5ndGggMTM4ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+
PgpzdHJlYW0KeNozMtczMVYwUDBU0DVUMDJWMDFUSDHkKuQyMgQKGiiYGEFkknO5nDy59MMVjAy5
9D2Awlz6nr4KJUWlqVz6TgHOCkBRF4VooJ5YLk8XBYYEBgR6AEWMDxiYwYj9AYP8A4b//z8AETNM
kDgkgQ1ZMH4wYPxQwPAjgcH+AQN/A5erJ1cgFwBFgjtHCmVuZHN0cmVhbQplbmRvYmoKMTMwIDAg
b2JqCjw8Ci9MZW5ndGggMTM5ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0K
eNozttQztFQwUDBS0DVUMDZXMDZQSDHkKuQyNgEKGigYG0JkknO5nDy59MMVjE249D2Awlz6nr4K
JUWlqVz6TgHOCkC+i0K0oYJBLJeniwL7AYYfDP8PyEMJ/gOMPxjAYjQiGFEJ5h8MzA/YQQTfHwbG
HzL/DzDU/wAS8g9+MHC5enIFcgEAtRxNcwplbmRzdHJlYW0KZW5kb2JqCjEzMSAwIG9iago8PAov
TGVuZ3RoIDE2NyAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzbXMzJW
MFAwVNA1VDA2UzCyVEgx5CrkMjYBChooGENlknO5nDy59MMVjE249D2Awlz6nr4KJUWlqVz6TgHO
CoZc+i4K0YYKBrFcni4K//8w/j8AJvgfMNQxsD9gqAERFgzMDxgMQEQBA+MHhgQIwfCD4QAyUcPY
ACXsmBmghD07kJBngxH8PXDiDpBgvwEjmD+gEIwPYATIYC5XT65ALgBfeDPXCmVuZHN0cmVhbQpl
bmRvYmoKMTMyIDAgb2JqCjw8Ci9MZW5ndGggMTk1ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29k
ZQo+PgpzdHJlYW0KeNozNdCzNFEwUDBU0DVUMDVQMLJUSDHkKuQysQAKGigYQ2WSc7mcPLn0wxVM
LLj0PYDCXPqevgolRaWpXPpOAc4Khlz6LgrRhgoGsVyeLgr//9j/Y/8PIfkfMH9g/MF/gPkBwwf2
A4wPGB4AyQ8MD5iB4gwHYCT7D0agKFsFYwOU/MFXw9zA8IPHhpkBStZIyLEhSHkgaWfAz4NE9jAw
yCewz0AibzAwAC3+gEqyNwAdgUICDT/AwOXqyRXIBQBxekd4CmVuZHN0cmVhbQplbmRvYmoKMTMz
IDAgb2JqCjw8Ci9MZW5ndGggMjA0ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJl
YW0KeNpNzD0KwkAQBeBZFgwMQi4gOBfQzWaDP42CP2AKQSsLEQS1FKIoWATxAOKZPIZljmBpEdBZ
k4jFfMV7zDPNum/II001HZBpkN+mtcYdmoBTjwKTV6st9kJUMzIBqhHnqMIxHfbHDarepE8a1YDm
mrwFhgN6p+J9/+ImcAYngdjSApmAB/IJEYgnLDPgBfecVDCxuACcJdORkFMt/bgx7rXAeRTw6j8i
KbDDGXY4Q37hO1nS0o+ypWKLFhNFTNeOuPYBhyFO8QNXBj4BCmVuZHN0cmVhbQplbmRvYmoKMTM0
IDAgb2JqCjw8Ci9MZW5ndGggMTc2ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJl
YW0KeNodyjsKwkAUheEzTBG4TZaQuwInDwIRhECMYApBKwsRBtRSUNE2ztKylCwhZYrgOJPig/v4
s2SR5Rxz6hWcLvma0JNSf4v96h+XO1UNqSOnOamtu5Jqdvx+fW6kqv2aE1I1nxKOz9TUXFprZijN
CiUKtIgx4SEmaDFCywE66KHDHgg7IDJwGfB1WmcSRozCSG8QJuilCTtpok66VLo0cFmIn5ustTPa
NHSgP7siNg8KZW5kc3RyZWFtCmVuZG9iagoxMzggMCBvYmoKPDwKL0xlbmd0aCAxNjkgICAgICAg
Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42lXKMQrCQBCF4RGLwDR7hMwJ3CSrSRmI
EdxC0MpCrNTSQtE6OdoeJd4gZUDIOINYWOwHb+d3+WxRUEKZPFdQltM5xRu6uexEpx5OV6w82j25
Odq1/KL1G3rcnxe01XZJKdqaDiklR/Q1AfcAEY8AhrmFuCs7Ie4Fo0TDl6gVpPxR8gBTFswos9Sk
0YT1Ov7DYJRYktBIzG8Ohl8cJgwccOVxhx87q0pdCmVuZHN0cmVhbQplbmRvYmoKMTM5IDAgb2Jq
Cjw8Ci9MZW5ndGggMTU0ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNoz
NtYzMVcwUDACYmNDBSMzhRRDrkIuIwsg3wDEBUkk53I5eXLphysYWXDpewBFufQ9fRVKikpTufSd
ApwVDLn0XRSiDRUMYrk8XRQY5P8wMPz/38D8//8B/h/yD0DQ/gAQN8g/qAdj9ob/DEAleHB9AwTb
H2D4YP+A8YP8B8YH/H/YH4DMBJrNwCD/g4HL1ZMrkAsAdkI69wplbmRzdHJlYW0KZW5kb2JqCjE0
MCAwIG9iago8PAovTGVuZ3RoIDE2MiAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3Ry
ZWFtCnjaMzHUMzdSMFAAYRMwSjHkKuQyNgfywVyQRHIul5Mnl364grE5l74HUJRL39NXoaSoNJVL
3ynAWcGQS99FIdpQwSCWy9NFgYGB/X8DMsFQTw4h/wNI/P9f38D8////Bv4fQKPkHzD+b7A/wAAk
GoBK6uHEfwbiiHoGmA6gASCjGEGGMoOM5/8PtugHw/9/9T8Y5D/U/+By9eQK5AIAJ4JeLAplbmRz
dHJlYW0KZW5kb2JqCjE0MSAwIG9iago8PAovTGVuZ3RoIDE2NCAgICAgICAKL0ZpbHRlciAvRmxh
dGVEZWNvZGUKPj4Kc3RyZWFtCnjaRcyxCsIwFAXQVzoE3tJP6PsC06ZF6BSoFcwg6OQgTurooCh0
az4tn5JP6JipzxQpDme498Kt6lVdUkEqqhSpNd1KfKJqYi7mOA/XB7YG5YlUg3IXW5RmT+/X546y
PWyoRNnROd5c0HQEOkDCE6TMNgva5V547VKvbToONhkHSAIvmP8AYDHYH22hzx30mYcgghjjpwdm
B/kEuDV4xC+OXEQ5CmVuZHN0cmVhbQplbmRvYmoKMTQyIDAgb2JqCjw8Ci9MZW5ndGggMjE1ICAg
ICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNpdjj1Ow0AQhR9KgTQFvgE7F4C1
vRYW1UpJkHCBRKoUiIqkpACRNt4bcKW9ga+wUi5BAR5mnVRpPs3M+9G49vaOS675pqrZtVy3vKno
g1yj15Ld/Ul6e6d5R3bNriH7qHey3RN/fe62ZOfPC67ILvml4vKVuiUDuAZ86sOF/Em8FBlikfx3
NNEM0YRiiD4UByjSOVSNUF+EJgI0CxTyC1z5NNWeYCZkVZHUIj8ZY05IngReEXpAwqjfBO0wR0zr
XoE+QH1pNh4LZrkKXnV66GhF/4+zX5MKZW5kc3RyZWFtCmVuZG9iagoxNDMgMCBvYmoKPDwKL0xl
bmd0aCAxMTYgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMy1DOwVDBQ
MAZiQ0sFE0OFFEOuQi5DUyDfAMQFSSTncjl5cumHKxiacul7AEW59D19FUqKSlO59J0CnBWAfBeF
aEMFg1guTxcF9gb+A/IP7D9AoPwD/gPsDQxw8P8DCPITCf//A0EuV0+uQC4ALmc6tAplbmRzdHJl
YW0KZW5kb2JqCjE0NCAwIG9iago8PAovTGVuZ3RoIDk3ICAgICAgICAKL0ZpbHRlciAvRmxhdGVE
ZWNvZGUKPj4Kc3RyZWFtCnjaMzLUM7BUMFAwBmIjAwUTA4UUQ65CLkMzIB/MBUkk53I5eXLphysY
mnHpewBFufQ9fRVKikpTufSdApwVDLn0XRSiDRUMYrk8XRT+fwBBfirA/2DA5erJFcgFAGUMPzoK
ZW5kc3RyZWFtCmVuZG9iagoxNDUgMCBvYmoKPDwKL0xlbmd0aCAxNjYgICAgICAgCi9GaWx0ZXIg
L0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMz0jM2UzBQMAZiMyMFIzOFFEOuQi5TCyDfAMQFSSTn
cjl5cumHK5hacOl7AEW59D19FUqKSlO59J0CnBUMufRdFKINFQxiuTxdFP4/kH/A8J+B4f+D/3/Y
/wOZD///4///gYH/+cH/dvw/GPjfM/yvYAfS7xjqPzD/YeD/w1D/AET/YKg/gEx/YKhvoCP9/z/7
/x/2/w+g01yunlyBXADnDnHBCmVuZHN0cmVhbQplbmRvYmoKMTQ2IDAgb2JqCjw8Ci9MZW5ndGgg
MTM2ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMdQzN1IwUDAGYhND
BSMzhRRDrkIuY3Mg3wDEBUkk53I5eXLphysYm3PpewBFufQ9fRVKikpTufSdApwVDLn0XRSiDRUM
Yrk8XRT+P5B/wPD/wf8/DP8f/v/HwP/84H8G/vcMQOIdQ30D/x8Q8QNOfKAG8f8/+/8fCILL1ZMr
kAsA9QxQ3gplbmRzdHJlYW0KZW5kb2JqCjE0NyAwIG9iago8PAovTGVuZ3RoIDE2MyAgICAgICAK
L0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzbXM1MwUDACYmMzBSMzhRRDrkIuY2Mg
3wDEBUkk53I5eXLphysYG3PpewBFufQ9fRVKikpTufSdApwVDLn0XRSiDRUMYrk8XRQY5P8wMDD8
/9/AwPz//wMG9h/8Hxj4HzD/YJBvYPjDYN/A8I+hngGIEMR/INGAn4AobgAqBRtgf4DxH4P8A+Y/
DPw/+H9ALAJbCbacy9WTK5ALAHm9QVsKZW5kc3RyZWFtCmVuZG9iagoxNDggMCBvYmoKPDwKL0xl
bmd0aCAxNjkgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMx1DM3UjBQ
MFLQNTRUMAEyzBRSDLkKuYzNgaIGCkAKIpWcy+XkyaUfDhTh0vcAk56+CiVFpalc+k4BzgqGXPou
CtGGCgaxXJ4uCv8/1B9g+P/5/w+G/////2Pg/9/wv4H/D0P9Af4fDPYP+D8wyIMI/g9w4geQYMdL
gJUgdAANABv1D2Tof8b/QDtAFoGs5AdZDlTCQAzx/z8KweXqyRXIBQCgNl2iCmVuZHN0cmVhbQpl
bmRvYmoKMTQ5IDAgb2JqCjw8Ci9MZW5ndGggMTI2ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29k
ZQo+PgpzdHJlYW0KeNozNtQzMFUwUDACYUsFIzOFFEOuQi4gbQASMQNLJOdyOXly6YcD+Vz6HmDS
01ehpKg0lUvfKcBZwZBL30Uh2lDBIJbL00Xh/4M/DP8f/mf4//x/A//z/Qf439kf4P8DxT9AmJ+B
/wcDA/8H0vH//w1wzOXqyRXIBQBx8DvbCmVuZHN0cmVhbQplbmRvYmoKMTUwIDAgb2JqCjw8Ci9M
ZW5ndGggMTY0ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNodyzEOgkAQ
BdBP7KbhBjIncGETUBtNEBO3MNHKwlippYVGO4N7NE/gGTgCJQVhHMjkFfNnvp1PphnHbHszthlf
ErqTTXWP+7U/nG+UOzIHtimZjaZk3Jafj9eVTL5bcUKm4GPC8YlcwYH8EEqHpSp13ligwXjQApBK
iVc1PtIMf6EIRkoDj0B8jUiFvlGt6hBBfKmdduhV8gWtHe3pD0UPQfEKZW5kc3RyZWFtCmVuZG9i
agoxNTEgMCBvYmoKPDwKL0xlbmd0aCAxMzEgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+
CnN0cmVhbQp42jOy1DM2VTBQMARiI1MFY3OFFEOuQi4jYyDfAMQFSSTncjl5cumHKxgZc+l7AEW5
9D19FUqKSlO59J0CnBUMufRdFKKBKmO5PF0UGCoYEOgHCDGCEfMPBvYfDPI/GP7//wNB7GARIpAc
KrJj/lPD+B9o0AcG+wNcrp5cgVwATnQ9jgplbmRzdHJlYW0KZW5kb2JqCjE1MiAwIG9iago8PAov
TGVuZ3RoIDEyOCAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzHUMzdS
MFAwBmITQwUjM4UUQ65CLmNzIN8AxAVJJOdyOXly6YcrGJtz6XsARbn0PX0VSopKU7n0nQKcFQy5
9F0Uog0VDGK5PF0U/n9g/9+AIPg/MNRTmfgPIxj/N7D/ANrB/P9//Q/G/3/qfzDYf6j/weXqyRXI
BQCW5E98CmVuZHN0cmVhbQplbmRvYmoKMTUzIDAgb2JqCjw8Ci9MZW5ndGggMTc2ICAgICAgIAov
RmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNpFzLEKgmAUBeAjDsJdfITuE/SrP0lBJJhB
DkFNDdFUjQ1FQUNQ4Iu1+Rq+gY4O4t8Vkob7wTkXjp4Mw5A9DuT0mIOQjz5dSI8ke13sHoczxSmp
LesRqaW0pNIV3673E6l4PWefVMI7n709pQmbFqb441aI4NaYwakxhdPgCbvBA3aLGlaLCpaxKsBY
hZAJr+wj5EKUv4VSGJQQjOC2PbL1w657uiVapLShL0WdPkgKZW5kc3RyZWFtCmVuZG9iagoxNTQg
MCBvYmoKPDwKL0xlbmd0aCAyMTMgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVh
bQp42kXMsUrEQBQF0DukCLwmrZV5P6CT2YFxBTEQI5hC0GoL2Wq1tFhREBGTT9v9k5X9gcAWpggZ
38SAzSnue/fa81PnOGPDJ8awnfPM8aOhNdmQZmzPptPqmYqK9IKtI30jOenqll9f3p5IF3dXbEiX
/GA4W1JVcu1Rt//EHdIm7pEi6nGMaMAl1IALKI9PwONdaDqg3rTCVsi/d0C6Dxw2QPIT8A0Q/wEg
GhkENdILGOkmjiBLX0rwSpZ8FIhlyScy8pHLVx2qeSgkcgRdV3RPv3LuS8cKZW5kc3RyZWFtCmVu
ZG9iagoxNTkgMCBvYmoKPDwKL0xlbmd0aCAxNjMgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2Rl
Cj4+CnN0cmVhbQp42jM21TMwUTBQMFTQNTRVMDFUMDFRSDHkKuQytgSKGiiYWkKlknO5nDy59MMV
jC259D2A4lz6nr4KJUWlqVz6TgHOCoZc+i4K0YYKBrFcni4KDEDABiL4QIQMiJAAERYgwgBEFICI
ByDiABAzggjmBhABEmKHa+XBoh+sNQGmH6yVsQGmnx3VaoR+UqzG6XS8VuN0Oi6rGbhcPbkCuQA2
sSU7CmVuZHN0cmVhbQplbmRvYmoKMTYwIDAgb2JqCjw8Ci9MZW5ndGggMTY1ICAgICAgIAovRmls
dGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNtUzMFEwUDBX0DVUMDZTMDJTSDHkKuQysgAK
GigYmUNkknO5nDy59MMVjCy49D2Awlz6nr4KJUWlqVz6TgHOCoZc+i4K0YYKBrFcni4KDPINDAz1
BxgYPjxnYD5Qz8DeYM/AzwDBcgzyDHZAaAPENVD8A0gi4w9AEogL4Jjxw4MPzB8eVLADMd/HAzY2
HxvkfwDNfSDHwOXqyRXIBQDP4DhiCmVuZHN0cmVhbQplbmRvYmoKMTYxIDAgb2JqCjw8Ci9MZW5n
dGggMTczICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNo1zDEKwjAYBeCU
DoV/6Q3MfwFN0hZxKAZqBTMIOjmIkzoKKgoZivYmXiVHyREydnAwaRG+5b0HLxeTaY4cZzgWmAss
OJ4E3CDLfMmxEMNyvEClgO0wy4CtfA1MrfFxf56BVZsF+lzjXiA/gKoxckT2YhskAxOkgzag3ofQ
t6HWSuNkqyXRc6JfpPGa3jfouj8XuZ51sWdc0l5TokekLAl14R+WCrbwAw+LQWcKZW5kc3RyZWFt
CmVuZG9iagoxNjIgMCBvYmoKPDwKL0xlbmd0aCAxNTIgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVj
b2RlCj4+CnN0cmVhbQp42jM21DMzVjBQsFDQNVQwNlIwMlNIMeQq5DICCRooGJlDZJJzuZw8ufTD
FYyMufQ9gMJc+p6+CiVFpalc+k4BzgqGXPouCtGGCgaxXJ4uCgz8DxjsfzD8sGF8IMfcIMfeYMfP
YCfHYGPHIGHDwFADRj+Q0AcE4vjAIFPBYFPBUGHD+EGO/QD/fwbmHwxcrp5cgVwAfGMobAplbmRz
dHJlYW0KZW5kb2JqCjE2MyAwIG9iago8PAovTGVuZ3RoIDE5MiAgICAgICAKL0ZpbHRlciAvRmxh
dGVEZWNvZGUKPj4Kc3RyZWFtCnjaPc09CsJAEAXgkRSBKfQGyVxAd2MiIRAU/AFTCFpZiJVaCioK
FsHsDbzS3sAr5AauXQoLJ4lafAPzXvH8XkcGJCmktkd+SIGkrYdH7EYcSgq8utnscZigWFI3QjHl
GEUyo/PpskMxnI+I/zGtPJJrTMYEAAWA+9UwNesnr9k/utbS4N41ZA8F5qksnSlbDVQLBlByWJ/F
fNPKjUdK6dcbTKU4/DVMbiyTX23WfOk4fim3yHjVAZwkuMAPE9pJBQplbmRzdHJlYW0KZW5kb2Jq
CjE2NCAwIG9iago8PAovTGVuZ3RoIDE2MSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4K
c3RyZWFtCnjaMzbUMzNWMFCwUNA1VDA2VDAyU0gx5CrkMjICChooGJlDZJJzuZw8ufTDFYyMuPQ9
gMJc+p6+CiVFpalc+k4BzgqGXPouCtGGCgaxXJ4uCgz8BxjqPzB8sGA+IMPeIMPPICPPICPHIGPH
YFHDUFDD/qD+f8P/Pww/GBDoAxRxVDDIVDDYWDBU2DB+kGM/wP+fgfkHA5erJ1cgFwAReCsXCmVu
ZHN0cmVhbQplbmRvYmoKMTY1IDAgb2JqCjw8Ci9MZW5ndGggMTc2ICAgICAgIAovRmlsdGVyIC9G
bGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMtQztlQwUNA1BCIjBSNLBRNDhRRDrkIuI5CwgYKpMUwu
OZfLyZNLPxyoiEvfAyjBpe/pq1BSVJrKpe8U4KxgyKXvohBtqGAQy+XposDAwH6AgYH/AwODTQEQ
VzAwVPyA4B9AsR8JQMzAwPgBEzM/AGPG//8PgDCYDzIKHfODcAMmlmfAxHZYcA0aBjrHAuTCD1AX
Aq39CMSFQGvsgcbKAZVwuXpyBXIBALbfQE8KZW5kc3RyZWFtCmVuZG9iagoxNjYgMCBvYmoKPDwK
L0xlbmd0aCAxODUgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jXLsQrC
MBCA4ZMMgRvaFxByL6BtaBUHiVArmEHQyUEEQR0FFd2K9NHyKIIPYMcORU2bOnzD/XcXDfphTCHF
1JMUDSkO6SDxgpG00WbpNvsTJhqDNUUSg7nNGOgF3a73IwbJckp2Tmljf7aoUwIFwD8OZK2qVTqd
v8JhjQrY6wvszXNeccNLZnhhPZnxTY0bP3dEw88FOBMQUFMgPAXKezSybuaMKhiH1q4EYc72Hmca
V/gDRzc/kQplbmRzdHJlYW0KZW5kb2JqCjE2NyAwIG9iago8PAovTGVuZ3RoIDE1NCAgICAgICAK
L0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLUM7ZUMFAwVdA1VDAyUgByUgy5CrkM
zYCCBgomUJnkXC4nTy79cAVDMy59D6Awl76nr0JJUWkql75TgLOCIZe+i0K0oYJBLJeniwIDH4Mc
gx0QyjCgAeYD7B94KiQqLCoMKgp+FPx48OPhB8YPzA9AkP0A+wH+Bv52/nZ5dnk+eT45HjkZPgv+
D8wHuFw9uQK5ALEeJzQKZW5kc3RyZWFtCmVuZG9iagoxNjggMCBvYmoKPDwKL0xlbmd0aCAyMDAg
ICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jXOvQrCQAwH8JQbDrL0ES4v
oO1ZvyYLfoAdBJ0cRBDUUVDRTaTgSzm2CE4+RDZXR4ciRk+H35B/QpLIlusRhVSjkqUoompIC4sb
rDQkDKlqXWe+wnaCwZgqDQz6EmOQDGi33S8xaA87JHWXJpbCKSZdghaAfjlw+Cl+no7393DUl04V
m0xxkzXPRM46P7G+KPavXubfAPyzYAAj80b2mzgF42cQa4ZYMbQU88fxK88OTlqoS1p4dzn9grU8
hL0ER/gGtzhJIQplbmRzdHJlYW0KZW5kb2JqCjE2OSAwIG9iago8PAovTGVuZ3RoIDE1MiAgICAg
ICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzTXs7RQMFAwVdA1VDAyUDAxUEgx
5CrkMjQBCgK5hhCZ5FwuJ08u/XAFQxMufQ+gMJe+p69CSVFpKpe+U4CzApDvohBtqGAQy+XposBQ
w/+H/w/DD4YfjCD4gfEDMwg+YH7ADoIH2A/wg2ADf4M8CDLIM9gDoR0Q1gFhjQUI/igAwoSKBxUH
7Bv4GbhcPbkCuQCLKjEuCmVuZHN0cmVhbQplbmRvYmoKMTcwIDAgb2JqCjw8Ci9MZW5ndGggMjA3
ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNdUzNVQwUDBV0DVUMDVX
MDJTSDHkKuQCCxooGJlDZJJzuZw8ufTDFUwNufQ9gMJc+p6+CiVFpalc+k4BzgpAUReFaKCeWC5P
FwX2BvkG/gMM/A/qH9h/YJD4+ODDhwoGi88NPw/UMBj8Z6husGEo+MdQzwCk/jDUgagfDDVA6uEP
hj9AxsMPDCA+IwrF/ADMwKSADPYDYD6EegCimB/AKP4G9gPsBw8gU4cbQBTzYQZ5Bv4G5uNgivEP
Ax8DOwPQTC5XT65ALgD9oVqYCmVuZHN0cmVhbQplbmRvYmoKMTcxIDAgb2JqCjw8Ci9MZW5ndGgg
MTgzICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNpVyzEKwkAUBNAfUix8
xG0thPwL6GazRmMlxAimELSyECu1FKJoH/BiK15kc4OITQpRF4KCzWOYYVTU7YXkU0gdSWpIQZ+2
Eg+olC19Cgb1stljnKJYklIoprZGkc7odDzvUMTzMUkUCa0k+WtME2L5KAdu3hra96uB6OGUEL2g
hOxZU0FW2VRUdihKi/PDNa75g2lguuaWM80vNTz3GHxpWngDPOAtCyuhaY+AkxQX+AHur0DJCmVu
ZHN0cmVhbQplbmRvYmoKMTcyIDAgb2JqCjw8Ci9MZW5ndGggMTY1ICAgICAgIAovRmlsdGVyIC9G
bGF0ZURlY29kZQo+PgpzdHJlYW0KeNpNyTEKwkAQBdAfUixMkxskcwHd3cSYJijECG4haGUhVmpp
oShYWORoOUqOkHILQTdrI58385nJ8rGasOKCR5qznNMpnzRdKS3cUbFb/nO8UGVI7tyB5MpPs+b7
7XEmWW0WrEnWvNesDmRqhuiB+RuwMYIuQtiKZsjQYmfmlAi7109rIf41FlHTewl6xE6Jp49rQYdE
tIg+QGABWhra0hf5yzJ/CmVuZHN0cmVhbQplbmRvYmoKMTczIDAgb2JqCjw8Ci9MZW5ndGggMTky
ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNo1ybEKglAUgOEjd7hwBnsB
8Z4XqOv1Zi2hYAY5BDU1RFM1NhQFDhI+Sc/iowgNrY4OUpnW8C3/r72BMySHXOorRdojd0R7hSfU
blMd0uPf2h0xjFGuSbso501HGS/ocr4eUIbLKSmUEW0UOVuMI4KS50YtSnZPEm4XEy5yyxSZbQqw
zQBsKwBh+SDg69byIf2pWylUrcSooOwYhVGxnNU8Yy8B7FkDe5TAC+jknd5fBiAa76qDsxhX+AFU
yT0OCmVuZHN0cmVhbQplbmRvYmoKMTc0IDAgb2JqCjw8Ci9MZW5ndGggMTc3ICAgICAgIAovRmls
dGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNotybEKgkAYwPFPHA6+xTfovheo8zyxBlEwgxyC
mhqiqRqDioIGMR/NrbFXuEe4LYfAjhJ+0/+v5ChS5NOEhlKSUhREtJd4xiC01Sc17tfuiFmBYk1B
iGJuO4piQdfL7YAiW05JoshpI8nfYpETcBceL0d3btOx+uFBxSEZQJJAFUNZ/rTwaaH9M45leq4x
TJ+YvnMdp5q/G/ZsgDXgWXWPWwApuJ2xcFbgCr/h4z/tCmVuZHN0cmVhbQplbmRvYmoKMTc1IDAg
b2JqCjw8Ci9MZW5ndGggMTQ2ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0K
eNozstQzMFcwUDBV0DVUMDZSMDJTSDHkKuQC0gZAaGQOkUnO5XLy5NIPB8pz6XsAhbn0PX0VSopK
U7n0nQKcFQy59F0Uog0VDGK5PF0U2BvqGPgf/m+Q+dx8wOI74wGLf8wHCv6wHyj4AcLMDQ8/MDCA
MCMUMz9AxewHUDF/AyqWZ4BgPiDmcvXkCuQCALWeML4KZW5kc3RyZWFtCmVuZG9iagoxNzYgMCBv
YmoKPDwKL0xlbmd0aCAxNjEgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4
2iXJPwrCMBSA8RcyBN7SI/RdQPMH1A6dagUzCDo5iJM6ClUUOhTM0XKUHOGNTsai8E2/z1VT58jQ
jCaWXEVuTmeLN/yhIbf4n9MVG496T86hXo+M2m/ocX9eUDfbJVnULR0smSP6lqCM8GLgXsRaxlqF
4VdfBFMkUHksqBxlTpAZSgbJleAeeAB+i8QidTJ2MtQFlB9QDLjyuMMvdAIyvQplbmRzdHJlYW0K
ZW5kb2JqCjE3NyAwIG9iago8PAovTGVuZ3RoIDE0OCAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNv
ZGUKPj4Kc3RyZWFtCnjaMzLWM1QwUDBT0DVUMDJVMDZXSDHkKuQytAAKGigYW0BkknO5nDy59MMV
DC249D2Awlz6nr4KJUWlqVz6TgHOCoZc+i4K0UCDYrk8XRQYLBgYasDoBwIxfkAg5gcM//8fACIg
g/0AAvE3IJA8AwLZARFzAwixM9QAER9DDQ+DjQyDjQWDPNgELldPrkAuAGLoLfQKZW5kc3RyZWFt
CmVuZG9iagoxNzggMCBvYmoKPDwKL0xlbmd0aCAxNjcgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVj
b2RlCj4+CnN0cmVhbQp42jM20zM3VTBQMFXQNVQwtlAwMlNIMeQq5DI2AgoaKBiZQ2SSc7mcPLn0
wxWMjbj0PYDCXPqevgolRaWpXPpOAc4Khlz6LgrRhgoGsVyeLgrMDxgY2D8wFPBUMPyQqGH4YVHD
+MEAiAtA+Afjhwc/mB+AMOMHGGY/wPwAgdkP8DcAcTsCy/NBsD0f84F6GcYH7yUY/rf/YLBnfMDl
6skVyAUA+4w9/AplbmRzdHJlYW0KZW5kb2JqCjE3OSAwIG9iago8PAovTGVuZ3RoIDE3NyAgICAg
ICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzHVMzJXMFAwVdA1VDAxUzAyU0gx
5CrkMjFQAEGgHFgmOZfLyZNLP1zBxIBL3wMozKXv6atQUlSayqXvFOCsYMil76IQbahgEMvl6aLA
/ICBgY/9A8MDeZ4Kxg/yEjVAwqKG+YG8AZDgLwATP4DEgx/sB/jABOMHBMHfIAOUQybYD8gzWKAS
BVDCnuEBM5h4UN94gPHD88MNDP8P/2dgsG/4w8Dl6skVyAUA0NZC6gplbmRzdHJlYW0KZW5kb2Jq
CjE4MCAwIG9iago8PAovTGVuZ3RoIDE5NSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4K
c3RyZWFtCnjaVckxS8NAGIfx/3FD4B2S1UHM+wXsXXJEUpAW0hS8QdDJQZzUUYii4BBoP1nJR7mP
cOMN0vaCLaXDb3keYybGsOaKr4uSTcXlDb8V9EnlNFbNpj6s1w9qLKknLqek7mInZe/5++vnnVTz
sOCCVMvPBesXsi1LByQeXfqLcNEj1L3wOupGQXgXpBsJf5QM0p0kQ7Y+l+PfHHJYQbgtsNsA8xmA
UY80yhEij5lwuJUDLpM1rnIg+wOkB2hp6ZH2VIFFBAplbmRzdHJlYW0KZW5kb2JqCjE4NCAwIG9i
ago8PAovTGVuZ3RoIDEwMCAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnja
MzLTMzFTMFAwVtA1VTACkoYKKYZchVyGlkBBAwUTiERyLpeTJ5d+uIKhJZe+h4IJl76nr0JJUWkq
l75TgLOCIZe+i0K0oYJBLJeni0L9/wP//z8AIiCDy9WTK5ALAEpJG9oKZW5kc3RyZWFtCmVuZG9i
agoxODUgMCBvYmoKPDwKL0xlbmd0aCA5MSAgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+
CnN0cmVhbQp42jMy0zMxUzBQsARiQ3MFc4UUQ65CLnMgzwDIAYkm53I5eXLphyuYc+l7gAhPX4WS
otJULn2nAGcFQy59F4VoQwWDWC5PFwWLmn///tVYcLl6cgVyAQBRzxUoCmVuZHN0cmVhbQplbmRv
YmoKMTg2IDAgb2JqCjw8Ci9MZW5ndGggMTQ3ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+
PgpzdHJlYW0KeNozMtMzMVMwUDBW0DVRMDJWMDZVSDHkKuQytAQKAoUtITLJuVxOnlz64QqGllz6
HkBhLn1PX4WSotJULn2nAGcFQy59F4VoQwWDWC5PFwUGhgMMjA8YmCHoAAM7GPE3gJA8AwjJMTDY
gVENGP0AIcYPYATTh6yJnwGqD1lTBVQfwwcGhgQGBi5XT65ALgAXySleCmVuZHN0cmVhbQplbmRv
YmoKMTg3IDAgb2JqCjw8Ci9MZW5ndGggOTcgICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+
PgpzdHJlYW0KeNozMtMzMVMwULAEYkNzBSNDhRRDrkIucyDXAMQDiSfncjl5cumHK5hz6XsABbn0
PX0VSopKU7n0nQKcFYB8F4VoQwWDWC5PFwWLmn///tVYMEAAlMfl6skVyAUA0EkaDgplbmRzdHJl
YW0KZW5kb2JqCjE4OCAwIG9iago8PAovTGVuZ3RoIDkyICAgICAgICAKL0ZpbHRlciAvRmxhdGVE
ZWNvZGUKPj4Kc3RyZWFtCnjaPcixDkAwFAXQ/X7F/QLPq6ZiLRIdJEwGMWE0EHZ/XiySMx3jEuuY
0rKgMdSMi2KH5u99+/28wQfIQM0hDS0ktDyPa4X4rqRCKo7KdEKoGOP9Qx3Q4wEpqxtLCmVuZHN0
cmVhbQplbmRvYmoKMTg5IDAgb2JqCjw8Ci9MZW5ndGggMTY1ICAgICAgIAovRmlsdGVyIC9GbGF0
ZURlY29kZQo+PgpzdHJlYW0KeNoVizEOgkAQRb+hIJlCLjDCnMCFRamsEBO3MNHKwlippYVGEzuw
8haexaN4BEoKIg7Jm+T/mTc2G08yiSXRsVNJYzkmdCGbao/72h8OZ8odma3YlMxSt2TcSm7X+4lM
vp5LQqaQnZp7coWUXtO9WkUDex/2KvYrDsAhmMEz8ANcgxuMWkTKG9EQUYDQR2+qr1+Dbw/qEm33
/CkaaOFoQ3/B4S/hCmVuZHN0cmVhbQplbmRvYmoKMTkwIDAgb2JqCjw8Ci9MZW5ndGggMTMyICAg
ICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMtMzMVMwUDBU0DVUMDJVMDZQ
SDHkKuQyMgYKGigYG0JkknO5nDy59MMVjIy59D2Awlz6nr4KJUWlqVz6TgHOCkC+i0K0oYJBLJen
i8L/5n9wJMfwAYL4GR8gUPMD9uYDcMR8vAGOGI8zML5HIIZ3DAz/YKgGhLhcPbkCuQBQFDgHCmVu
ZHN0cmVhbQplbmRvYmoKMTkxIDAgb2JqCjw8Ci9MZW5ndGggMTUwICAgICAgIAovRmlsdGVyIC9G
bGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMtMzMVMwUDACYTMFI0OFFEOuQi4jYyDfAMQFSSTncjl5
cumHKxgZc+l7AEW59D19FUqKSlO59J0CnBWAfBeFaEMFg1guTxcF/h8M8v8Z7P832P8/YMf/QIb5
AQPjA4b/D9j/P5D//6D+44M6xgc/GB98AKMfzA/+8D+o///P/v8/+T//2D/Ucbl6cgVyAQAD2DV/
CmVuZHN0cmVhbQplbmRvYmoKMTkyIDAgb2JqCjw8Ci9MZW5ndGggMTQ0ICAgICAgIAovRmlsdGVy
IC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMtMzMVMwAEMjEwVjA4UUQ65CLiNjsIgxRCI5l8vJ
k0s/XMHImEvfAyjKpe/pq1BSVJrKpe8U4KxgyKXvohBtqGAQy+XpolDPwPAfjIAMfjQkf4C//gH/
/w/8/3/wP/jD31DDz2DDz2DHzyCHghrs+Bts+A/U8D/8AVIJVF//gF2+gcvVkyuQCwAldyqLCmVu
ZHN0cmVhbQplbmRvYmoKMTkzIDAgb2JqCjw8Ci9MZW5ndGggMTM4ICAgICAgIAovRmlsdGVyIC9G
bGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMtMzMVMwUDAGYiMTBSNDhRRDrkIuIwMFEARyQRLJuVxO
nlz64QpGBlz6HkBRLn1PX4WSotJULn2nAGcFIN9FIdpQwSCWy9NFgfF/A/v/A/z/H8j/f2DP/KCO
8UAFA8MPBoYPqOgHw4cahg91jB/sm0Eq+f8fYP/fwPiPgcvVkyuQCwBFHC37CmVuZHN0cmVhbQpl
bmRvYmoKMTk0IDAgb2JqCjw8Ci9MZW5ndGggMTQ5ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29k
ZQo+PgpzdHJlYW0KeNpVirsKwjAUhhsyCGfJI+Q8gblJVqFWMIOgk4M4aUcHRcGh6KueR7BbhdqY
uBW+H/6b9dOZR402y6PTeDJwAetS1jnm4XiGMoDaoXWgVqkFFdZ4u95rUOVmgQZUhXuD+gChwkJQ
If8kw0bwlsSXZKR5pJeghtODUcfoPaZLPadmQk+Znr2Mg/gMvO1hGWALP/WtPysKZW5kc3RyZWFt
CmVuZG9iagoxOTUgMCBvYmoKPDwKL0xlbmd0aCAxNDIgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVj
b2RlCj4+CnN0cmVhbQp42jMy0zMxUzBQMAJhYwUjQ4UUQ65CLiMDBRAEckESyblcTp5c+uEKRgZc
+h5AUS59T1+FkqLSVC59pwBnBSDfRSHaUMEglsvTRYHxDwP7fwb+/w3y/w/Ysz+oYXxQwfjhB8OH
//8R6AcDA1CkhuFDHeMH+8MP5P8/4P9/gP1/A8M/Bi5XT65ALgBwojZ3CmVuZHN0cmVhbQplbmRv
YmoKMTk2IDAgb2JqCjw8Ci9MZW5ndGggMTc2ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+
PgpzdHJlYW0KeNozMtMzMVMwUDBU0DU0UjAyVTAyUkgx5CrkMjIGihooGJtApZJzuZw8ufTDFYyM
ufQ9gOJc+p6+CiVFpalc+k4BzgqGXPouCtGGCgaxXJ4uCgwMFYw//7D//8f//5/8/3ny/HPs2A/Y
MCMQkCvP3yD/H4gY5P8xyP5gkGFgkGVgAIt8sP//o4bhzwcGuQcMfBAEZP9gsKtn/AOUAirg//+A
8T8Dl6snVyAXAJLHPWEKZW5kc3RyZWFtCmVuZG9iagoxOTcgMCBvYmoKPDwKL0xlbmd0aCAxMzIg
ICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMy0zMxUzAAQyMzBWMDhRRD
rkIuI1OwiDFEIjmXy8mTSz9cwciUS98DKMql7+mrUFJUmsql7xTgrGDIpe+iEG2oYBDL5emiUM/A
wPAfikFsfmxY/gADf/0DBv7/H4D4BwP/AyBuqIBgBuJw/cP/DP8//28AYRCby9WTK5ALAPGpMBoK
ZW5kc3RyZWFtCmVuZG9iagoxOTggMCBvYmoKPDwKL0xlbmd0aCAxMTQgICAgICAgCi9GaWx0ZXIg
L0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMy0zMxUzBQMAZiI2MFY0OFFEOuQi5DSyDfAMQFSSTn
cjl5cumHKxhacul7AEW59D19FUqKSlO59J0CnBWAfBeFaEMFg1guTxcFxgcMzB8QCMhFBvUfEIiB
OFT//8D//w+ACMjgcvXkCuQCAMSmM1YKZW5kc3RyZWFtCmVuZG9iagoxOTkgMCBvYmoKPDwKL0xl
bmd0aCAxNDYgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMy0zMxUzBQ
MARiIzMFYwOFFEOuQi4jEyDfAMQFSSTncjl5cumHKxiZcOl7AEW59D19FUqKSlO59J0CnBUMufRd
FKKBKmO5PF0U/jEwwBEfGuL/wyf/D4SADPYGPn4GPjkGPhsGvgoGvj8M/EB0j4G/n4EfKMV8AIQY
H/x//O//4/9g9I/L1ZMrkAsAJ/4uVQplbmRzdHJlYW0KZW5kb2JqCjIwMCAwIG9iago8PAovTGVu
Z3RoIDEwOCAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLTMzFTMFAw
BmIjEwVjA4UUQ65CLiMDBRA0hkgk53I5eXLphysYGXDpewBFufQ9fRVKikpTufSdApwVDLn0XRSi
DRUMYrk8XRTqPzD8ByMgg4FiVP//wf//H4AIyOBy9eQK5AIA4643hgplbmRzdHJlYW0KZW5kb2Jq
CjIwMSAwIG9iago8PAovTGVuZ3RoIDEyNyAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4K
c3RyZWFtCnjaMzLTMzFTMFDQNQQSRuYKRoYKKYZchVxApgFIxBAik5zL5eTJpR8OVMKl7wEU5tL3
9FUoKSpN5dJ3CnBWAPJdFKKBKmO5PF0Uan7UMPz/+4/h//9/DPX//zPIy/czyPGzg7EMH3G4Xr7/
wP/99x+AMIjN5erJFcgFAFUBKk8KZW5kc3RyZWFtCmVuZG9iagoyMDIgMCBvYmoKPDwKL0xlbmd0
aCAxMjEgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMy0zMxUzAAQyMz
BSNDhRRDrkIuI1OIiCGYSs7lcvLk0g9XMDLl0vcAinLpe/oqlBSVpnLpOwU4KwD5LgrRQLWxXJ4u
CvXyBxj+1z9g+P//A0P9/x8M/A+AuKECghmIw/UP/zP8//y/AYRBbC5XT65ALgD+qy+TCmVuZHN0
cmVhbQplbmRvYmoKMjAzIDAgb2JqCjw8Ci9MZW5ndGggMTI2ICAgICAgIAovRmlsdGVyIC9GbGF0
ZURlY29kZQo+PgpzdHJlYW0KeNozMtMzMVMwUDACYRMFI0OFFEOuQi4gbQASMQRLJOdyOXly6YcD
+Vz6HmDS01ehpKg0lUvfKcBZAch3UYgGaonl8nRRYPzDwP6fgf9/g/z/A/bsD2oYP1QwfPjB8OMD
QwUyAooAxYGyQDVAlUD1QF1AvVyunlyBXAB8Qi9OCmVuZHN0cmVhbQplbmRvYmoKMjA0IDAgb2Jq
Cjw8Ci9MZW5ndGggMTU2ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNoz
MtMzMVMwAEJdQ0MFIxMFI0OFFEOuQi4jY7CosRFUKjmXy8mTSz9cwciYS98DKM6l7+mrUFJUmsql
7xTgrGDIpe+iEG2oYBDL5emiUC9/4H/9g///P9T//8H/4A9/Qw0/gw0/gx0/gxwKarDjb7DhP1DD
//AHP1Dl/w/89Q/45Rv4GRgwUf0Dhv8fQAjI4HL15ArkAgApFzHTCmVuZHN0cmVhbQplbmRvYmoK
MjA1IDAgb2JqCjw8Ci9MZW5ndGggMTIzICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+Pgpz
dHJlYW0KeNozMtMzMVMwUDAEYiNTBSNDhRRDrkIuI2Mg3wDEBUkk53I5eXLphysYGXPpewBFufQ9
fRVKikpTufSdApwVgHwXhWigylguTxeF+sM//p//8//+v/r//5j/2TH/kGH+wMD8AIwOYEf1/xv+
gxGQweXqyRXIBQDQkzAQCmVuZHN0cmVhbQplbmRvYmoKMjA2IDAgb2JqCjw8Ci9MZW5ndGggMTQ3
ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMtMzMVMwUDABYiNjBSND
hRRDrkIuQwsg3wDEBUkk53I5eXLphysYWnDpewBFufQ9fRVKikpTufSdApwVgHwXhWhDBYNYLk8X
Bf7fDfb/G+rB6A9/wwd2EPrDwFD/gMH+D4P8fwbG/w0M/AcKmA98YD7wg/nAH/4D//83/P/P8P8f
w/MfDFyunlyBXAD09DMlCmVuZHN0cmVhbQplbmRvYmoKMjA3IDAgb2JqCjw8Ci9MZW5ndGggMTI2
ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMtMzMVMwUDAEYiMjBSML
hRRDrkIuIwMFEARyQRLJuVxOnlz64QpGBlz6HkBRLn1PX4WSotJULn2nAGcFQy59F4VooMpYLk8X
BcYDDMwYqP7/g/8wxIxNAfOBBOYDH6Do4Qfmxw8Y/wPRAYb/DQx2DFyunlyBXAAhUjZ0CmVuZHN0
cmVhbQplbmRvYmoKMjA4IDAgb2JqCjw8Ci9MZW5ndGggMTE1ICAgICAgIAovRmlsdGVyIC9GbGF0
ZURlY29kZQo+PgpzdHJlYW0KeNozMtMzMVMwAEMjMwUjQ4UUQ65CLiNTiIghmErO5XLy5NIPVzAy
5dL3AIpy6Xv6KpQUlaZy6TsFOCsA+S4K0UC1sVyeLgr1zD8Y/rNDMIjNz1BBAgaqbwbi//8Z2P//
b2AGYsY/9Qxcrp5cgVwAo1wpdQplbmRzdHJlYW0KZW5kb2JqCjIwOSAwIG9iago8PAovTGVuZ3Ro
IDE2NiAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLTMzFTMFAwVNA1
NFQwMlUwMlRIMeQq5DIyBooaKBgbQaWSc7mcPLn0wxWMjLn0PYDiXPqevgolRaWpXPpOAc4Khlz6
LgrRhgoGsVyeLgr1h//8P/4PiIAMPoYH7EDEeIC98QAzEDU3MB9uYASi4wwMz8HoGQNDGgNDHQOD
DQxZwFAFg0ABQ80HhtoHDPVAdIDBvoFBjoGBy9WTK5ALAO1gMgwKZW5kc3RyZWFtCmVuZG9iagoy
MTMgMCBvYmoKPDwKL0xlbmd0aCAxMTQgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0
cmVhbQp42jM20DMxUTBQMANiI1MFY2OFFEOuQi5DCyDfAMQFSSTncjl5cumHKxhacOl7AEW59D19
FUqKSlO59J0CnBUMufRdFKINFQxiuTxdFBgeMDA+YGB/wPD/AcNPMJtaiPkDw///B4CIy9WTK5AL
ALBWNHEKZW5kc3RyZWFtCmVuZG9iagoyMTQgMCBvYmoKPDwKL0xlbmd0aCAxNzEgICAgICAgCi9G
aWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42h3JsQrCMBgE4CsFCz+Frh1E/icwaVrQTagK
ZhB0chChoI6CioJDwT5aH6WP0DFDIDbCd8Pd5XJaFCzZR804z/mS0YOUGrr01R/nG5WaxIGVIrEZ
VhJ6y6/n+0qi3C05I7HiY8byRHrFgUXkmnHSyrCrgr6CMTAW9q/+oJaw8IwX9Ag7hC2iBgkwAebA
HegQtHHYxCOkMdIU6cKZrzPO9QNaa9rTD2eCNlQKZW5kc3RyZWFtCmVuZG9iagoyMTUgMCBvYmoK
PDwKL0xlbmd0aCAxNzAgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42i3L
MQrCMBTG8a90ewi9gJR3AU3SdOiUQq1gB0EnBxEEdXRQFDoUz9aj9AgdMwRqgsJvePw/npbLPGfJ
mheKs4K15quiB2Uh+pz/lsudqobEgbOcxMZnEs2WX8/3jUS1W7EiUfNRsTxRUzMmxFOfxMMc4xzW
wBl0Xgo3gwNsEI2IByR9NMELN0agBTrAAKVE2aJ0f8bic0ZXwKbxmEzhi9YN7ekLNFcyrwplbmRz
dHJlYW0KZW5kb2JqCjIgMCBvYmoKPDwKL1R5cGUgL09ialN0bQovTiAxMDAKL0ZpcnN0IDc4OQov
TGVuZ3RoIDI1NzQgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjarVptj9s2
Ev7uX8GPyYdQnOH7YVEgSS/X4JpDkeTau9tbHJxdJTG6sQNbW7T//p6RLJl+2ZXWDXYtifSQHA7n
eWZImZRRXllWQbmosopZkVGZFVlF7BTJPz5eUQyKkuKAj1HWxBkFZV1QHJWDJP69Y8VehQiRrFLG
9ypbr9BxdJBF1+iW0Y/x+C4pomhmFmVOpJzBUBjBEe5eOsUdfTiM7dELhiKPfhzaBfTjoGrwrDza
hUzKo120ZoYq6JqVxwySSdAKd0zOo5+UgsLQlKEmhqAcoLVMyFjlM+4YNBjcoU8gxcRmRnLHlwGT
o5xUwBTYRoWmzDBK8IotDIQqtugMQ7PoHVAOJqqI9hGTimgfk5lFtE8EU6N9QqcR7bOBlWDKjMlF
tMuYD6xoDYyGJYG1rUqwOsHmUM2KPomxboZnyeIOIyWYmBPGRztrSSVZHkwSVdY7WQ/cUcjoJ2DR
MIQNIchi24jxM/qJzs0y+onoNGNKiVnJMiYYI0dls4FzoL9ss8roL0NJQp0zFGV18SDmNYwHtE9Y
NbJuhlHgIhCVZXSYAGHRXTJYGVjNk8mqXSBZOi8rk2TNsVRZRDCHQIxGYlwL8zuLe8ozklUKLOuM
ZUtBHqyKJkFT2BPaYcUMDGtlCcWiWdaQYUIxDkzqxX/FplGsjjmkmNPs4kJV71T1t9X7laq+V082
9XWzWC210fRUfffd7MnrZbNe3dy1tU8fEOdO/M2qWfw2HxO2nfBP69XX1aa+UZvV7d3JNpdwNqPe
qurVormSNhcXs+r9H19rVf00/1TPqperZVMvmw1wIIKz6m29Wd2tr2vUhK7mTX2zmL9Y/a4uDSqc
EIBLVzN0sEZLOHIrtu27GPJf//6PODSWShsYfXl3e3t1nxigyU4TXG1P7BW0UzKlV+IzeTsVoRbq
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
SsiHtxujR5CPOYN8rNAPy49gzqeeXFCPL5knHDFPPGaetMs0jEbGU16nIBE+LR8Pt/adX/4fLrqX
JAplbmRzdHJlYW0KZW5kb2JqCjIyMSAwIG9iago8PAovTGVuZ3RoIDE1OSAgICAgICAKL0ZpbHRl
ciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLVszRWMFAwU9A1NFUwMlIwMVFIMeQq5ALyDIDQ
1BIqlZzL5eTJpR+uYGjKpe8BFOfS9/RVKCkqTeXSdwpwVjDk0ndRiDZUMIjl8nRRYGBj4GGQYDBg
SGB4wHiAuYG5gZ2Bn4GPQQ4IZRhswLACDn8wfMAKfyCpgeiRAZvABzSLnQFkKuMBhgdAOwyAdvEw
sHG5enIFcgEAE0wskgplbmRzdHJlYW0KZW5kb2JqCjIyMiAwIG9iago8PAovTGVuZ3RoIDE1OSAg
ICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLVszRWMFAwVtA1NFUwtFQw
MVFIMeQq5ALyDIDQ1BIqlZzL5eTJpR+uYGjKpe8BFOfS9/RVKCkqTeXSdwpwVjDk0ndRiDZUMIjl
8nRROMCQwGDAIMHAw8DHwM7A3MDcwHiA8QHDA4YPQFjAUAGGNnBoxyCHFdohqYHoKQCb8IDxAeMB
kKnsQPN5gPYYAO07wMDl6skVyAUA5jYoMAplbmRzdHJlYW0KZW5kb2JqCjIyMyAwIG9iago8PAov
TGVuZ3RoIDE1NCAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzXQszRV
MFAwVdA1UTAxVTA2Vkgx5CrkMrYEChooGJtDZJJzuZw8ufTDFYwtufQ9gMJc+p6+CiVFpalc+k4B
zgqGXPouCtGGCgaxXJ4uCgxAwAcibEDEByBmPgAk+DGF5EG8GiBmfAAk2BuAhBxIqAK7EMMDOAss
BpZlxC0IMhliB9g2sL0QF/BjE+TjcvXkCuQCAIQmJCUKZW5kc3RyZWFtCmVuZG9iagoyMjQgMCBv
YmoKPDwKL0xlbmd0aCAxNTAgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4
2jM10LM0VTBQMFXQNVEwMVUwNlZIMeQq5DK2BAoaKBibQ2SSc7mcPLn0wxWMLbn0PYDCXPqevgol
RaWpXPpOAc4Khlz6LgrRhgoGsVyeLgoPGICgAkTIgQj2BiDBiFXwA4hZAyL4QQTzARAJFrTBKcgH
Z32AyfLjEKqB2QG2TQ7mArBbUIUYwM7jcvXkCuQCANc4JPcKZW5kc3RyZWFtCmVuZG9iagoyMjUg
MCBvYmoKPDwKL0xlbmd0aCAxMDEgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVh
bQp42jO00DO3VDBQMFXQNTRVMDRXMDFRSDHkKuQyNASKAsUtoVLJuVxOnlz64QqGhlz6HkBxLn1P
X4WSotJULn2nAGcFoKiLQjRQUyyXp4vC/wf/H/xgoCcE2cjl6skVyAUACfhPRAplbmRzdHJlYW0K
ZW5kb2JqCjIyNiAwIG9iago8PAovTGVuZ3RoIDEwMSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNv
ZGUKPj4Kc3RyZWFtCnjaM7TQM7dUMFAwVNA1NFUwNFYwMVFIMeQq5DI0BIoaKJhaQqWSc7mcPLn0
wxUMDbn0PYDiXPqevgolRaWpXPpOAc4KQFEXhWigplguTxeF/w/+P2CmKwTZyOXqyRXIBQCm+Eq1
CmVuZHN0cmVhbQplbmRvYmoKMjI3IDAgb2JqCjw8Ci9MZW5ndGggMTQ3ICAgICAgIAovRmlsdGVy
IC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNtYzsFAwUDBR0DU0VTCyUDAxUUgx5CrkMjIGihoo
mFpCpZJzuZw8ufTDFYyMufQ9gOJc+p6+CiVFpalc+k4BzgqGXPouCtGGCgaxXJ4uCgwMdQzM/xj4
HzDIMzDYMTDUkIt+gBDjBwb2Bwz/Gxj+MIBIIBsoApEi32Sgq4BuA7oQ6E6GOi5XT65ALgCT+zYD
CmVuZHN0cmVhbQplbmRvYmoKMjI4IDAgb2JqCjw8Ci9MZW5ndGggMTQ1ICAgICAgIAovRmlsdGVy
IC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNtYzsFAwUDBR0DU0VTCyUDAxUUgx5CrkMjIGihoo
mFpCpZJzuZw8ufTDFYyMufQ9gOJc+p6+CiVFpalc+k4BzgqGXPouCtGGCgaxXJ4uCn8YGP43MPA/
YGD8wMDwg4GhhlxkB0byDAz8BxiY/zEw1IFIIFseJkW2yT9AbgO6EOhOoGu5XD25ArkAKKs03Qpl
bmRzdHJlYW0KZW5kb2JqCjIyOSAwIG9iago8PAovTGVuZ3RoIDk2ICAgICAgICAKL0ZpbHRlciAv
RmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzXQszRVMFAwVdA1NFcwAVEmCimGXIVcxpZAYQMFY6hU
ci6XkyeXfriCsSWXvoeCMZe+p69CSVFpKpe+U4CzgiGXvotCtKGCQSyXp4vCfyD4hyC4XD25ArkA
D9QhNQplbmRzdHJlYW0KZW5kb2JqCjIzMCAwIG9iago8PAovTGVuZ3RoIDEwOSAgICAgICAKL0Zp
bHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaM7TQM7dUMFAwVdA1NFQwNFEwV0gx5CrksgCK
GSgYWkAlknO5nDy59MMVLLj0PYDCXPqevgolRaWpXPpOAc4Khlz6LgrRhgoGsVyeLgoWNf/+/6+3
ZmZmZmNj45GwKFDgcvXkCuQCAK8/F1cKZW5kc3RyZWFtCmVuZG9iagoyMzEgMCBvYmoKPDwKL0xl
bmd0aCA5MSAgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jO00DO3VDBQ
MAViQ2MFc4UUQ65CLnMgzwDIAYkm53I5eXLphyuYc+l7gAhPX4WSotJULn2nAGcFQy59F4VoQwWD
WC5PFwWLmn///tVYcLl6cgVyAQBQvRUjCmVuZHN0cmVhbQplbmRvYmoKMjMyIDAgb2JqCjw8Ci9M
ZW5ndGggOTggICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNoztNAzt1Qw
UDAFYkNjBSNThRRDrkIucyDXAMQDiSfncjl5cumHK5hz6XsABbn0PX0VSopKU7n0nQKcFQy59F0U
og0VDGK5PF0ULGr+/ftXY8GAAFARLldPrkAuACVdGhUKZW5kc3RyZWFtCmVuZG9iagoyMzMgMCBv
YmoKPDwKL0xlbmd0aCAxMTggICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4
2jO00DO3VDBQMFXQNTRUMDRRMDJVSDHkKuSyAAoaKBibQWWSc7mcPLn0wxUsuPQ9gMJc+p6+CiVF
palc+k4BzgqGXPouCtGGCgaxXJ4uChY1//79q7FgQACgyP//9dbMzMxsbGw8EhYFClyunlyBXACi
VBvpCmVuZHN0cmVhbQplbmRvYmoKMjM0IDAgb2JqCjw8Ci9MZW5ndGggMTAyICAgICAgIAovRmls
dGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNdCzNFUwUDBWMFcwMVcwMlJIMeQq5DIxBooZ
KBiagiWSc7mcPLn0wxVMjLn0PYCiXPqevgolRaWpXPpOAc4Khlz6LgrRhgoGsVyeLgr/QeABhGSg
GCCbxuXqyRXIBQCihikjCmVuZHN0cmVhbQplbmRvYmoKMjM1IDAgb2JqCjw8Ci9MZW5ndGggMjUw
ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNp1zsFKw0AQBuB/CbgwSHv1
UMi8gCYxKUZQC7WCOQjtyYMIBfUoVFHwIOn6JL7KPso+wh4jDYk78ewcvsMM/8xM06PTKaec82HG
xQkXGT9m9EJFHpopF8d/k4dnmleU3HKRU3Id2pRUN/z2+v5EyXx5yRklC77LOL2nasHQFqFiL56V
4seB2ExEvx9Q/zoZLAfTwY3YOMn+DJt3JuodeogdsAU+wyGgBsrBkOiBNVTQIfo2ykLHVhmMxjYy
uNBOh4T2eyEaNSOgVfJci7YU6424deLMYt0hDtbQDq7G2MPOcN4oE3/5WkP3Nu6gOkQN6KqiFf0C
weNTnwplbmRzdHJlYW0KZW5kb2JqCjIzNiAwIG9iago8PAovTGVuZ3RoIDE5NiAgICAgICAKL0Zp
bHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaZc1NCoJQEAfwESFhiNy2CJwT9Px4RK4EM8hF
UKsWEQTVMqKobQldzF3X8Aa5dCHYe5YKNjA/mBmYPx8PXZdMskXzEXGb9haekTtiNuUoD7sj+iGy
FXEH2UxskYVzul5uB2T+YkIWsoDWFpkbDAMC6IGsr8afXtT2FDe+E+mrUXmmLVUlq+0ouRQau3Cv
HcBD2Aev1iwjvaKo3YIeVyagi8gYtEolAjX9qQozqQjWSo0Y1ByKTHxKvuI0xCV+AGIMRuoKZW5k
c3RyZWFtCmVuZG9iagoyMzcgMCBvYmoKPDwKL0xlbmd0aCAxNDggICAgICAgCi9GaWx0ZXIgL0Zs
YXRlRGVjb2RlCj4+CnN0cmVhbQp42jMx0rMwUjBQAGFjSwUTA4UUQ65CLmMzIN8AxAVJJOdyOXly
6YcrGJtx6XsARbn0PX0VSopKU7n0nQKcFQy59F0Uog0VDGK5PF0U/gPBATDB/oFB/gDzBwbmB0CC
EUQwIIgEVMIARhwAEwzIBCOcYAcSQIOhBJiLJMuAjWAgmmD/AST+/38AJbhcPbkCuQAmwVdWCmVu
ZHN0cmVhbQplbmRvYmoKMjM4IDAgb2JqCjw8Ci9MZW5ndGggMTgxICAgICAgIAovRmlsdGVyIC9G
bGF0ZURlY29kZQo+PgpzdHJlYW0KeNqVzb0KAjEMAODIDYUsPoJ5AW0rAW87OBXsIOjkIIKgjoKK
zt6j3aP0ETo6CLV3EQQHwRI+SJofzgc2J0ND6lviEbGhvcUzMqeiIbbyszti6VCviBn1LJVRuzld
L7cD6nIxppRPaG3JbNBNKMZYASQDgArwBMgCFK3dqlHVrb4xE3+H//TLrOyRnc3+9tbb0JGLd7nb
dvZEmf1D86XyJ/VIbmOss+CTkCK9AnDqcIkvSHllZgplbmRzdHJlYW0KZW5kb2JqCjIzOSAwIG9i
ago8PAovTGVuZ3RoIDE3MCAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnja
MzbWM7BQMFAwUtA1VDA2UjAyV0gx5CrkMrIECgKFLSAyyblcTp5c+uEKRpZc+h5AYS59T1+FkqLS
VC59pwBnBUMufReFaEMFg1guTxcFhn8MDOz/DzDwMz9gkGH4wGDHUMFgz1ADxDZAbMcgB8QMyNj+
HwPj/38M7B/sGOQP2IHV1EHxHwY7CQSuk6gD4/sW9s39H/j/8T9g/sF+gMvVkyuQCwDuGjAACmVu
ZHN0cmVhbQplbmRvYmoKMjQwIDAgb2JqCjw8Ci9MZW5ndGggMTQ2ICAgICAgIAovRmlsdGVyIC9G
bGF0ZURlY29kZQo+PgpzdHJlYW0KeNozstQzNVQwUDBS0DVUMDIHoRRDrkIuIxOgIFDYAiKTnMvl
5MmlH65gZMKl7wEU5tL39FUoKSpN5dJ3CnBWMOTSd1GIBhoUy+XposBgf4Dh/w/mBzbsB/j4G+Tl
GeztwKiOQa6GgQGI/mBDQPE6EGK2Y2CWZ2Djb2BjP8DD/MGC4f8DBvsGLldPrkAuAB5CKIQKZW5k
c3RyZWFtCmVuZG9iagoyNDEgMCBvYmoKPDwKL0xlbmd0aCAxNjIgICAgICAgCi9GaWx0ZXIgL0Zs
YXRlRGVjb2RlCj4+CnN0cmVhbQp42jM20zMzVTBQMFLQNVQwNlEwMVBIMeQq5DI2BAoaKJgYQmSS
c7mcPLn0wxWMDbn0PYDCXPqevgolRaWpXPpOAc4KQL6LQjRQTyyXp4sCAwPzAwYGeyhmfwDhE4Ht
mx8w/n/8gPmB9QP2Bv4H/EC98kBxOyCuA+IaKP6DB8PU1EH1yYHNAJrVIP+B+UHxP6D5/xjqmR9w
uXpyBXIBAFnQSpAKZW5kc3RyZWFtCmVuZG9iagoyNDIgMCBvYmoKPDwKL0xlbmd0aCAxNTYgICAg
ICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jOy1DM1VDBQMFLQNVQwMgehFEOu
Qi4jE6AgUNgCIpOcy+XkyaUfrmBkwqXvARTm0vf0VSgpKk3l0ncKcFYw5NJ3UYgGGhTL5emiwGDP
wPj/AfPDD/wNP+QZauQZ7OwY7OoY5OoY5GsY5P+A0X8w+MPAAEc1DAx1IMRsx8Asz8DO38DHfkCG
+UEFw/8HDPYNXK6eXIFcAEtCLkcKZW5kc3RyZWFtCmVuZG9iagoyNDMgMCBvYmoKPDwKL0xlbmd0
aCAxMzAgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMy0DM1VzBQMARi
IxMFE0OFFEOuQi4jIyDfAMQFSSTncjl5cumHKxgZcel7AEW59D19FUqKSlO59J0CnBWAfBeFaKDK
WC5PFwUG9gcM9h8YaioYPvxhfPCHGYgOVLAfMGA/wIAV/f/fAES4ZIlB/A8Y6v+BEJerJ1cgFwCq
jzshCmVuZHN0cmVhbQplbmRvYmoKMjQ0IDAgb2JqCjw8Ci9MZW5ndGggMTkxICAgICAgIAovRmls
dGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNptij0KwkAUBj9JEXggewEx7wK62SyINin8AVMI
WlmIlVpaKAoWEnMTrxLwIjnClhbCcwOCCBbTzIy13bjPMSfcMZat4aTHW0MHSmobsx180mZPw4z0
kpM+6an3pLMZn47nHenhfMSG9JhXhuM1ZWNGHlQNubvw8XIKzkV4oo0LUlz/Urf68S/Uo0JTCrRy
oIUvbY8S3+WFUASRSJEiKi8IPUHl0PjBu/LqWwpVqDJHIE/gVoImGS3oDYcsQ30KZW5kc3RyZWFt
CmVuZG9iagoyNDUgMCBvYmoKPDwKL0xlbmd0aCAxMzUgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVj
b2RlCj4+CnN0cmVhbQp42jM20zMzVTBQMAJiYxMFEwOFFEOuQi5jQyDfAMQFSSTncjl5cumHKxgb
cul7AEW59D19FUqKSlO59J0CnBWAoi4K0UAtsVyeLgr8DQwM/6FYHoj5icWNfxj4+/8z8M/hb+Df
wH6A/wEQH2B+AMcN5GP5A+wf/v+w/wfCXK6eXIFcAO+ARf0KZW5kc3RyZWFtCmVuZG9iagoyNDYg
MCBvYmoKPDwKL0xlbmd0aCAxMTQgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVh
bQp42jO00DO3VDBQMAJiQzMFEwOFFEOuQi5DYyDfAMQFSSTncjl5cumHKxgac+l7AEW59D19FUqK
SlO59J0CnBUMufRdFKINFQxiuTxdFPgY7BtgkI8BFbA3/AdC+QZ+oqB8w/8f/39wuXpyBXIBALuE
KMQKZW5kc3RyZWFtCmVuZG9iagoyNDcgMCBvYmoKPDwKL0xlbmd0aCAxNjkgICAgICAgCi9GaWx0
ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jM20bMwVzBQMAJiY2MFEwOFFEOuQi5jAwUQNIFI
JOdyOXly6YcrGBtw6XsARbn0PX0VSopKU7n0nQKcFQy59F0Uog0VDGK5PF0U+BsYGP5DsTwQ85OE
7X9AsPwBIAbybYC4AogfMPA3HmDgb25g4O8HqpsPpPcD8Xeg2GGQ3Acg/gFUB8I1QGwHMguI5Rv4
G/gPAE178P+H/R8Q5nL15ArkAgBJMT+6CmVuZHN0cmVhbQplbmRvYmoKMjQ4IDAgb2JqCjw8Ci9M
ZW5ndGggMTA1ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNoztNAzt1Qw
UDACYkMzBRMDhRRDrkIuQ2Mg3wDEBUkk53I5eXLphysYGnPpewBFufQ9fRVKikpTufSdApwVDLn0
XRSiDRUMYrk8XRT4G/4DoXwDP8VQ/sD/H/9/cLl6cgVyAQD5lS0HCmVuZHN0cmVhbQplbmRvYmoK
MjQ5IDAgb2JqCjw8Ci9MZW5ndGggMTUwICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+Pgpz
dHJlYW0KeNozNdEzNVIwUABhIMPITCHFkKuQy8QSyDcAcUESyblcTp5c+uEKJpZc+h5AUS59T1+F
kqLSVC59pwBnBUMufReFaEMFg1guTxcF/sY/DPUMDP/7/zP/P8Dwfw5/O/MDBvkN7GcYPzDwP2C/
AaIOMH9g+IFONQDV0YOSP8D+gfEPw/8f9v/4/zdAKS5XT65ALgBsxVkvCmVuZHN0cmVhbQplbmRv
YmoKMjUwIDAgb2JqCjw8Ci9MZW5ndGggMTI1ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+
PgpzdHJlYW0KeNozNtMzM1UwUDACYmMTBSMzhRRDrkIuY0Mg3wDEBUkk53I5eXLphysYG3LpewBF
ufQ9fRVKikpTufSdApwVgKIuCtFALbFcni4K/I1/GP73/2f4P4e/QX4D+wH+B0B8gPkBHDeQj+UP
sH/4/8P+HwhzuXpyBXIBAKfOPjcKZW5kc3RyZWFtCmVuZG9iagoyNTEgMCBvYmoKPDwKL0xlbmd0
aCAxNTEgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jM21jOwUDBQMFLQ
NVQwBtLmCimGXIVcQNoAJGwBkUnO5XLy5NIPB8pz6XsAhbn0PX0VSopKU7n0nQKcFQy59F0Uog0V
DGK5PF0UGOwbGBj+P2BgfvCDgb3BhoGfQQ4I+RnsGPgbQLiGgf0ADP9hYH+AC8PU1DHwHwDpA5kh
D4QgU0BmM/7/wACyi8vVkyuQCwDrHTSXCmVuZHN0cmVhbQplbmRvYmoKMjUyIDAgb2JqCjw8Ci9M
ZW5ndGggMTY3ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNtMzM1Uw
UDBS0DU0VDA2UTAyU0gx5CrkMjYEihooGJtDpZJzuZw8ufTDFYwNufQ9gOJc+p6+CiVFpalc+k4B
zgpAUReFaKCmWC5PFwX+xj8M//v/M/zfw39A/gP7A/4DzB/4GxhB+Ad/A8MfKK4B4jo8uAahFqjv
AFD/AeYH/B/YD/DvkW/gB5rP3/yDASiPE8sfYGD4/wOCuVw9uQK5AD/sQ28KZW5kc3RyZWFtCmVu
ZG9iagoyNTMgMCBvYmoKPDwKL0xlbmd0aCAxNzAgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2Rl
Cj4+CnN0cmVhbQp42jM20bMwVzBQMFLQNTRUMDZRMDJTSDHkKuQyNgSKGigYm0OlknO5nDy59MMV
jA259D2A4lz6nr4KJUWlqVz6TgHOCkBRF4VooKZYLk8XBQb7hgTG/w8eMH8oeMB+QPIBfwPvA3kG
9gf2QFzHwAzGNUD8Bw+ugaoDYXsgBumXb+B/wH9A+gHzg+IHjP8fP2CoZ37AwIAPs39gYLD/B8Jc
rp5cgVwAtNdI0AplbmRzdHJlYW0KZW5kb2JqCjI1NCAwIG9iago8PAovTGVuZ3RoIDEyMiAgICAg
ICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLVszRWMFAwAmETBSMzhRRDrkIu
I0Mg3wDEBUkk53I5eXLphysYGXLpewBFufQ9fRVKikpTufSdApwVgKIuCtFALbFcni4K/OwH/st/
+G/xQ77wB3/iD/6DP/gPfOA/wMDfQAKSP8Dw/w8Icbl6cgVyAQAJcCsxCmVuZHN0cmVhbQplbmRv
YmoKMjU1IDAgb2JqCjw8Ci9MZW5ndGggMTYzICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+
PgpzdHJlYW0KeNotiTsKAjEQQCdsEZjGIzgX0GxG8AOCsiqYQtDKQqzUUlBRsNv1ZtN5jZxAUm6x
GL+8V73H7Sb3KCWmhiVuEXdoa/GInNIH7v7OZo+ZQ7MkTtFM3xmNm9H5dNmhyeYjsmjGtLKUrtGN
KSmHtaf0tVwTOSgJ8LcEqQBygbyCQYR6LHQUiB60lySICgLBfw3gg/Klkocu7hFuFeDE4QJflqw9
IwplbmRzdHJlYW0KZW5kb2JqCjI1NiAwIG9iago8PAovTGVuZ3RoIDEzNiAgICAgICAKL0ZpbHRl
ciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLVszRWMFAwVNA1VDAyUjA2U0gx5CrkMjJQAEFj
c4hMci6XkyeXfriCkQGXvgdQmEvf01ehpKg0lUvfKcBZwZBL30Uh2lDBIJbL00WB4QADHDHCEPMB
BvYDDPwHGOQPMPz//wCI2MEihJABJmJ+kABEjB+ABjUw2DNwuXpyBXIBAA9/Nj4KZW5kc3RyZWFt
CmVuZG9iagoyNTcgMCBvYmoKPDwKL0xlbmd0aCAxMjkgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVj
b2RlCj4+CnN0cmVhbQp42jM20zMzVTBQMFLQNVQwNlEwMlNIMeQq5DI2BAoChc0hMsm5XE6eXPrh
CsaGXPoeQGEufU9fhZKi0lQufacAZwWgqItCNFBPLJeniwJ/A/OD/w32YCzfwP4AxKcMs4MxewP/
A/YD0h+YHxT/Y/z/+B9DffMDLldPrkAuAKQRPqMKZW5kc3RyZWFtCmVuZG9iagoyNTggMCBvYmoK
PDwKL0xlbmd0aCAxNTcgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jM2
0bMwVzBQMFTQNVQwNlYwMlVIMeQq5DI2BAoaKBiZQWSSc7mcPLn0wxWMDbn0PYDCXPqevgolRaWp
XPpOAc4KQFEXhWignlguTxeF/z/Y/4Ew/wPGD/wHGB+wH2A8wP6A8QDzA8YG5g/MDYwfmBlAmOEH
GwTX8EBwnQwDg50EBMsbQDD/AwRmPwDBzA1gzOXqyRXIBQAQki3LCmVuZHN0cmVhbQplbmRvYmoK
MjU5IDAgb2JqCjw8Ci9MZW5ndGggMTE2ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+Pgpz
dHJlYW0KeNozNtYzsFAwUDAFYiNzBWMLhRRDrkIuI0Mg3wDEBUkk53I5eXLphysYGXLpewBFufQ9
fRVKikpTufSdApwVgKIuCtFALbFcni4KDBYMDBUMjD8Y5H8w/PvB8OAHAwNtEOMfhv//fwARl6sn
VyAXAAAfOz4KZW5kc3RyZWFtCmVuZG9iagoyNjAgMCBvYmoKPDwKL0xlbmd0aCAxODQgICAgICAg
Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42k3MPQrCUBAE4AkBhUVSWwjuCXwvCUJs
FPwBUwhaWYggqKWgomARNEfzKDmCpYX4nKCFLF+xM8vGccsmajWmqKNxoptQDhK1udtyLYv1Tvqp
mLlGbTFjpmLSiZ6O562Y/nSgoZihLkK1S0mHCgf4rkDgP1DHExYZVrjigh5e9EYz/5cRvgD2QJeu
lNET8B58WNAdqPIsYNyghPZejsLLy/Hho0I1ajqHHt3cG+5HRqnM5AOcXzifCmVuZHN0cmVhbQpl
bmRvYmoKMjYxIDAgb2JqCjw8Ci9MZW5ndGggMTg3ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29k
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
PNH/IL0IPpWCJjoyKdGZoUICenTyGJ8OylUcmY+rx1VOrcvHK+ZJWtTgXtw+oR/gaqmLJHHNG6nC
jQLGSU3uTVLaJyr5bXNlHP8LY6jSTECFoNxJFwoGOUzgDndutmkKZW5kc3RyZWFtCmVuZG9iagoy
NzEgMCBvYmoKPDwKL0xlbmd0aCAyMjYgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0
cmVhbQp42nWPPW7CQBCFZ+VipWl8BM8FkmXFBtJZ4keKi0ihokBUgZICRGr7aD6Kj7ClC+TJ21gK
FMkWn1bvvXmaefHP3stEpvLkJbxKmMnB85lDgDiRMB+dzxMvKnZbCYHdG2R21btcL19HdouPpXh2
K9mhaM/VSojKnogy1YYoV+0gqEaiuk+GtvZGRptsQAQfsgPEJr8lFmDdFn1iCpfdyHpk/GVMLKI+
Mr2/CBfd/7B+ZH9neWdMW400Mce2prOKA7sMF9rWaEt5k+pKDA8GgUIVYftztVH4kCDzuuINfwPu
RIoTCmVuZHN0cmVhbQplbmRvYmoKMjcyIDAgb2JqCjw8Ci9MZW5ndGggMTMxICAgICAgIAovRmls
dGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNtQzNFIwUDABYiNLBXMDhRRDrkIuIxDfAMQF
MZJzuZw8ufTDFYxMuPQ9gKJc+p6+CiVFpalc+k4BzgqGXPouCtGGCgaxXJ4uCgw1DIz/GZj/N7D/
PwBE/P8fICOIIFAWqAaokgCoP1D/HwUx/z/ASHv0HxVwuXpyBXIBANnwf0QKZW5kc3RyZWFtCmVu
ZG9iagoyNzMgMCBvYmoKPDwKL0xlbmd0aCAxMDcgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2Rl
Cj4+CnN0cmVhbQp42jM21DM0UjBQMAFiYwMFM0uFFEOuQi4jUyAfzAVJJOdyOXly6YcrGJly6XsA
Rbn0PX0VSopKU7n0nQKcFQy59F0Uog0VDGK5PF0UGOoPMPz/j4mZgZhxBOD///83oGMuV0+uQC4A
hFOXnAplbmRzdHJlYW0KZW5kb2JqCjI3NCAwIG9iago8PAovTGVuZ3RoIDE2MiAgICAgICAKL0Zp
bHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzPSMzJRMFAAYTMgZaqQYshVyGVqCuSDuSCJ
5FwuJ08u/XAFU1MufQ+gKJe+p69CSVFpKpe+U4CzgiGXvotCtKGCQSyXp4sCQ30D+z8Ghv//G+z/
N4Co//8fAKnG//9/AKn2D/Z/gFR/g/wfBub/8xn4/zEw/p8HofZAqB8M7P+B1AcU6gE26sBQov7/
/9/8//8/fBSXqydXIBcA41urGwplbmRzdHJlYW0KZW5kb2JqCjI3NSAwIG9iago8PAovTGVuZ3Ro
IDIxMyAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjapZAxCsJQDIYjDkKW
HqG5gL4WW6VToVbwDYJODuKkjg6KzvVoPUqP0LFDMSa21UVcfBA++PPzkj/hZOT55NGYhj6FYwom
dPDxjEEkokfBtOnsT5hYNBsKIjQLkdHYJV0vtyOaZDUjH01KW/lohzYlALcGeT3mXDBgLgUus6pZ
5bCA8x7fQUs8/QdAXMBAUYIjNrcCpwItV1F3iBUPdak7U/B38Av3P/FrQrdLg27P+pW+zdAmatHX
tIWEluz5+xIxs7TBYa4+N2suiHOLa3wCXcWPZgplbmRzdHJlYW0KZW5kb2JqCjI3NiAwIG9iago8
PAovTGVuZ3RoIDIyNyAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjatdGx
agJBEAbgWSyEaXwE5wV07/ROtBKMglcEYmUhViZliojW56Mt+AA+QnyELa9YHP+VRITEVLFYPtjZ
Zeef7XXanUwS6UorHUjelyyX15Q/OI+7ifSyr9LqnUcF27nkGdsp9tkWz7JZb9/Yjl6eJGU7lkUq
yZKLsVDpGhWRqlPdgb3qERxUK/DphgEoNU9U00B1JYNCTXdGPXAGp7GMum9I/S1ldZ9h+H9+f8//
7OzSbmzeXaNUyIdggRox5imGNhhBGQAG4gHGE69iWBRp+gtEj0Hjn/wNTwqe8RkIpdzGCmVuZHN0
cmVhbQplbmRvYmoKMjc3IDAgb2JqCjw8Ci9MZW5ndGggMTYxICAgICAgIAovRmlsdGVyIC9GbGF0
ZURlY29kZQo+PgpzdHJlYW0KeNozMdUzN1UwUDAGYhNjBRNThRRDrkIuY0sg3wDEBUkk53I5eXLp
hysYW3LpewBFufQ9fRVKikpTufSdApwVDLn0XRSiDRUMYrk8XRQY6hvqGf7/b/z/4P//5v8f/v/v
//8DSPT/+f9/vvw/5v/75P8x/t8DIn7AiQ9ggv8P4/8H7D+ABOMDIMHAgEwcoDfx/z/QYmwEl6sn
VyAXAG6QgRcKZW5kc3RyZWFtCmVuZG9iagoyNzggMCBvYmoKPDwKL0xlbmd0aCAyMjMgICAgICAg
Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42kWPMU7EQAxFP5piJTc5wvgCMDva7CKq
kZZFIgUSVBSICii3AEFL3HGtHCVHSJkiirEVtDRvNN/f/nZdX+QrXnPN55lre3f8mumdNlsT7Xu5
VF6OtG8oPfJmS+nWZErNHX9+fL1R2t9fc6Z04KfM62dqDow4BYHqjwRVlcoRh6BSOhgERVogyrdj
BqoTVqL/EEcPQK2CVgeHlYpq5xgQVSfY+BkehDMPco+42LnTEJYZvbWXBaPlOqoF0wm+RmcJ8Q++
qXW30DHMdpClTaojhmJqvzI73TT0QL8qnX8JCmVuZHN0cmVhbQplbmRvYmoKMjc5IDAgb2JqCjw8
Ci9MZW5ndGggMTczICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMdYz
NVMwUDBS0DVUMLZQMDNWSDHkKuQyNgUKGiiYmUBkknO5nDy59MMVjE259D2Awlz6nr4KJUWlqVz6
TgHOCoZc+i4K0YYKBrFcni4KDIwPGBiwEsxYCHY4wQ8n5OGEPYioBxH/gQQziOD///9/w38sBFgJ
nQigd4gngP78/4H5AEM9hGA/wGD/g7+BQf6PPNg3QO///wMMof8/IB7mcvXkCuQCAA0sj3QKZW5k
c3RyZWFtCmVuZG9iagoyODAgMCBvYmoKPDwKL0xlbmd0aCAxNjYgICAgICAgCi9GaWx0ZXIgL0Zs
YXRlRGVjb2RlCj4+CnN0cmVhbQp42tXKKw7CQBAG4GkqNhnTIzAXgO023dompSSsIAGFICiKREBA
L0dbxzXqsDgQpMMQgqjBo778jyIbZTmllNPQUCFaagzu0VopJRafZbPDyqFekrWop1KjdjM6Hk5b
1NV8TAZ1TStD6RpdTeADRAzMIebfxBwgYTkHUH9J0mPQo2SALy14PoNvozt34B/qKpTMFyFhVkLM
3RvwN/UEnDhc4Aum5KRkCmVuZHN0cmVhbQplbmRvYmoKMjgxIDAgb2JqCjw8Ci9MZW5ndGggMjE2
ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNp9zT1qw2AMBmAZDwEtvkGs
E+Szi00pmBryA/VQSKcMIVPasUNDChkCydF8lBzBowcn6quvobgEAhIPkhBv/jRKHyQR6/xRskze
U/7iPMOc2GiH9SePK3YLyTN2L9iyq15lu/n+YDeeTyRlN5VlKsmKq6moKoXa3SPQE9EzkVGAxnMA
O9D+gSrR2JcdBSAG+IkvFIII1EBpAAbgaBwjEAIy6isxQO7wF4RbfOFp9sah2Xna1ijbxnP2xOeT
Rz2R1rcgt0eo1CO49KHuH5bKs4rf+AfglXBICmVuZHN0cmVhbQplbmRvYmoKMjgyIDAgb2JqCjw8
Ci9MZW5ndGggMTI2ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozNdMz
MFQwULAEYhMLBTNThRRDrkIuYwsg3wDEBUkk53I5eXLphysYW3DpewBFufQ9fRVKikpTufSdApwV
DLn0XRSigcbEcnm6KDAwMB9gYGBgBxHyIKIeSDD/BxL2QOL/fyzE4f8wJSOMAHr//x9sBJerJ1cg
FwDYBpqfCmVuZHN0cmVhbQplbmRvYmoKMjgzIDAgb2JqCjw8Ci9MZW5ndGggMjY2ICAgICAgIAov
RmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNpt0LFOwzAQBuCLPES6JY8QPwFJpKarpbZI
ZECCiQExAWMHEEgdkOJH86P4ETx2iHr8d6KABEM+xfbvs8/j+qIffO9H/Qa/Hv3TwC+80nGvQ/15
3PNm4u7Or0burjDL3XTt317fn7nb3Gz9wN3O36PMA087TySZiBo5wSASMSGYcvBI9eKw0GSahdqI
9Rg0m2aiGiaY54JwlkKVFGw5e4T0n8jDkNU2qTj5LNa0wi/1du5LpHFitPvSt+2iBisQdBPN2Yol
K6C/TrtDN7bJIq1FQrQ40YHopFaL6lALzSNSqEkqmodoHn6gasE6uVLhlaToW0muzcZszWDOpvyY
/sqXE9/yJweJxCYKZW5kc3RyZWFtCmVuZG9iagoyODQgMCBvYmoKPDwKL0xlbmd0aCAyNTggICAg
ICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42oWQsU6FYAyFe8NA0uV/BPoCCiT3
ZyW5XhMZTHRyME56RweNzvBoPAqPwMhAqD2FEOPi8g3t6elpY3VdlFJIlKtSYilVlLeSP/gYrVhI
Va2d13c+NZw/yTFyfmdlzpt7+fr8vnB+eriRkvOzPJvRCzdnIdKRiFJVY6baE7WKklI7UTJRvVA6
WAcMSmEybRcWMAN7tP6j6/t0xpR5Bu1sW8BKOIMLWM+g7aUt1kEHF3ZIuHjOaU+betpNuc0G91n9
U2fiosSNVh4265XTb4YerEfQYuzU+Q/HncnGAe8yjri0HcC6Q5JsxI0WTPEEVRj6h1vPn/ldfijf
NvzIP/pktaMKZW5kc3RyZWFtCmVuZG9iagoyODggMCBvYmoKPDwKL0xlbmd0aCAxMTMgICAgICAg
Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jM0MdIzNFQwUDA0VdA1MVcwNDJX0DW2
VEgx5CrkMgTLGChYwGSTc7mcPLn0wxWAMlz6HgoWXPqevgolRaWpXPpOAc4KQEEXhWigplguTxcF
+/9I4Ec9Mu8PMuf/P+J5qKag2sDl6skVyAUAP96AXQplbmRzdHJlYW0KZW5kb2JqCjI4OSAwIG9i
ago8PAovTGVuZ3RoIDEyOSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnja
MzXQMzdVMFAwBBHG5grm5gophlyFXEaGQL4BiAuWSc7lcvLk0g9XMDLk0vcACnPpe/oqlBSVpnLp
OwU4KwBFXRSigXpiuTxdFBj/MLD/Z+D/3yD//4D9/wf1/z8A0f//PzARRAqoBqgSqB6oC6iXboBC
d3K5enIFcgEAA8ttNgplbmRzdHJlYW0KZW5kb2JqCjI5MCAwIG9iago8PAovTGVuZ3RoIDI2NiAg
ICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzQy0TM3UzBQMAViQ0NTILZQ
SDHkKuQyNLAEChmABUCSyblcTp5c+uEKQAkufQ+QOJe+p69CSVFpKpe+U4CzgiGXvotCtKGCQSyX
p4vCfxh4wAAEcN7/BhTeDxTef1TeARTeB5A59v//AEn2/2AKymOo//8PiccPsQPKYwYbA+MxQJwD
49WDDYXx7MGugfHkwTSMxw+2AsZjB7sUO48ZbD0S7wCCx4if9wAXjwHse7J4PwYtjywf4QslfKGL
ESsNuGPzH854R00TqOkFNS2hpDPUNMgPtg5r2mWHZAggDznv2CNnHTgP5gYkhTAeNODgITjKG+UN
Oh6ixKcej8vVkyuQCwDpfBYwCmVuZHN0cmVhbQplbmRvYmoKMjkxIDAgb2JqCjw8Ci9MZW5ndGgg
MzU2ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNq1k7FOxDAMhlN1iJQl
jxC/ALRVBdxNkY5DogMSTAzoJmBkAMFKu/Fa3XiNvAE3dqgwsZP2ggDdRAfrq5PY/v8oy+qwPoIS
juGggmUJJ0u4q9SjWtQ+WcIirtw+qFWjimtY1Ko492lVNBfw/PRyr4rV5SlUqljDTQXlRjVrEEIY
7EX4csTPiBZxSnvC7bSOODJqdP6P0fhMGzZbR+UcYdvRJj5HUeLAOFAVKpFRzLgfx4yr5ZxA7LgZ
lUmx/wUttduLoZGhSRIUPElAu51R9zMGgf+PdkL93eyA7Yw+OcZjxquLSIsBWXJUQeICcgzIzkXx
ZG20BKdd+c4duXNH8+0lZTjaFN2EbYrRSekSxBS7P9Huw/YH9sGLqVtEuv6PGXNGHl2+46B7Q9r0
G2GwzOs2vSQfXr2dbedDl43eIySjnB4Y+VKc4Bdj+LFYOi1xdwNIlSXbIcNAQqizRl2pL8C+aukK
ZW5kc3RyZWFtCmVuZG9iagoyOTIgMCBvYmoKPDwKL0xlbmd0aCAzMzIgICAgICAgCi9GaWx0ZXIg
L0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42u2TzUrEMBDHU3Io5JJH6LyANllYoafCuoI9CHryIJ5c
jx4UPe++gY/gq/RN7CP0WLFkzCRDtys96OJBwRaSX5PORzL/scYezsHAHA4sFEdgZwZWVt2rwgC9
dmbj3s2dWlQqv4TCqPyU1lVencHjw9Otyhfnx+C/l3BlwVyraglCYif4QfwZFusRZyPW//yrOMF2
4AxxYF/Mhll67pm1Z2QuuwSxjuznLBhofHNCpMGrxncfTAZjb0hL6CI3QSKRN34qadTRdUlOmbPI
LoZsaOBU2uEs6Q53A8sd7ic5IdeTjN9iQcfYn+s/yHuf92t3O10XucPTNR1rYMysmX6kJRc11nzW
G+swaPJ1s9XqS73V8HNLqUVtpx2HEtolPYcSuhdIpnXkdSu5d0KrcSKtN4y9IXRDdxB+F7qmBNzQ
q2lcVieVulAfGdbPDgplbmRzdHJlYW0KZW5kb2JqCjI5MyAwIG9iago8PAovTGVuZ3RoIDMwNSAg
ICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjazZKxTsQwDIZTZajkpY9QvwD0
ytC7TpWOQ6IDEkwMiAkYGUAwN4/WR8kjdMxQ1dhOex24Eyte+jmx/zTxvysvr3CDFV6UuK1wW+Nr
CR9Q1by4wd288/IO+xaKR6xqKG55GYr2Dr8+v9+g2N9fYwnFAZ9K3DxDe0DDQaPRyIm8AhFN8rUM
5BgyAdlryFsKWsL13JdIs+XqlAZZllovmWO5XjLHTc5o1pFK9EblWStCR15lBOwKIUL6CzI96ggs
mK/g9SKuUUgnEyEJM8znanQr9H8C/Q849Yf+HDQnYFhmfQaSkOk7r2BDGh1ihyPYaJB0SCJkPEFS
4OGqZXIZt0DjdOQKcTyd2EKk1Tbin1G9xlmY75rHeY5GO9V+iyGnxaLDYtrljaQZblp4gB8mIQdO
CmVuZHN0cmVhbQplbmRvYmoKMjk0IDAgb2JqCjw8Ci9MZW5ndGggMzI1ICAgICAgIAovRmlsdGVy
IC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNrt079OhDAcB/AShiZd+gj8XkChl6hhanKeiQwmOjkY
p9PRQaMzt/labr4GmyubDA0/218L1zNc4r9BEyFpP5SW0vJFFWp3DwrYhx0F5QGoWQFXStyKsgB3
qpny95Y3Yl6J/BzKQuTHrl3k1Qnc3z1ci3x+egj2egEXCopLUS2A+SNBE8Rq/BkzHVlG5v/+HcZu
dIa4GoyITTC3NsG2C/bBGtsUH73tSKZfyKkr5SuZ26fbBrLExkWMnOETDTL0mBWFxlC5zgz2fkLj
RvVjfpLhpUyYKpimmrDEdtLZhptJ6w+4pqV8zfgH/Z316k/u7bbvsu2b8g13UU66MT/pEOR1lrIo
byF7yN5lMspqnGE+ZLulzPcsTKaf0Xe1LfYfoQ2ssZHIvbX/p8jSVm1w4qpg26lng1O7fFqeOKrE
mXgDy5bhRwplbmRzdHJlYW0KZW5kb2JqCjI5NSAwIG9iago8PAovTGVuZ3RoIDMxNiAgICAgICAK
L0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjanZI9TsQwEIUduYjkxkfIXADyI0FCZWlZ
JFIgQUWBtgJKChC06z3aHiVHSLlF5MEzdryIFVKEpSSfPeN5Y+d1zfklVHABZzW0HbRX8FKrd9U2
frGCLkae39SqV+UjtI0qb/2yKvs7+Pz4elXl6v4aalWu4amGaqP6NQghMpwEjwJxz4CIB/rmHlyM
IO48WBwMDpTifHQUQvrMjLJ5RpU0FTGONvkdBsPDM0vFKI4JJpYZshkkK0scE3Bh0tEM2RGmBAX3
JH6AieBOwYZTJrAJ8BRwESwZ4WrF/8AugiGA+RuKI4y/QEcwCfLgAmFn2Mpole3sGZcFg2ST7zWC
ZZAHr0qWyUevQS3qwWuQfLEXoaLZiVAR6S/6l3TxHHrirp3gPE33N7ALog/p1l1sez4A66qbXj2o
b2FmK5oKZW5kc3RyZWFtCmVuZG9iagoyOTYgMCBvYmoKPDwKL0xlbmd0aCA0NDMgICAgICAgCi9G
aWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42r2TvUrEQBDHd7kisE3e4G5fQHPhPLwDMXCe
4BWCVhZipZYWinZC4pvlUe4RUqYIO87HZjdiRLBwIJNfZj9n/pN1frhY2rld2gN8r9b2eG0fcvNs
VguMzm2eH/mx+yez2Znsxq4WJrugAZPtLu3ry9ujyTZXZzY32dbe5nZ+Z3Zbq7wlLfkUaqUKh6QB
HDkOAtQJQIVDiA1+4yxwGrqiRZxAgwPlB+xVgs8MOo2vFOcn0GiOKJy0JywYOVo6OqUlBMZO4Wbo
Fbmy0oJOTXEFI13mC9KdS8LEY/UTph7r/8ZfbzbIYjzNUAcpjHehZrRYKkno60voqy6ykhY168x6
VBJteD7alNVkPGWNGU9YecZ37gdB6RKyVgUbRT2O3W/oRhEGWEWsI8YzgKyNKHUQ5C1L4Spio6S/
0bqIjisp5v8FkKokEHaeROyjTdiBrgEBNZ+T0hlekRIx7RVxLBs3gJMfkfIKSKqXvlDYMj2iijDA
9hvO/o5x33CaG2J/Mwz5ZqI1sx7bPjdK3GdMXek7kyJeN+5KOY43KuhbupI6VRyVmspZRzn9TYPe
utdVZvNMc74z1+YTLnbekQplbmRzdHJlYW0KZW5kb2JqCjI5NyAwIG9iago8PAovTGVuZ3RoIDE1
OSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzXQMzdVMFAAYRMzBUMj
Q4UUQ65CLhMDBRAE8UFSyblcTp5c+uEKJgZc+h4gYS59T1+FkqLSVC59pwBnBSDfRSHaUMEglsvT
RYGB8Q8DAwP7fyDB/7+BgUH+/wEGBvv/DxgY6v9/gBL///8gRCAUg/WCTQGbBzYZbAd9ASPQVfX/
8RFA8gfIpT9ALh0lyCP+4wVcrp5cgVwAIl/4WgplbmRzdHJlYW0KZW5kb2JqCjI5OCAwIG9iago8
PAovTGVuZ3RoIDMyNSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnja7dOx
SsRAEAbghCsC2+wjZJ/AJN4huSpwnmAKQSsLsVJLC0XrBHyxA1/kOtuUJ4T8JjM7OydWcoWNC4Ev
m/DP7IQsT44Wc5e7xXgt5644zt19YZ5MWY4bOd1Pj+4ezao22bUrS5OdT9smqy/cy/Prg8lWl6eu
MNna3RQuvzX12kUxdhEv4FBGjTJV2n/+FZPx63QHMapGeVqEEkkfaHeBaRdYbQLRCmOEzmaDNtkH
UhaTspjVNrBphZxF5CwiZxE5i8hZRM4iNptAhJnNqFtigvCCVaYICTQaZqOU/8HiE5B28I2DUk6B
D+U74I+JN3DlkTHg59BHgWPr8IPq5PebWClT9MpBaJUJsMfWc6aMuQnPraevTGz2uRNW6IXpPgeh
BYSJkisLN56xko8v7IRU+QenafOgK8j6Pc1Zba7MF88I2DoKZW5kc3RyZWFtCmVuZG9iagoyOTkg
MCBvYmoKPDwKL0xlbmd0aCAxMTUgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVh
bQp42jM10DM3VTBQAGETcwVDIwOFFEOuQi4TQ6CAAZgPkkrO5XLy5NIPVzAx5NL3AAlz6Xv6KpQU
laZy6TsFOCsAhV0UooGaYrk8XRQYGP//YGD4/58wyVAPJuXBJP8oOUrSm/wPAg34SS5XT65ALgB3
9iXZCmVuZHN0cmVhbQplbmRvYmoKMzAwIDAgb2JqCjw8Ci9MZW5ndGggMjE3ICAgICAgIAovRmls
dGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNrt07EKwkAMBuCTDkIWH6F5Atsb1HaxUBXsIOjk
IE7q6KDoJtRH66P0ESoOdiiNia1U0UFx9eB+vuQu3HTa1s0W2tjm7TrYcXCpYQOu5tqWUg4Wa/AD
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
gdX3OqzLemzAxqyu9bWZQug3vb739wuD7DfGWd1FbPoon92bfvTN0oaS2eQPOnNy69HNbUgn72zD
yv2T/ZjWRxueuWEvllxezmVWx9BPYQwXMKsMoAplbmRzdHJlYW0KZW5kb2JqCjMwNiAwIG9iago8
PAovTGVuZ3RoIDIyMCAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnja7dO9
CsIwEAfwhAyBW/oIvRfQNoPWTgU/wA6CTg7ipI4Oik4OCr6Y4IsIvoDg4iCe1zPiIA7iaiB3Py4k
ZPm72JUrGGMVSw7TGiY1HDuYQep4GGOSPk5GU6jnEPUxdRC1eQxR3sHFfDmBqN5tIE+bOOA7Q8ib
qAxdFC+68abCGf1qtZY3Q3EotuJAbP7++0vbLx18cPhmK84+eCU2dOV6flk/rAubozdXuyeSNHEN
tkQ7CcNGZYbzcSiePumbd8jt6m25nbw1t513ESj1tOYfSVqhlUMP7odvfAMKZW5kc3RyZWFtCmVu
ZG9iagozMDcgMCBvYmoKPDwKL0xlbmd0aCA0MTQgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2Rl
Cj4+CnN0cmVhbQp42qXSO07DQBCA4bFcrLSNj+C9ACRWIhJXlkKQSIEEFQWiAkoKELRxbsARuIpv
Qo6Q0oXlYfY5S2JIgYv4S6ys/a+nPDudTtRYTdTJZKrKiZrN1GMhX+S8pF/HqigKd+3hWS5WcnSr
5qUcXeoLcrS6Um+v709ytLg+V/R9qe4KNb6Xq6VCOnqAlE6b/xhybIGOnAgZdtqp/vRu9yz0X8k7
ttCm1Yy37Ew70TchN+x834CoT/mGXRnXqJeogF0bV6hvuY7cH9iGdezE2sQkLTu1NjEmy1kc2oSZ
ROfM2sSYRGebZWNslnU1YB1mE61rZx2zjtw75+QuuI2deFOYSzROvSnGJRoL75S8DcbYmTeFfTTs
T2+K+dqwMbi2Y/CnK+wHnWN31Bm2gxa4G3SK26NOsBk0cNZP13Dc68h9ZE6BJDanQPqbOQtEbJeS
7MJwgujADyftH4ThrKJBNQ4DGQ9nEw1nE7K0+8gdO4kcHpnWD49JDkNVIeTeeQ+13/Gs5V3OOtHz
++QBoCHkHcHoJVbRCxK8sfJiJW/kN9TLS30KZW5kc3RyZWFtCmVuZG9iagozMTEgMCBvYmoKPDwK
L0xlbmd0aCAxNDEgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMy0zM1
VjBQMFcwslQwMlIwtVBIMeQq5DI0AQoagATBMsm5XE6eXPrhCoYmXPoeQBEufU9fhZKi0lQufacA
ZwVDLn0XhWhDBYNYLk8XBf4G+wf1H+o//P8BhH9AsB4I7f/wz2GQYbBhsADDCoYChg+MDxgfMB9g
b+BnkAdKSTBwuXpyBXIBAHoKK7kKZW5kc3RyZWFtCmVuZG9iagozMTIgMCBvYmoKPDwKL0xlbmd0
aCAxNDMgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMy0zM1VjBQMFfQ
NTRTMDJSMDRWSDHkKuQyNAGKGigYWUKlknO5nDy59MMVDE249D2A4lz6nr4KJUWlqVz6TgHOCoZc
+i4K0YYKBrFcni4K/A32D+o/1H/4/wMI/4BgPRDa/+GfwyDDYMNgAYYVDAUMHxgfMD5gPsDewM8g
D5SSYOBy9eQK5AIApocsAgplbmRzdHJlYW0KZW5kb2JqCjMxMyAwIG9iago8PAovTGVuZ3RoIDEw
MiAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLTMzVWMFAwB2IjQwVD
Y4UUQ65CLkOQmAGIC5JIzuVy8uTSDwfyufQ9wKSnr0JJUWkql75TgLOCIZe+i0K0oYJBLJeniwJ/
g/2D+g/1H/7/gEEQz/4BfwOXqydXIBcAIZEkhwplbmRzdHJlYW0KZW5kb2JqCjMxNCAwIG9iago8
PAovTGVuZ3RoIDExMSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLT
MzVWMFAwB2IjQwVjc4UUQ65CLkOQmAGIC5JIzuVy8uTSD1cwNObS9wCKcul7+iqUFJWmcuk7BTgr
GHLpuyhEGyoYxHJ5uijwN9g/qP9Q/+H/DxgE8ewf8DcwYAW41XO5enIFcgEARBE3hAplbmRzdHJl
YW0KZW5kb2JqCjMxNSAwIG9iago8PAovTGVuZ3RoIDkzICAgICAgICAKL0ZpbHRlciAvRmxhdGVE
ZWNvZGUKPj4Kc3RyZWFtCnjaMzHXMzdVMABCI0MFEwsFIxOFFEOuQi4Tc7CgMUQiOZfLyZNLP1zB
xJxL30PBmEvf01ehpKg0lUvfKcBZwZBL30Uh2lDBIJbL00XhPwj8Qya5XD25ArkASq4jnQplbmRz
dHJlYW0KZW5kb2JqCjMxNiAwIG9iago8PAovTGVuZ3RoIDI1NiAgICAgICAKL0ZpbHRlciAvRmxh
dGVEZWNvZGUKPj4Kc3RyZWFtCnjafdCxTsMwEIDhizxYuiWP4HsCnBQlwNJIpUhkQIKJATEBIwMI
NtTk0fIo7RtE6pIh6mH72iEWwVKkz/bgP3exOFtQRufuK6+ouKTXHD+wLNw+81t/8fKOqxrtI5UF
2lt3ira+o6/P7ze0q/trytGu6Smn7BnrNQGA2oIs3cdIh1mYMUZ1mEXDMZjbGSTMnWB/hNqzJKpd
DL1jadXdEWnHkpi2TQTTNtJqoBJUp8QlmAgbMNL6A6lgdAiJA+gpEg/fmvSgAhS7tf0T2qMPye6n
+5DsMIRSN6EJjMcYkkGiq9Ncl/50go0Hh2SQ6ENA62Y7hHfbf4A3NT7gL0ewniUKZW5kc3RyZWFt
CmVuZG9iagozMTcgMCBvYmoKPDwKL0xlbmd0aCAxOTYgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVj
b2RlCj4+CnN0cmVhbQp42jM31jMyVjBQAGEzCwVTc4UUQ65CLjMTIN8AxAVJJOdyOXly6YcrmJlw
6XsARbn0PX0VSopKU7n0nQKcFQy59F0Uog0VDGK5PF0U/oNAAwMDmP4Bpf/D6AMMDPU/GNj/fwDT
cCz/D0Lz/4fQzEATQDQjUAMyzfD/AYSu/4BK2/9Ao/9AaHl0+h8B+j+NaUL2/0F1P5yG+qv+B6q/
YeEBpWHhBAs/9v+o4Vv/Bx7+sPhAiZ8/UBoYf1yunlyBXAAyb8mZCmVuZHN0cmVhbQplbmRvYmoK
MzE4IDAgb2JqCjw8Ci9MZW5ndGggMTAxICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+Pgpz
dHJlYW0KeNozNtMzMlQwUDAGYRMFU3OFFEOuQi5jAwUQBHJBEsm5XE6eXPrhCsYGXPoeQFEufU9f
hZKi0lQufacAZwVDLn0XhWigMbFcni4K/////4OMGep/MAx1jO4nLldPrkAuAJX1eTkKZW5kc3Ry
ZWFtCmVuZG9iagozMTkgMCBvYmoKPDwKL0xlbmd0aCAyNjEgICAgICAgCi9GaWx0ZXIgL0ZsYXRl
RGVjb2RlCj4+CnN0cmVhbQp42mXRvUrEQBDA8VlSBKbJI2SewE38uFy3cJ5gCkErC7FSSwtFQbGI
vpm+SXyDs1OIGWd3di8nVyz8Zgf+xW6zv9PsUUX+NLt00NB1jXc4m8tc+dEvrm5x0aI9p9kc7bHc
om1P6OH+8Qbt4vSQarRLuqipusR2ScwDQMa82sCYwAro+FW0AsE7gOk9esWLrAOeJ3wrnnwxoBsj
HEeUUgwopPgfuaQDMikGGCkGgBQVUlS4NThC0gopKqSokKJCigqYMER0Y4TjiJLfFAV/KHL+VGQT
vhSGfxTAvxHhsTxcQrmFIiFPyBJMAqzRbcEllILBo+gh/CnkCVmC2QAetXiGf26rxLoKZW5kc3Ry
ZWFtCmVuZG9iagozMjAgMCBvYmoKPDwKL0xlbmd0aCAxOTkgICAgICAgCi9GaWx0ZXIgL0ZsYXRl
RGVjb2RlCj4+CnN0cmVhbQp42nXOvQrCMBAH8CsZhFvyCLknMK0WHQN+gB0EnRzESR0dFJ3tm5lH
6SN07CA976qgiyH5Qf65HJeP+vmAUhrKyUc0HNMhwzN2WapXfdifcFKg31A+QL+QFH2xpOvldkQ/
WU0pQz+jbUbpDosZQWgBwDBXAJa5AXC1lSjUhsUm4VIEjl/v1UdXq7ZSTanK+jF8mop3NeFG8h6X
+qv99gldn/fmt/GvrDVJV6aGuidDu6d7cLTcOo6GG6uDVoYjzgtc4ws4LnkICmVuZHN0cmVhbQpl
bmRvYmoKMzIxIDAgb2JqCjw8Ci9MZW5ndGggMTkxICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29k
ZQo+PgpzdHJlYW0KeNq1z7EKwjAQANBIhsIt/QTvC0yrlroFagUzCDo5iJM6Oig6t5/WT8knZOxQ
e16KQ0WcxJA8uNwluSSTUZRghGNeCc8ZHmO4wDTluAt94nCGzIDa4jQFteRdUGaFt+v9BCpbzzEG
leMuxmgPJkdBggd9MeiUf3RAJRuSYzU1bMspyTGVkqwoKskV2vp67bzDumfjDfu2P/hx29tbruuE
rURhX709HH9A1k3QCuk01ULakDOy8idgYWADT3TthIAKZW5kc3RyZWFtCmVuZG9iagozMjIgMCBv
YmoKPDwKL0xlbmd0aCAxODQgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4
2pXOOwrCQBAG4AkpAtPkAkLmBG5iEsQqECO4haCVhVippYWirdmj5Sg5QsoUS8ZZI1hbzAfzgj+b
TbOMYkpdLSid0znBG6a59LFr3eJ0xVKj2lOao1rLFJXe0OP+vKAqt0tKUFV0SCg+oq4IPG4AQrYA
NTMAGzb+ANwEVjZhL0QfOqEYkaO6hRqEiUO+/qH+0QnFF6+N+hG/DS0ETTBAYHyGyEicl8tnXVI5
99gArjTu8A0r0lyoCmVuZHN0cmVhbQplbmRvYmoKMzIzIDAgb2JqCjw8Ci9MZW5ndGggMTk2ICAg
ICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNq1kD0KwkAQRhNSBKbJETIncLMk
IXaBGMEtBK0sxEotLRStE2+Wo+gNtIuQZJyx8q8TF+bBtzPsPDYOe0GMAYZcsca4jysNW4gSzoFE
aSw3kBlQM4wSUCO+BWXGuN8d1qCyyQA1qBznGoMFmBwtPkUpoO90HrT/RJuOTI+uzJRaJlW81yHL
p9JtLJdKrxEHv5Z5/yJMn1ic3kk/8OW1j13swCZeLVbs5rFnx54Vt1rq+L9uJPnMtMmmDoYGpnAH
IGilwQplbmRzdHJlYW0KZW5kb2JqCjMyNCAwIG9iago8PAovTGVuZ3RoIDE5MSAgICAgICAKL0Zp
bHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaXc69CsIwFAXgUzoId8kj5D6BbanQsaAV7CDo
5CBO6uigKLil4Iv1UfIIGTMU460K/lzIByeBmzPKh0XBKedyRhnnBe8yOlLe36V97B+2BxrXlKwk
UzJ7Ws/5fLrsKRkvJpxRUvE643RDdcWIQwPo4AATOkThdkd8h2kGHcpGeZSt9tBWO6F0UO6JsW+8
MPDhg8w3FsAf5hfZ9+Kqe+RLeNUBThrELgpQFqE1rfQLgJKS0tKCpjUt6QFRbGWACmVuZHN0cmVh
bQplbmRvYmoKMzI1IDAgb2JqCjw8Ci9MZW5ndGggMTU1ICAgICAgIAovRmlsdGVyIC9GbGF0ZURl
Y29kZQo+PgpzdHJlYW0KeNozstQztFAwUDAGYQsFUwuFFEOuQi5jEyDfAMQFSSTncjl5cumHKxib
cOl7AEW59D19FUqKSlO59J0CnBUMufRdFKINFQxiuTxdFBgY5D8wMDD+/8PAwP7/P5D3o76Bwf7B
/waG/wf/HwATjP8boQTzf0YQwfC/AUbYMQAJBmKI/yDT0Qhi9dKN+P//HwbB5erJFcgFAI5YbzUK
ZW5kc3RyZWFtCmVuZG9iagozMjYgMCBvYmoKPDwKL0xlbmd0aCAyNjQgICAgICAgCi9GaWx0ZXIg
L0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42oWQvU7EMAzHXTFE8nJvcPULQFq1VZmIdBwSHZBgYjgx
ASMDCOb0DXilbIy8QiQegI43nGLstEJiIop+sey/P+K2P+k7qqih47qntqfmlB5qfMa2EW9FXbeE
7p9wM6C9pbZBeyl+tMMVvb68PaLdXJ9TjXZLu5qqOxy2BHJKAJOAA3j+4lAw83c0yfB7XO0LLmM5
gdhO+BldBP8RlCKP/99ZuXDSJlptBK2sbaUxrJj3Qs8RYK0OWOtYC88y3cwxzxsyc5ZQqimj1hGX
ER7gSJiynXKUwQURgJdMHqU1+DH90v3hHFWll1f0mlskndwcdFXyEd2SjOFZxYYnALwY8AZ/AHKB
mNQKZW5kc3RyZWFtCmVuZG9iagozMjcgMCBvYmoKPDwKL0xlbmd0aCAxNTcgICAgICAgCi9GaWx0
ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jM11jMwVTBQMAZiUyMFUwuFFEOuQi4TCyDfAMQF
SSTncjl5cumHK5hYcOl7AEW59D19FUqKSlO59J0CnBUMufRdFKINFQxiuTxdFBj+MwDBfxwkO5hk
piVZfwBIMv//AST5//8DkvJAQeb/Noz/G5j/V4DJDwwg8gHD/wPM/w8gkQ1IJMMAkv///7H//x+T
5HL15ArkAgAKV55ICmVuZHN0cmVhbQplbmRvYmoKMzI4IDAgb2JqCjw8Ci9MZW5ndGggMTIyICAg
ICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMtMzNVYwUABhI1MFU0uFFEOu
Qi4jQyDfAMQFSSTncjl5cumHKxgZcul7AEW59D19FUqKSlO59J0CnBWAoi4K0UAtsVyeLgqMHxjY
/zDw/wMh+f8oCCIIlAWqwQf+M9QjIfb/DMzURv///4AjLldPrkAuAJ0bTnEKZW5kc3RyZWFtCmVu
ZG9iagozMjkgMCBvYmoKPDwKL0xlbmd0aCAxOTggICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2Rl
Cj4+CnN0cmVhbQp42rXQsQrCMBAG4EqGwi19hN4TmFRa6FaoFewg6OQgTurooOhqfbS+ga/QR+iY
IfTMnYODOhrIB3f3J4RkZpyiwYnfaY5ZjvsETpBmvjZc8mB3hLIGvcY0Az33XdD1Ai/n6wF0uZxi
ArrCTYJmC3WFAQV+0Q9DUf3TiLqvKsdT1UumY+M7W8ipm+hYZdmwY6OWjcVGOtSLkiH39jFI3r9C
DSH5mwcljqj1BtSJPduIhWVjJw5s9JL8X9mC7Kcwq2EFT1CHjLEKZW5kc3RyZWFtCmVuZG9iagoz
MzAgMCBvYmoKPDwKL0xlbmd0aCAxMDUgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0
cmVhbQp42jMy0zM1VjBQAGEjMwVTC4UUQ65CLiMjIN8AxAVJJOdyOXly6YcrGBlx6XsARbn0PX0V
SopKU7n0nQKcFQy59F0Uog0VDGK5PF0UGP4z/EdC7P8ZmAcZ+v//DxxxuXpyBXIBAMoaV/kKZW5k
c3RyZWFtCmVuZG9iagozMzEgMCBvYmoKPDwKL0xlbmd0aCAxODggICAgICAgCi9GaWx0ZXIgL0Zs
YXRlRGVjb2RlCj4+CnN0cmVhbQp42t3NPQrCYAwG4IhDIYtHaE7g1yLaCoKgFewg6OQgTurooCi4
tdLBa3kDbyA9wjc6lL6mxcnBAziEPPkhCfrtbiiedDRCTYFsfT5w0NO6LqvBZs+jmM1Sgh6bqXbZ
xDM5Hc87NqP5WHw2kax88dYcR0IlJTm1CiKUDRQ0RKpyAAJylXtFZodWNSDcUteSU14ID3Jf1Cy1
/6ylu0lRnWniTsnrWykl9lv0efwvAgoXyAD7WzyJecFvqFK1gAplbmRzdHJlYW0KZW5kb2JqCjMz
MiAwIG9iago8PAovTGVuZ3RoIDE1MSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3Ry
ZWFtCnjaMzXWMzBVMFAwBmJTIwVjc4UUQ65CLhMLIN8AxAVJJOdyOXly6YcrmFhw6XsARbn0PX0V
SopKU7n0nQKcFQy59F0Uog0VDGK5PF0UGP4x1B9g+P+P+f8PIMn//x+QlGf+DyRtGP83sP+rAJLM
/z4wAMn/Dxj+H2D+fwCJbEAiGQaQ/P//j/3//5gkl6snVyAXAI7hiQ4KZW5kc3RyZWFtCmVuZG9i
agozMzMgMCBvYmoKPDwKL0xlbmd0aCAxNzYgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+
CnN0cmVhbQp42jMx1zM3VTBQMAZiE1MFY3OFFEOuQi4TQyDfAMQFSSTncjl5cumHK5gYcul7AEW5
9D19FUqKSlO59J0CnBWAoi4K0UAtsVyeLgoMjP8PMDAw8P//ASTr//8Hkv8b/jcwMP9jsH/AwP6H
Qf4DA/8PEAIyIFwgaQ8kwQqAyuqB5H8U8j+IbCCVxDQHYj7ELmTbIe6BcCHuZAQacgDmfvn/f4Ak
2F9crp5cgVwALWluqwplbmRzdHJlYW0KZW5kb2JqCjMzNCAwIG9iago8PAovTGVuZ3RoIDE5MyAg
ICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjardC/DoIwEAbwmg4kt/AI3gto
WwEZSRATO5jo5GCc1NFBozM+Go/CIzAyEM4rmmjUTYf+hvv650ujYKgj1DjCgRljpDGIcWfgCGHM
U41R8Ii2B0gtqBWGMagZz0HZOZ5Plz2odDFBAyrDtUG9AZuhoB5dBZFPFZtQw7YesRUHkkpBheQd
eSlJiLxyJvXTfvOu3/7gx239l7eSqmvCFl2fezc3lNR4rZDcv2Z9TiS5E279Q+J/+SZMLSzhBhoD
iwoKZW5kc3RyZWFtCmVuZG9iagozMzUgMCBvYmoKPDwKL0xlbmd0aCAxNDQgICAgICAgCi9GaWx0
ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jO21DM2VjBQMAJiY3MQSjHkKuQyNgHywSIgieRc
LidPLv1wBWMTLn0PoCiXvqevQklRaSqXvlOAs4Ihl76LQrShgkEsl6eLAsM/5g8M///x/wMS9v+B
RE19w/9/P/4fYP/34f8B5v8PQMQBONFQ3wAk7BmABA+IYAASDDQn/v//h0FwuXpyBXIBABc4V9YK
ZW5kc3RyZWFtCmVuZG9iagozMzYgMCBvYmoKPDwKL0xlbmd0aCAxODcgICAgICAgCi9GaWx0ZXIg
L0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42iWMPQrCUBCEN6QQtvEI2ROYhIfGLuAPmELQykKs1NJC
UbAQk6N5lBzhlVuEjPtI8cHOzM64YjIrJBMXmIor5JLznV1uOgsyBOcbLypOD+JyTjfmclpt5fl4
XTld7JZi7kqOVjlxtRIq/TxGr2NAk99YS4r1S5F+iLQbePcGAg0RzABaqu2ogaYEfgngQz82LOwo
CV+11Ua9p8igXge+3cDHws42FU2k8CMP21GA2kSJ1xXv+Q/UBGEXCmVuZHN0cmVhbQplbmRvYmoK
MzM3IDAgb2JqCjw8Ci9MZW5ndGggMTUwICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+Pgpz
dHJlYW0KeNozNtczNFEwUDACYmMjBVNjhRRDrkIuI0sg3wDEBUkk53I5eXLphysYWXLpewBFufQ9
fRVKikpTufSdApwVDLn0XRSiDRUMYrk8XRQY+BkYMLA8GraH4nog/g/BjEDMDsTy//8/+I+EmYFi
VMIVBPAPxv8NHxj/N35g+H/4AYP9/wNAxzQwMP9j4HL15ArkAgDOcFIXCmVuZHN0cmVhbQplbmRv
YmoKMzM4IDAgb2JqCjw8Ci9MZW5ndGggMTQ5ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+
PgpzdHJlYW0KeNozNdYzMFUwUDAGYlMjBWNzhRRDrkIuEwsg3wDEBUkk53I5eXLphyuYWHDpewBF
ufQ9fRVKikpTufSdApwVDLn0XRSiDRUMYrk8XRQY/jMw2B/4/5/B/j8Wkv0/A+P/A8xANQNKMiKR
zDCS8T8DO4hs4P//AKjMDuji+v9/gKT8/w//QSoa/v/ncvXkCuQCAPCMgX8KZW5kc3RyZWFtCmVu
ZG9iagozMzkgMCBvYmoKPDwKL0xlbmd0aCAyMzYgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2Rl
Cj4+CnN0cmVhbQp42nXOsUrEQBAG4DlSLEyzb3DZJ3ATPRKFcIHzBFMIWlmI1Z2lhaJwRSD7aPso
+wh7XcQj48xamEaY4WNmGPiry7Or2hTmnLuqzUVt9iW+YbXiuZBRDrtX3HRoH021QnvLW7Tdnfl4
/3xBu7m/NiXarXkqTfGM3dYQHYlcS/+pJtAjZCEjUKwXT0nHKr8gl02gHKtEIC8vIFIyaIIcYGDd
UsyTbVwOrvnVi+N68D1APjZtOIh9G0YAfTrkMc6coj6yiv0KLEX9zWYUFPm5nJFdiO5PIM4Kc1Nx
MIBp7hqgF5tUeNPhA/4AFaaLagplbmRzdHJlYW0KZW5kb2JqCjM0MCAwIG9iago8PAovTGVuZ3Ro
IDI0NSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaZc+xSsRAEIDhWVIE
pskb3M4L6CZeohaHgfMEUwhaWYiVWlooClecJJ0vJRLxRfIIW24RbpxZ5ALafMUs/DNb5fsl5XRA
e8Uhlcc0P6L7Ap+wrGSaUzX/fbp7xGWD7prKCt25zNE1F/Ty/PqAbnl5SgW6Fd0UlN9isyJmbzj8
N2EAC+pM7OAEjLgQe9gAiGtxgADQDuBFb8Tam0EMqg1Jv3NMxWxMO3Gbiek2A5GtmPAs+ika/oiO
InD4a+sn62HS9pOa3wmTNqqravmPVLqFdvtNdB3VJfylef7WcPuuyTersZpjJV6WxgvwrMEr/AGa
fm/sCmVuZHN0cmVhbQplbmRvYmoKMzQ0IDAgb2JqCjw8Ci9MZW5ndGggMTg5ICAgICAgIAovRmls
dGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNqdjzEKwkAQRX+wCEyhNzBzAd3sCpJAsIgR3ELQ
ykKEgFpaKAoWFjlajpIjWFo6SVabdMKr/gwz70/M2MQccsQjE7KJeGr4qOlCuk4lN250OFNqSW1Z
x6SWkpOyK75d7ydS6XrOmlTGO83hnmzGQA5U8Er0CvhAHxgCCfBoeMGranpljS8UGAioCZpdYfbl
2eH9F907vxftxwDOQWREyS+dYWsr2s4/aballFSTglJTyiKnhaUNfQBHq0AVCmVuZHN0cmVhbQpl
bmRvYmoKMzQ1IDAgb2JqCjw8Ci9MZW5ndGggMTg4ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29k
ZQo+PgpzdHJlYW0KeNqdjzEKwkAQRb+kCEwRLyA6F9DNrkEiiEWM4BaCVhZipZaCioKFRY6Wo+QI
HsHNJLHQTnjVzGfm/aEZmDGHHHHfhGwiHhk+aLqQLqchx6Ze7U+UWFIb1mNSCzcnZZd8u96PpJLV
jDWplLeawx3ZlHOgAM5ADHSAAGgDfgYvL2m53Ut4CE9gAkyBrtCTdElW4+ffeMU//N75vKg+9hqH
qSg9G0OxddqVvy/xQKrFUtMVcpVpbmlNb0XLQnMKZW5kc3RyZWFtCmVuZG9iagozNDYgMCBvYmoK
PDwKL0xlbmd0aCAxNjUgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMz
0TO1UDBQMFfQNVIAskxMFFIMuQq5TA0UQNDEDCKTnMvl5MmlH65gasCl7wEU5tL39FUoKSpN5dJ3
CnBWMOTSd1GINlQwiOXydFFgAAHGA2CKvQFMyYFJhh9gkvkBmOKHiNlAqA8QqQOYUowQKfYDyCZV
QKQekGMJjIIKQpVANUC1wwyDGg21CGotXPIAsgPRzTtAtmUHuFw9uQK5AASzKwUKZW5kc3RyZWFt
CmVuZG9iagozNDcgMCBvYmoKPDwKL0xlbmd0aCAxNjEgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVj
b2RlCj4+CnN0cmVhbQp42jMz0TO1UDBQMFfQNVIAskxMFFIMuQq5TA0UQNDEDCKTnMvl5MmlH65g
asCl7wEU5tL39FUoKSpN5dJ3CnBWMOTSd1GINlQwiOXydFF4wAAGFRBKDkKxHwBTjB8gXBsIxQ+h
mCGSDNgloeb9QDWvAWIe2ZZBKX5kJVANUO1yyEZDLYJaK4fsJKgDUUyCeoVESxigvuFy9eQK5AIA
tWQqhQplbmRzdHJlYW0KZW5kb2JqCjM0OCAwIG9iago8PAovTGVuZ3RoIDEwMyAgICAgICAKL0Zp
bHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzPRM7VQMFAwV9A1tFQAMnUNTRVSDLkKuUwN
FEDQBCqVnMvl5MmlH65gasCl76FgwqXv6atQUlSayqXvFOCsYMil76IQbahgEMvl6aJQ/x8EGsDk
/wNQCirI5erJFcgFAC0JK7QKZW5kc3RyZWFtCmVuZG9iagozNDkgMCBvYmoKPDwKL0xlbmd0aCAx
MzAgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42i3JsQrCMBSF4RsKCmfw
CTKcJzC5LaWZawUzCDo5iCBUR0FF5+bR8mbaonzb/5fV0jf0bFhV1MA68KJ4QD0nZf07/Q1thDtQ
PdxmzHBxy9fzfYVrdysqXMej0p8QO1oZ5JNGeTJkm+XPZJNMKlIhc5nJQqwEuctZsI7Y4wssUCOM
CmVuZHN0cmVhbQplbmRvYmoKMzUwIDAgb2JqCjw8Ci9MZW5ndGggMTY0ICAgICAgIAovRmlsdGVy
IC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMdQzNVIwUDBVMDJTMDZXMDNSSDHkKuQyNgQKGigY
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
+6C2Q90CdRlQN8jZ/xjA1AeICQyDmQKFLsS1mBSXqydXIBcAjkuAvwplbmRzdHJlYW0KZW5kb2Jq
CjM2NSAwIG9iago8PAovTGVuZ3RoIDIyMSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4K
c3RyZWFtCnjaldG9CsIwEAfwloKBG+wjeC+gaSpVnAp+gB0EnRzESR0dFJ3to/kofYSOHUrj2UsL
zSImhR/kSHL/dKJGKsQAxzgMcaIwmuJZwQ3IgGY048rpCvME5J7qINe0DDLZ4OP+vICcbxeoQC7x
oDA4QrJErXXl0CB1ZixIV6eCC/SlbPxmBxnr56wounqlZfWn1n77/Obepo/Y9Ke5X1GaQJnxzev1
NtIrTK42n/Fl5WzzWrl/mv+rm3YsWL/VS+l/UH7vG4feRdS6Za/WqfpOPeKSFbkDqwR28AGZPJvC
CmVuZHN0cmVhbQplbmRvYmoKMzY2IDAgb2JqCjw8Ci9MZW5ndGggMjU2ICAgICAgIAovRmlsdGVy
IC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNpVz7FOxDAMBuC/yhApSx6hfgFoez3uxEKk45DogATT
DYgJGBlAsCFa3syPEokX6EYlUI1zd6CyfErsOLbni8OqppLmdDCj+YyOjumuco+uXmqwpEW1y9w+
uFXjig3VS1eca9gVzQU9P73cu2J1eUp6X9N1ReWNa9YEP4ARxowh8s5msB9sIz7ZM1rOOwQOQM4n
gOc3wO54BQx/78kmjAAmyJZObTkRE4MSUjCXIaFHLxJhRe9GRCtFJL3RjAa1sk1Yib9/hF7JEz5h
hy36xvyRTYj/6Ps9ptc6E3VwG8e0lqQttWneffUI6EeMiEGnil57c6Z5d9a4K/cDPZ+GIwplbmRz
dHJlYW0KZW5kb2JqCjM2NyAwIG9iago8PAovTGVuZ3RoIDE1MCAgICAgICAKL0ZpbHRlciAvRmxh
dGVEZWNvZGUKPj4Kc3RyZWFtCnjaM7XUszRXMFAwBmJTcxBKMeQq5DIF8cEiIEZyLpeTJ5d+uIKp
MZe+B1CUS9/TV6GkqDSVS98pwFnBkEvfRSHaUMEglsvTRcH+Pwg8QKMOMP9nkH9gx8D4j4H5QQ2I
YvxQAaIYPhSAqQJUKgFMGWClHoApiwNgSgIrxQCmGEYMxf6/AUjKg4IajeJy9eQK5AIAV85ysApl
bmRzdHJlYW0KZW5kb2JqCjM2OCAwIG9iago8PAovTGVuZ3RoIDE5MSAgICAgICAKL0ZpbHRlciAv
RmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnja5dA9CsJAEAXgFwQXBtHWQshcQDeJrMZK8AdMIWhlIVZq
KahoqzmaR8kRLFOI62wExTNYLN/yZpjidaJWFHPAbW5GbHpsurwJ6UDGSBi4pJisdzRISC/YGNIT
iUknUz4dz1vSg9mQQ9IjXoYcrCgZsbUWyj5/8WwKXDNYAH5aUENB+Y+pSidCRUg/NID+l7r0dQPi
N3upLQPugJInv1IOT3LvASXLeLpW3ZmLw7e5Q9kM7xSgcUJzegHYeGG6CmVuZHN0cmVhbQplbmRv
YmoKMzY5IDAgb2JqCjw8Ci9MZW5ndGggMjQwICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+
PgpzdHJlYW0KeNpt0DFqwzAUxvFnBDE8QrxmCORdoJVsSNIuDaQp1EOgnTKUQqDtWEhCO9tH01F0
BI8ZjNUna6gUjBA/0Lf80bK4Le5IUUE3BS0VLVb0meMJWcVnce+Xj2/clCj3vKN85meU5Y5+zr9f
KDcvj5Sj3NJbTuodyy1Z2wJUtr5W2BogayGxAJAar9AAzoQ3twu+lRMCtXfNjkINwISds2Nn483Y
aejFm7IqlLuOroE9BCYdgA61Xg51mYG16K1ql/fvWo9ijXduxrHNrDdrppHpRcW2XtEeYjvTm3Q6
sv/JISsY9uHK2ZD4VOIr/gEK7WSbCmVuZHN0cmVhbQplbmRvYmoKMzcwIDAgb2JqCjw8Ci9MZW5n
dGggMjA0ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNptzDsKwkAQBuAJ
Cy4MgbRWZi6gm40RtDHgA0whaGUhVmppoShYCJuj5Sh7hJQWwTjroxGX5Rv4h/kT3enFFFGX2pqS
mLp92mk8Is/IxYP3ZnvAUYZqxXtUM45RZXM6ny57VKPFmDSqCa01RRvMJgShBYC6AhA2BZAQ5Pyl
hbAQJS9fePcvUEFQMDJn+P3BMNIVppZ5cCbu7qxkQnebOowrMPDBf/zifahBVL4BefNN3hg206I1
bAb2GpaiLgPLNbLAaYZLfAKk+FSjCmVuZHN0cmVhbQplbmRvYmoKMzcxIDAgb2JqCjw8Ci9MZW5n
dGggMTk4ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNozMdMzNFYwUDBS
0DVUMDFWMLVQSDHkKuQyMVAAQVNLiExyLpeTJ5d+uIKJAZe+B1CYS9/TV6GkqDSVS98pwFnBkEvf
RSHaUMEglsvTRYH5AwMDw39Ugh9EMFOdkH8AJOp/MDB/fGDHwPy5Qb6B+TsD/wHmfwzsD5j/AOWY
fzAw/gAqBhMMf+DEPzhRByLqSSbqUE0BGcr4B2LbD5C9YMvfgZxxDOSg4w3yDMyND+oYmBn+/wA6
Xf4AA5erJ1cgFwDIY2tBCmVuZHN0cmVhbQplbmRvYmoKMzcyIDAgb2JqCjw8Ci9MZW5ndGggMTgy
ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNqNzkEKgmAQBeAnPygMkRcI
nAuU/fwUuhLMIBdBrVpEq2oZWNQuzKN5FI/g0oVUY3WAFt/mDY83ZjoKNY/Z8FCzmbAJ+KDpTKYL
JQ6/l/2J4pT8DRtN/kJi8tMlXy+3I/nxasaSJryVzo7ShKFawHsVyFVlNchUjcaprNYt1YdXqDbq
wGoeQC3QycXzT/mv04kAOypgewX6XomeW2LgVAhkN5P9CnenlH8ApwHNU1rTGwS7PRAKZW5kc3Ry
ZWFtCmVuZG9iagozNzMgMCBvYmoKPDwKL0xlbmd0aCAxOTggICAgICAgCi9GaWx0ZXIgL0ZsYXRl
RGVjb2RlCj4+CnN0cmVhbQp42jMx0zM0VjBQMFbQNVQwMVEwtVBIMeQq5DIxUABBU0uITHIul5Mn
l364gokBl74HUJhL39NXoaSoNJVL3ynAWcGQS99FIdpQwSCWy9NFgYGBgf8AAwPzfxSCwf4AVIJ6
BPMPICH/H0jUsfcfYPjB+P4A8weG+gPsD4C2gaQghHwDULE9mABpq4cTdSDiH8lEHaop9nACaJE8
hADaaw9yRj3IQe8/MP5gPP+foYa9/z+D/D/+/wzsQIdzuXpyBXIBAG9YaEkKZW5kc3RyZWFtCmVu
ZG9iagozNzQgMCBvYmoKPDwKL0xlbmd0aCAxODkgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2Rl
Cj4+CnN0cmVhbQp42l3OMQrCQBAF0B8WXJhCLyA4F9BNsijaGNAIphC0shArtRRUtJPo0XKUHCHl
FmIcSQpx4cEyM/wZO+iNAvY55G7Ats92yPuAzmRDKfpsR1Vnd6RJQmbNNiQzlzKZZMHXy+1AZrKc
ckAm5o0EbSmJGdoBnRK4tzLPqVwVXqFzz7UyuM4T968ISMX4UYlS8f5R1k/++JfWHjXJUdETSnK1
7GjoDE2do+0VGMLhhFTlco9MvECzhFb0Ab2jQAsKZW5kc3RyZWFtCmVuZG9iagozNzUgMCBvYmoK
PDwKL0xlbmd0aCAxNDEgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMy
1TM2VzBQMARiYwMFU0uFFEOuQi4jCyAfzAVJJOdyOXly6YcrGFlw6XsARbn0PX0VSopKU7n0nQKc
FQy59F0UooEqY7k8XRQYGOoYGJj/NzDwH3zAIN/+gMGe/wNDHRT/gWDGH8wHGH8wMJCK////A8fk
6KcUM/9hYKj//wOOuVw9uQK5AKImWwQKZW5kc3RyZWFtCmVuZG9iagozNzYgMCBvYmoKPDwKL0xl
bmd0aCAyMzcgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42o2Pv0oEMRDG
vxAwMIXxDXZeQLM57+SKw4XzBLcQtLIQK7UUVLRbuH20PEoeIWWKxTg5hAOxkMAvQ+b7Q+b+ZDHj
lmd87Jc893y65CdPbyR3K2dx9rN6fKF1T+5OBOSu5J1cf80f75/P5NY3F+zJbfjec/tA/YYB6ASb
bEY3rVbIzeugko2DjiYMJuh4ZENVVDSjyv/B3lEDUKOkxY7QuQFMNwEHNgGH0v4bdo8gMKWEigxd
yhdUKWWUqQRJ20ZJs+m8fmEA1A45i+tPTHW701VH7CQ8SoodTUQHNSkRbEuqnQBd9nRL39BJarcK
ZW5kc3RyZWFtCmVuZG9iagozNzcgMCBvYmoKPDwKL0xlbmd0aCAxNTUgICAgICAgCi9GaWx0ZXIg
L0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jMx0zM0VjBQMAJiExMFUwuFFEOuQi4TQyDfAMQFSSTn
cjl5cumHK5gYcul7AEW59D19FUqKSlO59J0CnBWAoi4K0UAtsVyeLgrMHxiA4D8GyQ8mmWlOguxh
/mD/B0R+sAeSHw/INzAwf27gP8DA/J0BRP4Dk38Y2B/AyB8Y5IeBJNl/gILr//+D//83IJNcrp5c
gVwADx95HQplbmRzdHJlYW0KZW5kb2JqCjM3OCAwIG9iago8PAovTGVuZ3RoIDEyMiAgICAgICAK
L0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzLWMzBXMFAwAmFDBVMzhRRDrkIuQwsg
3wDEBUkk53I5eXLphysYWnDpewBFufQ9fRVKikpTufSdApwVDLn0XRSiDRUMYrk8XRSYGxj4HzDI
f0BBQBGgOH7A/IHhPwyxfwBxqY7YfzD8/38AgrhcPbkCuQAoQ0VgCmVuZHN0cmVhbQplbmRvYmoK
Mzc5IDAgb2JqCjw8Ci9MZW5ndGggMTUwICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+Pgpz
dHJlYW0KeNozMtUzNlcwUNA1UdA1NFcwtFAwNVNIMeQq5DIyBAobKJgbw+SSc7mcPLn0wxWMDLn0
PYASXPqevgolRaWpXPpOAc4KQFEXhWigrlguTxcFBsYDDOwfGPh/oCCgCFAcP2D8wfAfhth/gLj0
RTaMP+oYf/xn/PCfGYIe/GM/UMN+wIafgf8fA/MPBi5XT65ALgD/p1f1CmVuZHN0cmVhbQplbmRv
YmoKMzgwIDAgb2JqCjw8Ci9MZW5ndGggMTk2ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+
PgpzdHJlYW0KeNq1zTEKwkAQBdCVFIFpcgMzJ3ATjZAuECOYQtDKQqzUUlBRsBDN0XIUjxCxMEXI
Oj8g6gFk2QezM/M36HXCLnuMG/S4H/LKpx0FHuNIicZyQ3FKesaBR3okr6TTMR/2xzXpeDJgn3TC
c5+9BaUJW4VSyvziAOs/tEz1jbrmAN0z2IIb5nLBygQba20QghOohDt41MIzEupIhksXGw52HaTY
QBIlrwQV4hsu6v1v1JAJbm6XKiqMyY35QMOUpvQCRB1yBQplbmRzdHJlYW0KZW5kb2JqCjM4MSAw
IG9iago8PAovTGVuZ3RoIDEwOCAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFt
CnjaMzLWMzBXMFAwAmFDBVMLhRRDrkIuQwsg3wDEBUkk53I5eXLphysYWnDpewBFufQ9fRVKikpT
ufSdApwVDLn0XRSiDRUMYrk8XRSYPzD8hyH+DwzMgw+x/2D4//8ABHG5enIFcgEAxoJRLgplbmRz
dHJlYW0KZW5kb2JqCjM4MiAwIG9iago8PAovTGVuZ3RoIDE3NyAgICAgICAKL0ZpbHRlciAvRmxh
dGVEZWNvZGUKPj4Kc3RyZWFtCnjaM7PUM1IwUABhM3MFY3OFFEOuQi4zEyDfAMQFSSTncjl5cumH
K5iZcOl7AEW59D19FUqKSlO59J0CnBUMufRdFKINFQxiuTxdFJg/8H9gkH/A8P+D/R+G+h9A+oM9
44M6hv8fD8g3N9gz8H9u4D/OIN/A/J2B/xyI/sfAfwdE/2Fg/8HAfwBO/2Bg/4CN/sDA/mAI0CBP
gALi//+D//83//+PTnO5enIFcgEAI9+IFAplbmRzdHJlYW0KZW5kb2JqCjM4MyAwIG9iago8PAov
TGVuZ3RoIDE0NyAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzHTMzRW
MFAwAmITEwVjc4UUQ65CLhNDIN8AxAVJJOdyOXly6YcrmBhy6XsARbn0PX0VSopKU7n0nQKcFYCi
LgrRQC2xXJ4uCswf+D8wMPz/YP8HRH6wB5IfD8g3MPB/buA/wMD8nQFE/gOTfxjYH8DIHxjkh4Ek
2X8wAL3x///B//8bkEkuV0+uQC4Af4dlJQplbmRzdHJlYW0KZW5kb2JqCjM4NCAwIG9iago8PAov
TGVuZ3RoIDE4OCAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjajY4xDoJA
EEW/oSCZhiMwF9BlBYM2kCAmbmGilYWxUksLjXYGORpH4QiUVOJkKUiszE5eZv7u/vmRnsymHPCU
x5qjgMM5nzXdKIxFlHHR35yulBlSew5jUmuRSZkNP+7PC6lsu2RNKueD5uBIJmc4HwBeVwKJUwOt
nFGDF2RI4Fbw4ZVSvqDyIUoqqC0KwGl+IG5O+y+Gb2/xawZnu83u9SRB6dZI5RGKPh8K6eF3FWx6
Whna0RcISUvaCmVuZHN0cmVhbQplbmRvYmoKMzg1IDAgb2JqCjw8Ci9MZW5ndGggMTk2ICAgICAg
IAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNqdzrEKwkAMBuBIhkIWH6F5Ab2erXUU
agU7CDo5iJM6Oii62j5aH6WPcCLYG4rnXXHQUQl8Q0KSP4r7MuSAB9yTMUchhyPeSTpSFLCrYfge
bQ+UZCRWHAUkZrZPIpvz+XTZk0gWE5YkUl5LDjaUpYzKr8CoXIO5VVcw98IvvBq6JT7Bq7ABVKgB
NSrotDQWaHl+k//M94H2sqX9pt3fBjxlY3QrfLhAdTEGdCFRGTf3S3C7f+BpizHlJzTNaEkvr+tv
hgplbmRzdHJlYW0KZW5kb2JqCjM4NiAwIG9iago8PAovTGVuZ3RoIDIwMiAgICAgICAKL0ZpbHRl
ciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaMzHWszBSMFAwVtA1NFMwMVEwNldIMeQq5DIxUABB
U2OoVHIul5Mnl364gokBl74HUJxL39NXoaSoNJVL3ynAWcGQS99FIdpQwSCWy9NFgYH5B8MBBvl/
jAcY6tgbDzD8YTx8gPkDw+MD7B8Yyg/wP2AwP8B/gMH+gDxQ0QH7BgjBf6CeAYX4RzKBZoA9mAAZ
Lw8mQFaC7WV/wFAPctD7A4w/GM+DHNkPci5Qjv0HkABpI4uQf8DAwPz/P4LgcvXkCuQCAEa6ZiMK
ZW5kc3RyZWFtCmVuZG9iagozODcgMCBvYmoKPDwKL0xlbmd0aCAxNDAgICAgICAgCi9GaWx0ZXIg
L0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42jM20jM1UjBQAGFjQwVjc4UUQ65CLiMLIN8AxAVJJOdy
OXly6YcrGFlw6XsARbn0PX0VSopKU7n0nQKcFQy59F0Uog0VDGK5PF0U2B/IM/x/UH/g/8PHD/4/
bv/A/5z9A/MzIH4HxG+YHzD/YWhg/sHAgII/UBezA838//8DHHO5enIFcgEAatlGhAplbmRzdHJl
YW0KZW5kb2JqCjM4OCAwIG9iago8PAovTGVuZ3RoIDE5NSAgICAgICAKL0ZpbHRlciAvRmxhdGVE
ZWNvZGUKPj4Kc3RyZWFtCnjaPc6xSsRAEAbgH7ZYmGbfwMwLeHubYFQQAvEEUwh31RWHlVoKKgpX
CO6j7aPEyjZgkyI4ziVHio+Z+f9minxxfsZLLvg0cKHzgh8DvVJeaqjn5dQ8PFPdkN9yXpK/1Zh8
c8fvbx9P5Ov1NQfyK94FXt5Ts2KIgZEfuCg4QYUrZNjD4QUW3cygPxqUAPhqlS6VtMikhxNt5A8Q
Da1EbVUWE1xKsKMWZtZNYg8bh5HD4YPf9Ilv6ZCqCLppaEP/gENHpQplbmRzdHJlYW0KZW5kb2Jq
CjM4OSAwIG9iago8PAovTGVuZ3RoIDE1MSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4K
c3RyZWFtCnjaMzbSM7JUMFAwVNA1VDCyUDA1VEgx5CrkMjIDChoomBpBZJJzuZw8ufTDFYzMuPQ9
gMJc+p6+CiVFpalc+k4BzgqGXPouCtGGCgaxXJ4uCgwSDAwY2AIJVyDhHwwMjEDMDMTsQCz//z/D
fyhmhMpRAR8ghBn+MIJwA0MNcwNDHTMDgz07AwP/P7BmLldPrkAuABd1SJYKZW5kc3RyZWFtCmVu
ZG9iagozOTAgMCBvYmoKPDwKL0xlbmd0aCAxNTMgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2Rl
Cj4+CnN0cmVhbQp42jMx0zM0VjBQMFLQNVQwMVEwNldIMeQq5DIxBAoaKBhbQGSSc7mcPLn0wxVM
DLn0PYDCXPqevgolRaWpXPpOAc4KQFEXhWignlguTxcF5g8M7A8Y/n9g/I9K8n9gkH/AAJEdcJIf
gwS6jRFC/mCwf8DA8IOh/AcDwx+G5/8bGOyZjwNJ+f/tQJL5D9AELldPrkAuABMxYwMKZW5kc3Ry
ZWFtCmVuZG9iagozOTEgMCBvYmoKPDwKL0xlbmd0aCAxODMgICAgICAgCi9GaWx0ZXIgL0ZsYXRl
RGVjb2RlCj4+CnN0cmVhbQp42lXMsQqCUBTG8SMXEg6Ra1vnBeqqV0onwQxyCGpqiCCoxoaitoj7
aD6Kj2CbUGiXupdq+Q3/D75ADEKfXPKp71HgkxjSzsMjikhFl8Tos2wPmGTIlyQi5FOVkWczOp8u
e+TJfEwe8pRWHrlrzFJqGhnXX5wKnNIuwS5YCSxnFTBpKeANPKGlqaEDcIO2JoauQYYAPelqnHxj
KBR2kWvYXf5iPcDQKNS/4fpPqMFJhgt8AUajP+oKZW5kc3RyZWFtCmVuZG9iagozOTIgMCBvYmoK
PDwKL0xlbmd0aCAyMzMgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42lXO
PUvDUBjF8XMJWHgQs3Yo5vkCehPL7ctioK1gBkEnBxEK1lF8QTepkXyxgNB+jUydBO94h2C8N1XT
Tj84Z/mr4eGwzyEf8UHEasDdHs8ieiSl7Bhyt79+bu5olJC8ZKVIntqZZHLGz08vtyRH52OOSE74
KuLwmpIJV1VQFfH3Nr5BBd+0NObwijW5p3EMkf4iDGJ42AYl4nTHcb/BHF/5rmP5RweIxbJoO7Ka
90wPgCDLdOgQNR/CPAD+Amb6T2uFMrd84rXBK/GWWmxFQ91k0QgaoLHvKLDnmMIW0UlCF/QDpVlf
mQplbmRzdHJlYW0KZW5kb2JqCjM5MyAwIG9iago8PAovTGVuZ3RoIDIxMCAgICAgICAKL0ZpbHRl
ciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaTc69CsJADAfwfykoBKGrg9A8gW1tEbeCH2AHQScH
cVJHQUXBSQu+WDdHX8FHqJug9Ezq0oP7kYRcLlHY7nXY50BuFHLY5XVAe4o09zXVYLWlfkLenKOA
vLFUyUsmfDycNuT1pwOW6pAX0rmkZMjGpFeDqnaBOIdVwE0BEcAFLTFGU3RTX812opM9xfozU1/S
DvujWgZ6iorX0vgfp6X6Cg/Vuusc+5brHPst1iy1ga/Ykv+BXjniXI7IdTfpcDM4b93WFLp8VRol
NKMfwyNOpAplbmRzdHJlYW0KZW5kb2JqCjM5NCAwIG9iago8PAovTGVuZ3RoIDIxOSAgICAgICAK
L0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaVc7BasJAEAbgWQIGBmmuHgrOC+huslr1
JKgFcxDaUw9FCKhHwRa9iebR9lF8hHgTDImzsknp5Tv8w/z8Pd0dRqQook44oF5E+o3WIf6gHnGq
qK/dabXFSYzyi/QI5ZxzlPGC9r+HDcrJx5RClDP6DkktMZ5RWabj4o/gBkHmZ+AbLwMvFTcHiJyB
HBqOEzQdZ8sYWo52qirMDiAwicO/mIor411Th7hDRclAUXP8z7BG1ewsSY1xHAVTCG4vvCe2kmdD
/mKfXm2RbWpnYOcx+B7jJz4A2p9L+AplbmRzdHJlYW0KZW5kb2JqCjM5NSAwIG9iago8PAovTGVu
Z3RoIDE4MyAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaJc4xCsJAFITh
kUCEhyQXEHwnMIkrQUEUooIpBK0sRAiopaCinRCP5lE8gmWKYJyNxV/s7LewJu4OIw21x0xfTayH
SC5i7Bbao73YnyRJJdioiSRYcJUgXertej9KkKymynWmWz7ZSTrTSVWVdU+nHMMpRmh+BvDfITuj
8zpj8syQ25Dhi6xR1pGC9J//BilI/+VwSetIXVK3WcAj9UhbpG0b6SgHHhWcsuIfbDJPZS0/deBD
DQplbmRzdHJlYW0KZW5kb2JqCjM5NiAwIG9iago8PAovTGVuZ3RoIDE4OCAgICAgICAKL0ZpbHRl
ciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjatZAxCsJAEEV/SCFMkyNkLqCbzbqIjUKMYApBKwux
UksLRcFCYo62R8kRUqZS12wRkLQ2r5gZmP/+UA50zBEr7sesxqw1HySdSWk7jFiP3GZ/oiQjsWGl
SSzsmES25OvldiSRrGYsSaS8lRztKEsZfg0gfFvkgQFqv4RXooJvcEfP4IGgwMQhtJcOU4uiRQ4E
pgsvi/J/6Hr5tIHMT742eCvTuFnbGn7l1c7cddC08e2F5hmt6QPC1WD6CmVuZHN0cmVhbQplbmRv
YmoKMzk3IDAgb2JqCjw8Ci9MZW5ndGggMTIxICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+
PgpzdHJlYW0KeNozMdQzNVIwUDAHYmMzBVNThRRDrkIuIwsg3wDEBUkk53I5eXLphysYWXDpewBF
ufQ9fRVKikpTufSdApwVDLn0XRSiDRUMYrk8XRQYGA8wMDADMTsQywPx/wMM/2FYHio2VLD9A4b6
//8/wDCXqydXIBcAvp1O2gplbmRzdHJlYW0KZW5kb2JqCjM5OCAwIG9iago8PAovTGVuZ3RoIDIy
OCAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjabc6xSsRAEMbxb9kiME1e
4LibJ3AT9wJXCIHzBFMIWlmIIKiloKJgZfJoPkoe4corjozz6TWCRX6wO/9ZsqyPmmOtdOlfXmnT
6EMtL5KznyseObh/knUn6VpzlnTut5K6C317fX+UtL481VrSRm9qrW6l2yjKLYB+AoLZgDi2I0pe
zlHsMEPcY4Uw4fkXGO7IRMwXB1/6n57TGcEB7w/4Ot9z9k78YecU/JlyJF/OglstFz4Js8AssIgs
ChYlh3OEASfkg2wRB88is8jM8RylmWFBWtKbTbC/yFknV/INVJ9jfAplbmRzdHJlYW0KZW5kb2Jq
CjM5OSAwIG9iago8PAovTGVuZ3RoIDIzNSAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4K
c3RyZWFtCnjaddAxTsQwEAXQiVJYmgLfYDMXACcbLKBaaVkkUiBBRYGogBIJELTYR/NRcoSUW6ww
f7yEAokiT8qM88eT4+7IL6WVXg6X0p+J9/LY8Sv3HsVW/Mm+8/DM64HdrfSe3SXK7IYreX/7eGK3
vj6Xjt1G7jpp73nYCJktEa0yyDlRtbUT1QlFE+sdHVD1RTaCZqRMzfQPVrsmkcbg8MwO1AUdYiZl
BDaCgKfRZpP11Y7zkfJZCSh5FOIvaWZVGAsLBf0fsMVfEggJY0L81KgXTT7VGYv9grifmbB5pf+A
go61uDJfDHzD38ebamgKZW5kc3RyZWFtCmVuZG9iago0MDAgMCBvYmoKPDwKL0xlbmd0aCAxODgg
ICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42pXOvQrCQAwH8CsFC0F0LSiY
J/CutrWdawVvEHRyEKFQHQU/wVHwxQRfxMfoIOj9i62zB/mR5AhJ4PXDAStGBIrDIa892pMfmbos
8ZFvKdEkF+xHJCemS1JP+XQ4b0gmsxF7JFNeeqxWpFMWQsSi4gKKCgvYwKlpgx7oAB8cQQ4eBqvk
ZrAx64AGaIIucIECO5CBu8EC9hVgrwNaoAlcEAMFMvAEb/OKH9+b/8J5mQSzNTTWNKcP8v1g9gpl
bmRzdHJlYW0KZW5kb2JqCjQwMSAwIG9iago8PAovTGVuZ3RoIDIyNiAgICAgICAKL0ZpbHRlciAv
RmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjalc+/agJBEAbw7xBuYQjcC4jOC5i9cz1iIQhqIFcIpkoh
gmBSChoU7G4fzUe5R7C0ONzMnEVIOptfMTt/9htkz3mfUx5wr89uyHnOnxntyTkpppy/3F82W5oU
ZD/YObJvUiZbzPnwffwiO1lMOSM742XG6YqKGcfAE4zHCObSusKE0HBRKsUrEGogLisBeBRzFbo3
4ZR4xJWRzeeW3PCRXIMgfbVy0/6GoJS/+H+0lVIJDf4vOhZ0S62sdenuTlRjqCfbkLwdiY3EJ/Kh
auwRaVSUMoOuRKXXgt7pBxQrWNEKZW5kc3RyZWFtCmVuZG9iago0MDIgMCBvYmoKPDwKL0xlbmd0
aCAxOTcgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42pXOsQrCQAwG4EjB
QgZ9AdG8gN5d9aSThapgB0EnBxEEdRSqKLjZR/NR7hF8g5pUWujg4JH7hj8kdyMzsAFpstQPaGTI
julo8IJDyyHH4bdzOGOcoNrQ0KJacIwqWdLtej+hildTMqhmtDWkd5jMSAOfUJgIUZ7nrs7rWZIJ
kAI0YQ/QEjpCCA5Awwu4xziBCxqClzG+7G4KLaFTUbz8EFLhLTgZrfAKZJNf0a7TK8hKol88/yGS
r3T54jzBNX4AbPpRLQplbmRzdHJlYW0KZW5kb2JqCjQwNiAwIG9iago8PAovTGVuZ3RoMSAxMzgx
Ci9MZW5ndGgyIDYwMjkKL0xlbmd0aDMgMAovTGVuZ3RoIDY5NzkgICAgICAKL0ZpbHRlciAvRmxh
dGVEZWNvZGUKPj4Kc3RyZWFtCnjajXgHNFzt2rYgWtRo0YfodYbo0Xv0TkQZYzCMGczoRK/Rewsh
Ogmi9yAIokcPoidKCIII8U3y5j3nvOf/1/q+NWvt2c99X3d7nuvaM2tzsOoZCijYIW2hqkgEWgAk
CJQCKGkbmoOAACBQRBAIFCbi4DCCoeHQv+1EHCZQdxQMiZD6D4SSOxSMxtiUwWgMUBuJADzwgANA
IgCQmBRIXAoIBAgDgZJ/A5HuUgBlsCfMDqAtCHiAREBRRBxKSFcfd5iDIxpT5+9bADeEBwCSlBTn
/x0OUHCBusMgYARAG4x2hLpgKkLAcIAhEgKDon3+kYL7viMa7SolJOTl5SUIdkEJIt0dZHn4AV4w
tCPAAIqCuntC7QC/RgbogF2gf0YTJOIAGDnCUH85DJH2aC+wOxSAMcBhECgChQnxQNhB3QGY6gBD
DS2ArisU8RdY6y8AP+DP5gBAgqB/pfsT/SsRDPE7GAyBIF1cwQgfGMIBYA+DQwG6qlqCaG80PwCM
sPsFBMNRSEw82BMMg4NtMYDfrYMBqgr6ADBmwj/zoSDuMFc0ShAFg/+aUehXGsw2qyDslJAuLlAE
GkX0qz9lmDsUgtl3H6E/h+uMQHoh/P5e2cMQdva/xrDzcBUyRsDcPKAayn8wGBPRv20OUDRAFCgp
JiYKAkDdAFBviKPQrwJGPq7Q387fZswMAX6uSFeAPWYMaADMHor5IvJDgT2hALS7BzTA7z8d/1wR
gUAAOxgEDbCFOsAQRP/OjjFD7f9aY87fHeYNsABi6AcCAH99/nVniWGYHRIB9/k3/PcRC6mpKpga
qPH9GflfTkVFpDfAT0BYEiAgKQYEgEAgMYC4uCgg4J959MCwP338R6wGwh4JkPyrXcw+/d2y5x8O
cP8RCA/gn7l0kBjmQgHc/yb6I6AoEIK5gP7PdP8d8v9j+a8s/yvR/7sjVQ84/Lef+y/A/+MHu8Dg
Pn8QGOZ6oDEq0EZitID4b6gp9C/pakPtYB4u/+3VQIMxalBAOGAYLQC6Jwi895cdhlKFeUPt9GBo
iONfrPnLbvxLb3AYAqqHRMF+PWEwUUDgf/kwIoM4Y54iKAw1f7ugGA39s64KAoK0+yU2YVExANjd
HexDhDlrzEoU4AfCqNIO6v2bzAAhQQQSjQkBYGYMANgj3Yl+HSxIFCBki9kjDMExdqJ/5IZ4uLtj
hPabBJjCf69/qxoK9YZCiOZnkBDpMKdXYe3nNQoMXgKbI3grq53RieZ9UaJoztlnfo5a+Nlqk26K
NnYv7gxn6M2VR0zM+DPwfjkf9X7UnRu8nK6ej8ZS6VtXPBQoGPx+3O0AZbZD0juMiWdEr1McJOkz
kdlY4FpwpZjOXIaL94hsv9wquupEbT+U3AW4AEpOyVnTGdBxCnmdu9hPzFnZV9FD5o/I42+7W2R6
GGkYj11hP4HFnym2x9J991m3iM8aWlp6m9vflyFyVKjZWy32IoKSjsr3AWvecPIAHXVS7oMmFBan
ouipUnlaIhtdsUsE5zKOjfjyj6nC/rakARGPBgcdpeBbuo/fNXrUIUVnZPJ6lo8YrTdyjL4Lkdxp
To525K/JYFfkqLbDOh3KPKgWgef34tIwA/DqOhevtaeQpWVn5lrYC42x+I9DRay2xu+c28RlJ4GE
LdNk4BIDH58riunBmV2H7U0XLu+nASjpOSj1NHB0WJ1WPYbv8gt+e94HqzRjSUGcfGp+2z7UE3mI
ZP/CRD0ZnGjWkb37ZiepSUP09D2FCa+KGLpWcxbZZc2TkJcwFWiQn4er19apJv1QXnJunC3BRISs
wIhi1khrGytTh9BcKlwhaIqclNL5SznTy4UqsXfPZEKaZdIkgoCPF8cPbyjr7yWQ167f0u/5ftMq
0db9UEiYwEozv/Oho02pDtcD9L1EWONu4uUnRfPJ4EPxmeV8xZ/GgdaUZY8f5dvH/Yj/tn3ScJBv
plAX9RAendo1Gbhu/fwdU8fD/njGzNfje70dXGnb3uoNF6e4h5S2Q2pSA2xhxfDKxgTRVqWlfupo
Y4t+sFb7STOBe887+8aT78QgizPpexvBrlafGnQOXH9UuCkqA26Tcc2FS4qsv9AO4pT0wyWOMglU
JvkmcZsEPN4QIjyDEMRytG8k2oDLaS7QFO5asD9pjqGou1BzPTztZVyibK1lFHow4As5wykOUZX4
4akn8uGjkJmu2FsfBWRX7ZfHu9uWpm4MyiHaLXhR5vdWSo8jmikKzROm3xWa6akcal0Jr1sLt9x6
0VKOVE/zIwLRek/SUQ3ucHW1e9D5tyFJzk8vTHVYmAyyVVKPSvazWhKmsE9+cKauZ8JZVK9pHgVq
UWAbOIJeMqvm2X4teTEWwBcJJ1E6twSUFC/2cBOEMXraTyND+ezH7uRq7+6z1AWcweUYIbzLUWxf
XlgFGlRtWVa4RGyQv4eVhmlW6A5OxrNq3Ip9NfXqx/adbwYUP63RU6bSWV3vvmYOeMhz361A874r
pZy6Zfws189//ds3/QCwyKZqGRwnrfNYwhu3igG/aBKdrG6qUNbzYk26jnXBZHn8J4lS6xBVqAmy
LmPRszVvL1mupy6VRTo1t1Zm+IMsf1j/emll5yO2yu+Nadm0Ewb7Nz0NlNLminFz9ZUdiehIp+St
+fMGaIZzyTqcb9PE2drDtxU0zvWssCvqsrzmsylL7DQG1X2duSFnIqHePxKZYwaD9wyHjPU06uz9
NEfLR1D04cRfRsyr2wv2hfY8uxPGLApafswxN2tx6BbI72aph0ak3L6/rMcV/+D58GKgZ9I0fz97
PZujcam23EndrtxqiivvTJi4J+ksrcyiHggVsK5GliJfpJMsanUokhZttFknYd8aAaD30S+JDG3R
5QmrJ6kCik9tTXKQhhOGqREXXSQb+D6nPD62/+wXOW5Foez44eT+RqFfVtaaYtrwzkzAxev++TyU
sD2X0rHP8lqN9cDLqZfylhBmiZRaBL24G1co3dYNzajLe866MrT7PyvlZ4wByWUf4PxLekiVJ8u0
W87Y77N4ScUJ3HAsFljx9s4umkbnPk09QraFWM2yN3HGbh4fWVJIwNMSNppQLZxhYd1CiWtrVjzZ
rEabb4LAJMfYq1Vf5sfrVmmCOwzZCqQTPqVdelhhGUYTKYgeZYkpylAsFnoiFrOM1gleZCXUjrWz
hU+clVNaCuGNCAQG+EVN9A/K50+l8z1hzIaR3rgqh4BHXRGDi+v1Ux+n/SpIdMpDsA4cOVDfKz4f
5gGwWmZXdYpoQjY2q0wWNkYHQrvA5dmWJ5/kpvmJsfePbNEF8JRMR3KxpGvdKM8e61I8g8/v6iQT
DQFWOHr7rPquZ4TdiQxnLe5iZ+3d0sV1D9M/dfVveM4xSzoT+1DE0zSoJ/u4StMrD86uA1Kc6PZB
ueNShwZhllVLOba+akpybBwh/tClYi/WT7XpI2Jxw8UGep/Yt5papK473vMMdsSr3J37VGzHVdW7
2cUg0NJI/FYYS4ihD8DxNT4gcr6LIXbuAy2xy3B49cNL+jeFWqQSY69P5uMgw8cNY0iqeeyqmBwt
9eL3rZofTo4b83gyv+G75fHNLkLMfdL6RtqK83NuEFFaa7+LvbIRkK/DB942wbti4DrJHasdPy1H
G5YNFpHZyS3VmlHjUnKHmoeGvzlz1jFtMH+9rzp3/5NiQF36Z+e6xV78FYN97oXpMSvhOQ5yILbC
5dWeS1gbVuwo2We4v0socurtXvk9Ov3NVuoXYQU+Tyn9UxIWPFluH/A9TizKZ36TqtIAiX//ah4n
Wbt/d1boxSkTzS56LhznUh2aHTGvp1T/2VPnyzabmlgAcckeyRf8/DzLBlCBAm3i69hUPv/tGu6N
FpPprysxamVVcPEQTXsGUyrfZfd8632ZH2psflwV94YjzLQBJdxdd3rTaiMO6HyFPtQ1zvtOavU+
DPNviVa+wdx/T4Ds+ypQZd+1MYb+oeFF87HCwGpkFUFU3dtVurlmhY3Ulu4ONLyzdlT9qsACyyjY
GzWqXcgUrhfNW/8MCi1PKLEv6cTycl6IvMN8rg7iEScoS4CxxY33HoSwA5nmfgbXV/aayMG6bt+O
9j3elujv8+8qlrW7dvIxyo4L7m0wcRnYylilcyt956A0RJd0nHQw97o1+4ak7822TaMopeVAoTfo
x61JfZkRN0uRTLz7GZKx/e5j0xpPCpBO1cb7mqeU3k4FrYKE/Hgj53y2oJqZV1+JezVy4MpaB/oP
cUSCzxr1BBDIk/ajDq774+YdK3hQgT2Q0DlpbL54cCyviujdDLvIr0XI+HQ/S6UKWfafOKqEvg6s
41G8z5GtWFM3nWLeC+j8CN4fKR55gTySSOjT9NJ3WIpzzeUFWVGShgjOxEQ9He3ZrSXWMol+fPL2
+vLchYQKDh4lseSg2hNkK7FJbCu3fqnfBGMMpN9wfX3aF888hI+PSsYW9RE0C03AYZwcecnzdYux
0KhgH6vk1A6kmV/oXFn5LsZpKbCykIABAfSlrVB7ybTK4hbdlLALLjfV/8zhGzZ158GrljmzIvrC
HhG0hg/wTedzQdypu9F9Fil3i5hCle+qvA9JdnWtVuWtLPtWu5zpeeCuO2U3ihBH3CqimMSxlwzl
rWbYM5P61rktO9CeLcU7sqzFZI89EkfdK5nMCU52kuZj8qNuA0YS8owvKCQ79NZo8u4Em2n2YC+a
NHL5zj88fqfAtMBDiPhyOnarbtqoPZWiNytxUWt0hfTB7sHRZytlWNmVRcmhFOr+0w/Nwj2sX6mW
jSMv/HOw0u/ifRc1Cdu1nzCO2XHTCw44u5z0l7mOzcb8n+kR1fXX68X7hMqW/FrKHB+wsZnCS8TE
5+CqEMRfw98t4+9UKSxKoTQYIp7zbZo4+SC9uiFjjpE8UPCzkGoZA8NgyzCwMB1tkLvaGoMtyMbo
BSV2pKfrItULegbdmHFxPfryIBJZL19Tu5YefG19uKMwGShSuqZP/blLkdnk5DH7oaRKYStNopMM
0RNLOUDlp6d+XjerrclERc6KVb84THXV3XuqmPVpI2dPoazy9mqH26uxw2EylpXXyxP3GvBjmCOL
Ese/gF7q2d95T1h1zD9j2JcvdrLefpPxmXtRqUXSUrenzUfi9obaH3G0J12B3mdq7Nf5DGHFO2OC
AQUto7fepTaV0X4Y61QdyUqF1NRmJ4XI3HnRbc9Ke4OFd7ijQhBPaNsL7020gUQrt/z8/JNsXxJI
c4d8rw6nhktG3tJzWTPWty5p0K9D8qNwGlLTa7ZJEyX1T+dPJd47004n3bzvc56r40ECTsXfKS7r
6BMs6T/ARuvUF7+Jggu/Im92VtCwjOSh1T4nC2w0LNy6Nk+fRzTQh8Th4WUlTHOW8VrFMw0kcV1C
5LHI1u5ccjYN+t9fGe0ryjjrZJ6g36+5fb0zX8GXCiF9EdR4v+CxD5fLHup+lvHnYElXVutO7FL9
9oVvG1wlOjlq9QerNzNlSbH7ykZeO1nW30Yci5jJPijwlZtX3g+S0TkPv9FhiyBhivNzo7U155Zl
m5fg/fSkc3DEucxH5By5FnOO9QEQdBytvt5DkqDstdZyblkURNzBkEi9a/fMTyWZeqi494lX8Dzd
ahaFIDu1yeq2Iz0699TXmd3Zmd3y3m41Ne4hxL654KKavE0J1zRd/mj4+IfI09MMVxa4fvWzFP2t
rGhc29UyaiHX4xsNx88YjVLcOlUnJHCtf04rUCR3IXYp9d/jXxe6aMb7cfpK35/uysMLdjlat4CJ
vxujqd/Nff6Vi5fmys0syOgG4gh9n2E61vlIiECuXNiFjidveMz+pKV6P211rfDc5y73erUNx4Jf
BQN5KWu7PnOuEJATteLdcmK/rVjJVzXt/uRAZeXAAj2x4KCryRin/5z9gv2VDBX9x5DZXLkdO3kR
CA+5pUgFfTrpzjTjNBYHr3aAOmMvfdbn4jxpJbvnq5k3B91dO+hqQFROV/mqFPTkXVGQcBQTOm1f
jetsTelReqsrD+4LnlO8n7nWLNkUhTy109wtFznFDbe0tVuJGurCSNz6PTkbq4fOlFY2RXSwGrUe
ouq8jPQ8/JJoUO2tYzXnenlP+ASevigvMH6SUav6zfhcj61NczQigq+yfdK8EypOKQes5E47JYDZ
MTBka9VLOzjjS3bf5jbXEEiMhdu8/PZF2maaentLYZxAXar+5bNVc3UmW1BKw1qb+oBfs1fogIGV
+UQ2HSk/0TN21bL36erK80cm9HKuR/g+ExktVHrLHKoybSE9A/2KkXin86cFappzeo51j3XqLZpx
NYasd6KClAgOjWh8lyftCbcJ70+lp8ZeBt+wuYf5VVYBzTzgar9aXWK3CTAgxCMLwV8IfFQWRLGm
I+xsXwg+Rno8EBd5Gki+U3/kubrTdRKouWjql6s9tSwiN5sQV659ZPldypROmorCkyUxnDzzptma
9M0wRZZkwuhSM8oEQb1VDWm5fFajoiiA4K0mFM0ezqmx5cbL0GSZCbOYn7eukkXrX8cEuQdpo2V9
ZKojeNeDbZVwOh9bkXSg+xgU3GsL4FyN530laZfHNx6dnM3lDzJqBWPvhhbopXCKo9Fk2Kcear7S
mg73Fo4n4pilmzx42D7XSV98MExL7/HsGD68/Kb0uE6u60Fom1CyKpuYsWANUHYbD/uE74Om/lQY
kI5taKpyQmY3+Cvq8/J+qDfygeXqbAXrO69LMd0lwYAneUHo3eFAUYrDQpO14fI6viqK4qaqF68v
mcRj6oxRIdkvZ8r7fbY3h96k4BvlxyqJXqq5O6wZ470hF33HnhCZEcvpX5PQ0BVD8DhtSa1iY04i
L2OHpKAaT9tzc4XbiRZdGrq+AiD5OlaI+LqfYzlq2aeP/c70TrjuXBJ9lAupYOzz+BeHhAYWnbTj
mUid+053twh+coVsv2kHvaCcI30tHcBCdhj+SDvwKWSGW2oOmlArdxoesU75MOses2aUQyRued+n
op7ybTJK+dhco6pUwDQX+JSNo1/T30ZfM+Bj4dv1Iw/liNyUaNKAY86gqzcSkoJXM6Vt27b0nooQ
vkCVLj454kHRkihOuOSJWYue7DjC4YRQQ3VbSq4HnTqXiGdorDsK6Sd1ElZysSj+WKkrLhvsbHrh
XFxY3oE9bFbNFfrqC1MJTS4Zdc9949JXszqLElpIO6dF1CypCHmkLHHWXQb6r+kTaC6zNDtqST4V
8dpDnQ08giy7WAm/PsujWJeWp0KRdLf6v5Lntc3GUxfb0XvSPTHHjsAzTz/9yeKFdKU8+ZzFmqXy
Ru+puKoc8s7YGyc9Msm1oxdsOd0OKYoxT2NH++b1vsSfSCta6SfolqeIfO/iVbwlUhfqgWjDYW9a
0egn3bnOt9bFg/60eU/Eksn+esUmJEBAklpf6E3xpnYdNChPbq57YHBnsqbhBjP5nuMGjmVMie1h
F+HV57adSusd4fsT5yPp/Xy45Htoxp6KGoux3NoougcFP8t15Ys4tJM0QpY/k6BLGuY88UIjph/R
twjZrk/0HmmbqFIPAUWvR/mcNTaFTSVl7dMDypsA5OPnbxpPRNCRjZXXrQVOFRElvf5spfVbJ18S
Z4jyBwYtqKe0YhzzsePNb1PX8cwhRcWdqVd+ptzlCMRXT36ExV/lPep/gqpGee8Xq+fdV9WkWN+I
nLs5su9Yeqvlodj4nXAsF/7lCUdDAdOHtxNIcUYf3OFqqjkbkinb+OCls/m0DgyvkIpmP9cVXdHb
CPPqtR6PVgHGsGoui0SPD7NZbU58d3D7KQmstVfp55Z2ZZP5OWQPmRXMcVZD7U8rDe8Gr8cQ6n7/
umtze4ig1DU50695pUxDjFYpXfNKCUfIq+apCxV+5Ychw/fsL/V/ME8oaZ0UHic103hnehF+7Cxh
CldtXs65yUnymC1sQyVFdiTCv1HaBpesj9jzB8c5y0K1kcU+ZAbP8iAEih3DppZhTO8Ut1KJF+YT
c4j29J6W8rDTT6LxeOhjTfXKyI4tpeK5Ld92t26E5Ry82vsjl5jX0bqY2Ssl8i5lTWZdfLruSPsc
bgd5L0v7EpOs4R6LncDHu7Eg1e+fma3IFEQ8qwgH1nRzPCerGRuFb3gSE/lebBo1L18MA+eXqGzv
nubcsMjx9RlLnmbHhYKqFp2nRTPsDBT2bLj7wuX9EmVu+pjKdh1GbcheJFVv+8hv9V23GK9eEPx+
pdCrLj0A8Us/vO+jaCteDmfl9E5oPbwpXx75/iCNQMCuAHexw2Nj5xFWzwj2Fltm4BmXx5chf2pW
2UWRH8D6ONre9udW0y9T7/BMZwn4NekmtNTozlwIkxuU9dSTeb/9tEvAEqXfR3DipegwnrTWfmV4
1ZaXwzZbAc+xPTz1lW6pzdTwmX6kMnuze3gn2tW9zFmbuEkeT74Hyvn6mUhaJrx3KBpteLb1hoMp
eJ/nk5CrwcD58vzrCrY7wg0eRJkq0GTRc7438zWo0odHXPQEVLUtpd8yP27bRum/oj85rDGE3853
6jsFJNLR++J70mGRLwetPeYQpNT0faRDVRATtn25fkajsoPPvw41EZ6kkNGmRVLyUAkEP4AMmHws
kpqkN54XnmiWHQRFzb5NYSPr0jdtfRaqe/VtIuker67vj1ZBSPOxEyS10pzzcuXD3NwYZcLejsyu
+O1U8ztZ9afnbw93+BVEEUMaK6oxaUK5cpfvYrJWSSzBKMF6HaFritw0f/G5JLjORZXDrv+6qp4E
c/q82mMjIEE7IeeNY6bOIg4v/Yx4i1u5Ey5fa6Zwv+9tlVP0pPAZIBca9aUvWO7mX+lz+c4G0qgc
jPlx3IvGv2WtdjmaK4v6sPX0oZanbE+BO6f4nanXrz5kfCPF0SR9DhacI+8RoqPGilnwuR2CI9Qh
Wk0+hpi/dgta8xpwa3v7AIifWvJl2LJgbmzaqlmQOPxZNGfekqPIyZocFQFkelXr0ROK6Ievt3Nv
sTJq7G0n1L96qaq59y3i0RIopGmSDskZLDMr4OsVKDIet7Rk2YEzWC1IVon4QfLVtfsm0RSOZzTc
PpLnUWNMqZTJq3f6ZoXdyNTss0DAvWmW51TzFDEmx5EJfK7jPi9nzfp0Q7Y469cKy8vdRMy6NbWc
odffyktrIzX7FztiT5+v2OJ3xcpFNeWnDaTDFya2Dj13FE5VDlnGVKbF6skjjp0s2TWYxqXDSY+Y
/E0Z6iwoRXxBJNUbNohRxc9BLJtp2tGqhaIOxmWGVS3dz7PV5qmnF7/LYWkfH6eP1asN04pVbxqP
GKTyPssK+0BcGtmAviVoep18TfgRQgTXW9CtaTKXgTr3Oh+vc1D9D5XThQQKZW5kc3RyZWFtCmVu
ZG9iago0MDggMCBvYmoKPDwKL0xlbmd0aDEgMTM5NQovTGVuZ3RoMiA2MTIzCi9MZW5ndGgzIDAK
L0xlbmd0aCA3MDg3ICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42o13B1DT
39YtvaN0pBoUkCIkoSpSpPeOdIEQAoSSQBJ6BynSpAvSRLqA0qRI7x2kiNKr9F5EUOGL5d77/e97
M+9NZpLfWXvtffY+Z63fTLg4dPQFZG2Q1jAlJAIjABYESQDkNfVNxAEgkLAgCCRExsVlAMc4wf7C
ZFyGMBQajkRI/C+CPAoGwWAxBQgGy9NEIgBqbk4AsDAALCYBFpcAgQBCIND9fxGRKAmAAsQdbgPQ
FASoIREwNBmXPNLFCwW3s8dgt/nXI4AHygsA378vfvd3OkDWGYaCQyEIgCYEYw9zxu4IhTgB9JFQ
OAzj9Y8SPJL2GIyLBBDo4eEhCHFGCyJRdtK8dwEecIw9QA+GhqHcYTaAXwMDtCDOsD+TCZJxAQzs
4eg/uD7SFuMBQcEAWMAJDoUh0NgMN4QNDAXAbg7QV9UAaLvAEH/IGn8IdwF/zwYAFgT/u9zf7F+F
4IjfyRAoFOnsAkF4wRF2AFu4EwygraQhiPHE3AVAEDa/iBAnNBKbD3GHwJ0g1ljC784hACVZXQAE
O+Df8dBQFNwFgxZEw51+jQj8VQZ7yooIG3mkszMMgUGT/epPAY6CQbHH7gX8c7OOCKQHwufvwhaO
sLH9NYSNmwvwEQLu6gZTVfhLwUJk/8HsYBiAKOi+mJjIPQDMFQDzhNoDf5U38HKB/Q6Cf8HYCfx8
XJAuAFvsEDA/uC0M+0Pmg4a4wwAYlBvMz+d/B/65IgODATZwKAZgDbODI8j+Ux0Lw2z/rLGXj4J7
AsxAWO2BAaBfn38/PcbKywaJcPL6D/33/QJ11OQV5R7x/5n43zE5OaQnwEcALAoQuC8KBoCFsF/i
94QAfv8sowOB/20D9J9cVYQtEnD/T7fYY/pXx+5/BcDz1xy8gH/W0kJiVQsD8PxH5OYgURAU+wX+
/5b675T/m8J/Vfl/ify/G1Jyc3L6Heb5Hf8/whBnuJPXXwJWtG4YrAE0kVgbIP6bagT7Y1pNmA3c
zfm/o6oYCNYIsgg7rJgFwCKCIJE/OBytBPeE2ejAMVD7P5L5gz/6ZTUnOAKmg0TDf71bsFkg0H/F
sP6COmLfH2isLn+HYFj7/HNfRQQUafPLZ0KiYgAICgXxIgNh5SQkKgrwAWMNaQPz/K1kAFAQgcRg
UwDYGf0AtkgU2a9rFQYAIWjszHC0I/YW7H8Ff+MgANAZjnBD/wb+sSPUDYXCOu+3MLDt/Gv92+Yw
mCcMSjY1iYQ+eOJQ+aTxW7ksi4fAlyGihaXmp3EmXRGiGO5PL33sNYhfKI+5ylnZlN0YeK7zuThs
dNKXhW/v27CneVtG0HyKSjYGR7FrRe5AIKfv/LjNDsZug2S2GxF//nSFej9el+26lRmB2Z1Eo8kf
oeLtwutv1vJ+NqPXTe9vA5wBBV+pOFJYMDGyWc3beFEmHJxLmH4Tc6pYGpRZqpuB6qORn3hR8Ngz
ucZopnOvFbPYtP65ud6M7q7nwkev1DveipWF0TLReatxZA0k9DDRx2eo1aJxuOVEv8oXJ8fdYsp3
DuOex3eunACzsnLGdjKBnAGFrA4DsvAI3ASU9nW1keqGxtFBIe5eSY4f3l5EL7mkhq41ogyStSF4
kF5xeBkPdNOrsD++ea358Kly9ZeFT8nuw4HbEBPOzEj9noMbA7vtPPLZ88ZRrgcq17S0LyIX19vS
4lwapODDj2/qvhFVGDWd1p/RqKTw1RWbg0XnfbQ/XjOXZ3pGQ3ND/pbTofHapxfKh9vruEGTcp4A
6iRi1m2jdMK3d3AU182WNC0vVDSPIgY6xIr5obRL1tMuWQum1jWKH6hbAjIJ9wcskLMiq9Wbw/0v
KaKVy/UXQbPmlxbA2eMPR0oszK80MvyRQOKwB0Is0PfSEeKCa7ty1s160XgVPvNfXgcq4laS69N1
ClbfZyQIoOmfA8YQe9QdsUQoj0oy367ZzAKajaeJfG4odPBu8nZdHGW/y6BKlJxfMxA8ncvgvfXW
c+mSFNc6VeC7lsozGsZEhv59GkihDLU8X34U1VwAzo/JIjhe9WTy3cs7W+VuqUfpVzKFPNu5XjS0
8XVVC+PnQE6XndBMdNcsaiTipr78OZK7jn68e6hcznSAvTuWKHJRrXGFxTD/9DqvSl/Vt1NXSDJL
qkwrfvuDT6Q3Y+MKHOrwKl+Vcdx7mkbdXnuHxxslDcL4M4c/xJMTH/uZVV3WKF3ejyEsOXgzYOwu
NdmQOYjhS4WS1HayUx/2LC8RVTdfvrK/u1AWmjbiFd/Ndd361Xm9x9K3D9bQQKEAMlnMoWjul1VX
59vaEmoORHMJmeGd0FPTD8MBNdMnnCIqjTruuSQCB4ZmPEwbEPGeeVFbWIrGRMxMRYOQpafdOjTM
okjjo++8Jam4HHSnKQics9B5x/k89sZEcNdH0jdsRmQ5VUhAoLW6TkvxjG0/u6z2bLyVrCcLgZD3
+IATRdus2MvZJ55+WrMVPVnb04MpUHezdYuww1DBo1t455dQAndoHef87bSr9Mn9By8g1JzCF02n
hb4xNCLPPRdPF5oorgZwXpMVPqEu5imISU2CPITu6g3OIMRc7D+/MGWy9fY+kolU72chp5tiuuCM
MDmvUUMCI12P+gepWpL2wwii14ZIjvYEj8G2hy1n759QZiao0clRj3vcEal7FyTzk8pP4QiYxh1A
8aTXVMrweUpywfLQ6xXxWsUASZiPr9l7MKzjAtC7HKg9qrs8X/DO/HVEGFFibmqViqhI57TIBj8t
IManfHLquQtcA5DvL8iWdpLzzan0hR65OrSg/CBNW4Qnm7Jn89F7Z8K4+o9818RJXNWBna9jHpAf
EGRR88QL0IXdE5bAFZOUBD7pTGs3uZl1/rNJopKRoGpbAXGqhJG4Tdgf1nW/PpO7NZtZblSiz4OC
zCC3PtIodpe5m7D4nFhRVFxj0WH5hfXYSwvfFbiM7egmVxJHGXh89duCyZ0DhTyGm/FMMhPL12pE
3yn0I7s/hBF/v0LzOAnrRgasEnvWGtuKI6YXlYNHbg650A2hnoDBM4ZUlfemIp0zF1oF5838JM9W
xH9STjfEKBDxacyL+xvmobOzG6QBFS/L+2Ki3/oFzvdnMH79rHD9ad9u9td1QswZy9VqUM/r7RmS
0M3OlsEdjknj+2KKdyQ32ZO32p1JuHn3YtWaqYb0PRhEOISHq3d2S5eG3rOWLGZVDRMMjlSFhj03
rN9SS/niejck9lGZaceTObN0tY9NuupMpNFZfBrP771dDq0az2V6CIopT+ml/345PWNH7NtbrlRh
ZbD0xXE/mfZZilBq5lh6w6eY7vCDstuRNwfZM/s2Pa27rEJMgh6SlvRlIZA+WRPjDN2rkDP378bw
uIpQR87MXppyODGhFPEd+aSl7wQ6irvo65ncJNK3115oDhqLlSkOclDHq5yIkmxyy0H5vwmyosH7
PO8TmCsi9O5T6JgW6S+oRo/KRpATNKjQ7/OG+3jdHV2tfHFj9tpmzf3UNw0JrOnjRcVjGy+DUzcO
cMZjAw3mGGjL0NkE9+2RrqyZiYaQ28vfIXRwqk89nHGXyYz4XGQw19bbfGyTHEKXcyIlOPppX26V
0nrqax4VKA/YsOSeBLfxR3xqvJZUZ8MsGANCpWsa3pCbttf1/tCM90D8dG0Xx3iYaQf/nbXy055A
mAjywvP0wI3z8TxB9J0y2OSjJ6IU7iXZcIpHiFChFxHmHfTlLVJiB8Yhg4xLcUq7XAHTNjc30qtK
lThGHi7sMxP7+RVFuioyXB9iSS71ss4LgxgtcsAvvNHN6l+75YBveXUYLxtYewMZMnhgPeqvRt4O
/kwdYksxxgj4GXJuCNdqeOVN2xV8HDfOPcdvGqcXmZscQSmvmUVN768c+xsd9k9QMOMK20h2UL0J
V8iFM2LMLcPK86/8Q1qAxdmR8YMFsXvXsgteBAhBeLKJ9w2Fphu1SESlFU40vtkwDri90BIPJZDw
5+p55ityKUWiB/y4YDzPy4m7ofrx+bIAOZLRNMHRP5NLkTJe4vuQLBXNQ7yC1REuDu6d7NG3KaHJ
wrb3siedLjZtQn5o6qULbN4FFSudI/DY6DNw7ph8VfYY3Xbb6yCy5Iu5sl5lrzImfONRJiVr4ir9
0/yBXO5U1yBVdRwl34gOel3ibIu0LaW2ucTLMW79pbFVIUH380hjtsbKPF6f567WbjbnyPQrYjsx
+sAxhqWuUF6TYWmxDxzbxpSrj30N+52/EhNal3qBzYWkrsdtlJa0u4TEf2AueXgyeWNNDhkmpdh4
08Xwpugsl3yF0YuWjg/XDqkMihER1cd8rhRCIg0a3Al+eWmihoOAn5x44G5Q+hdlQlx2+hOLbdOJ
lLur1YVecW5njQlbj77mT8grKeR/Cb/WAHXC9Y3Q8ibN0pjcYY9yYBeo6pj0aJFe17a6dacr4pbL
uVQ2eQztymq9lzfHy/EcXArpDtYNpONXRwOY7JC5wN7+I5pYRqKAPvobbtTyYqnWyZX1Szf3nQZb
b0DOcAnDXd4zvaVsWXxOzsZR+TjyNLUC+ANe77jl2v7o+ZXQav5Izm5dS6drXS9NxNso5aLgNOVm
USpCSdn60+1PqiVazvP+RpUrwa/MQ26g9G6xyea8uVx7TMlQav4DMdcgBKPm4D7q3aCJ2K55yvXB
HK7Q8DPwOOpw4Gu6zziKcy3m6HrZTFSGaFCEzMDkBrOayXOEbB6+DMkzflEvbuLq6CUCFTHwe04i
Vu9XURdAbwnHeoGvNyooGcSkbY0AqqtC+qJZoWJNrFdZlI6NgfGrCjePxD6/eiHFgFIEy2D62rc+
gU4tNYieXhfJxOWj4r9k0w2X1d3bArEI4fvOpMQ2sLyueazKYLwUPFOy/jGKYj6DjzSpy5JAb+Fp
rgkXXrWWaN9yuNjOuOVOc4FtMn5pOMqMyUVfBTy7zT88OEpqiH5bEtiZ13pWtsGgC+zygrmETETw
jwNMZ+NEY0CmtYvBJ+KLaEeiAnpcH3Cl6GTEdAKFZbwLTnd1tvcRaR2j/dYha1GnFkVZViLt0ihl
h+OEfOoce6naFWvFJjnFhoYd66LWkPZPzS1zoarGTCbSZTv2AX7JBL9OmRUH3wKSB8sZ2t43WVur
LZLsu7qXW6PS8uOHhD83cIql3otU8reTsaS/9/XC5+TUzf6zJ9eYSPyyb2ALMbvc3Fr4CdGSLLzN
oW6cS/eeWddF5FXNkDhFTaTdtoHPmGi0i/8zR4wy3YzHRATtkZB2iTDpEVP+hu2NBGOmd+80TxcW
vhPFK2rn4ZYGUscWVZGHz0frzBAmlgRHqeBaP7gjyvbx4PTt+3Ha3QkK0XZZzcvbHQsf8N5+0MfV
t29fSs2tTCgFuEc1uAooIEZYTXMffKmarglc+TbyWvMjAXtg40tjy59UlaqjlfnaLi/yRVtzIEWU
YXLbXN2f7xd9z328ZcoxT/95+gHA/WfAyyxqgvIg9SgRJh1nYusxvA8MXDMFXT5EvGyk6Orny671
Kkllp/hROQ9CHJLcR2/0+eyd7Sz4zGwIhDvyq2hT7ROWL/w0Giq4ijzSHpRQFmLY94qWfuNaykM4
N39wn1mEiHCMjcexmVDu+CLSohapN/Z1d37QDOhfwSofIDRHUXm0gb/L5UiqWROy6BNb4xLyGecG
65PSjwHrog9hHrXRrDLnbI1n6VPavnWVD1aDmlNae8IWvZRmdrbAB68pD7SAn1iO7AuMHYK3new9
EpkNNGuWa9st6Nky0/oteo6PnGF4Ki9bU/E2cCGhnx86Pbo1wmH6udex44m0AIMUC/FL1T5atTUB
PVk+nYe1HG4tTw9qdnn7Zzom3QkewxJz3/38yen93TI0tSXuzQOjH/mo0ozL8CrJb/QDihSkXRIa
Um4Mewqka6oLp6Dm5IqgH5vyN7szVr2ne1o2SibFR44Coqc7QO4resxmVvXV7NE/zqa7eGP4GyR8
L54VI1iDUjAklSzoWK8RfHChvxuZr35WzlOTXhK41eaUN0qpw8dBWdHCSCXqtXgQT56dX5zm2NQE
g6FA5Vu+b+c2rnTDFWZbkR0WI5QRnyKoVhtxgFNejIyd8ZQzdwwSKuDlkiZFCKDFNIvVUA2rwpPi
bf7e9n1Vz/CLzyuJCU+bo3m09xc48WNlw4zVRAzWTdJf3+IWZA1hM/H56ooKc2h6Oyo/fRvF3cK8
fK0w9L0Gclu1lKVRQTPjBMik6WEuUEeGO38KV/KOU29btIBAoCffIGaPXTEa2iHRMQ/owKwkW2lv
pCQEqdjOuDX3EXiYiZYnTz8hQorEI2Oao34Inl0vYOfFYfC2TA+98b1NuqipSuKHV4IGNXwLpvqO
eU7pytNF9zT5bg1cU6vocP0S+vIF3dEAi51R1QqteoIk+yXVYdOrq61HnWXaKLaNLwKRAt/2X2HI
sqDdXM+CjPD1ZMR1dGlCGr+I/Ex7p0cYRap5Lhac1zTFPuGNE3ojpGrCgoBHpm35nRaTGpzWI2z/
x9vYMeA7/bXThVVbwkySo09URW/Idqj91+JP72TT+S7WJmuJ3qLd96foBQgx0Se8O1IJCqPnmzrP
WYn9QgKk8AdeWXdLtQMLmB3A0v50RAp2ozwDT28MDFrkW8EO3NEU7AycmEMpxbHMV6dzZw9gT2Ym
BLvNfwj041QoDx1SOLZy8OGLulNtHGeR0L2faqHVysvT6TKtVHf8YeGB/xVKCJxbktur5bg4n6Kf
h2YgM8g+vXCUvy+m2V72oTq07QAc+MabSbC9/SLK6lT+IvuyXdPRVvc+E1W9tZ8Gt3ReMKFf9H6Q
Z4gFbmNVkHU5JLbvM/5oGmjHUFtFIqrWItpBLactkqJF3HHUIz4lzDB4m05BavK88CYl7lm76sBr
367hJ51UtX2fnsh1+p4fhr//3oWbn0SVSNlxUvD2OWxLbXa9np8xc5tJPCbYKc40R3PsOH+6SlxW
pM0gUSfDpTwjS3O4+JFea3lKJ3Gg7U4E8Qx/Q3J8czT4S3JLD1+Dx3BJ8IDXtSGPT7a3CQorh8N4
lyj8DBCpb7I4NYxXenQCcJtNEvGz7t0MATk//iAQCcfnZYSF6wtFIwvT602cXqW7mfleAxE4mDfP
SpYlfM+MkDSrJMRJ23lI6XHE23mvI+gAmdEySx1IOt3Cw7urwmsntdHms/Bt9F12/WMZRX+DgJpS
ntPLwynjCJo71ZFWBhcty0v9z4tyb3WQ9so+ZILcC9Tn1F9fElh5lNfYwUW2/RTOsdp6kasTYuj1
3JSOjnqTED1Jm+BGrbfUGun3c/98ioeWDRP3nmmrQCYlAm65MQthqnrrG/mkjPyjfQ1j6IzPdP2b
U7Vrx5UCn6t2rBI9KwwVfpRy46VZueyTs/IfA46vdVYsMztoC2iJlp4T4hpWKCk3r2Q2JbfsXBYm
R/IFqM9878wNN+9xXBUs3z2lXGJzyjOu0oeu+KIun5k9phpK3fuuyx1eGsUxDXnVa/wGU5Zx2nRo
hnqhzqoXVG8pUjPVpTdG7pObyHHzA5cwzRyDIGOI3wLZJwG5fv4ngx3zaVcrSd+74dM/g9gDOvw/
htRLaoq/C5wK63VKat+dGJEXRq/ioCUG/bL8mjqFB3m9EETPDF7fE2mgxS9d9RfuMhCjKiosvO70
NWP8mhCypp4jm/8tWbelazQ3dUetNpVd+lBX2+imTng16SUrCwlFNrucYWlG2/1FhwSGaxeJgXBx
5uJdUfZ7gXTpKLnVzmTTGUmv6uqGzfBkGunkS/shQMCe+tE6392vQPuqKh2HtWafVSvmEPIWBfkT
D0tae8aTOmC5izBMBaiaIfu6jxd+0O54+3vdI/LH+FZl3MgbBzyDjsJN0kSQCafGaMJU9p1vo1JP
g9UJmsgWgHvCD2tkP/hW4SnzzxvIRW1m6q0dfAqhFNaePJRdkatzah/1WUM73aIdPgSfiQNWhh37
x5gt42GrowI0V3G6YVqlSrrpgR+ZcNPJkvZSDmL44M2dUpu1eCGzSvd2+Cpz6Ba5pDTLWJzxwlrN
CodyHuOJ16oEhwA3x3uJSlhhSWXA5FpofKLiCgrPXASjKP2JXlWo4d5clQGl7efJ43AN8jP5xNuj
9i/IPOSOSa53ldikoUY++36r9snE6TX4Ipqji5wTat5t3s6U0Slcd4ZFfHiSNSMoMDBS+uWxU2V3
S99R2b2cK5EXOPR0l5LDanjbAsqFo50PvUlaDhuHB0oPTi0CkdCsh8vByGBq06Pq6upZxC0v1Gbb
ht0wbGopt73Uepyzj7eQRiirNF+36d5MJrsec9SX/eNeBRt547F0smqlri0V76Fiury9RZKh3BXi
8IBT24gKLh01XerSmRDWxGccPaYzuE/PKZlBzF3es7KWzEeAFFKPY5zrfcxkRtSyt3NsJtYrzFct
pPOgEh2N8fonEySleng8m5eHBLub0Xs0nLEYv0NJdjIVwgtARMEwkVetibStYMpBD1XCYbFez3Jo
Kd37mw7FpH6v6fmp4nTeHDooCuYGFlQVTnwzrmN6WTpgd09dmc5yD1TFETSJPPEuMAr5wSfy2LOd
bafz9TpuWxXp9pSw82GT2KszAGrDIad+KHXdzf21tJOGkUc+q46Wa+YX5fkYN6ET0sukvSuXB3Nx
3p0UqlX2+XlSO6qtalXkbGRzx3o/Mloz1owJGflrWBhwMt9wxVArdU7qgU+8S8mISMYUeiXwGJft
KqOOfMpNjvyEg69opC/2xPbn1inIu9WfH+janzpRFH7uukosYM80K2zoDGN6upEtaGEB9aNnFUQX
luSzLVpMZihLX8mcVVzuDRipDa6cGsNOyEdTxgiiffiOthHdnvRj3ntF7q0pjBXDa69Eer1mSjC6
wMWjK0+rvRZHkWfreFNZfe6u6pbLma3nkgKLZTOOdT7Ba4G5DwIFtjvxC4ptp1PJEcMtKoMpLNCj
xygHwGWY1stnMisq7O5O4SYIuxSJwzdG5G63aOYduU6ZjxglFVTPOO1OfTu9MCbs6AgjRUfVdDVG
5UzSgQFVr8Oo6j0UqY2sYLFs/YAcmHFwaq+kz96pwjRg9hjPytegvU1fzTnZUScppSe3R/r4zFle
pLb0StIoGhqd5KKACONweDqxkcSa6p6lSb1OxB2iZRqhVVzE2A4Srww/UlJtSxUMMCPVUVJEz0n0
9vnL0fKOzPPuJglIOAU5geTtLE/aNR+qbyWlPk7kT+V0pZpXtiWeX5H3j3w0HqTM3RGSPTvxdGj9
5MGmX99DKDRizQqXI3Rz43M+a1HA96p2t4F3vK5rOcr5vp/edxyCZPWBh7KXe2q+RwrY/7UpTnrE
DtdL6wEUJ8IxHmtRCZtK+8blFJ/fEYMOE0tCHV7yuc/wWFuw1wWsKUkexLZoZ6MybDqgdhUiixKj
dWegd/kfubqRBDPMenN8ibeKla+NqkQChrjTLCqsIP7x1YezTZogVnu5yXxyCXl39E5pnPpRzAJF
UD10lm3zfwARVsAICmVuZHN0cmVhbQplbmRvYmoKNDI2IDAgb2JqCjw8Ci9BdXRob3IoKS9UaXRs
ZSgpL1N1YmplY3QoKS9DcmVhdG9yKExhVGVYIHdpdGggaHlwZXJyZWYgcGFja2FnZSkvUHJvZHVj
ZXIocGRmVGVYLTEuNDAuMTYpL0tleXdvcmRzKCkKL0NyZWF0aW9uRGF0ZSAoRDoyMDE3MDIyMTEx
MTQwNiswNycwMCcpCi9Nb2REYXRlIChEOjIwMTcwMjIxMTExNDA2KzA3JzAwJykKL1RyYXBwZWQg
L0ZhbHNlCi9QVEVYLkZ1bGxiYW5uZXIgKFRoaXMgaXMgcGRmVGVYLCBWZXJzaW9uIDMuMTQxNTky
NjUtMi42LTEuNDAuMTYgKFRlWCBMaXZlIDIwMTUvRGViaWFuKSBrcGF0aHNlYSB2ZXJzaW9uIDYu
Mi4xKQo+PgplbmRvYmoKMjE5IDAgb2JqCjw8Ci9UeXBlIC9PYmpTdG0KL04gNDYKL0ZpcnN0IDM5
NQovTGVuZ3RoIDMwODkgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjarVpt
bxs3Ev6uX8GPNQ5ekTN8BYICeWna3vUlaK7XOxT5oDpKIpxtBZJc9P79PcNdcintRrbTwthdvsyQ
MyTnmeHIZKLSikgr6xQb5YwiT4qixZeVp4CvVUZHo1gr4y2oo1MmBlBEr0iniALI2NsFkZATSHNj
QCFJJWJsrZg9uDGQjMIWhRgYBVLWJExvGVJgVpOUTWC2mpUjYxZWW+U8GKx2yhsHaXVQPlmPQlLB
OK+YVGBhsio4MBKr4AkEmDj4FJQBQXBWRRWioQXIIpSyxqiQGHzoR7tFgVVklgKIHdbFGqegb0TB
q5iccAWVjBOaqBJDZmigkvNpYbGWKUBBC01TngKrklKElpDJaO2hHsmaGsbY5KTk/OLJk8VyZRMW
iLElP6HiZLVsqWBnIIdUvvxy8avT+k1m+ef/Pq7V8uX29rBYvr777ZCr0siL5Q+rG+kjFIXg+9Vh
t/lD/ao7bQKk0/I3lt/0VM+ebUGjjLqEko5kQdHz03q/vdtdrffqyRO1fLXbXr1eH0C2fPXipVp+
e7N6v36m3iiItny52e0Pzz+sdtjfxfK71VAx5BbLXzZvDx/2+Yxltb66vdq+3dy+z6cttwitDL/P
B29Ut0uiPLku8fAW8U3sQmq+csg6HL72rZu/nq5/92O2b6GwsUup0lvqIh2NMP6B0sRJ66lEZeQi
C6XOiQl03g1l0p0LReLcXnjZdrCsQVrbYTP6/pa2pxnWxXeUhnLbW2QrMvTf9vyUfVgsX2zevVvv
1rey1b9yXK4YM6Vld7s9vF2/g73hkMoj53pstWiBNbixxaMF1hfGliTHW051Psxu5HaYJT/o9ej1
Bg8pz5XCO7TA9H1tCaALsGxTWyItV9irOHIljJNghONMidHCKtmxBSNjf9I4cgpogXnHsQVyyQPb
lZeRF8mL5WXlJUY8DmF0kMb8ivISZiPMRpiNMBthNsJsnLy8vIQDZ8qYccENCaEgB9mmUXjIvRHj
yMCBXSJ2A1YISGebzhWcMKJSAWqzLhXAN1cyOTipQR6vG+TxhczJPGU00BMXtBJsp1oBDxfoEodC
teLEVQwV7CBxGCrYPOI4VJJIXfSRo02FB7tFVARN4nhqBeLYIjU2CzVTaxjPUq1hKsu1huGtrTUs
kXW1htmsrzVMZ0OtYS1srDWZvYiC3cZyVlngZMhVWeBpyFVZjOBZlQV4T67KAsAnV2WB9yFXZTFi
9VUWnBpyVRaSBat9JCsWC5Y+1GnQ1GlobavTGMrHToPgNACvWF7s7Od6DZtar2Hi6DWiO/Ua0U+8
Rgyj1/AQVLVv/eA/a7pQkB+23eXzJ6FE5/heZoB1PjQ2CXR76nD8nelMEYBRpqPSQJOF7MsSknUB
EYLtJCDiDls/UCXheQB8fxpyA0AFsVcYISUAexA+hRH2IriiRlD0CGiUvW9g0M1hY+xNR1CxNvbg
2CCkEoAcu+0nwXKEQEGwSA2CRW4QLBajCuIni00FiW+LSUVBvdAgi48NsvjUIkvQLbIE0+JFoBYh
AreYEGyLCcG1mBB8iwIhtCgQYosCIbUoEHWLAtE80tJNmli6drGGh6V8bOmsLq3E1PKYzzZ1dxwg
mmrqrOOJqctN4sTU5U7RBIjBPcK84U274M+TIPjLFptMxzlK73APMB2VInW+9uZAL0uQfAfXUmo9
aTsCMIQ7+KxAHdxJMJ0ee3Tlf4B192ET0OCcxX4ivMETz1ou935Rwpt7zLkJdf4CmxbAb8IcYSQz
2riEHzE19pp0ExbE2BhvKjYpF9REjSUnbi052daSk2ujguRbu06hjQNSbK08tZ6fdev5WbeenzU1
Vs6aGytnbRsrZ+0aK2ddZZErtA6PtfI49efU+HOa8+c6XwKxzoj0PtfGxarnbbxEZ6ONlwitsfEh
TBMbt+FhNk5HPrrU6IznnvbBOnsHDWOlsQu3KhqjiAAM4YdFEzBqUo7F2AEriDaHMnfigpLcJHv1
+vYiEGDEDpWAy2IsbA0phEodonAOHZwX3sbWHo/LbCjDPABSxN5IIu9qgrj6rQBWuPI95q43habp
Dc6DBg7Wp3NBCWjg+UK6F77+/J3s8ehk8hCId0mfgSyxVlMsGUvJxoyXMTY0XsZ4zPxIwqy5MbEp
xu+lJ4yhDJsCQ0F6mnsRkx4BkOt1EEDFRA0AMnEDgEy2uSQxtXDI5JtLEo8XDCw1U2zAkSk14Mis
m0sSs2mhkqmFSuYWKtm2UMmuhUr2LVRyaKGSx2BJ5kstcFr9WOAMnwGcl1ZdkoAHQvbPR85whJxU
kdMWr1GR0xbPMSKn1WO20MbO2k9hH3d5xyR11L9x9cnX076HgCtxKOuh7/xb16+ufN52+Xpavv2N
R0q4zeC0eu5sD6XedcYPvQDGmozDzQtnonL5Ll+ofb4/AV5hO8NImaLQHf+V2QdpMxcgHaFCWybX
5YTwSDOsRN/OXc5UdDkF3RWSlrwnwWK6/A6uLGzT2wvblwf6PPlDUBogJon5eILSJTOHR8Y8QWw8
bpKTAxLmp14S8QBG4W7ciMIOfA7uxp/Dd50zQH4MPT3dn8Xz0CQ/x34AUuSH5i+ppz5hGvb2uUA8
8AYRmkfMHL2K4TMC4znPIi//Z1J8GZoEkXSGJXlR4zJgj651GTWvlH84sWNmj2umSn51qQkn8Sw1
3yS/7NSUkriZmnuyktr1YwKQa4TrJKqI4/WZa3wrh7yGtzgntka3kNjW4FY8mGtSg1yTaDgTXHNo
4ttqSkvCl5rREkdXE1q4X3NNTgYxFd24wJqclB+cyi8L2R+WHxXkeLC3Y6KRawYgygA1A4B1qxmA
CNlqBgCnh2sGIP9Y1dw1OLSuNrSuNhy52nDkasORqw1HrjYcudpw5GrHXADuBDzmAgTGx1yAON5o
WscbqXW8kVvHG23reKNrspMc27wExzYvwbHNS3Bs8xKc2rwEJ9M65Xohgwmgxq2LHm9kCFQ4uXmH
/WK9v9ptPh62u97z9u7665dPf/np6789//71f4xGx/XqPVxh65svAcSXCQfIiMghOLjnp/ur9e1B
fjiEB119/Ga9ef/hgAgVUYBMI32XJmGYbw+r683V09v312u0oOH1YX3zL5z7xfLfA5dl07th8fBf
LH+7u75eHy56CV5uwGeHm9wDNXr19+dfPfs5axTmFcI+XMqvkkZyzCHSX6FQ+qRCCEjWu83+vzer
w4flzeb2bn+s3MMSzRjy2Wq/lp7pph2tRf6tN5+HMTIyro2Mmt8VST9+9pMFPp08nU6um7m5Tm3c
jOKvENftsXjbO0wEMf+xeQv/3d8GVB8/qz5YVT24qN7W3hwP8+Pd4XpzKyNlKdRgHyKFKheIfg6u
jJsDdqNcKJ6qIVUGiXay+bbWd+vf1bHkmTMVRn+Gb5Djh/UfVY6jQVydfX6QzHg0uRx5rNAXL7ZX
l68Pq93hQvVbqr745t12e4CvXnfmQvU3g7aRLlSP6W0jX6g4UF7vsYb7A6KpTneXGKLPPpx2yDDU
b8Hyu83N5nAizYT8zanoxwSQoHcBp5wWHXGuw0HmVDtu725+W+8gsGhtaa5dXyhn5zrA0UcRrS4T
8SZMcxo1BFih3mOfcmKs3nufdkBVF+c6oKqbVdVjF/RcR0CHmVHpWL4J03mVwGHdzGxQyM5pCn3s
nD5Qx86pA23cnDZQxp1XZqLLfarEC+XmDklCO0/aSQ6Vn2sXM5ieKRb6wDPtoO+jmU+qEi8mLOdU
YVn94GamEsPxM+1Y/TA9fjaLnGbaIXLUM+2CGed2JUt2ynJOFSsiR5qZSkx9uppORE56rh2mntJc
BziMnmUh6TmnTxZvwnROIZdt3WiamQ/TJTPTDoY0R4+509wSYGmSnWmHLSV3RptetlOe89rADpOf
mQtHNoWZdhhTGuz/Ixy8bJdp61gDSk1dcESflRkSFNKJqLldDr1phpSTM0y5X18dNttboLn4xdM2
MczTNtm8yYko0xzRVWH6wMX2bPl/5fovD187fN3w9fe40FnbKZOEYZA4fPu1tKTvPcXnZKdBdjrr
3mdHQDwIQks8jfCerxBAb98v+lBPlVxqidiaWCdvpy3pVSH/fvt2vfx5vx7Dux8/rm+fZgGUqf/8
9n957d4VCmVuZHN0cmVhbQplbmRvYmoKNDI3IDAgb2JqCjw8Ci9UeXBlIC9YUmVmCi9JbmRleCBb
MCA0MjhdCi9TaXplIDQyOAovVyBbMSAzIDFdCi9Sb290IDQyNSAwIFIKL0luZm8gNDI2IDAgUgov
SUQgWzxGNEREOUE4OEY0MjRFN0YwOUFEODgyNUU0NjZFMDE0Rj4gPEY0REQ5QTg4RjQyNEU3RjA5
QUQ4ODI1RTQ2NkUwMTRGPl0KL0xlbmd0aCAxMTg4ICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2Rl
Cj4+CnN0cmVhbQp42h3Vd3DIZxzH8edJGpEQERExkkhIIgnZYiZG7E3EHkE6bK1Retpre2dXa9em
Q5XSs6rUvp506FFXTq8eu1VHbbpQ+nk//7zu+T2/3++Z3+f5GmPMswBjAow1r603lMKFi6NkIQAq
UxdLKRCegxTqYigFQTkIhlBrTLhvqjyfVKEUQqkShEJN6ipCGPhPKlgT0Mj/5r+jPUfnrjp1wyEC
hkBVSIdIa4Jv+N+ioBpEwwD+rUHJN+BLxeA7rwV+9H5afr61IR4SoA7UhURIgmSoB6mQBvWhAfSE
TGgBGdZEBPqhZUE25EAuNIQ8aASNoQk0hWbQHPKhAHpAS2uiV/tGW0FrKIQ20BbaQXvoAB2hE3SG
LtAVukF3a+IWaPdrF4r4cNgnEsaJOjGibmW4LRL/EEm3RPJDUe+mSLknUu+KtKOi/jnR4LBInyUy
FonMLiKrlciuKXLKi9xI0TAOaDTvqmh0RDReI5osFU03iWZlfqq9oAh6W9P8G73I5+OCLaLFOtFy
iWi1X7R+SxTmiDapoi2R3fYv0Y5BtmdoHb4QHeeITgNE54G+jz7QF/pBf2u60FTXyaLbaNF9pOjR
S/QcIXoVi6I+oneJKO4s+pSKvl1Fv7GiP/8O4N+B08WgN8TgYWJIkRjaWJRkimHZfgQDYRAMtmZ4
O70Y/kiM2ChK54nn8+G6eOGieJF5vLRajHxdjOonRheIMezb2Fi4L8btFuNXiAkM9+UkuCNeOSQm
soiTporJg8SUNLjtBzQUSmCYNa+yR1PZlGkb/NsRUMopM9aO7U2ds9bMoPOZFeGJmHVNzD4h5swQ
c5uJeWz8OwZ2iPkTxLu1gO/eWyYWsIgLl4tFW8ViAmkJj0sXi2VTxPvsx3JmtCJFrGwiVhGsq06J
1cfFmtli7XixjqVbnyg+YHwfRsMV8dEZ8fE2seFt8Qlj2dhQfFrgZ8SF57jwXJA1mzrpxWZC6rNR
YssksZXxfU6X26zYzr87iPEdHIide8Su82J3hPgyUOzJFXuzxVcMfB8htT9eHJjuu+QWdf7uDLHm
IEtyaKE4TNQdOSi+niiOclbLWJdv64nvCIZjnIoftovj7cWJUPEjAzrJJv/UUpwi5E+zM2f47edi
32UF4EJ2Ydb80kYvziYIx4zcXnFumjifLC4QKhfni0tcGZeJqyt0+Sud//a9uHpB/M6Vce2suM58
b9DeDa6Mm6zBTeZx65i4vVPc2SXulol7RPt96h6sFA/fFH8e8IP0mcmnoghr/mYX/mG7/yXQH3Gh
PA4CWn7Cgv03Uzxlvs/Yj2eKdh0GYSFgswh8KoK0M7aczqUNzgAdMBtCKVTrbCvo/NqKmqUN40Wl
kyL8kojQjGyVFiJSQWirDhZRighbTYFko3Up2OprRY25oqZuC1uruYjpKWLDRFw4PBDxOgs2IUrU
yRJ1eZtI80khwCfJj0VKnkjtL9J0mGx97YJtoGWy6bp4bAaDzDwtsi6LnKp+1SKBfOmirM1N83XV
rO1+1ZdIlY5k6Mh+juznyH6O7OfIfo7s58h+juznyH7OJ39SoCMFOlKgIwW6dGvH6OzbaafN/x9p
Rr4KZW5kc3RyZWFtCmVuZG9iagpzdGFydHhyZWYKOTY0NjgKJSVFT0YK
------=_Part_1214_526021802.1487650960636--

.


Author: Bryce Glover <randomdsdevel@gmail.com>
Date: Tue, 21 Feb 2017 19:26:29 -0500
Raw View
--Apple-Mail=_4078CFE5-CE1F-41DC-95D9-550D910A04E8
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8

> Sergey Vidyuk <sir.vestnik@gmail.com>: Feb 20 08:22PM -0800=20
>=20
> =D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 21 =D1=84=D0=B5=D0=B2=D1=80=
=D0=B0=D0=BB=D1=8F 2017 =D0=B3., 5:34:55 UTC+7 =D0=BF=D0=BE=D0=BB=D1=8C=D0=
=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Bryce Glover=20
> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
> =20
> > Regards,=20
> > Bryce Glover
> > Random...@gmail.com <javascript:>
> =20
> Spellchecker find terrible mistakes in my text :( attaching fixed version=
..
> =20
> What's wrong with formatting on the page 4? The only thing I can see is=
=20
> template arguments for the intext std::packaged_task<R(A...)> looks like=
=20
> R(A...) use different font size. Is the issue you are talking about?
> =20
> Sergey

Dear Sergey,=20

     The issue is that most of page 4 appears to switch between using diffe=
rent fonts (or just font sizes=E2=80=A6?) at random, which could definitely=
 cause readers mild confusion.  In particular, it looks like either a font =
one would use for code comments got interleaved into the text=E2=80=99s for=
matting or the font size just keeps changing at what appears to be random i=
ntervals of space.  This has possible consequences for readability when com=
pared with the majority of the body text in your proposal. =20

Hope that clarifies things,=20
     Bryce Glover
     RandomDSdevel@gmail.com

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/BABE025B-064D-46D8-9ED0-A25A7067A81A%40gmail.com=
..

--Apple-Mail=_4078CFE5-CE1F-41DC-95D9-550D910A04E8
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=UTF-8

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; -webk=
it-line-break: after-white-space;" class=3D""><blockquote type=3D"cite" cla=
ss=3D""><div class=3D"" style=3D"border: 1px solid rgb(211, 211, 211); max-=
width: 850px; font-family: Arial, sans-serif;"><div class=3D"" style=3D"pad=
ding: 20px; background-color: rgb(245, 245, 245);"><table class=3D"" style=
=3D"border-collapse: collapse; width: 809px;"><tbody class=3D""><tr class=
=3D""><td class=3D"" style=3D"background-color: rgb(255, 255, 255); color: =
rgb(46, 46, 46); font-family: arial; padding: 10px 15px; border: 1px solid =
rgb(211, 211, 211);"><span class=3D"" style=3D"color: rgb(177, 176, 176); f=
ont-size: 15px;">Sergey Vidyuk &lt;<a href=3D"mailto:sir.vestnik@gmail.com"=
 class=3D"">sir.vestnik@gmail.com</a>&gt;: Feb 20 08:22PM -0800&nbsp;</span=
><br class=3D""><br class=3D"">=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, =
21 =D1=84=D0=B5=D0=B2=D1=80=D0=B0=D0=BB=D1=8F 2017 =D0=B3., 5:34:55 UTC+7 =
=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Br=
yce Glover&nbsp;<br class=3D"">=D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:<=
br class=3D"">&nbsp;<br class=3D"">&gt; Regards,&nbsp;<br class=3D"">&gt; B=
ryce Glover<br class=3D"">&gt; Random...@<a href=3D"http://gmail.com" class=
=3D"">gmail.com</a> &lt;javascript:&gt;<br class=3D"">&nbsp;<br class=3D"">=
Spellchecker find terrible mistakes in my text :( attaching fixed version.<=
br class=3D"">&nbsp;<br class=3D"">What's wrong with formatting on the page=
 4? The only thing I can see is&nbsp;<br class=3D"">template arguments for =
the intext std::packaged_task&lt;R(A...)&gt; looks like&nbsp;<br class=3D""=
>R(A...) use different font size. Is the issue you are talking about?<br cl=
ass=3D"">&nbsp;<br class=3D"">Sergey</td></tr></tbody></table></div></div><=
/blockquote><div class=3D""><br class=3D""></div><div class=3D"">Dear Serge=
y,&nbsp;</div><div class=3D""><br class=3D""></div><div class=3D"">&nbsp; &=
nbsp; &nbsp;The issue is that most of page 4 appears to switch between usin=
g different fonts (or just font sizes=E2=80=A6?) at random, which could def=
initely cause readers mild confusion. &nbsp;In particular, it looks like ei=
ther a font one would use for code comments got interleaved into the text=
=E2=80=99s formatting or the font size just keeps changing at what appears =
to be random intervals of space. &nbsp;This has possible consequences for r=
eadability when compared with the majority of the body text in your proposa=
l. &nbsp;</div><div class=3D""><br class=3D""></div><div class=3D"">
<div style=3D"color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; t=
ext-align: start; text-indent: 0px; text-transform: none; white-space: norm=
al; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-w=
rap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-=
space;" class=3D""><div style=3D"color: rgb(0, 0, 0); letter-spacing: norma=
l; orphans: auto; text-align: start; text-indent: 0px; text-transform: none=
; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke=
-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-=
break: after-white-space;" class=3D""><div style=3D"color: rgb(0, 0, 0); le=
tter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; t=
ext-transform: none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: s=
pace; -webkit-line-break: after-white-space;" class=3D""><div class=3D"">Ho=
pe that clarifies things,&nbsp;</div><div class=3D"">&nbsp; &nbsp; &nbsp;Br=
yce Glover</div><div class=3D"">&nbsp; &nbsp; &nbsp;<a href=3D"mailto:Rando=
mDSdevel@gmail.com" class=3D"">RandomDSdevel@gmail.com</a></div></div></div=
></div>
</div>
</body></html>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/BABE025B-064D-46D8-9ED0-A25A7067A81A%=
40gmail.com?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/BABE025B-064D-46D8-9ED0-A25A7067A81A%=
40gmail.com</a>.<br />

--Apple-Mail=_4078CFE5-CE1F-41DC-95D9-550D910A04E8--

.


Author: "Arthur O'Dwyer" <arthur.j.odwyer@gmail.com>
Date: Tue, 21 Feb 2017 17:19:05 -0800
Raw View
--f403045f20ca6667710549144815
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Mon, Feb 20, 2017 at 6:22 PM, Sergey Vidyuk <sir.vestnik@gmail.com>
wrote:

> =D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 21 =D1=84=D0=B5=D0=B2=D1=80=
=D0=B0=D0=BB=D1=8F 2017 =D0=B3., 7:03:42 UTC+7 =D0=BF=D0=BE=D0=BB=D1=8C=D0=
=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Arthur O'Dwyer
> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>>
>> On Sunday, February 19, 2017 at 8:49:41 PM UTC-8, Sergey Vidyuk wrote:
>>>
>>> Sometimes it's required to store std::packaged_task instances with the
>>> same argumet types but different result type in the same collection
>>> (especially when implementing your own executor-like class). I've start=
ed
>>> to work on a proposal to provide partial specialization for the
>>> std::packaged_task class template which erases result type for the task=
..
>>> The text is here: https://github.com/VestniK/por
>>> table_concurrency/blob/result-erased-task-proposal/proposal/proposal.te=
x
>>> pdf version is in attachement. [...]
>>>
>>
>> I don't understand why we couldn't solve this problem more simply just b=
y
>> making std::function<void(A...)> constructible from
>> std::function<R(A...)>&&, std::future<void> constructible from
>> std::future<T>&&, std::packaged_task<void(A...)> constructible from
>> std::packaged_task<R(A...)>&&, and so on [...]
>>
> My intuition is that
>>
>>     std::packaged_task<int()> pti( [](){ return 42; } );
>>     std::future<int> fi =3D pti.get_future();
>>     std::packaged_task<void()> ptv =3D std::move(pti);
>>
>> ought to be legal, IMHO, because its meaning is "obvious"; it's
>> equivalent to
>>
>>     std::packaged_task<void()> ptv( [pti_ =3D std::move(pti)](){ pti_();=
 }
>> );
>>
>> Even
>>
>>     std::packaged_task<int()> pti( [](){ return 42; } );
>>     std::packaged_task<void()> ptv =3D std::move(pti);
>>     std::future<void> fv =3D ptv.get_future();
>>
>> has an "obvious" meaning IMHO, and I'd like to see it supported if it
>> helps use-cases like Sergey's.
>>
>
> packaged_task is not just type-erasure for function. It's write end of th=
e
> single-value thread-safe communication channel with capabilities to notif=
y
> read channel about value delivery combined together with type-erasure for
> function with additional protection from calling wrapped function twice.
> Using it like std::function just because you want to store move-only
> function object involves 1 (or 2 in case of libc++) extra allocation, 1
> extra indirection, thread-safe check if shared state is empty before the
> call, thread-safe operation of storing a value in the shared state.
>

I know std::packaged_task has more machinery behind it than std::function.
If you want to see my level of knowledge on the subject (which is to say
"above average but still largely superficial" ;)) I've got a CppCon 2015
talk <https://www.youtube.com/watch?v=3DjfDRgnxDe7o> where I present an
extremely naive std::packaged_task. I don't know much about efficiency, but
I'm familiar with its functionality.

Your proposal involves non-trivial library changes. Maybe I should have
been explicit that my "counterproposal" of adding implicit conversions
*also* involves non-trivial library changes. I'm not really arguing about
the behind-the-scenes implementation of the entity; I'm just suggesting
that the exposed interface for the entity ought to be spelled
std::packaged_task<void(A...)> instead of
std::packaged_task<ignore_t(A...)>.

In part 2 of your paper, your example code uses
mt_queue<std::function<void()>> instead of
mt_queue<unique_function<void()>>, which might cause you to incur extra
copies. You should know that I consider that issue "solved", because I
believe that std::unique_function will be introduced in C++20 and/or every
relevant codebase will have their own my::unique_function by then.

The way I would write your part-2 code is

using task_queue =3D mt_queue<std::packaged_task<void()>>;

template<typename F>
auto post_function(task_queue& queue, F&& func)
{
    using R =3D std::result_of_t<F()>;
    auto task =3D std::packaged_task<R()>(func);
    auto res =3D task->get_future();
    queue.push(std::packaged_task<void()>(std::move(task)));  // proposes
an efficient conversion from packaged_task<R(A...)> to
packaged_task<void(A...)>
    return res;
}

or even

using task_queue =3D mt_queue<std::unique_function<void()>>;  // proposes
N4543's std::unique_function

template<typename F>
auto post_function(task_queue& queue, F&& func)
{
    using R =3D std::result_of_t<F()>;
    auto task =3D std::packaged_task<R()>(func);
    auto res =3D task->get_future();
    queue.push(std::packaged_task<void()>(std::move(task)).get_function());
 // proposes an efficient member function packaged_task::get_function
    return res;
}

The relevant thing here, the reason I'm bikeshedding so hard, is that I
consider it valuable to continue using the keyword "void" to mean "this
function returns nothing of interest". I don't like that your proposal
makes up a new way to spell "this function returns nothing of interest" =E2=
=80=94
you're spelling it ignore_t() instead of void().

The main motivation of this proposal is to provide building block to
> implement executors (especially when this concept will be published with
> Concurrency TS 2). For example Implementation of TwoWayExecutor (p0443r1
> terminology) which uses std::future for communication channel requires to
> pack together shared state and function to be executed, take a future fro=
m
> it and erase the result type of the packaged task in order to store it in
> the execution context till the time it will be executed. My proposal is t=
o
> provide zero cost way to erase result type of the packaged_task. There ar=
e
> no ways to write such type erasure in the user code right now (any user
> code implementation will not be zero cost).
>

I agree that zero-cost-ness is important, and I repeat that I have no idea
whether my "counterproposals" can be made zero-cost (but I want to see
somebody explain why they aren't and can't be).
I agree that this problem cannot be solved by using user code to bolt
anything onto std::packaged_task; it requires non-trivial standard library
changes. Right now, since std:: provides no one-stop-shop solution, the
only efficient solution is for everyone to implement their own everything =
=E2=80=94
my::unique_function and my::future compose to provide my::packaged_task,
and so on.
My impression is that this is the same situation we were in with
std::future prior to the introduction of std::future::then. Back then,
anybody who wanted ::then had to implement my::future from scratch in order
to get it, because you could not use user code to bolt ::then onto
std::future in a zero-cost way.

Hope this clarifies my position,
=E2=80=93Arthur

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/CADvuK0Lv48d%3Dne-n5%3DKmhOUTJj9%3DcuNvZM-M6edd4=
%3DtReL_4XQ%40mail.gmail.com.

--f403045f20ca6667710549144815
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Mon, Feb 20, 2017 at 6:22 PM, Sergey Vidyuk <span dir=
=3D"ltr">&lt;<a href=3D"mailto:sir.vestnik@gmail.com" target=3D"_blank">sir=
..vestnik@gmail.com</a>&gt;</span> wrote:<br><div class=3D"gmail_extra"><div=
 class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0p=
x 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);bo=
rder-left-style:solid;padding-left:1ex"><div dir=3D"ltr">=D0=B2=D1=82=D0=BE=
=D1=80=D0=BD=D0=B8=D0=BA, 21 =D1=84=D0=B5=D0=B2=D1=80=D0=B0=D0=BB=D1=8F 201=
7 =D0=B3., 7:03:42 UTC+7 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=
=D1=82=D0=B5=D0=BB=D1=8C Arthur O&#39;Dwyer =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=
=D0=B0=D0=BB:<span class=3D"gmail-"><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(20=
4,204,204);border-left-style:solid;padding-left:1ex"><div dir=3D"ltr">On Su=
nday, February 19, 2017 at 8:49:41 PM UTC-8, Sergey Vidyuk wrote:<blockquot=
e class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width=
:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-lef=
t:1ex"><div dir=3D"ltr">Sometimes it&#39;s required to store std::packaged_=
task instances with the same argumet types but different result type in the=
 same collection (especially when implementing your own executor-like class=
). I&#39;ve started to work on a proposal to provide partial specialization=
 for the std::packaged_task class template which erases result type for the=
 task. The text is here: <a href=3D"https://github.com/VestniK/portable_con=
currency/blob/result-erased-task-proposal/proposal/proposal.tex" rel=3D"nof=
ollow" target=3D"_blank">https://github.com/VestniK/por<wbr>table_concurren=
cy/blob/result-<wbr>erased-task-proposal/proposal/<wbr>proposal.tex</a> pdf=
 version is in attachement. [...]<br></div></blockquote><div><br></div><div=
>I don&#39;t understand why we couldn&#39;t solve this problem more simply =
just by making std::function&lt;void(A...)&gt; constructible from std::func=
tion&lt;R(A...)&gt;&amp;&amp;, std::future&lt;void&gt; constructible from s=
td::future&lt;T&gt;&amp;&amp;, std::packaged_task&lt;void(A...)&gt; constru=
ctible from std::packaged_task&lt;R(A...)&gt;&amp;&amp;, and so on [...]</d=
iv></div></blockquote></span></div></blockquote><blockquote class=3D"gmail_=
quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-=
color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir=
=3D"ltr"><span class=3D"gmail-"><blockquote class=3D"gmail_quote" style=3D"=
margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,20=
4,204);border-left-style:solid;padding-left:1ex"><div dir=3D"ltr"><div>My i=
ntuition is that</div><div><br></div><div><font face=3D"courier new, monosp=
ace">=C2=A0 =C2=A0 std::packaged_task&lt;int()&gt; pti( [](){ return 42; } =
);</font></div><div><font face=3D"courier new, monospace">=C2=A0 =C2=A0 std=
::future&lt;int&gt; fi =3D pti.get_future();</font></div><div><font face=3D=
"courier new, monospace">=C2=A0 =C2=A0 std::packaged_task&lt;void()&gt; ptv=
 =3D std::move(pti);</font></div><div><br></div><div>ought to be legal, IMH=
O, because its meaning is &quot;obvious&quot;; it&#39;s equivalent to</div>=
<div><br></div><div><font face=3D"courier new, monospace">=C2=A0 =C2=A0 std=
::packaged_task&lt;void()&gt; ptv( [pti_ =3D std::move(pti)](){ pti_(); } )=
;</font></div><div><br></div><div>Even</div><div><br></div><div><font face=
=3D"courier new, monospace">=C2=A0 =C2=A0 std::packaged_task&lt;int()&gt; p=
ti( [](){ return 42; } );</font></div><div><span style=3D"font-family:&#39;=
courier new&#39;,monospace">=C2=A0 =C2=A0 std::packaged_task&lt;void()&gt; =
ptv =3D std::move(pti);</span><br></div><div><div><font face=3D"courier new=
, monospace">=C2=A0 =C2=A0 std::future&lt;void&gt; fv =3D ptv.get_future();=
</font></div></div><div><font face=3D"courier new, monospace"><br></font></=
div><div>has an &quot;obvious&quot; meaning IMHO, and I&#39;d like to see i=
t supported if it helps use-cases like Sergey&#39;s.</div></div></blockquot=
e></span><div><br>packaged_task is not just type-erasure for function. It&#=
39;s write end of the single-value thread-safe communication channel with c=
apabilities to notify read channel about value delivery combined together w=
ith type-erasure for function with additional protection from calling wrapp=
ed function twice. Using it like std::function just because you want to sto=
re move-only function object involves 1 (or 2 in case of libc++) extra allo=
cation, 1 extra indirection, thread-safe check if shared state is empty bef=
ore the call, thread-safe operation of storing a value in the shared state.=
<br></div></div></blockquote><div><br></div><div>I know std::packaged_task =
has more machinery behind it than std::function. If you want to see my leve=
l of knowledge on the subject (which is to say &quot;above average but stil=
l largely superficial&quot; ;)) I&#39;ve got <a href=3D"https://www.youtube=
..com/watch?v=3DjfDRgnxDe7o">a CppCon 2015 talk</a>=C2=A0where I present an =
extremely naive std::packaged_task. I don&#39;t know much about efficiency,=
 but I&#39;m familiar with its functionality.</div><div><br></div><div>Your=
 proposal involves non-trivial library changes. Maybe I should have been ex=
plicit that my &quot;counterproposal&quot; of adding implicit conversions <=
i>also</i> involves non-trivial library changes. I&#39;m not really arguing=
 about the behind-the-scenes implementation of the entity; I&#39;m just sug=
gesting that the exposed interface for the entity ought to be spelled std::=
packaged_task&lt;void(A...)&gt; instead of std::packaged_task&lt;ignore_t(A=
....)&gt;.</div><div><br></div><div>In part 2 of your paper, your example co=
de uses mt_queue&lt;std::function&lt;void()&gt;&gt; instead of mt_queue&lt;=
unique_function&lt;void()&gt;&gt;, which might cause you to incur extra cop=
ies. You should know that I consider that issue &quot;solved&quot;, because=
 I believe that std::unique_function will be introduced in C++20 and/or eve=
ry relevant codebase will have their own my::unique_function by then.</div>=
<div><br></div><div>The way I would write your part-2 code is</div><br><fon=
t face=3D"monospace, monospace">using task_queue =3D=C2=A0mt_queue&lt;std::=
packaged_task&lt;void()&gt;&gt;;<br><br></font></div><div class=3D"gmail_qu=
ote"><font face=3D"monospace, monospace">template&lt;typename F&gt;<br>auto=
 post_function(task_queue&amp; queue, F&amp;&amp; func)</font></div><div cl=
ass=3D"gmail_quote"><font face=3D"monospace, monospace">{<br>=C2=A0 =C2=A0 =
using R =3D std::result_of_t&lt;F()&gt;;</font></div><div class=3D"gmail_qu=
ote"><font face=3D"monospace, monospace">=C2=A0 =C2=A0 auto task =3D std::p=
ackaged_task&lt;R()&gt;(func);</font></div><div class=3D"gmail_quote"><font=
 face=3D"monospace, monospace">=C2=A0 =C2=A0 auto res =3D task-&gt;get_futu=
re();</font></div><div class=3D"gmail_quote"><font face=3D"monospace, monos=
pace">=C2=A0 =C2=A0 queue.push(std::packaged_task&lt;void()&gt;(std::move(t=
ask))); =C2=A0// proposes an efficient conversion from packaged_task&lt;R(A=
....)&gt; to packaged_task&lt;void(A...)&gt;</font></div><div class=3D"gmail=
_quote"><font face=3D"monospace, monospace">=C2=A0 =C2=A0 return res;</font=
></div><div class=3D"gmail_quote"><font face=3D"monospace, monospace">}</fo=
nt></div><div class=3D"gmail_quote"><br></div><div class=3D"gmail_quote">or=
 even</div><div class=3D"gmail_quote"><br></div><div class=3D"gmail_quote">=
<div class=3D"gmail_quote"><font face=3D"monospace, monospace">using task_q=
ueue =3D=C2=A0mt_queue&lt;std::unique_function&lt;void()&gt;&gt;; =C2=A0// =
proposes N4543&#39;s std::unique_function<br><br></font></div><div class=3D=
"gmail_quote"><font face=3D"monospace, monospace">template&lt;typename F&gt=
;<br>auto post_function(task_queue&amp; queue, F&amp;&amp; func)</font></di=
v><div class=3D"gmail_quote"><font face=3D"monospace, monospace">{<br>=C2=
=A0 =C2=A0 using R =3D std::result_of_t&lt;F()&gt;;</font></div><div class=
=3D"gmail_quote"><font face=3D"monospace, monospace">=C2=A0 =C2=A0 auto tas=
k =3D std::packaged_task&lt;R()&gt;(func);</font></div><div class=3D"gmail_=
quote"><font face=3D"monospace, monospace">=C2=A0 =C2=A0 auto res =3D task-=
&gt;get_future();</font></div><div class=3D"gmail_quote"><font face=3D"mono=
space, monospace">=C2=A0 =C2=A0 queue.push(std::packaged_task&lt;void()&gt;=
(std::move(task)).get_function()); =C2=A0// proposes an efficient member fu=
nction packaged_task::get_function</font></div><div class=3D"gmail_quote"><=
font face=3D"monospace, monospace">=C2=A0 =C2=A0 return res;</font></div><d=
iv class=3D"gmail_quote"><font face=3D"monospace, monospace">}</font></div>=
<div><br></div><div>The relevant thing here, the reason I&#39;m bikesheddin=
g so hard, is that I consider it valuable to continue using the keyword &qu=
ot;void&quot; to mean &quot;this function returns nothing of interest&quot;=
.. I don&#39;t like that your proposal makes up a new way to spell &quot;thi=
s function returns nothing of interest&quot; =E2=80=94 you&#39;re spelling =
it ignore_t() instead of void().</div><div><br></div></div><div class=3D"gm=
ail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.=
8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-st=
yle:solid;padding-left:1ex"><div dir=3D"ltr"><div>The main motivation of th=
is proposal is to provide building block to implement executors (especially=
 when this concept will be published with Concurrency TS 2). For example Im=
plementation of TwoWayExecutor (p0443r1 terminology) which uses std::future=
 for communication channel requires to pack together shared state and funct=
ion to be executed, take a future from it and erase the result type of the =
packaged task in order to store it in the execution context till the time i=
t will be executed. My proposal is to provide zero cost way to erase result=
 type of the packaged_task. There are no ways to write such type erasure in=
 the user code right now (any user code implementation will not be zero cos=
t).<br></div></div></blockquote><div><br></div><div>I agree that zero-cost-=
ness is important, and I repeat that I have no idea whether my &quot;counte=
rproposals&quot; can be made zero-cost (but I want to see somebody explain =
why they aren&#39;t and can&#39;t be).</div><div>I agree that this problem =
cannot be solved by using user code to bolt anything onto std::packaged_tas=
k; it requires non-trivial standard library changes. Right now, since std::=
 provides no one-stop-shop solution, the only efficient solution is for eve=
ryone to implement their own everything =E2=80=94 my::unique_function and m=
y::future compose to provide my::packaged_task, and so on.</div><div>My imp=
ression is that this is the same situation we were in with std::future prio=
r to the introduction of std::future::then. Back then, anybody who wanted :=
:then had to implement my::future from scratch in order to get it, because =
you could not use user code to bolt ::then onto std::future in a zero-cost =
way.</div><div><br></div><div>Hope this clarifies my position,</div><div>=
=E2=80=93Arthur</div></div></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CADvuK0Lv48d%3Dne-n5%3DKmhOUTJj9%3Dcu=
NvZM-M6edd4%3DtReL_4XQ%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfoo=
ter">https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CADvuK0Lv=
48d%3Dne-n5%3DKmhOUTJj9%3DcuNvZM-M6edd4%3DtReL_4XQ%40mail.gmail.com</a>.<br=
 />

--f403045f20ca6667710549144815--

.


Author: Sergey Vidyuk <sir.vestnik@gmail.com>
Date: Wed, 22 Feb 2017 08:29:43 -0800 (PST)
Raw View
------=_Part_1061_1480047973.1487780983383
Content-Type: multipart/alternative;
 boundary="----=_Part_1062_1961633413.1487780983383"

------=_Part_1062_1961633413.1487780983383
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

=D1=81=D1=80=D0=B5=D0=B4=D0=B0, 22 =D1=84=D0=B5=D0=B2=D1=80=D0=B0=D0=BB=D1=
=8F 2017 =D0=B3., 7:26:35 UTC+7 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=
=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Bryce Glover =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=
=D0=B0=D0=BB:
>
> Sergey Vidyuk <sir.v...@gmail.com <javascript:>>: Feb 20 08:22PM -0800=20
>
> =D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 21 =D1=84=D0=B5=D0=B2=D1=80=
=D0=B0=D0=BB=D1=8F 2017 =D0=B3., 5:34:55 UTC+7 =D0=BF=D0=BE=D0=BB=D1=8C=D0=
=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Bryce Glover=20
> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
> =20
> > Regards,=20
> > Bryce Glover
> > Random...@gmail.com <javascript:>
> =20
> Spellchecker find terrible mistakes in my text :( attaching fixed version=
..
> =20
> What's wrong with formatting on the page 4? The only thing I can see is=
=20
> template arguments for the intext std::packaged_task<R(A...)> looks like=
=20
> R(A...) use different font size. Is the issue you are talking about?
> =20
> Sergey
>
>
> Dear Sergey,=20
>
>      The issue is that most of page 4 appears to switch between using=20
> different fonts (or just font sizes=E2=80=A6?) at random, which could def=
initely=20
> cause readers mild confusion.  In particular, it looks like either a font=
=20
> one would use for code comments got interleaved into the text=E2=80=99s f=
ormatting=20
> or the font size just keeps changing at what appears to be random interva=
ls=20
> of space.  This has possible consequences for readability when compared=
=20
> with the majority of the body text in your proposal. =20
>
> Hope that clarifies things,=20
>      Bryce Glover
>      Random...@gmail.com <javascript:>
>
=20
I've seen the issue you are talking about in the google drive pdf viewer.=
=20
There are no such formatting issues when I open the document with ocular on=
=20
my local computer. I'll play with the styles to fix this issue a little bit=
=20
later.

Sergey

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/535e3b8c-6b63-4ae4-9c16-cc04d9cda59b%40isocpp.or=
g.

------=_Part_1062_1961633413.1487780983383
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">=D1=81=D1=80=D0=B5=D0=B4=D0=B0, 22 =D1=84=D0=B5=D0=B2=D1=
=80=D0=B0=D0=BB=D1=8F 2017 =D0=B3., 7:26:35 UTC+7 =D0=BF=D0=BE=D0=BB=D1=8C=
=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Bryce Glover =D0=BD=D0=B0=
=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:<blockquote class=3D"gmail_quote" style=3D"m=
argin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"=
><div style=3D"word-wrap:break-word"><blockquote type=3D"cite"><div style=
=3D"border:1px solid rgb(211,211,211);max-width:850px;font-family:Arial,san=
s-serif"><div style=3D"padding:20px;background-color:rgb(245,245,245)"><tab=
le style=3D"border-collapse:collapse;width:809px"><tbody><tr><td style=3D"b=
ackground-color:rgb(255,255,255);color:rgb(46,46,46);font-family:arial;padd=
ing:10px 15px;border:1px solid rgb(211,211,211)"><span style=3D"color:rgb(1=
77,176,176);font-size:15px">Sergey Vidyuk &lt;<a href=3D"javascript:" targe=
t=3D"_blank" gdf-obfuscated-mailto=3D"CLTOs74YBwAJ" rel=3D"nofollow" onmous=
edown=3D"this.href=3D&#39;javascript:&#39;;return true;" onclick=3D"this.hr=
ef=3D&#39;javascript:&#39;;return true;">sir.v...@gmail.com</a>&gt;: Feb 20=
 08:22PM -0800=C2=A0</span><br><br>=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=
=BA, 21 =D1=84=D0=B5=D0=B2=D1=80=D0=B0=D0=BB=D1=8F 2017 =D0=B3., 5:34:55 UT=
C+7 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=
=8C Bryce Glover=C2=A0<br>=D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:<br>=
=C2=A0<br>&gt; Regards,=C2=A0<br>&gt; Bryce Glover<br>&gt; Random...@<a hre=
f=3D"http://gmail.com" target=3D"_blank" rel=3D"nofollow" onmousedown=3D"th=
is.href=3D&#39;http://gmail.com&#39;;return true;" onclick=3D"this.href=3D&=
#39;http://gmail.com&#39;;return true;">gmail.com</a> &lt;javascript:&gt;<b=
r>=C2=A0<br>Spellchecker find terrible mistakes in my text :( attaching fix=
ed version.<br>=C2=A0<br>What&#39;s wrong with formatting on the page 4? Th=
e only thing I can see is=C2=A0<br>template arguments for the intext std::p=
ackaged_task&lt;R(A...)&gt; looks like=C2=A0<br>R(A...) use different font =
size. Is the issue you are talking about?<br>=C2=A0<br>Sergey</td></tr></tb=
ody></table></div></div></blockquote><div><br></div><div>Dear Sergey,=C2=A0=
</div><div><br></div><div>=C2=A0 =C2=A0 =C2=A0The issue is that most of pag=
e 4 appears to switch between using different fonts (or just font sizes=E2=
=80=A6?) at random, which could definitely cause readers mild confusion. =
=C2=A0In particular, it looks like either a font one would use for code com=
ments got interleaved into the text=E2=80=99s formatting or the font size j=
ust keeps changing at what appears to be random intervals of space. =C2=A0T=
his has possible consequences for readability when compared with the majori=
ty of the body text in your proposal. =C2=A0</div><div><br></div><div>
<div style=3D"color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-=
indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wra=
p:break-word"><div style=3D"color:rgb(0,0,0);letter-spacing:normal;text-ali=
gn:start;text-indent:0px;text-transform:none;white-space:normal;word-spacin=
g:0px;word-wrap:break-word"><div style=3D"color:rgb(0,0,0);letter-spacing:n=
ormal;text-align:start;text-indent:0px;text-transform:none;white-space:norm=
al;word-spacing:0px;word-wrap:break-word"><div>Hope that clarifies things,=
=C2=A0</div><div>=C2=A0 =C2=A0 =C2=A0Bryce Glover</div><div>=C2=A0 =C2=A0 =
=C2=A0<a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"CL=
TOs74YBwAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;javascript:&#3=
9;;return true;" onclick=3D"this.href=3D&#39;javascript:&#39;;return true;"=
>Random...@gmail.com</a></div></div></div></div></div></div></blockquote><d=
iv>=C2=A0<br>I&#39;ve seen the issue you are talking about in the google dr=
ive pdf viewer. There are no such formatting issues when I open the documen=
t with ocular on my local computer. I&#39;ll play with the styles to fix th=
is issue a little bit later.<br><br>Sergey<br></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/535e3b8c-6b63-4ae4-9c16-cc04d9cda59b%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/535e3b8c-6b63-4ae4-9c16-cc04d9cda59b=
%40isocpp.org</a>.<br />

------=_Part_1062_1961633413.1487780983383--

------=_Part_1061_1480047973.1487780983383--

.


Author: Sergey Vidyuk <sir.vestnik@gmail.com>
Date: Wed, 22 Feb 2017 11:26:53 -0800 (PST)
Raw View
------=_Part_2147_826576956.1487791613978
Content-Type: multipart/alternative;
 boundary="----=_Part_2148_1810559223.1487791613979"

------=_Part_2148_1810559223.1487791613979
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable



=D1=81=D1=80=D0=B5=D0=B4=D0=B0, 22 =D1=84=D0=B5=D0=B2=D1=80=D0=B0=D0=BB=D1=
=8F 2017 =D0=B3., 8:19:08 UTC+7 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=
=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Arthur O'Dwyer=20
=D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
> On Mon, Feb 20, 2017 at 6:22 PM, Sergey Vidyuk <sir.v...@gmail.com=20
> <javascript:>> wrote:
>
>> =D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 21 =D1=84=D0=B5=D0=B2=D1=80=
=D0=B0=D0=BB=D1=8F 2017 =D0=B3., 7:03:42 UTC+7 =D0=BF=D0=BE=D0=BB=D1=8C=D0=
=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Arthur O'Dwyer=20
>> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>>>
>>> On Sunday, February 19, 2017 at 8:49:41 PM UTC-8, Sergey Vidyuk wrote:
>>>>
>>>> Sometimes it's required to store std::packaged_task instances with the=
=20
>>>> same argumet types but different result type in the same collection=20
>>>> (especially when implementing your own executor-like class). I've star=
ted=20
>>>> to work on a proposal to provide partial specialization for the=20
>>>> std::packaged_task class template which erases result type for the tas=
k.=20
>>>> The text is here:=20
>>>> https://github.com/VestniK/portable_concurrency/blob/result-erased-tas=
k-proposal/proposal/proposal.tex=20
>>>> pdf version is in attachement. [...]
>>>>
>>>
>>> I don't understand why we couldn't solve this problem more simply just=
=20
>>> by making std::function<void(A...)> constructible from=20
>>> std::function<R(A...)>&&, std::future<void> constructible from=20
>>> std::future<T>&&, std::packaged_task<void(A...)> constructible from=20
>>> std::packaged_task<R(A...)>&&, and so on [...]
>>>
>> My intuition is that
>>>
>>>     std::packaged_task<int()> pti( [](){ return 42; } );
>>>     std::future<int> fi =3D pti.get_future();
>>>     std::packaged_task<void()> ptv =3D std::move(pti);
>>>
>>> ought to be legal, IMHO, because its meaning is "obvious"; it's=20
>>> equivalent to
>>>
>>>     std::packaged_task<void()> ptv( [pti_ =3D std::move(pti)](){ pti_()=
; }=20
>>> );
>>>
>>> Even
>>>
>>>     std::packaged_task<int()> pti( [](){ return 42; } );
>>>     std::packaged_task<void()> ptv =3D std::move(pti);
>>>     std::future<void> fv =3D ptv.get_future();
>>>
>>> has an "obvious" meaning IMHO, and I'd like to see it supported if it=
=20
>>> helps use-cases like Sergey's.
>>>
>>
>> packaged_task is not just type-erasure for function. It's write end of=
=20
>> the single-value thread-safe communication channel with capabilities to=
=20
>> notify read channel about value delivery combined together with=20
>> type-erasure for function with additional protection from calling wrappe=
d=20
>> function twice. Using it like std::function just because you want to sto=
re=20
>> move-only function object involves 1 (or 2 in case of libc++) extra=20
>> allocation, 1 extra indirection, thread-safe check if shared state is em=
pty=20
>> before the call, thread-safe operation of storing a value in the shared=
=20
>> state.
>>
>
> I know std::packaged_task has more machinery behind it than std::function=
..=20
> If you want to see my level of knowledge on the subject (which is to say=
=20
> "above average but still largely superficial" ;)) I've got a CppCon 2015=
=20
> talk <https://www.youtube.com/watch?v=3DjfDRgnxDe7o> where I present an=
=20
> extremely naive std::packaged_task. I don't know much about efficiency, b=
ut=20
> I'm familiar with its functionality.
>
> Your proposal involves non-trivial library changes. Maybe I should have=
=20
> been explicit that my "counterproposal" of adding implicit conversions=20
> *also* involves non-trivial library changes. I'm not really arguing about=
=20
> the behind-the-scenes implementation of the entity; I'm just suggesting=
=20
> that the exposed interface for the entity ought to be spelled=20
> std::packaged_task<void(A...)> instead of=20
> std::packaged_task<ignore_t(A...)>.
>

Personally I like the idea to spell result erased task as void(A...) task=
=20
instead of ignore_t(A...) but isn't it breaking change? C++11 requires that=
=20
the following code will not throw future_already_retrieved error:

std::packaged_task<std::string(int)> task1([](int x) {return=20
std::to_string(x);});
auto f1 =3D task1.get_future();
std::packaged_task<void(int)> task2(task1);
auto f2 =3D task2.get_future();

If std::packaged_task<void(int)> becomes result erasure for packaged tasks=
=20
with the same argument types then the last line must throw this error. My=
=20
personal opinion here is that std::future API in it's current state is half=
=20
baked and totally unusable so "no backward compatibility breaks" rule=20
should not be so strict here but it's just an opinion.


> In part 2 of your paper, your example code uses=20
> mt_queue<std::function<void()>> instead of=20
> mt_queue<unique_function<void()>>, which might cause you to incur extra=
=20
> copies. You should know that I consider that issue "solved", because I=20
> believe that std::unique_function will be introduced in C++20 and/or ever=
y=20
> relevant codebase will have their own my::unique_function by then.
>
>
unique_function will eliminate one unnecessary allocation: ugly=20
make_shared<packaged_task<R(A...)>> but there is still one allocation
to perform type-erasure unless there is strict requirement on this class to=
=20
have embedded storage with enough space to store a packaged_task. Such=20
requirement might be reasonable. unique_function proposes "no double=20
wrapping" optimization for std::function. Adding same requirement for=20
packaged_task makes unique_function ultimate function type erasure which=20
provides best efficiency for any standard function (raw function pointer)=
=20
and function wrappers (both existing function type erasures in the standard=
=20
library). With such requirements there is no need in my proposal at all.
=20

> The way I would write your part-2 code is
>
> using task_queue =3D mt_queue<std::packaged_task<void()>>;
>
> template<typename F>
> auto post_function(task_queue& queue, F&& func)
> {
>     using R =3D std::result_of_t<F()>;
>     auto task =3D std::packaged_task<R()>(func);
>     auto res =3D task->get_future();
>     queue.push(std::packaged_task<void()>(std::move(task)));  // proposes=
=20
> an efficient conversion from packaged_task<R(A...)> to=20
> packaged_task<void(A...)>
>     return res;
> }
>
> or even
>
> using task_queue =3D mt_queue<std::unique_function<void()>>;  // proposes=
=20
> N4543's std::unique_function
>
> template<typename F>
> auto post_function(task_queue& queue, F&& func)
> {
>     using R =3D std::result_of_t<F()>;
>     auto task =3D std::packaged_task<R()>(func);
>     auto res =3D task->get_future();
>    =20
> queue.push(std::packaged_task<void()>(std::move(task)).get_function());  =
//=20
> proposes an efficient member function packaged_task::get_function
>     return res;
> }
>
> The relevant thing here, the reason I'm bikeshedding so hard, is that I=
=20
> consider it valuable to continue using the keyword "void" to mean "this=
=20
> function returns nothing of interest". I don't like that your proposal=20
> makes up a new way to spell "this function returns nothing of interest" =
=E2=80=94=20
> you're spelling it ignore_t() instead of void().
>
> The main motivation of this proposal is to provide building block to=20
>> implement executors (especially when this concept will be published with=
=20
>> Concurrency TS 2). For example Implementation of TwoWayExecutor (p0443r1=
=20
>> terminology) which uses std::future for communication channel requires t=
o=20
>> pack together shared state and function to be executed, take a future fr=
om=20
>> it and erase the result type of the packaged task in order to store it i=
n=20
>> the execution context till the time it will be executed. My proposal is =
to=20
>> provide zero cost way to erase result type of the packaged_task. There a=
re=20
>> no ways to write such type erasure in the user code right now (any user=
=20
>> code implementation will not be zero cost).
>>
>
> I agree that zero-cost-ness is important, and I repeat that I have no ide=
a=20
> whether my "counterproposals" can be made zero-cost (but I want to see=20
> somebody explain why they aren't and can't be).
> I agree that this problem cannot be solved by using user code to bolt=20
> anything onto std::packaged_task; it requires non-trivial standard librar=
y=20
> changes. Right now, since std:: provides no one-stop-shop solution, the=
=20
> only efficient solution is for everyone to implement their own everything=
 =E2=80=94=20
> my::unique_function and my::future compose to provide my::packaged_task,=
=20
> and so on.
> My impression is that this is the same situation we were in with=20
> std::future prior to the introduction of std::future::then. Back then,=20
> anybody who wanted ::then had to implement my::future from scratch in ord=
er=20
> to get it, because you could not use user code to bolt ::then onto=20
> std::future in a zero-cost way.
>
>
I agree with you here. Unfortunately everybody have their own futures due=
=20
the half-baked state of the std::future API without any ways to extend it=
=20
from the user code and now it looks like Concurrency TS2 is going to=20
provide Future concept to cover them all (p0443r1 as far as I can google is=
=20
the most up to date state of work on the Executors API for the standard=20
library). We might end up with necessity to work with several libraries=20
with async API on top of different incompatible future types in a single=20
project.

Hope this clarifies my position,
> =E2=80=93Arthur
>

Thank you for an explanation I really misunderstood your first letter.

Sergey=20

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/f0301fd8-ce59-48f0-bcad-e62605aaa9aa%40isocpp.or=
g.

------=_Part_2148_1810559223.1487791613979
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br>=D1=81=D1=80=D0=B5=D0=B4=D0=B0, 22 =D1=84=D0=B5=D0=
=B2=D1=80=D0=B0=D0=BB=D1=8F 2017 =D0=B3., 8:19:08 UTC+7 =D0=BF=D0=BE=D0=BB=
=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Arthur O&#39;Dwyer =
=D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:<blockquote class=3D"gmail_quote=
" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding=
-left: 1ex;"><div dir=3D"ltr">On Mon, Feb 20, 2017 at 6:22 PM, Sergey Vidyu=
k <span dir=3D"ltr">&lt;<a href=3D"javascript:" target=3D"_blank" gdf-obfus=
cated-mailto=3D"m2ar3JwbBwAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D&=
#39;javascript:&#39;;return true;" onclick=3D"this.href=3D&#39;javascript:&=
#39;;return true;">sir.v...@gmail.com</a>&gt;</span> wrote:<br><div><div cl=
ass=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0=
px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);borde=
r-left-style:solid;padding-left:1ex"><div dir=3D"ltr">=D0=B2=D1=82=D0=BE=D1=
=80=D0=BD=D0=B8=D0=BA, 21 =D1=84=D0=B5=D0=B2=D1=80=D0=B0=D0=BB=D1=8F 2017 =
=D0=B3., 7:03:42 UTC+7 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=
=82=D0=B5=D0=BB=D1=8C Arthur O&#39;Dwyer =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=
=B0=D0=BB:<span><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0=
px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-le=
ft-style:solid;padding-left:1ex"><div dir=3D"ltr">On Sunday, February 19, 2=
017 at 8:49:41 PM UTC-8, Sergey Vidyuk wrote:<blockquote class=3D"gmail_quo=
te" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-col=
or:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir=3D"l=
tr">Sometimes it&#39;s required to store std::packaged_task instances with =
the same argumet types but different result type in the same collection (es=
pecially when implementing your own executor-like class). I&#39;ve started =
to work on a proposal to provide partial specialization for the std::packag=
ed_task class template which erases result type for the task. The text is h=
ere: <a href=3D"https://github.com/VestniK/portable_concurrency/blob/result=
-erased-task-proposal/proposal/proposal.tex" rel=3D"nofollow" target=3D"_bl=
ank" onmousedown=3D"this.href=3D&#39;https://www.google.com/url?q\x3dhttps%=
3A%2F%2Fgithub.com%2FVestniK%2Fportable_concurrency%2Fblob%2Fresult-erased-=
task-proposal%2Fproposal%2Fproposal.tex\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dA=
FQjCNGJf5h3rca1GPrxGRvgJ_8k4dPWIw&#39;;return true;" onclick=3D"this.href=
=3D&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2FVestniK%=
2Fportable_concurrency%2Fblob%2Fresult-erased-task-proposal%2Fproposal%2Fpr=
oposal.tex\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGJf5h3rca1GPrxGRvgJ_8k4d=
PWIw&#39;;return true;">https://github.com/VestniK/<wbr>portable_concurrenc=
y/blob/<wbr>result-erased-task-proposal/<wbr>proposal/proposal.tex</a> pdf =
version is in attachement. [...]<br></div></blockquote><div><br></div><div>=
I don&#39;t understand why we couldn&#39;t solve this problem more simply j=
ust by making std::function&lt;void(A...)&gt; constructible from std::funct=
ion&lt;R(A...)&gt;&amp;&amp;, std::future&lt;void&gt; constructible from st=
d::future&lt;T&gt;&amp;&amp;, std::packaged_task&lt;void(A...)&gt; construc=
tible from std::packaged_task&lt;R(A...)&gt;&amp;&amp;, and so on [...]</di=
v></div></blockquote></span></div></blockquote><blockquote class=3D"gmail_q=
uote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-c=
olor:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir=3D=
"ltr"><span><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0=
..8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-s=
tyle:solid;padding-left:1ex"><div dir=3D"ltr"><div>My intuition is that</di=
v><div><br></div><div><font face=3D"courier new, monospace">=C2=A0 =C2=A0 s=
td::packaged_task&lt;int()&gt; pti( [](){ return 42; } );</font></div><div>=
<font face=3D"courier new, monospace">=C2=A0 =C2=A0 std::future&lt;int&gt; =
fi =3D pti.get_future();</font></div><div><font face=3D"courier new, monosp=
ace">=C2=A0 =C2=A0 std::packaged_task&lt;void()&gt; ptv =3D std::move(pti);=
</font></div><div><br></div><div>ought to be legal, IMHO, because its meani=
ng is &quot;obvious&quot;; it&#39;s equivalent to</div><div><br></div><div>=
<font face=3D"courier new, monospace">=C2=A0 =C2=A0 std::packaged_task&lt;v=
oid()&gt; ptv( [pti_ =3D std::move(pti)](){ pti_(); } );</font></div><div><=
br></div><div>Even</div><div><br></div><div><font face=3D"courier new, mono=
space">=C2=A0 =C2=A0 std::packaged_task&lt;int()&gt; pti( [](){ return 42; =
} );</font></div><div><span style=3D"font-family:&#39;courier new&#39;,mono=
space">=C2=A0 =C2=A0 std::packaged_task&lt;void()&gt; ptv =3D std::move(pti=
);</span><br></div><div><div><font face=3D"courier new, monospace">=C2=A0 =
=C2=A0 std::future&lt;void&gt; fv =3D ptv.get_future();</font></div></div><=
div><font face=3D"courier new, monospace"><br></font></div><div>has an &quo=
t;obvious&quot; meaning IMHO, and I&#39;d like to see it supported if it he=
lps use-cases like Sergey&#39;s.</div></div></blockquote></span><div><br>pa=
ckaged_task is not just type-erasure for function. It&#39;s write end of th=
e single-value thread-safe communication channel with capabilities to notif=
y read channel about value delivery combined together with type-erasure for=
 function with additional protection from calling wrapped function twice. U=
sing it like std::function just because you want to store move-only functio=
n object involves 1 (or 2 in case of libc++) extra allocation, 1 extra indi=
rection, thread-safe check if shared state is empty before the call, thread=
-safe operation of storing a value in the shared state.<br></div></div></bl=
ockquote><div><br></div><div>I know std::packaged_task has more machinery b=
ehind it than std::function. If you want to see my level of knowledge on th=
e subject (which is to say &quot;above average but still largely superficia=
l&quot; ;)) I&#39;ve got <a href=3D"https://www.youtube.com/watch?v=3DjfDRg=
nxDe7o" target=3D"_blank" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;=
https://www.youtube.com/watch?v\x3djfDRgnxDe7o&#39;;return true;" onclick=
=3D"this.href=3D&#39;https://www.youtube.com/watch?v\x3djfDRgnxDe7o&#39;;re=
turn true;">a CppCon 2015 talk</a>=C2=A0where I present an extremely naive =
std::packaged_task. I don&#39;t know much about efficiency, but I&#39;m fam=
iliar with its functionality.</div><div><br></div><div>Your proposal involv=
es non-trivial library changes. Maybe I should have been explicit that my &=
quot;counterproposal&quot; of adding implicit conversions <i>also</i> invol=
ves non-trivial library changes. I&#39;m not really arguing about the behin=
d-the-scenes implementation of the entity; I&#39;m just suggesting that the=
 exposed interface for the entity ought to be spelled std::packaged_task&lt=
;void(A...)&gt; instead of std::packaged_task&lt;ignore_t(A.<wbr>..)&gt;.</=
div></div></div></div></blockquote><div><br>Personally I like the idea to s=
pell result erased task as void(A...) task instead of ignore_t(A...) but is=
n&#39;t it breaking change? C++11 requires that the following code will not=
 throw future_already_retrieved error:<br><br>std::packaged_task&lt;std::st=
ring(int)&gt; task1([](int x) {return std::to_string(x);});<br>auto f1 =3D =
task1.get_future();<br>std::packaged_task&lt;void(int)&gt; task2(task1);<br=
>auto f2 =3D task2.get_future();<br><br>If std::packaged_task&lt;void(int)&=
gt; becomes result erasure for packaged tasks with the same argument types =
then the last line must throw this error. My personal opinion here is that =
std::future API in it&#39;s current state is half baked and totally unusabl=
e so &quot;no backward compatibility breaks&quot; rule should not be so str=
ict here but it&#39;s just an opinion.<br><br></div><blockquote class=3D"gm=
ail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc soli=
d;padding-left: 1ex;"><div dir=3D"ltr"><div><div class=3D"gmail_quote"><div=
><br></div><div>In part 2 of your paper, your example code uses mt_queue&lt=
;std::function&lt;void()&gt;<wbr>&gt; instead of mt_queue&lt;unique_functio=
n&lt;void(<wbr>)&gt;&gt;, which might cause you to incur extra copies. You =
should know that I consider that issue &quot;solved&quot;, because I believ=
e that std::unique_function will be introduced in C++20 and/or every releva=
nt codebase will have their own my::unique_function by then.</div><div><br>=
</div></div></div></div></blockquote><div><br>unique_function will eliminat=
e one unnecessary allocation: ugly make_shared&lt;packaged_task&lt;R(A...)&=
gt;&gt; but there is still one allocation<br>to perform type-erasure unless=
 there is strict requirement on this class to have embedded storage with en=
ough space to store a packaged_task. Such requirement might be reasonable. =
unique_function proposes &quot;no double wrapping&quot; optimization for st=
d::function. Adding same requirement for packaged_task makes unique_functio=
n ultimate function type erasure which provides best efficiency for any sta=
ndard function (raw function pointer) and function wrappers (both existing =
function type erasures in the standard library). With such requirements the=
re is no need in my proposal at all.<br>=C2=A0</div><blockquote class=3D"gm=
ail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc soli=
d;padding-left: 1ex;"><div dir=3D"ltr"><div><div class=3D"gmail_quote"><div=
></div><div>The way I would write your part-2 code is</div><br><font face=
=3D"monospace, monospace">using task_queue =3D=C2=A0mt_queue&lt;std::packag=
ed_task&lt;<wbr>void()&gt;&gt;;<br><br></font></div><div class=3D"gmail_quo=
te"><font face=3D"monospace, monospace">template&lt;typename F&gt;<br>auto =
post_function(task_queue&amp; queue, F&amp;&amp; func)</font></div><div cla=
ss=3D"gmail_quote"><font face=3D"monospace, monospace">{<br>=C2=A0 =C2=A0 u=
sing R =3D std::result_of_t&lt;F()&gt;;</font></div><div class=3D"gmail_quo=
te"><font face=3D"monospace, monospace">=C2=A0 =C2=A0 auto task =3D std::pa=
ckaged_task&lt;R()&gt;(func);</font></div><div class=3D"gmail_quote"><font =
face=3D"monospace, monospace">=C2=A0 =C2=A0 auto res =3D task-&gt;get_futur=
e();</font></div><div class=3D"gmail_quote"><font face=3D"monospace, monosp=
ace">=C2=A0 =C2=A0 queue.push(std::packaged_task&lt;<wbr>void()&gt;(std::mo=
ve(task))); =C2=A0// proposes an efficient conversion from packaged_task&lt=
;R(A...)&gt; to packaged_task&lt;void(A...)&gt;</font></div><div class=3D"g=
mail_quote"><font face=3D"monospace, monospace">=C2=A0 =C2=A0 return res;</=
font></div><div class=3D"gmail_quote"><font face=3D"monospace, monospace">}=
</font></div><div class=3D"gmail_quote"><br></div><div class=3D"gmail_quote=
">or even</div><div class=3D"gmail_quote"><br></div><div class=3D"gmail_quo=
te"><div class=3D"gmail_quote"><font face=3D"monospace, monospace">using ta=
sk_queue =3D=C2=A0mt_queue&lt;std::unique_<wbr>function&lt;void()&gt;&gt;; =
=C2=A0// proposes N4543&#39;s std::unique_function<br><br></font></div><div=
 class=3D"gmail_quote"><font face=3D"monospace, monospace">template&lt;type=
name F&gt;<br>auto post_function(task_queue&amp; queue, F&amp;&amp; func)</=
font></div><div class=3D"gmail_quote"><font face=3D"monospace, monospace">{=
<br>=C2=A0 =C2=A0 using R =3D std::result_of_t&lt;F()&gt;;</font></div><div=
 class=3D"gmail_quote"><font face=3D"monospace, monospace">=C2=A0 =C2=A0 au=
to task =3D std::packaged_task&lt;R()&gt;(func);</font></div><div class=3D"=
gmail_quote"><font face=3D"monospace, monospace">=C2=A0 =C2=A0 auto res =3D=
 task-&gt;get_future();</font></div><div class=3D"gmail_quote"><font face=
=3D"monospace, monospace">=C2=A0 =C2=A0 queue.push(std::packaged_task&lt;<w=
br>void()&gt;(std::move(task)).get_<wbr>function()); =C2=A0// proposes an e=
fficient member function packaged_task::get_function</font></div><div class=
=3D"gmail_quote"><font face=3D"monospace, monospace">=C2=A0 =C2=A0 return r=
es;</font></div><div class=3D"gmail_quote"><font face=3D"monospace, monospa=
ce">}</font></div><div><br></div><div>The relevant thing here, the reason I=
&#39;m bikeshedding so hard, is that I consider it valuable to continue usi=
ng the keyword &quot;void&quot; to mean &quot;this function returns nothing=
 of interest&quot;. I don&#39;t like that your proposal makes up a new way =
to spell &quot;this function returns nothing of interest&quot; =E2=80=94 yo=
u&#39;re spelling it ignore_t() instead of void().</div><div><br></div></di=
v><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,2=
04);border-left-style:solid;padding-left:1ex"><div dir=3D"ltr"><div>The mai=
n motivation of this proposal is to provide building block to implement exe=
cutors (especially when this concept will be published with Concurrency TS =
2). For example Implementation of TwoWayExecutor (p0443r1 terminology) whic=
h uses std::future for communication channel requires to pack together shar=
ed state and function to be executed, take a future from it and erase the r=
esult type of the packaged task in order to store it in the execution conte=
xt till the time it will be executed. My proposal is to provide zero cost w=
ay to erase result type of the packaged_task. There are no ways to write su=
ch type erasure in the user code right now (any user code implementation wi=
ll not be zero cost).<br></div></div></blockquote><div><br></div><div>I agr=
ee that zero-cost-ness is important, and I repeat that I have no idea wheth=
er my &quot;counterproposals&quot; can be made zero-cost (but I want to see=
 somebody explain why they aren&#39;t and can&#39;t be).</div><div>I agree =
that this problem cannot be solved by using user code to bolt anything onto=
 std::packaged_task; it requires non-trivial standard library changes. Righ=
t now, since std:: provides no one-stop-shop solution, the only efficient s=
olution is for everyone to implement their own everything =E2=80=94 my::uni=
que_function and my::future compose to provide my::packaged_task, and so on=
..</div><div>My impression is that this is the same situation we were in wit=
h std::future prior to the introduction of std::future::then. Back then, an=
ybody who wanted ::then had to implement my::future from scratch in order t=
o get it, because you could not use user code to bolt ::then onto std::futu=
re in a zero-cost way.</div><div><br></div></div></div></div></blockquote><=
div><br>I agree with you here. Unfortunately everybody have their own futur=
es due the half-baked state of the std::future API without any ways to exte=
nd it from the user code and now it looks like Concurrency TS2 is going to =
provide Future concept to cover them all (p0443r1 as far as I can google is=
 the most up to date state of work on the Executors API for the standard li=
brary). We might end up with necessity to work with several libraries with =
async API on top of different incompatible future types in a single project=
..<br><br></div><blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-=
left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr=
"><div><div class=3D"gmail_quote"><div></div><div>Hope this clarifies my po=
sition,</div><div>=E2=80=93Arthur</div></div></div></div></blockquote><div>=
<br>Thank you for an explanation I really misunderstood your first letter.<=
br><br>Sergey <br></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/f0301fd8-ce59-48f0-bcad-e62605aaa9aa%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/f0301fd8-ce59-48f0-bcad-e62605aaa9aa=
%40isocpp.org</a>.<br />

------=_Part_2148_1810559223.1487791613979--

------=_Part_2147_826576956.1487791613978--

.


Author: "Arthur O'Dwyer" <arthur.j.odwyer@gmail.com>
Date: Wed, 22 Feb 2017 12:43:22 -0800
Raw View
--001a11444b523698aa0549248ced
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Wed, Feb 22, 2017 at 11:26 AM, Sergey Vidyuk <sir.vestnik@gmail.com>
wrote:

>
> Personally I like the idea to spell result erased task as void(A...) task
> instead of ignore_t(A...) but isn't it breaking change? C++11 requires th=
at
> the following code will not throw future_already_retrieved error:
>
> std::packaged_task<std::string(int)> task1([](int x) {return
> std::to_string(x);});
> auto f1 =3D task1.get_future();
> std::packaged_task<void(int)> task2(std::move(task1));
> auto f2 =3D task2.get_future();
>

(I've added the missing "std::move" to the code above.)
Darn it, you're right. The way things stand today,

    std::packaged_task<*void*(int)> task2(std::move(task1));

creates a new packaged_task where calling get_future() is legal; but

    std::packaged_task<*std::string*(int)> task2(std::move(task1));

steals the state of the right-hand side and creates an object where calling
get_future() is *not* legal.
This seems completely unintuitive to me and I wish it were changed; but I
have no idea whether that's feasible at this point.

unique_function will eliminate one unnecessary allocation: ugly
> make_shared<packaged_task<R(A...)>> but there is still one allocation
> to perform type-erasure unless there is strict requirement on this class
> to have embedded storage with enough space to store a packaged_task. Such
> requirement might be reasonable. unique_function proposes "no double
> wrapping" optimization for std::function. Adding same requirement for
> packaged_task makes unique_function ultimate function type erasure which
> provides best efficiency for any standard function (raw function pointer)
> and function wrappers (both existing function type erasures in the standa=
rd
> library). With such requirements there is no need in my proposal at all.
>

I do like "no double wrapping" optimizations.
The way I implemented packaged_task<R()> in my talk was basically as a
pair<unique_function<void()>,
future<R>>. Unfortunately mathematics prevents us from requiring that

    sizeof (unique_function<void()>)
      >=3D
    sizeof (packaged_task<R()>)
      =3D=3D
    sizeof (pair<unique_function<void()>, future<R>>)
      >
    sizeof (unique_function<void()>)

But I guess my::packaged_task<R()> could be implemented as a
unique_ptr<pair<...>> without loss of efficiency. In fact, storing the
functor (the "task") in the shared state would increase efficiency by
removing the requirement to move-construct the "task" every time the
packaged_task itself is move-constructed. Right now, N4618 30.6.9.1
[futures.task.members]/6 and /10 are *very clear* that the "stored task"
*must* be move-constructed, swapped, etc., every time those operations are
performed on the std::packaged_task; if you want cheaply movable or
swappable packaged_tasks you have to implement your own my::packaged_task.
 (In particular, if you want noexcept-swappable packaged_tasks, I think.
N4618's swap is declared noexcept, but you can easily write a swap for your
stored task type that throws an exception, which means that swapping
packaged_tasks containing those tasks ought to result in a call to
std::terminate.)

Unless I'm messing something up, I observe that both libc++ and libstdc++
utterly ignore [futures.task.members]/6; both of them provide cheaply,
noexceptly swappable packaged_task.  Good for them!  But maybe there should
be a paper that "fixes" the standard to match the implementations?
http://melpon.org/wandbox/permlink/2GLN1P2q9W8gkuTO

=E2=80=93Arthur

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/CADvuK0KapA18RA%2B3SbfQjkiwMEzqGqj6-c8AaTBruSbfv=
Mtrgg%40mail.gmail.com.

--001a11444b523698aa0549248ced
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_extra">On Wed, Feb 22, 2017 at 11:26 A=
M, Sergey Vidyuk <span dir=3D"ltr">&lt;<a href=3D"mailto:sir.vestnik@gmail.=
com" target=3D"_blank">sir.vestnik@gmail.com</a>&gt;</span> wrote:<div clas=
s=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px=
 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-=
left-style:solid;padding-left:1ex"><div dir=3D"ltr"><div><br>Personally I l=
ike the idea to spell result erased task as void(A...) task instead of igno=
re_t(A...) but isn&#39;t it breaking change? C++11 requires that the follow=
ing code will not throw future_already_retrieved error:<br><br>std::package=
d_task&lt;std::<wbr>string(int)&gt; task1([](int x) {return std::to_string(=
x);});<br>auto f1 =3D task1.get_future();<br>std::packaged_task&lt;void(int=
)&gt; task2(std::move(task1));<br>auto f2 =3D task2.get_future();<br></div>=
</div></blockquote><div><br></div><div>(I&#39;ve added the missing &quot;st=
d::move&quot; to the code above.)</div><div>Darn it, you&#39;re right. The =
way things stand today,</div><div><br></div><div><font face=3D"monospace, m=
onospace">=C2=A0 =C2=A0 std::packaged_task&lt;<b>void</b>(int)&gt; task2(st=
d::move(task1));</font></div><div><br></div><div>creates a new packaged_tas=
k where calling get_future() is legal; but</div><div><br></div><div><div><f=
ont face=3D"monospace, monospace">=C2=A0 =C2=A0 std::packaged_task&lt;<b>st=
d::string</b>(int)&gt; task2(std::move(task1));</font></div></div><div><br>=
</div><div>steals the state of the right-hand side and creates an object wh=
ere calling get_future() is <i>not</i> legal.</div><div>This seems complete=
ly unintuitive to me and I wish it were changed; but I have no idea whether=
 that&#39;s feasible at this point.</div><div><br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;bo=
rder-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">=
<div dir=3D"ltr"><div>unique_function will eliminate one unnecessary alloca=
tion: ugly make_shared&lt;packaged_task&lt;R(A.<wbr>..)&gt;&gt; but there i=
s still one allocation<br>to perform type-erasure unless there is strict re=
quirement on this class to have embedded storage with enough space to store=
 a packaged_task. Such requirement might be reasonable. unique_function pro=
poses &quot;no double wrapping&quot; optimization for std::function. Adding=
 same requirement for packaged_task makes unique_function ultimate function=
 type erasure which provides best efficiency for any standard function (raw=
 function pointer) and function wrappers (both existing function type erasu=
res in the standard library). With such requirements there is no need in my=
 proposal at all.<br></div></div></blockquote><div><br></div><div>I do like=
 &quot;no double wrapping&quot; optimizations.</div><div>The way I implemen=
ted <font face=3D"monospace, monospace">packaged_task&lt;R()&gt;</font> in =
my talk was basically as a <font face=3D"monospace, monospace">pair&lt;uniq=
ue_function&lt;void()&gt;, future&lt;R&gt;&gt;</font>. Unfortunately mathem=
atics prevents us from requiring that</div><div><br></div><div><font face=
=3D"monospace, monospace">=C2=A0 =C2=A0 sizeof (unique_function&lt;void()&g=
t;)</font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=
=A0 &gt;=3D</font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=
=A0 sizeof (packaged_task&lt;R()&gt;)</font></div><div><font face=3D"monosp=
ace, monospace">=C2=A0 =C2=A0 =C2=A0 =3D=3D</font></div><div><font face=3D"=
monospace, monospace">=C2=A0 =C2=A0 sizeof (pair&lt;</font><span style=3D"f=
ont-family:monospace,monospace">unique_function&lt;void()&gt;, future&lt;R&=
gt;&gt;</span><font face=3D"monospace, monospace">)</font></div><div><font =
face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 &gt;</font></div><div><f=
ont face=3D"monospace, monospace">=C2=A0 =C2=A0 sizeof (unique_function&lt;=
void()&gt;)</font></div><div><br></div><div>But I guess=C2=A0<span style=3D=
"font-family:monospace,monospace">my::packaged_task&lt;R()&gt;</span>=C2=A0=
could be implemented as a <font face=3D"monospace, monospace">unique_ptr&lt=
;pair&lt;...&gt;&gt;</font> without loss of efficiency. In fact, storing th=
e functor (the &quot;task&quot;) in the shared state would increase efficie=
ncy by removing the requirement to move-construct the &quot;task&quot; ever=
y time the packaged_task itself is move-constructed. Right now, N4618 30.6.=
9.1 [futures.task.members]/6 and /10 are=C2=A0<b><i>very clear</i></b> that=
 the &quot;stored task&quot; <i><b>must</b></i> be move-constructed, swappe=
d, etc., every time those operations are performed on the std::packaged_tas=
k; if you want cheaply movable or swappable packaged_tasks you have to impl=
ement your own my::packaged_task. =C2=A0(In particular, if you want noexcep=
t-swappable packaged_tasks, I think. N4618&#39;s swap is declared noexcept,=
 but you can easily write a swap for your stored task type that throws an e=
xception, which means that swapping packaged_tasks containing those tasks o=
ught to result in a call to std::terminate.)</div><div><br></div><div>Unles=
s I&#39;m messing something up, I observe that both libc++ and libstdc++ ut=
terly ignore [futures.task.members]/6; both of them provide cheaply, noexce=
ptly swappable packaged_task.=C2=A0 Good for them!=C2=A0 But maybe there sh=
ould be a paper that &quot;fixes&quot; the standard to match the implementa=
tions?</div><div><a href=3D"http://melpon.org/wandbox/permlink/2GLN1P2q9W8g=
kuTO">http://melpon.org/wandbox/permlink/2GLN1P2q9W8gkuTO</a><br></div><div=
><br></div><div>=E2=80=93Arthur</div></div></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CADvuK0KapA18RA%2B3SbfQjkiwMEzqGqj6-c=
8AaTBruSbfvMtrgg%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">h=
ttps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CADvuK0KapA18RA=
%2B3SbfQjkiwMEzqGqj6-c8AaTBruSbfvMtrgg%40mail.gmail.com</a>.<br />

--001a11444b523698aa0549248ced--

.


Author: Bryce Glover <randomdsdevel@gmail.com>
Date: Wed, 22 Feb 2017 17:11:06 -0500
Raw View
--Apple-Mail=_AF0F2FFA-125A-4DA1-9D17-54D010B6379F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8

> On Feb 22, 2017, at 3:04 PM, std-proposals@isocpp.org wrote:
>=20
> Sergey Vidyuk <sir.vestnik@gmail.com <mailto:sir.vestnik@gmail.com>>: Feb=
 22 08:29AM -0800=20
>=20
> =D1=81=D1=80=D0=B5=D0=B4=D0=B0, 22 =D1=84=D0=B5=D0=B2=D1=80=D0=B0=D0=BB=
=D1=8F 2017 =D0=B3., 7:26:35 UTC+7 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=
=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Bryce Glover =D0=BD=D0=B0=D0=BF=D0=B8=D1=
=81=D0=B0=D0=BB:
> =20
>> (snipped=E2=80=A6)
> =20
> I=E2=80=99ve seen the issue you are talking about in the google drive pdf=
 viewer. There are no such formatting issues when I open the document with =
ocular on my local computer. I'll play with the styles to fix this issue a =
little bit later.
> =20
> Sergey

Huh, that is weird.  Hopefully you can figure it out, then=E2=80=A6

=E2=80=94=E2=80=89Bryce Glover
=E3=80=80=E2=80=89RandomDSdevel@gmail.com

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/9335055A-BC13-45C3-91E6-35D5C981CDD8%40gmail.com=
..

--Apple-Mail=_AF0F2FFA-125A-4DA1-9D17-54D010B6379F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=UTF-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html charset=
=3Dutf-8"></head><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: s=
pace; -webkit-line-break: after-white-space;" class=3D""><div><blockquote t=
ype=3D"cite" class=3D""><div class=3D"">On Feb 22, 2017, at 3:04 PM, <a hre=
f=3D"mailto:std-proposals@isocpp.org" class=3D"">std-proposals@isocpp.org</=
a> wrote:</div><br class=3D"Apple-interchange-newline"><div class=3D""><spa=
n style=3D"font-family: arial; font-style: normal; font-variant-caps: norma=
l; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; widows:=
 auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color:=
 rgb(255, 255, 255); color: rgb(177, 176, 176); font-size: 15px;" class=3D"=
">Sergey Vidyuk &lt;<a href=3D"mailto:sir.vestnik@gmail.com" class=3D"">sir=
..vestnik@gmail.com</a>&gt;: Feb 22 08:29AM -0800<span class=3D"Apple-conver=
ted-space">&nbsp;</span></span><span style=3D"color: rgb(46, 46, 46); font-=
family: arial; font-size: inherit; font-style: normal; font-variant-caps: n=
ormal; font-weight: normal; letter-spacing: normal; orphans: auto; text-ali=
gn: start; text-indent: 0px; text-transform: none; white-space: normal; wid=
ows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-co=
lor: rgb(255, 255, 255); float: none; display: inline !important;" class=3D=
""></span><br style=3D"color: rgb(46, 46, 46); font-family: arial; font-sty=
le: normal; font-variant-caps: normal; font-weight: normal; letter-spacing:=
 normal; orphans: auto; text-align: start; text-indent: 0px; text-transform=
: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-=
stroke-width: 0px; background-color: rgb(255, 255, 255);" class=3D""><br st=
yle=3D"color: rgb(46, 46, 46); font-family: arial; font-style: normal; font=
-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans=
: auto; text-align: start; text-indent: 0px; text-transform: none; white-sp=
ace: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0p=
x; background-color: rgb(255, 255, 255);" class=3D""><span style=3D"color: =
rgb(46, 46, 46); font-family: arial; font-size: inherit; font-style: normal=
; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; o=
rphans: auto; text-align: start; text-indent: 0px; text-transform: none; wh=
ite-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-wid=
th: 0px; background-color: rgb(255, 255, 255); float: none; display: inline=
 !important;" class=3D"">=D1=81=D1=80=D0=B5=D0=B4=D0=B0, 22 =D1=84=D0=B5=D0=
=B2=D1=80=D0=B0=D0=BB=D1=8F 2017 =D0=B3., 7:26:35 UTC+7 =D0=BF=D0=BE=D0=BB=
=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Bryce Glover =D0=BD=
=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:</span><br style=3D"color: rgb(46, 46,=
 46); font-family: arial; font-style: normal; font-variant-caps: normal; fo=
nt-weight: normal; letter-spacing: normal; orphans: auto; text-align: start=
; text-indent: 0px; text-transform: none; white-space: normal; widows: auto=
; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(=
255, 255, 255);" class=3D""><span style=3D"color: rgb(46, 46, 46); font-fam=
ily: arial; font-size: inherit; font-style: normal; font-variant-caps: norm=
al; font-weight: normal; letter-spacing: normal; orphans: auto; text-align:=
 start; text-indent: 0px; text-transform: none; white-space: normal; widows=
: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color=
: rgb(255, 255, 255); float: none; display: inline !important;" class=3D"">=
&nbsp;</span><br style=3D"color: rgb(46, 46, 46); font-family: arial; font-=
style: normal; font-variant-caps: normal; font-weight: normal; letter-spaci=
ng: normal; orphans: auto; text-align: start; text-indent: 0px; text-transf=
orm: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-te=
xt-stroke-width: 0px; background-color: rgb(255, 255, 255);" class=3D""><bl=
ockquote type=3D"cite" class=3D""><span style=3D"color: rgb(46, 46, 46); fo=
nt-family: arial; font-size: inherit; font-style: normal; font-variant-caps=
: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-=
align: start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background=
-color: rgb(255, 255, 255); float: none; display: inline !important;" class=
=3D"">(snipped=E2=80=A6)</span><br style=3D"color: rgb(46, 46, 46); font-fa=
mily: arial; font-style: normal; font-variant-caps: normal; font-weight: no=
rmal; letter-spacing: normal; orphans: auto; text-align: start; text-indent=
: 0px; text-transform: none; white-space: normal; widows: auto; word-spacin=
g: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255=
);" class=3D""></blockquote><span style=3D"color: rgb(46, 46, 46); font-fam=
ily: arial; font-size: inherit; font-style: normal; font-variant-caps: norm=
al; font-weight: normal; letter-spacing: normal; orphans: auto; text-align:=
 start; text-indent: 0px; text-transform: none; white-space: normal; widows=
: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color=
: rgb(255, 255, 255); float: none; display: inline !important;" class=3D"">=
&nbsp;</span><br style=3D"color: rgb(46, 46, 46); font-family: arial; font-=
style: normal; font-variant-caps: normal; font-weight: normal; letter-spaci=
ng: normal; orphans: auto; text-align: start; text-indent: 0px; text-transf=
orm: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-te=
xt-stroke-width: 0px; background-color: rgb(255, 255, 255);" class=3D""><sp=
an style=3D"color: rgb(46, 46, 46); font-family: arial; font-size: inherit;=
 font-style: normal; font-variant-caps: normal; font-weight: normal; letter=
-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-=
transform: none; white-space: normal; widows: auto; word-spacing: 0px; -web=
kit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); float: no=
ne; display: inline !important;" class=3D"">I=E2=80=99ve seen the issue you=
 are talking about in the google drive pdf viewer.&nbsp;</span><span style=
=3D"color: rgb(46, 46, 46); font-family: arial; font-size: inherit; font-st=
yle: normal; font-variant-caps: normal; font-weight: normal; letter-spacing=
: normal; orphans: auto; text-align: start; text-indent: 0px; text-transfor=
m: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text=
-stroke-width: 0px; background-color: rgb(255, 255, 255); float: none; disp=
lay: inline !important;" class=3D"">There are no such formatting issues whe=
n I open the document with ocular on<span class=3D"Apple-converted-space">&=
nbsp;</span></span><span style=3D"color: rgb(46, 46, 46); font-family: aria=
l; font-size: inherit; font-style: normal; font-variant-caps: normal; font-=
weight: normal; letter-spacing: normal; orphans: auto; text-align: start; t=
ext-indent: 0px; text-transform: none; white-space: normal; widows: auto; w=
ord-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255=
, 255, 255); float: none; display: inline !important;" class=3D"">my local =
computer. I'll play with the styles to fix this issue a little bit<span cla=
ss=3D"Apple-converted-space">&nbsp;</span></span><span style=3D"color: rgb(=
46, 46, 46); font-family: arial; font-size: inherit; font-style: normal; fo=
nt-variant-caps: normal; font-weight: normal; letter-spacing: normal; orpha=
ns: auto; text-align: start; text-indent: 0px; text-transform: none; white-=
space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: =
0px; background-color: rgb(255, 255, 255); float: none; display: inline !im=
portant;" class=3D"">later.</span><br style=3D"color: rgb(46, 46, 46); font=
-family: arial; font-style: normal; font-variant-caps: normal; font-weight:=
 normal; letter-spacing: normal; orphans: auto; text-align: start; text-ind=
ent: 0px; text-transform: none; white-space: normal; widows: auto; word-spa=
cing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, =
255);" class=3D""><span style=3D"color: rgb(46, 46, 46); font-family: arial=
; font-size: inherit; font-style: normal; font-variant-caps: normal; font-w=
eight: normal; letter-spacing: normal; orphans: auto; text-align: start; te=
xt-indent: 0px; text-transform: none; white-space: normal; widows: auto; wo=
rd-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255,=
 255, 255); float: none; display: inline !important;" class=3D"">&nbsp;</sp=
an><br style=3D"color: rgb(46, 46, 46); font-family: arial; font-style: nor=
mal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal=
; orphans: auto; text-align: start; text-indent: 0px; text-transform: none;=
 white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-=
width: 0px; background-color: rgb(255, 255, 255);" class=3D""><span style=
=3D"color: rgb(46, 46, 46); font-family: arial; font-size: inherit; font-st=
yle: normal; font-variant-caps: normal; font-weight: normal; letter-spacing=
: normal; orphans: auto; text-align: start; text-indent: 0px; text-transfor=
m: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text=
-stroke-width: 0px; background-color: rgb(255, 255, 255); float: none; disp=
lay: inline !important;" class=3D"">Sergey</span></div></blockquote></div><=
br class=3D""><div class=3D"">Huh, that <i class=3D"">is</i>&nbsp;weird. &n=
bsp;Hopefully you can figure it out, then=E2=80=A6</div><br class=3D""><div=
 class=3D"">
<div style=3D"color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; t=
ext-align: start; text-indent: 0px; text-transform: none; white-space: norm=
al; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-w=
rap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-=
space;" class=3D""><div style=3D"color: rgb(0, 0, 0); letter-spacing: norma=
l; orphans: auto; text-align: start; text-indent: 0px; text-transform: none=
; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke=
-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-=
break: after-white-space;" class=3D""><div class=3D"">=E2=80=94=E2=80=89Bry=
ce Glover</div><div class=3D"">=E3=80=80=E2=80=89<a href=3D"mailto:RandomDS=
devel@gmail.com" class=3D"">RandomDSdevel@gmail.com</a></div></div></div></=
div></body></html>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/9335055A-BC13-45C3-91E6-35D5C981CDD8%=
40gmail.com?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/9335055A-BC13-45C3-91E6-35D5C981CDD8%=
40gmail.com</a>.<br />

--Apple-Mail=_AF0F2FFA-125A-4DA1-9D17-54D010B6379F--

.


Author: Sergey Vidyuk <sir.vestnik@gmail.com>
Date: Thu, 6 Apr 2017 09:59:42 -0700 (PDT)
Raw View
------=_Part_3371_1488880502.1491497982598
Content-Type: multipart/alternative;
 boundary="----=_Part_3372_1338470098.1491497982598"

------=_Part_3372_1338470098.1491497982598
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Sorry for disappearing for a long time. I had not enough time to return to=
=20
this topic due to some family issues.

=D1=87=D0=B5=D1=82=D0=B2=D0=B5=D1=80=D0=B3, 23 =D1=84=D0=B5=D0=B2=D1=80=D0=
=B0=D0=BB=D1=8F 2017 =D0=B3., 3:43:25 UTC+7 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=
=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Arthur O'Dwyer=20
=D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
> But I guess my::packaged_task<R()> could be implemented as a=20
> unique_ptr<pair<...>> without loss of efficiency. In fact, storing the=20
> functor (the "task") in the shared state would increase efficiency by=20
> removing the requirement to move-construct the "task" every time the=20
> packaged_task itself is move-constructed.
>

libstdc++ stores task inside the shared state and sizeof(packaged_task) =3D=
=3D=20
sizeof(promise) =3D=3D sizeof(shared_ptr)
=20

> Right now, N4618 30.6.9.1 [futures.task.members]/6 and /10 are *very=20
> clear* that the "stored task" *must* be move-constructed, swapped, etc.,=
=20
> every time those operations are performed on the std::packaged_task; if y=
ou=20
> want cheaply movable or swappable packaged_tasks you have to implement yo=
ur=20
> own my::packaged_task.  (In particular, if you want noexcept-swappable=20
> packaged_tasks, I think. N4618's swap is declared noexcept, but you can=
=20
> easily write a swap for your stored task type that throws an exception,=
=20
> which means that swapping packaged_tasks containing those tasks ought to=
=20
> result in a call to std::terminate.)
>
>
As far as I can understand packaged_task::swap specification 30.6.9.1=20
[futures.task.members]/10 there is no direct requirement to call swap on=20
stored tasks:

>  Effects: exchanges the shared states and stored tasks of *this and other=
..
>
> Postcondition: *this has the same shared state and stored task (if any) a=
s=20
> other prior to the call to swap. other has the same shared state and stor=
ed=20
> task (if any) as *this prior to the call to swap.
>

and since two different packaged_task instances could store function=20
objects of completely different types packaged_task::swap almost always=20
will fail to find swap specialization for exact types of stored tasks.

I've asked about move constructor requirements on the standard discussion=
=20
forum:=20
https://groups.google.com/a/isocpp.org/forum/#!topic/std-discussion/FqyKCoy=
4W8I

unique_function seems to be generic solution for a problem which my=20
proposal tries to solve. What is the status of N4543 is it gouing to be=20
merged into C++20 draft when the work on the next version of the standard=
=20
begins?

Sergey Vidyuk

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/85e44d99-b3ad-46b4-b28e-03b886b02508%40isocpp.or=
g.

------=_Part_3372_1338470098.1491497982598
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Sorry for disappearing for a long time. I had not enough t=
ime to return to this topic due to some family issues.<br><br>=D1=87=D0=B5=
=D1=82=D0=B2=D0=B5=D1=80=D0=B3, 23 =D1=84=D0=B5=D0=B2=D1=80=D0=B0=D0=BB=D1=
=8F 2017 =D0=B3., 3:43:25 UTC+7 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=
=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Arthur O&#39;Dwyer =D0=BD=D0=B0=D0=BF=D0=B8=
=D1=81=D0=B0=D0=BB:<blockquote class=3D"gmail_quote" style=3D"margin: 0;mar=
gin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D=
"ltr"><div>But I guess=C2=A0<span style=3D"font-family:monospace,monospace"=
>my::packaged_task&lt;R()&gt;</span>=C2=A0could be implemented as a <font f=
ace=3D"monospace, monospace">unique_ptr&lt;pair&lt;...&gt;&gt;</font> witho=
ut loss of efficiency. In fact, storing the functor (the &quot;task&quot;) =
in the shared state would increase efficiency by removing the requirement t=
o move-construct the &quot;task&quot; every time the packaged_task itself i=
s move-constructed.</div></div></blockquote><div><br>libstdc++ stores task =
inside the shared state and sizeof(packaged_task) =3D=3D sizeof(promise) =
=3D=3D sizeof(shared_ptr)<br>=C2=A0</div><blockquote class=3D"gmail_quote" =
style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-l=
eft: 1ex;"><div dir=3D"ltr"><div>Right now, N4618 30.6.9.1 [futures.task.me=
mbers]/6 and /10 are=C2=A0<b><i>very clear</i></b> that the &quot;stored ta=
sk&quot; <i><b>must</b></i> be move-constructed, swapped, etc., every time =
those operations are performed on the std::packaged_task; if you want cheap=
ly movable or swappable packaged_tasks you have to implement your own my::p=
ackaged_task. =C2=A0(In particular, if you want noexcept-swappable packaged=
_tasks, I think. N4618&#39;s swap is declared noexcept, but you can easily =
write a swap for your stored task type that throws an exception, which mean=
s that swapping packaged_tasks containing those tasks ought to result in a =
call to std::terminate.)<div class=3D"gmail_quote"><div><br></div></div></d=
iv></div></blockquote><div><br>As far as I can understand packaged_task::sw=
ap specification 30.6.9.1 [futures.task.members]/10 there is no direct requ=
irement to call swap on stored tasks:<br><blockquote class=3D"gmail_quote" =
style=3D"margin: 0px 0px 0px 0.8ex; border-left: 1px solid rgb(204, 204, 20=
4); padding-left: 1ex;">=C2=A0Effects: exchanges the shared states and stor=
ed tasks of *this and other.<br><br>Postcondition: *this has the same share=
d state and stored task (if any) as other prior to the call to swap. other =
has the same shared state and stored task (if any) as *this prior to the ca=
ll to swap.<br></blockquote><div><br>and since two different packaged_task =
instances could store function objects of completely different types packag=
ed_task::swap almost always will fail to find swap specialization for exact=
 types of stored tasks.<br></div><br>I&#39;ve asked about move constructor =
requirements on the standard discussion forum: https://groups.google.com/a/=
isocpp.org/forum/#!topic/std-discussion/FqyKCoy4W8I<br></div><div><br>uniqu=
e_function seems to be generic solution for a problem which my proposal tri=
es to solve. What is the status of N4543 is it gouing to be merged into C++=
20 draft when the work on the next version of the standard begins?<br><br>S=
ergey Vidyuk<br></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/85e44d99-b3ad-46b4-b28e-03b886b02508%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/85e44d99-b3ad-46b4-b28e-03b886b02508=
%40isocpp.org</a>.<br />

------=_Part_3372_1338470098.1491497982598--

------=_Part_3371_1488880502.1491497982598--

.