<div dir="ltr"><div class="markdown-here-wrapper" style><p style="margin:1.2em 0px!important">Hi,</p>
<p style="margin:1.2em 0px!important">what’s people’s experience with compiling cpython using multiple jobs (e.g., <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;display:inline;background-color:rgb(248,248,248)">make -j 8</code>)?</p>


<p style="margin:1.2em 0px!important">In my case, I sometimes experience build errors that happen when using -j, whereas the single-job build always works. I haven’t tracked this down in detail, though… here’s an extract from a sample log:</p>


<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;display:inline;background-color:rgb(248,248,248);white-space:pre;overflow:auto;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important;display:block;padding:0.5em;color:rgb(51,51,51);background:rgb(248,248,255)">17:42:56 make[1]: Entering directory `/path/to/cpython/build'
17:42:57 clang -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -O3 -fsanitize=address   -Werror=declaration-after-statement   -I. -IInclude -I../../cpython/Include    -DPy_BUILD_CORE -o Python/Python-ast.o Python/Python-ast.c
17:42:57 clang -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -O3 -fsanitize=address   -Werror=declaration-after-statement   -I. -IInclude -I../../cpython/Include    -DPy_BUILD_CORE -o Python/ast.o ../../cpython/Python/ast.c
17:42:57 clang -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -O3 -fsanitize=address   -Werror=declaration-after-statement   -I. -IInclude -I../../cpython/Include    -DPy_BUILD_CORE -o Python/ast.o ../../cpython/Python/ast.c
17:42:57 clang -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -O3 -fsanitize=address   -Werror=declaration-after-statement   -I. -IInclude -I../../cpython/Include    -DPy_BUILD_CORE -o Python/ceval.o ../../cpython/Python/ceval.c
17:42:58 clang -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -O3 -fsanitize=address   -Werror=declaration-after-statement   -I. -IInclude -I../../cpython/Include    -DPy_BUILD_CORE -o Python/compile.o ../../cpython/Python/compile.c
17:43:07 clang -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -O3 -fsanitize=address   -Werror=declaration-after-statement   -I. -IInclude -I../../cpython/Include    -DPy_BUILD_CORE -o Python/graminit.o Python/graminit.c
17:43:07 clang -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -O3 -fsanitize=address   -Werror=declaration-after-statement   -I. -IInclude -I../../cpython/Include    -DPy_BUILD_CORE -o Python/ceval.o ../../cpython/Python/ceval.c
17:43:07 clang -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -O3 -fsanitize=address   -Werror=declaration-after-statement   -I. -IInclude -I../../cpython/Include    -DPy_BUILD_CORE -o Python/compile.o ../../cpython/Python/compile.c
17:43:08 make Include/graminit.h
17:43:08 make[1]: Entering directory `/path/to/cpython/build'
17:43:08 make[1]: `Include/graminit.h' is up to date.
17:43:08 make[1]: Leaving directory `/path/to/cpython/build'

17:43:24 clang -fsanitize=address  -o Modules/_freeze_importlib Modules/_freeze_importlib.o Modules/getbuildinfo.o Parser/acceler.o [...] Objects/abstract.o [...] Objects/weakrefobject.o Python/_warnings.o [...] Python/ceval.o Python/compile.o Python/codecs.o [...] Modules/faulthandler.o  Modules/_tracemalloc.o Modules/hashtable.o  Modules/symtablemodule.o  Modules/xxsubtype.o -ldl  -lutil   -lm  
17:43:24 /usr/bin/ld: error: Python/ceval.o: file is empty
17:43:24 /usr/bin/ld: error: Python/compile.o: file is empty
</code></pre><p style="margin:1.2em 0px!important">For some reason, some files like Python/ceval.o seem to be built multiple times. I reckon this causes race conditions that result in some empty object files, which causes the linker to fail.</p>


<p style="margin:1.2em 0px!important">Any ideas about where this comes from, and how to fix it?</p>
<p style="margin:1.2em 0px!important">Cheers,<br>Jonas</p>
<div title="MDH:SGksPGRpdj48YnI+PC9kaXY+PGRpdj53aGF0J3MgcGVvcGxlJ3MgZXhwZXJpZW5jZSB3aXRoIGNv
bXBpbGluZyBjcHl0aG9uIHVzaW5nIG11bHRpcGxlIGpvYnMgKGUuZy4sIGBtYWtlIC1qIDhgKT88
L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkluIG15IGNhc2UsIEkgc29tZXRpbWVzIGV4cGVyaWVu
Y2UgYnVpbGQgZXJyb3JzIHRoYXQgaGFwcGVuIHdoZW4gdXNpbmcgLWosIHdoZXJlYXMgdGhlIHNp
bmdsZS1qb2IgYnVpbGQgYWx3YXlzIHdvcmtzLiBJIGhhdmVuJ3QgdHJhY2tlZCB0aGlzIGRvd24g
aW4gZGV0YWlsLCB0aG91Z2guLi4gaGVyZSdzIGFuIGV4dHJhY3QgZnJvbSBhIHNhbXBsZSBsb2c6
PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj48ZGl2Pjxmb250IGZhY2U9ImNvdXJpZXIgbmV3LCBt
b25vc3BhY2UiPiZuYnNwOyAmbmJzcDsgMTc6NDI6NTYgbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0
b3J5IGAvcGF0aC90by9jcHl0aG9uL2J1aWxkJzwvZm9udD48L2Rpdj48ZGl2Pjxmb250IGZhY2U9
ImNvdXJpZXIgbmV3LCBtb25vc3BhY2UiPiZuYnNwOyAmbmJzcDsgMTc6NDI6NTcgY2xhbmcgLWMg
LVduby11bnVzZWQtcmVzdWx0IC1ETkRFQlVHIC1nIC1md3JhcHYgLU8zIC1XYWxsIC1Xc3RyaWN0
LXByb3RvdHlwZXMgLU8zIC1mc2FuaXRpemU9YWRkcmVzcyAmbmJzcDsgLVdlcnJvcj1kZWNsYXJh
dGlvbi1hZnRlci1zdGF0ZW1lbnQgJm5ic3A7IC1JLiAtSUluY2x1ZGUgLUkuLi8uLi9jcHl0aG9u
L0luY2x1ZGUgJm5ic3A7ICZuYnNwOy1EUHlfQlVJTERfQ09SRSAtbyBQeXRob24vUHl0aG9uLWFz
dC5vIFB5dGhvbi9QeXRob24tYXN0LmM8L2ZvbnQ+PC9kaXY+PGRpdj48Zm9udCBmYWNlPSJjb3Vy
aWVyIG5ldywgbW9ub3NwYWNlIj4mbmJzcDsgJm5ic3A7IDE3OjQyOjU3IGNsYW5nIC1jIC1Xbm8t
dW51c2VkLXJlc3VsdCAtRE5ERUJVRyAtZyAtZndyYXB2IC1PMyAtV2FsbCAtV3N0cmljdC1wcm90
b3R5cGVzIC1PMyAtZnNhbml0aXplPWFkZHJlc3MgJm5ic3A7IC1XZXJyb3I9ZGVjbGFyYXRpb24t
YWZ0ZXItc3RhdGVtZW50ICZuYnNwOyAtSS4gLUlJbmNsdWRlIC1JLi4vLi4vY3B5dGhvbi9JbmNs
dWRlICZuYnNwOyAmbmJzcDstRFB5X0JVSUxEX0NPUkUgLW8gUHl0aG9uL2FzdC5vIC4uLy4uL2Nw
eXRob24vUHl0aG9uL2FzdC5jPC9mb250PjwvZGl2PjxkaXY+PGZvbnQgZmFjZT0iY291cmllciBu
ZXcsIG1vbm9zcGFjZSI+Jm5ic3A7ICZuYnNwOyAxNzo0Mjo1NyBjbGFuZyAtYyAtV25vLXVudXNl
ZC1yZXN1bHQgLUROREVCVUcgLWcgLWZ3cmFwdiAtTzMgLVdhbGwgLVdzdHJpY3QtcHJvdG90eXBl
cyAtTzMgLWZzYW5pdGl6ZT1hZGRyZXNzICZuYnNwOyAtV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVy
LXN0YXRlbWVudCAmbmJzcDsgLUkuIC1JSW5jbHVkZSAtSS4uLy4uL2NweXRob24vSW5jbHVkZSAm
bmJzcDsgJm5ic3A7LURQeV9CVUlMRF9DT1JFIC1vIFB5dGhvbi9hc3QubyAuLi8uLi9jcHl0aG9u
L1B5dGhvbi9hc3QuYzwvZm9udD48L2Rpdj48ZGl2Pjxmb250IGZhY2U9ImNvdXJpZXIgbmV3LCBt
b25vc3BhY2UiPiZuYnNwOyAmbmJzcDsgMTc6NDI6NTcgY2xhbmcgLWMgLVduby11bnVzZWQtcmVz
dWx0IC1ETkRFQlVHIC1nIC1md3JhcHYgLU8zIC1XYWxsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLU8z
IC1mc2FuaXRpemU9YWRkcmVzcyAmbmJzcDsgLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0
ZW1lbnQgJm5ic3A7IC1JLiAtSUluY2x1ZGUgLUkuLi8uLi9jcHl0aG9uL0luY2x1ZGUgJm5ic3A7
ICZuYnNwOy1EUHlfQlVJTERfQ09SRSAtbyBQeXRob24vY2V2YWwubyAuLi8uLi9jcHl0aG9uL1B5
dGhvbi9jZXZhbC5jPC9mb250PjwvZGl2PjxkaXY+PGZvbnQgZmFjZT0iY291cmllciBuZXcsIG1v
bm9zcGFjZSI+Jm5ic3A7ICZuYnNwOyAxNzo0Mjo1OCBjbGFuZyAtYyAtV25vLXVudXNlZC1yZXN1
bHQgLUROREVCVUcgLWcgLWZ3cmFwdiAtTzMgLVdhbGwgLVdzdHJpY3QtcHJvdG90eXBlcyAtTzMg
LWZzYW5pdGl6ZT1hZGRyZXNzICZuYnNwOyAtV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRl
bWVudCAmbmJzcDsgLUkuIC1JSW5jbHVkZSAtSS4uLy4uL2NweXRob24vSW5jbHVkZSAmbmJzcDsg
Jm5ic3A7LURQeV9CVUlMRF9DT1JFIC1vIFB5dGhvbi9jb21waWxlLm8gLi4vLi4vY3B5dGhvbi9Q
eXRob24vY29tcGlsZS5jPC9mb250PjwvZGl2PjxkaXY+PGZvbnQgZmFjZT0iY291cmllciBuZXcs
IG1vbm9zcGFjZSI+Jm5ic3A7ICZuYnNwOyAxNzo0MzowNyBjbGFuZyAtYyAtV25vLXVudXNlZC1y
ZXN1bHQgLUROREVCVUcgLWcgLWZ3cmFwdiAtTzMgLVdhbGwgLVdzdHJpY3QtcHJvdG90eXBlcyAt
TzMgLWZzYW5pdGl6ZT1hZGRyZXNzICZuYnNwOyAtV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0
YXRlbWVudCAmbmJzcDsgLUkuIC1JSW5jbHVkZSAtSS4uLy4uL2NweXRob24vSW5jbHVkZSAmbmJz
cDsgJm5ic3A7LURQeV9CVUlMRF9DT1JFIC1vIFB5dGhvbi9ncmFtaW5pdC5vIFB5dGhvbi9ncmFt
aW5pdC5jPC9mb250PjwvZGl2PjxkaXY+PGZvbnQgZmFjZT0iY291cmllciBuZXcsIG1vbm9zcGFj
ZSI+Jm5ic3A7ICZuYnNwOyAxNzo0MzowNyBjbGFuZyAtYyAtV25vLXVudXNlZC1yZXN1bHQgLURO
REVCVUcgLWcgLWZ3cmFwdiAtTzMgLVdhbGwgLVdzdHJpY3QtcHJvdG90eXBlcyAtTzMgLWZzYW5p
dGl6ZT1hZGRyZXNzICZuYnNwOyAtV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCAm
bmJzcDsgLUkuIC1JSW5jbHVkZSAtSS4uLy4uL2NweXRob24vSW5jbHVkZSAmbmJzcDsgJm5ic3A7
LURQeV9CVUlMRF9DT1JFIC1vIFB5dGhvbi9jZXZhbC5vIC4uLy4uL2NweXRob24vUHl0aG9uL2Nl
dmFsLmM8L2ZvbnQ+PC9kaXY+PGRpdj48Zm9udCBmYWNlPSJjb3VyaWVyIG5ldywgbW9ub3NwYWNl
Ij4mbmJzcDsgJm5ic3A7IDE3OjQzOjA3IGNsYW5nIC1jIC1Xbm8tdW51c2VkLXJlc3VsdCAtRE5E
RUJVRyAtZyAtZndyYXB2IC1PMyAtV2FsbCAtV3N0cmljdC1wcm90b3R5cGVzIC1PMyAtZnNhbml0
aXplPWFkZHJlc3MgJm5ic3A7IC1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50ICZu
YnNwOyAtSS4gLUlJbmNsdWRlIC1JLi4vLi4vY3B5dGhvbi9JbmNsdWRlICZuYnNwOyAmbmJzcDst
RFB5X0JVSUxEX0NPUkUgLW8gUHl0aG9uL2NvbXBpbGUubyAuLi8uLi9jcHl0aG9uL1B5dGhvbi9j
b21waWxlLmM8L2ZvbnQ+PC9kaXY+PGRpdj48Zm9udCBmYWNlPSJjb3VyaWVyIG5ldywgbW9ub3Nw
YWNlIj4mbmJzcDsgJm5ic3A7IDE3OjQzOjA4IG1ha2UgSW5jbHVkZS9ncmFtaW5pdC5oPC9mb250
PjwvZGl2PjxkaXY+PGZvbnQgZmFjZT0iY291cmllciBuZXcsIG1vbm9zcGFjZSI+Jm5ic3A7ICZu
YnNwOyAxNzo0MzowOCBtYWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgYC9wYXRoL3RvL2NweXRo
b24vYnVpbGQnPC9mb250PjwvZGl2PjxkaXY+PGZvbnQgZmFjZT0iY291cmllciBuZXcsIG1vbm9z
cGFjZSI+Jm5ic3A7ICZuYnNwOyAxNzo0MzowOCBtYWtlWzFdOiBgSW5jbHVkZS9ncmFtaW5pdC5o
JyBpcyB1cCB0byBkYXRlLjwvZm9udD48L2Rpdj48ZGl2Pjxmb250IGZhY2U9ImNvdXJpZXIgbmV3
LCBtb25vc3BhY2UiPiZuYnNwOyAmbmJzcDsgMTc6NDM6MDggbWFrZVsxXTogTGVhdmluZyBkaXJl
Y3RvcnkgYC9wYXRoL3RvL2NweXRob24vYnVpbGQnPC9mb250PjwvZGl2PjxkaXY+PGZvbnQgZmFj
ZT0iY291cmllciBuZXcsIG1vbm9zcGFjZSI+Jm5ic3A7ICZuYnNwOyZuYnNwOzwvZm9udD48L2Rp
dj48ZGl2Pjxmb250IGZhY2U9ImNvdXJpZXIgbmV3LCBtb25vc3BhY2UiPiZuYnNwOyAmbmJzcDsg
MTc6NDM6MjQgY2xhbmcgLWZzYW5pdGl6ZT1hZGRyZXNzICZuYnNwOy1vIE1vZHVsZXMvX2ZyZWV6
ZV9pbXBvcnRsaWIgTW9kdWxlcy9fZnJlZXplX2ltcG9ydGxpYi5vIE1vZHVsZXMvZ2V0YnVpbGRp
bmZvLm8gUGFyc2VyL2FjY2VsZXIubyBQYXJzZXIvZ3JhbW1hcjEubyBQYXJzZXIvbGlzdG5vZGUu
byBQYXJzZXIvbm9kZS5vIFBhcnNlci9wYXJzZXIubyBQYXJzZXIvYml0c2V0Lm8gUGFyc2VyL21l
dGFncmFtbWFyLm8gUGFyc2VyL2ZpcnN0c2V0cy5vIFBhcnNlci9ncmFtbWFyLm8gUGFyc2VyL3Bn
ZW4ubyBQYXJzZXIvbXlyZWFkbGluZS5vIFBhcnNlci9wYXJzZXRvay5vIFBhcnNlci90b2tlbml6
ZXIubyBPYmplY3RzL2Fic3RyYWN0Lm8gT2JqZWN0cy9hY2N1Lm8gT2JqZWN0cy9ib29sb2JqZWN0
Lm8gT2JqZWN0cy9ieXRlc19tZXRob2RzLm8gT2JqZWN0cy9ieXRlYXJyYXlvYmplY3QubyBPYmpl
Y3RzL2J5dGVzb2JqZWN0Lm8gT2JqZWN0cy9jZWxsb2JqZWN0Lm8gT2JqZWN0cy9jbGFzc29iamVj
dC5vIE9iamVjdHMvY29kZW9iamVjdC5vIE9iamVjdHMvY29tcGxleG9iamVjdC5vIE9iamVjdHMv
ZGVzY3JvYmplY3QubyBPYmplY3RzL2VudW1vYmplY3QubyBPYmplY3RzL2V4Y2VwdGlvbnMubyBP
YmplY3RzL2dlbm9iamVjdC5vIE9iamVjdHMvZmlsZW9iamVjdC5vIE9iamVjdHMvZmxvYXRvYmpl
Y3QubyBPYmplY3RzL2ZyYW1lb2JqZWN0Lm8gT2JqZWN0cy9mdW5jb2JqZWN0Lm8gT2JqZWN0cy9p
dGVyb2JqZWN0Lm8gT2JqZWN0cy9saXN0b2JqZWN0Lm8gT2JqZWN0cy9sb25nb2JqZWN0Lm8gT2Jq
ZWN0cy9kaWN0b2JqZWN0Lm8gT2JqZWN0cy9tZW1vcnlvYmplY3QubyBPYmplY3RzL21ldGhvZG9i
amVjdC5vIE9iamVjdHMvbW9kdWxlb2JqZWN0Lm8gT2JqZWN0cy9uYW1lc3BhY2VvYmplY3QubyBP
YmplY3RzL29iamVjdC5vIE9iamVjdHMvb2JtYWxsb2MubyBPYmplY3RzL2NhcHN1bGUubyBPYmpl
Y3RzL3Jhbmdlb2JqZWN0Lm8gT2JqZWN0cy9zZXRvYmplY3QubyBPYmplY3RzL3NsaWNlb2JqZWN0
Lm8gT2JqZWN0cy9zdHJ1Y3RzZXEubyBPYmplY3RzL3R1cGxlb2JqZWN0Lm8gT2JqZWN0cy90eXBl
b2JqZWN0Lm8gT2JqZWN0cy91bmljb2Rlb2JqZWN0Lm8gT2JqZWN0cy91bmljb2RlY3R5cGUubyBP
YmplY3RzL3dlYWtyZWZvYmplY3QubyBQeXRob24vX3dhcm5pbmdzLm8gUHl0aG9uL1B5dGhvbi1h
c3QubyBQeXRob24vYXNkbC5vIFB5dGhvbi9hc3QubyBQeXRob24vYmx0aW5tb2R1bGUubyBQeXRo
b24vY2V2YWwubyBQeXRob24vY29tcGlsZS5vIFB5dGhvbi9jb2RlY3MubyBQeXRob24vZHluYW1p
Y19hbm5vdGF0aW9ucy5vIFB5dGhvbi9lcnJvcnMubyBQeXRob24vZnJvemVubWFpbi5vIFB5dGhv
bi9mdXR1cmUubyBQeXRob24vZ2V0YXJncy5vIFB5dGhvbi9nZXRjb21waWxlci5vIFB5dGhvbi9n
ZXRjb3B5cmlnaHQubyBQeXRob24vZ2V0cGxhdGZvcm0ubyBQeXRob24vZ2V0dmVyc2lvbi5vIFB5
dGhvbi9ncmFtaW5pdC5vIFB5dGhvbi9pbXBvcnQubyBQeXRob24vaW1wb3J0ZGwubyBQeXRob24v
bWFyc2hhbC5vIFB5dGhvbi9tb2RzdXBwb3J0Lm8gUHl0aG9uL215c3RydG91bC5vIFB5dGhvbi9t
eXNucHJpbnRmLm8gUHl0aG9uL3BlZXBob2xlLm8gUHl0aG9uL3B5YXJlbmEubyBQeXRob24vcHlj
dHlwZS5vIFB5dGhvbi9weWZwZS5vIFB5dGhvbi9weWhhc2gubyBQeXRob24vcHltYXRoLm8gUHl0
aG9uL3B5c3RhdGUubyBQeXRob24vcHl0aG9ucnVuLm8gUHl0aG9uL3B5dGltZS5vIFB5dGhvbi9y
YW5kb20ubyBQeXRob24vc3RydWN0bWVtYmVyLm8gUHl0aG9uL3N5bXRhYmxlLm8gUHl0aG9uL3N5
c21vZHVsZS5vIFB5dGhvbi90cmFjZWJhY2subyBQeXRob24vZ2V0b3B0Lm8gUHl0aG9uL3B5c3Ry
Y21wLm8gUHl0aG9uL3B5c3RydG9kLm8gUHl0aG9uL2R0b2EubyBQeXRob24vZm9ybWF0dGVyX3Vu
aWNvZGUubyBQeXRob24vZmlsZXV0aWxzLm8gUHl0aG9uL2R5bmxvYWRfc2hsaWIubyAmbmJzcDsg
UHl0aG9uL3RocmVhZC5vIE1vZHVsZXMvY29uZmlnLm8gTW9kdWxlcy9nZXRwYXRoLm8gTW9kdWxl
cy9tYWluLm8gTW9kdWxlcy9nY21vZHVsZS5vICZuYnNwO01vZHVsZXMvX3RocmVhZG1vZHVsZS5v
ICZuYnNwO01vZHVsZXMvc2lnbmFsbW9kdWxlLm8gJm5ic3A7TW9kdWxlcy9wb3NpeG1vZHVsZS5v
ICZuYnNwO01vZHVsZXMvZXJybm9tb2R1bGUubyAmbmJzcDtNb2R1bGVzL3B3ZG1vZHVsZS5vICZu
YnNwO01vZHVsZXMvX3NyZS5vICZuYnNwO01vZHVsZXMvX2NvZGVjc21vZHVsZS5vICZuYnNwO01v
ZHVsZXMvX3dlYWtyZWYubyAmbmJzcDtNb2R1bGVzL19mdW5jdG9vbHNtb2R1bGUubyAmbmJzcDtN
b2R1bGVzL19vcGVyYXRvci5vICZuYnNwO01vZHVsZXMvX2NvbGxlY3Rpb25zbW9kdWxlLm8gJm5i
c3A7TW9kdWxlcy9pdGVydG9vbHNtb2R1bGUubyAmbmJzcDtNb2R1bGVzL2F0ZXhpdG1vZHVsZS5v
ICZuYnNwO01vZHVsZXMvX3N0YXQubyAmbmJzcDtNb2R1bGVzL19sb2NhbGVtb2R1bGUubyAmbmJz
cDtNb2R1bGVzL19pb21vZHVsZS5vIE1vZHVsZXMvaW9iYXNlLm8gTW9kdWxlcy9maWxlaW8ubyBN
b2R1bGVzL2J5dGVzaW8ubyBNb2R1bGVzL2J1ZmZlcmVkaW8ubyBNb2R1bGVzL3RleHRpby5vIE1v
ZHVsZXMvc3RyaW5naW8ubyAmbmJzcDtNb2R1bGVzL3ppcGltcG9ydC5vICZuYnNwO01vZHVsZXMv
ZmF1bHRoYW5kbGVyLm8gJm5ic3A7TW9kdWxlcy9fdHJhY2VtYWxsb2MubyBNb2R1bGVzL2hhc2h0
YWJsZS5vICZuYnNwO01vZHVsZXMvc3ltdGFibGVtb2R1bGUubyAmbmJzcDtNb2R1bGVzL3h4c3Vi
dHlwZS5vIC1sZGwgJm5ic3A7LWx1dGlsICZuYnNwOyAtbG0gJm5ic3A7PC9mb250PjwvZGl2Pjxk
aXY+PGZvbnQgZmFjZT0iY291cmllciBuZXcsIG1vbm9zcGFjZSI+Jm5ic3A7ICZuYnNwOyAxNzo0
MzoyNCAvdXNyL2Jpbi9sZDogZXJyb3I6IFB5dGhvbi9jZXZhbC5vOiBmaWxlIGlzIGVtcHR5PC9m
b250PjwvZGl2PjxkaXY+PGZvbnQgZmFjZT0iY291cmllciBuZXcsIG1vbm9zcGFjZSI+Jm5ic3A7
ICZuYnNwOyAxNzo0MzoyNCAvdXNyL2Jpbi9sZDogZXJyb3I6IFB5dGhvbi9jb21waWxlLm86IGZp
bGUgaXMgZW1wdHk8L2ZvbnQ+PC9kaXY+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5Gb3Igc29t
ZSByZWFzb24sIHNvbWUgZmlsZXMgc2VlbSB0byBiZSBidWlsdCBtdWx0aXBsZSB0aW1lcy4gSSBy
ZWNrb24gdGhpcyBjYXVzZXMgcmFjZSBjb25kaXRpb25zIHRoYXQgcmVzdWx0IGluIHNvbWUgZW1w
dHkgb2JqZWN0IGZpbGVzLCB3aGljaCBjYXVzZXMgdGhlIGxpbmtlciB0byBmYWlsLjwvZGl2Pjxk
aXY+PGJyPjwvZGl2PjxkaXY+QW55IGlkZWFzIGFib3V0IHdoZXJlIHRoaXMgY29tZXMgZnJvbSwg
YW5kIGhvdyB0byBmaXggdGhpcz88L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkNoZWVycyw8L2Rp
dj48ZGl2PkpvbmFzPC9kaXY+PGRpdj48L2Rpdj4=" style="height:0;font-size:0em;padding:0;margin:0">​</div></div></div>