Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash: 2517747396662708227 #1511

Closed
tigerbeetle-vopr opened this issue Feb 2, 2024 · 2 comments · Fixed by #1515
Closed

Crash: 2517747396662708227 #1511

tigerbeetle-vopr opened this issue Feb 2, 2024 · 2 comments · Fixed by #1515

Comments

@tigerbeetle-vopr
Copy link

Commit: 7f92126c74c715c295503e7b41f56cef552a550c

Branches: main

Duration to run seed in ReleaseSafe mode: 7s

Stack Trace:

thread panic: reached unreachable code
src/vsr/client_replies.zig:0:0: in read_reply_sync (simulator)
src/vsr/replica.zig:2202:52: in on_message (simulator)
if (self.client_replies.read_reply_sync(slot, entry)) |reply| {

src/testing/cluster/network.zig:296:39: in deliver_message (simulator)
target_bus.on_message_callback(target_bus, target_message);

src/testing/packet_simulator.zig:378:45: in tick (simulator)
link_packet.callback(link_packet.packet, path);

src/simulator.zig:277:23: in main (simulator)
simulator.tick();

zig/lib/std/start.zig:574:37: in posixCallMainAndExit (simulator)
const result = root.main() catch |err| {

zig/lib/std/start.zig:243:5: in _start (simulator)
asm volatile (switch (native_arch) {

???:?:?: in ??? (???)
Unwind information for `???:0x1` was not available, trace may be incomplete

debug: exit with signal: 6. Indicates a crash bug.



Debug Logs:

Tail



SEED=2517747396662708227

replicas=3
standbys=6
clients=7
request_probability=76%
idle_on_probability=2%
idle_off_probability=19%
one_way_delay_mean=11 ticks
one_way_delay_min=1 ticks
packet_loss_probability=4%
path_maximum_capacity=2 messages
path_clog_duration_mean=68 ticks
path_clog_probability=0%
packet_replay_probability=0%
partition_mode=testing.packet_simulator.PartitionMode.isolate_single
partition_symmetry=testing.packet_simulator.PartitionSymmetry.asymmetric
partition_probability=2%
unpartition_probability=9%
partition_stability=167 ticks
unpartition_stability=18 ticks
read_latency_min=1
read_latency_mean=8
write_latency_min=1
write_latency_mean=83
read_fault_probability=4%
write_fault_probability=1%
crash_probability=0.00002%
crash_stability=931 ticks
restart_probability=0.0002%
restart_stability=611 ticks
 1/.4V0/__1/__1C0:__4Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?4/4Pp1/3Rq
 2\.4V0/__1/__1C0:__5Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?
 0\ .4V0/__1/__1C0:__5Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?
 7|.4V0/__1/__1C0:__5Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?
 6|.4V0/__1/__1C0:__4Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?
 8|.4V0/__1/__1C0:__4Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?
 5|.4V0/__1/__1C0:__4Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?
 3|.4V0/__1/__1C0:__5Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?
 4|.4V0/__1/__1C0:__4Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?
 1/.4V0/__2/__2C0:__5Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?4/4Pp1/3Rq
 1/.4V0/__3/__3C0:__6Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?4/4Pp0/3Rq
 1/.4V0/__4/__4C0:__6Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?3/4Pp0/3Rq
 1/.4V0/__5/__5C0:__6Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?2/4Pp0/3Rq
 2\.4V0/__2/__2C0:__6Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?
 0\ .4V0/__2/__5C0:__5Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?
 3|.4V0/__2/__5C0:__5Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?
 0\ .4V0/__3/__5C0:__5Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?
 0\ .4V0/__4/__5C0:__5Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?
 0\ .4V0/__5/__5C0:__5Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?
 3|.4V0/__3/__5C0:__5Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?
 3|.4V0/__4/__5C0:__5Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?
 3|.4V0/__5/__5C0:__5Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?
 8|.4V0/__2/__5C0:__5Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?
 8|.4V0/__3/__5C0:__5Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?
 8|.4V0/__4/__5C0:__5Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?
 8|.4V0/__5/__5C0:__5Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?
 7|.4V0/__2/__5C0:__5Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?
 7|.4V0/__3/__5C0:__5Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?
 7|.4V0/__4/__5C0:__5Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?
 7|.4V0/__5/__5C0:__5Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?
 4|.4V0/__2/__5C0:__8Jo0/_4J!0:_31Wo <__0:__0>0Ga0G!0G?
 4|.4V0/__3/__5C0:__8Jo0/_4J!0:_31Wo <__0:__0>0Ga0G!0G?
 4|.4V0/__4/__5C0:__8Jo0/_4J!0:_31Wo <__0:__0>0Ga0G!0G?
 2\.4V0/__3/__5C0:__8Jo0/_3J!0:_31Wo <__0:__0>0Ga0G!0G?
 2\.4V0/__4/__5C0:__8Jo0/_3J!0:_31Wo <__0:__0>0Ga0G!0G?
 2\.4V0/__5/__5C0:__8Jo0/_3J!0:_31Wo <__0:__0>0Ga0G!0G?
 6|.4V0/__2/__5C0:__9Jo0/_5J!0:_31Wo <__0:__0>0Ga0G!0G?
 6|.4V0/__3/__5C0:__9Jo0/_5J!0:_31Wo <__0:__0>0Ga0G!0G?
 6|.4V0/__4/__5C0:__9Jo0/_5J!0:_31Wo <__0:__0>0Ga0G!0G?
 4|.4V0/__5/__5C0:__8Jo0/_4J!0:_31Wo <__0:__0>0Ga0G!0G?
 1/.4V0/__6/__6C0:__9Jo0/_2J!0:_31Wo <__0:__0>0Ga0G!0G?4/4Pp1/3Rq
 2\.4V0/__6/__6C0:_10Jo0/_3J!0:_31Wo <__0:__0>0Ga0G!0G?
 6|.4V0/__5/__5C0:__9Jo0/_4J!0:_31Wo <__0:__0>0Ga0G!0G?
 0\ .4V0/__6/__6C0:_10Jo0/_4J!0:_31Wo <__0:__0>0Ga0G!0G?
 5|.4V0/__2/__6C0:_10Jo0/_6J!0:_31Wo <__0:__0>0Ga0G!0G?
 5|.4V0/__3/__6C0:_10Jo0/_6J!0:_31Wo <__0:__0>0Ga0G!0G?
 5|.4V0/__4/__6C0:_10Jo0/_6J!0:_31Wo <__0:__0>0Ga0G!0G?
 7|.4V0/__6/__6C0:_10Jo0/_6J!0:_31Wo <__0:__0>0Ga0G!0G?
 6|.4V0/__6/__6C0:__9Jo0/_4J!0:_31Wo <__0:__0>0Ga0G!0G?
 8|.4V0/__6/__6C0:__9Jo0/_5J!0:_31Wo <__0:__0>0Ga0G!0G?
 5|.4V0/__5/__6C0:_10Jo0/_6J!0:_31Wo <__0:__0>0Ga0G!0G?
 5|.4V0/__6/__6C0:_10Jo0/_6J!0:_31Wo <__0:__0>0Ga0G!0G?
 3|.4V0/__6/__6C0:__9Jo0/_3J!0:_31Wo <__0:__0>0Ga0G!0G?
 1/.4V0/__7/__7C0:_10Jo0/_1J!0:_31Wo <__0:__0>0Ga0G!0G?4/4Pp1/3Rq
 1/.4V0/__8/__8C0:_11Jo0/_2J!0:_31Wo <__0:__0>0Ga0G!0G?4/4Pp0/3Rq
 2\.4V0/__7/__7C0:_11Jo0/_3J!0:_31Wo <__0:__0>0Ga0G!0G?
 1/.4V0/__9/__9C0:_11Jo0/_2J!0:_31Wo <__0:__0>0Ga0G!0G?3/4Pp0/3Rq
 2\.4V0/__8/__9C0:_11Jo0/_3J!0:_31Wo <__0:__0>0Ga0G!0G?
 2\.4V0/__9/__9C0:_11Jo0/_3J!0:_31Wo <__0:__0>0Ga0G!0G?
 4|.4V0/__6/__6C0:_10Jo0/_4J!0:_31Wo <__0:__0>0Ga0G!0G?
 4|.4V0/__7/__9C0:_10Jo0/_4J!0:_31Wo <__0:__0>0Ga0G!0G?
 4|.4V0/__8/__9C0:_10Jo0/_4J!0:_31Wo <__0:__0>0Ga0G!0G?
 4|.4V0/__9/__9C0:_10Jo0/_4J!0:_31Wo <__0:__0>0Ga0G!0G?
 5|.4V0/__7/__9C0:_10Jo0/_6J!0:_31Wo <__0:__0>0Ga0G!0G?
 5|.4V0/__8/__9C0:_10Jo0/_6J!0:_31Wo <__0:__0>0Ga0G!0G?
 5|.4V0/__9/__9C0:_10Jo0/_6J!0:_31Wo <__0:__0>0Ga0G!0G?
 6|.4V0/__7/__9C0:__9Jo0/_4J!0:_31Wo <__0:__0>0Ga0G!0G?
 6|.4V0/__8/__9C0:__9Jo0/_4J!0:_31Wo <__0:__0>0Ga0G!0G?
 6|.4V0/__9/__9C0:__9Jo0/_4J!0:_31Wo <__0:__0>0Ga0G!0G?
 8|.4V0/__7/__9C0:_10Jo0/_6J!0:_31Wo <__0:__0>0Ga0G!0G?
 8|.4V0/__8/__9C0:_10Jo0/_6J!0:_31Wo <__0:__0>0Ga0G!0G?
 8|.4V0/__9/__9C0:_10Jo0/_6J!0:_31Wo <__0:__0>0Ga0G!0G?
 0\ .4V0/__7/__9C0:_10Jo0/_2J!0:_31Wo <__0:__0>0Ga0G!0G?
 0\ .4V0/__8/__9C0:_10Jo0/_2J!0:_31Wo <__0:__0>0Ga0G!0G?
 0\ .4V0/__9/__9C0:_10Jo0/_2J!0:_31Wo <__0:__0>0Ga0G!0G?
 7|.4V0/__7/__9C0:_10Jo0/_6J!0:_31Wo <__0:__0>0Ga0G!0G?
 7|.4V0/__8/__9C0:_10Jo0/_6J!0:_31Wo <__0:__0>0Ga0G!0G?
 7|.4V0/__9/__9C0:_10Jo0/_6J!0:_31Wo <__0:__0>0Ga0G!0G?
 3|.4V0/__7/__9C0:_13Jo0/_7J!0:_31Wo <__0:__0>0Ga0G!0G?
 3|.4V0/__8/__9C0:_13Jo0/_7J!0:_31Wo <__0:__0>0Ga0G!0G?
 3|.4V0/__9/__9C0:_13Jo0/_7J!0:_31Wo <__0:__0>0Ga0G!0G?
 1/.4V0/_10/_10C0:_13Jo0/_3J!0:_31Wo <__0:__0>0Ga0G!0G?4/4Pp2/3Rq
 2\.4V0/_10/_10C0:_14Jo0/_5J!0:_31Wo <__0:__0>0Ga0G!0G?
 0\ .4V0/_10/_10C0:_14Jo0/_4J!0:_31Wo <__0:__0>0Ga0G!0G?
 7|.4V0/_10/_10C0:_14Jo0/_6J!0:_31Wo <__0:__0>0Ga0G!0G?
 8|.4V0/_10/_10C0:_14Jo0/_8J!0:_31Wo <__0:__0>0Ga0G!0G?
 3|.4V0/_10/_10C0:_14Jo0/_7J!0:_31Wo <__0:__0>0Ga0G!0G?
 4|.4V0/_10/_10C0:_14Jo0/_5J!0:_31Wo <__0:__0>0Ga0G!0G?
 5|.4V0/_10/_10C0:_14Jo0/_5J!0:_31Wo <__0:__0>0Ga0G!0G?
 6|.4V0/_10/_10C0:_14Jo0/_5J!0:_31Wo <__0:__0>0Ga0G!0G?
 1/.4V0/_11/_11C0:_14Jo0/_1J!0:_31Wo <__0:__0>14Ga0G!0G?4/4Pp2/3Rq
 2\.4V0/_11/_11C0:_15Jo0/_3J!0:_31Wo <__0:__0>14Ga0G!0G?
 0\ .4V0/_11/_11C0:_15Jo0/_3J!0:_31Wo <__0:__0>14Ga0G!0G?
 6|.4V0/_11/_11C0:_14Jo0/_2J!0:_31Wo <__0:__0>14Ga0G!0G?
 7|.4V0/_11/_11C0:_14Jo0/_3J!0:_31Wo <__0:__0>14Ga0G!0G?
 4|.4V0/_11/_11C0:_14Jo0/_3J!0:_31Wo <__0:__0>14Ga0G!0G?
 8|.4V0/_11/_11C0:_14Jo0/_3J!0:_31Wo <__0:__0>14Ga0G!0G?
 3|.4V0/_11/_11C0:_15Jo0/_7J!0:_31Wo <__0:__0>14Ga0G!0G?
 5|.4V0/_11/_11C0:_14Jo0/_3J!0:_31Wo <__0:__0>14Ga0G!0G?
 1/.4V0/_12/_12C0:_15Jo0/_0J!0:_31Wo <__0:__0>15Ga0G!0G?4/4Pp2/3Rq
 1/.4V0/_13/_13C0:_16Jo0/_1J!0:_31Wo <__0:__0>15Ga0G!0G?4/4Pp1/3Rq
 1/.4V0/_14/_14C0:_17Jo0/_2J!0:_31Wo <__0:__0>15Ga0G!0G?4/4Pp0/3Rq
 1/.4V0/_15/_15C0:_18Jo0/_2J!0:_31Wo <__0:__0>29Ga0G!0G?4/4Pp2/3Rq
 3|.4V0/_12/_15C0:_15Jo0/_5J!0:_31Wo <__0:__0>15Ga0G!0G?
 3|.4V0/_13/_15C0:_15Jo0/_5J!0:_31Wo <__0:__0>15Ga0G!0G?
 3|.4V0/_14/_15C0:_15Jo0/_5J!0:_31Wo <__0:__0>15Ga0G!0G?
 3|.4V0/_15/_15C0:_15Jo0/_5J!0:_31Wo <__0:__0>15Ga0G!0G?
 6|.4V0/_12/_15C0:_15Jo0/_1J!0:_31Wo <__0:__0>15Ga0G!0G?
 6|.4V0/_13/_15C0:_15Jo0/_1J!0:_31Wo <__0:__0>15Ga0G!0G?
 6|.4V0/_14/_15C0:_15Jo0/_1J!0:_31Wo <__0:__0>15Ga0G!0G?
 6|.4V0/_15/_15C0:_15Jo0/_1J!0:_31Wo <__0:__0>15Ga0G!0G?
 2\.4V0/_12/_14C0:_18Jo0/_3J!0:_31Wo <__0:__0>15Ga0G!0G?
 2\.4V0/_13/_14C0:_18Jo0/_3J!0:_31Wo <__0:__0>15Ga0G!0G?
 2\.4V0/_14/_14C0:_18Jo0/_3J!0:_31Wo <__0:__0>15Ga0G!0G?
 7|.4V0/_12/_14C0:_18Jo0/_6J!0:_31Wo <__0:__0>15Ga0G!0G?
 7|.4V0/_13/_14C0:_18Jo0/_6J!0:_31Wo <__0:__0>15Ga0G!0G?
 7|.4V0/_14/_14C0:_18Jo0/_6J!0:_31Wo <__0:__0>15Ga0G!0G?
 8|.4V0/_12/_15C0:_18Jo0/_6J!0:_31Wo <__0:__0>15Ga0G!0G?
 8|.4V0/_13/_15C0:_18Jo0/_6J!0:_31Wo <__0:__0>15Ga0G!0G?
 8|.4V0/_14/_15C0:_18Jo0/_6J!0:_31Wo <__0:__0>15Ga0G!0G?
 8|.4V0/_15/_15C0:_18Jo0/_6J!0:_31Wo <__0:__0>15Ga0G!0G?
 5|.4V0/_12/_15C0:_15Jo0/_1J!0:_31Wo <__0:__0>15Ga0G!0G?
 5|.4V0/_13/_15C0:_15Jo0/_1J!0:_31Wo <__0:__0>15Ga0G!0G?
 5|.4V0/_14/_15C0:_15Jo0/_1J!0:_31Wo <__0:__0>15Ga0G!0G?
 5|.4V0/_15/_15C0:_15Jo0/_1J!0:_31Wo <__0:__0>15Ga0G!0G?
 2\.4V0/_15/_15C0:_18Jo0/_2J!0:_31Wo <__0:__0>29Ga0G!0G?
 0\ .4V0/_12/_15C0:_18Jo0/_3J!0:_31Wo <__0:__0>15Ga0G!0G?
 0\ .4V0/_13/_15C0:_18Jo0/_3J!0:_31Wo <__0:__0>15Ga0G!0G?
 0\ .4V0/_14/_15C0:_18Jo0/_3J!0:_31Wo <__0:__0>15Ga0G!0G?
 0\ .4V0/_15/_15C0:_18Jo0/_3J!0:_31Wo <__0:__0>15Ga0G!0G?
 7|.4V0/_15/_15C0:_18Jo0/_4J!0:_31Wo <__0:__0>29Ga0G!0G?
 4|.4V0/_12/_15C0:_15Jo0/_0J!0:_31Wo <__0:__0>15Ga0G!0G?
 4|.4V0/_13/_15C0:_15Jo0/_0J!0:_31Wo <__0:__0>15Ga0G!0G?
 4|.4V0/_14/_15C0:_15Jo0/_0J!0:_31Wo <__0:__0>15Ga0G!0G?
 4|.4V0/_15/_15C0:_15Jo0/_0J!0:_31Wo <__0:__0>15Ga0G!0G?
 1/.4V0/_16/_16C0:_19Jo0/_0J!0:_31Wo <__0:__0>29Ga0G!0G?4/4Pp3/3Rq
 1/.4V0/_17/_17C0:_20Jo0/_1J!0:_31Wo <__0:__0>29Ga0G!0G?4/4Pp2/3Rq
 1/.4V0/_18/_18C0:_21Jo0/_2J!0:_31Wo <__0:__0>29Ga0G!0G?4/4Pp1/3Rq
 3|.4V0/_16/_18C0:_18Jo0/_2J!0:_31Wo <__0:__0>29Ga0G!0G?
 3|.4V0/_17/_18C0:_18Jo0/_2J!0:_31Wo <__0:__0>29Ga0G!0G?
 3|.4V0/_18/_18C0:_18Jo0/_2J!0:_31Wo <__0:__0>29Ga0G!0G?
 0\ .4V0/_16/_18C0:_22Jo0/_4J!0:_31Wo <__0:__0>29Ga0G!0G?
 0\ .4V0/_17/_18C0:_22Jo0/_4J!0:_31Wo <__0:__0>29Ga0G!0G?
 0\ .4V0/_18/_18C0:_22Jo0/_4J!0:_31Wo <__0:__0>29Ga0G!0G?
 2\.4V0/_16/_18C0:_22Jo0/_4J!0:_31Wo <__0:__0>29Ga0G!0G?
 2\.4V0/_17/_18C0:_22Jo0/_4J!0:_31Wo <__0:__0>29Ga0G!0G?
 2\.4V0/_18/_18C0:_22Jo0/_4J!0:_31Wo <__0:__0>29Ga0G!0G?
 7|.4V0/_16/_18C0:_22Jo0/_3J!0:_31Wo <__0:__0>29Ga0G!0G?
 7|.4V0/_17/_18C0:_22Jo0/_3J!0:_31Wo <__0:__0>29Ga0G!0G?
 7|.4V0/_18/_18C0:_22Jo0/_3J!0:_31Wo <__0:__0>29Ga0G!0G?
 4|.4V0/_16/_18C0:_22Jo0/_7J!0:_31Wo <__0:__0>29Ga0G!0G?
 4|.4V0/_17/_18C0:_22Jo0/_7J!0:_31Wo <__0:__0>29Ga0G!0G?
 4|.4V0/_18/_18C0:_22Jo0/_7J!0:_31Wo <__0:__0>29Ga0G!0G?
 5|.4V0/_16/_18C0:_22Jo0/_7J!0:_31Wo <__0:__0>29Ga0G!0G?
 5|.4V0/_17/_18C0:_22Jo0/_7J!0:_31Wo <__0:__0>29Ga0G!0G?
 5|.4V0/_18/_18C0:_22Jo0/_7J!0:_31Wo <__0:__0>29Ga0G!0G?
 6|.4V0/_16/_18C0:_22Jo0/_7J!0:_31Wo <__0:__0>29Ga0G!0G?
 1/.4V0/_19/_19C0:_22Jo0/_0J!0:_31Wo <__0:__0>29Ga0G!0G?4/4Pp3/3Rq
 2\.4V0/_19/_19C0:_23Jo0/_2J!0:_31Wo <__0:__0>29Ga0G!0G?
 0\ .4V0/_19/_19C0:_23Jo0/_4J!0:_31Wo <__0:__0>29Ga0G!0G?
 7|.4V0/_19/_19C0:_23Jo0/_2J!0:_31Wo <__0:__0>29Ga0G!0G?
 4|.4V0/_19/_19C0:_22Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 6|.4V0/_17/_19C0:_22Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 6|.4V0/_18/_19C0:_22Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 6|.4V0/_19/_19C0:_22Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 5|.4V0/_19/_19C0:_22Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 8|.4V0/_16/_19C0:_23Jo0/_4J!0:_31Wo <__0:__0>29Ga0G!0G?
 8|.4V0/_17/_19C0:_23Jo0/_4J!0:_31Wo <__0:__0>29Ga0G!0G?
 8|.4V0/_18/_19C0:_23Jo0/_4J!0:_31Wo <__0:__0>29Ga0G!0G?
 1/.4V0/_20/_20C0:_23Jo0/_0J!0:_31Wo <__0:__0>29Ga0G!0G?4/4Pp3/3Rq
 1/.4V0/_21/_21C0:_24Jo0/_1J!0:_31Wo <__0:__0>29Ga0G!0G?4/4Pp2/3Rq
 4|.4V0/_20/_21C0:_22Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 4|.4V0/_21/_21C0:_22Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 7|.4V0/_20/_21C0:_23Jo0/_1J!0:_31Wo <__0:__0>29Ga0G!0G?
 7|.4V0/_21/_21C0:_23Jo0/_1J!0:_31Wo <__0:__0>29Ga0G!0G?
 5|.4V0/_20/_21C0:_22Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 5|.4V0/_21/_21C0:_22Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 2\.4V0/_20/_21C0:_25Jo0/_2J!0:_31Wo <__0:__0>29Ga0G!0G?
 2\.4V0/_21/_21C0:_25Jo0/_2J!0:_31Wo <__0:__0>29Ga0G!0G?
 6|.4V0/_20/_21C0:_22Jo0/_4J!0:_31Wo <__0:__0>29Ga0G!0G?
 6|.4V0/_21/_21C0:_22Jo0/_4J!0:_31Wo <__0:__0>29Ga0G!0G?
 3|.4V0/_19/_21C0:_23Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 3|.4V0/_20/_21C0:_23Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 3|.4V0/_21/_21C0:_23Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 1/.4V0/_22/_22C0:_25Jo0/_0J!0:_31Wo <__0:__0>29Ga0G!0G?4/4Pp3/3Rq
 1/.4V0/_23/_23C0:_26Jo0/_1J!0:_31Wo <__0:__0>29Ga0G!0G?4/4Pp2/3Rq
 2\.4V0/_22/_22C0:_26Jo0/_2J!0:_31Wo <__0:__0>29Ga0G!0G?
 2\.4V0/_23/_23C0:_27Jo0/_2J!0:_31Wo <__0:__0>29Ga0G!0G?
 1/.4V0/_24/_24C0:_27Jo0/_2J!0:_31Wo <__0:__0>29Ga0G!0G?4/4Pp1/3Rq
 1/.4V0/_25/_25C0:_28Jo0/_3J!0:_31Wo <__0:__0>29Ga0G!0G?4/4Pp0/3Rq
 2\.4V0/_24/_24C0:_28Jo0/_3J!0:_31Wo <__0:__0>29Ga0G!0G?
 2\.4V0/_25/_25C0:_29Jo0/_4J!0:_31Wo <__0:__0>29Ga0G!0G?
 0\ .4V0/_20/_25C0:_28Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 0\ .4V0/_21/_25C0:_28Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 0\ .4V0/_22/_25C0:_28Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 0\ .4V0/_23/_25C0:_28Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 0\ .4V0/_24/_25C0:_28Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 3|.4V0/_22/_25C0:_29Jo0/10J!0:_31Wo <__0:__0>29Ga0G!0G?
 3|.4V0/_23/_25C0:_29Jo0/10J!0:_31Wo <__0:__0>29Ga0G!0G?
 6|.4V0/_22/_25C0:_29Jo0/_7J!0:_31Wo <__0:__0>29Ga0G!0G?
 5|.4V0/_22/_25C0:_29Jo0/12J!0:_31Wo <__0:__0>29Ga0G!0G?
 0\ .4V0/_25/_25C0:_28Jo0/_5J!0:_31Wo <__0:__0>29Ga0G!0G?
 8|.4V0/_19/_25C0:_29Jo0/_8J!0:_31Wo <__0:__0>29Ga0G!0G?
 8|.4V0/_20/_25C0:_29Jo0/_8J!0:_31Wo <__0:__0>29Ga0G!0G?
 8|.4V0/_21/_25C0:_29Jo0/_8J!0:_31Wo <__0:__0>29Ga0G!0G?
 4|.4V0/_22/_25C0:_29Jo0/_9J!0:_31Wo <__0:__0>29Ga0G!0G?
 3|.4V0/_24/_25C0:_29Jo0/_9J!0:_31Wo <__0:__0>29Ga0G!0G?
 3|.4V0/_25/_25C0:_29Jo0/_9J!0:_31Wo <__0:__0>29Ga0G!0G?
 8|.4V0/_22/_25C0:_29Jo0/_7J!0:_31Wo <__0:__0>29Ga0G!0G?
 8|.4V0/_23/_25C0:_29Jo0/_7J!0:_31Wo <__0:__0>29Ga0G!0G?
 8|.4V0/_24/_25C0:_29Jo0/_7J!0:_31Wo <__0:__0>29Ga0G!0G?
 6|.4V0/_23/_25C0:_29Jo0/_7J!0:_31Wo <__0:__0>29Ga0G!0G?
 5|.4V0/_23/_25C0:_29Jo0/11J!0:_31Wo <__0:__0>29Ga0G!0G?
 5|.4V0/_24/_25C0:_29Jo0/11J!0:_31Wo <__0:__0>29Ga0G!0G?
 5|.4V0/_25/_25C0:_29Jo0/11J!0:_31Wo <__0:__0>29Ga0G!0G?
 6|.4V0/_24/_25C0:_29Jo0/_7J!0:_31Wo <__0:__0>29Ga0G!0G?
 6|.4V0/_25/_25C0:_29Jo0/_7J!0:_31Wo <__0:__0>29Ga0G!0G?
 4|.4V0/_23/_25C0:_29Jo0/_9J!0:_31Wo <__0:__0>29Ga0G!0G?
 4|.4V0/_24/_25C0:_29Jo0/_9J!0:_31Wo <__0:__0>29Ga0G!0G?
 4|.4V0/_25/_25C0:_29Jo0/_9J!0:_31Wo <__0:__0>29Ga0G!0G?
 8|.4V0/_25/_25C0:_29Jo0/_5J!0:_31Wo <__0:__0>29Ga0G!0G?
 7|.4V0/_22/_25C0:_29Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 7|.4V0/_23/_25C0:_29Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 7|.4V0/_24/_25C0:_29Jo0/_6J!0:_31Wo <__0:__0>29Ga0G!0G?
 2 $ ##
 7|.4V0/_25/_25C0:_29Jo0/_5J!0:_31Wo <__0:__0>29Ga0G!0G?
 1/.4V0/_26/_26C0:_29Jo0/_0J!0:_31Wo <__0:__0>29Ga0G!0G?4/4Pp3/3Rq
 1/.4V0/_27/_27C0:_30Jo0/_1J!0:_31Wo <__0:__0>29Ga0G!0G?4/4Pp2/3Rq
 3|.4V0/_26/_27C0:_29Jo0/_1J!0:_31Wo <__0:__0>29Ga0G!0G?
 3|.4V0/_27/_27C0:_29Jo0/_1J!0:_31Wo <__0:__0>29Ga0G!0G?
 5|.4V0/_26/_27C0:_29Jo0/_8J!0:_31Wo <__0:__0>29Ga0G!0G?
 5|.4V0/_27/_27C0:_29Jo0/_8J!0:_31Wo <__0:__0>29Ga0G!0G?
 6|.4V0/_26/_27C0:_29Jo0/_5J!0:_31Wo <__0:__0>29Ga0G!0G?
 6|.4V0/_27/_27C0:_29Jo0/_5J!0:_31Wo <__0:__0>29Ga0G!0G?
 4|.4V0/_26/_27C0:_29Jo0/_0J!0:_31Wo <__0:__0>29Ga0G!0G?
 4|.4V0/_27/_27C0:_29Jo0/_0J!0:_31Wo <__0:__0>29Ga0G!0G?
 0\ .4V0/_26/_27C0:_28Jo0/_0J!0:_31Wo <__0:__0>29Ga0G!0G?
 0\ .4V0/_27/_27C0:_28Jo0/_0J!0:_31Wo <__0:__0>29Ga0G!0G?
 7|.4V0/_26/_27C0:_29Jo0/_0J!0:_31Wo <__0:__0>29Ga0G!0G?
 7|.4V0/_27/_27C0:_29Jo0/_0J!0:_31Wo <__0:__0>29Ga0G!0G?
 8|.4V0/_26/_27C0:_29Jo0/_0J!0:_31Wo <__0:__0>29Ga0G!0G?
 8|.4V0/_27/_27C0:_29Jo0/_0J!0:_31Wo <__0:__0>29Ga0G!0G?
 7 [ |.4V0/_27/_27C0:_29Jo0/_0J!0:_31Wo <__0:__0>43Ga0G!0G?
 6 [ |.4V0/_27/_27C0:_29Jo0/_3J!0:_31Wo <__0:__0>43Ga0G!0G?
 8 [ |.4V0/_27/_27C0:_29Jo0/_0J!0:_31Wo <__0:__0>43Ga0G!0G?
 0 [ \ .4V0/_27/_27C0:_28Jo0/_0J!0:_31Wo <__0:__0>43Ga0G!0G?
 5 [ |.4V0/_27/_27C0:_29Jo0/_4J!0:_31Wo <__0:__0>43Ga0G!0G?
 3 [ |.4V0/_27/_27C0:_29Jo0/_0J!0:_31Wo <__0:__0>43Ga0G!0G?
 4 [ |.4V0/_27/_27C0:_29Jo0/_0J!0:_31Wo <__0:__0>43Ga0G!0G?
 1 [ /.4V0/_27/_27C0:_31Jo0/_0J!0:_31Wo <__0:__0>43Ga0G!0G?4/4Pp3/3Rq
 3 ] |.4V23/_27/_27C0:_29Jo0/_0J!0:_31Wo <__0:__0>41Ga0G!0G?
 5 ] |.4V23/_27/_27C0:_29Jo0/_0J!0:_31Wo <__0:__0>41Ga0G!0G?
 1 ] /.4V23/_27/_27C0:_31Jo0/_0J!0:_31Wo <__0:__0>41Ga0G!0G?4/4Pp3/3Rq
 1/.4V23/_28/_28C0:_31Jo0/_0J!0:_31Wo <__0:__0>41Ga0G!0G?4/4Pp3/3Rq
 3|.4V23/_28/_28C0:_29Jo0/_0J!0:_31Wo <__0:__0>41Ga0G!0G?
 5|.4V23/_28/_28C0:_29Jo0/_0J!0:_31Wo <__0:__0>41Ga0G!0G?
 4 ] |.4V23/_27/_28C0:_29Jo0/_0J!0:_31Wo <__0:__0>41Ga0G!0G?
 4|.4V23/_28/_28C0:_29Jo0/_0J!0:_31Wo <__0:__0>41Ga0G!0G?
 7 ] |.4V23/_27/_28C0:_29Jo0/_0J!0:_31Wo <__0:__0>41Ga0G!0G?
 7|.4V23/_28/_28C0:_29Jo0/_0J!0:_31Wo <__0:__0>41Ga0G!0G?
 8 ] |.4V23/_27/_28C0:_29Jo0/_0J!0:_31Wo <__0:__0>41Ga0G!0G?
 8|.4V23/_28/_28C0:_29Jo0/_0J!0:_31Wo <__0:__0>41Ga0G!0G?
 0 ] \ .4V23/_27/_28C0:_28Jo0/_0J!0:_31Wo <__0:__0>41Ga0G!0G?
 0\ .4V23/_28/_28C0:_28Jo0/_0J!0:_31Wo <__0:__0>41Ga0G!0G?
 6 ] |.4V23/_27/_28C0:_29Jo0/_0J!0:_31Wo <__0:__0>41Ga0G!0G?
 6|.4V23/_28/_28C0:_29Jo0/_0J!0:_31Wo <__0:__0>41Ga0G!0G?
 1/.4V23/_29/_29C1:_32Jo0/_0J!1:_32Wo <__0:__0>42Ga0G!0G?4/4Pp3/3Rq
 5|.4V23/_29/_29C0:_29Jo0/_0J!0:_31Wo <__0:__0>42Ga0G!0G?
 7|.4V23/_29/_29C0:_29Jo0/_0J!0:_31Wo <__0:__0>42Ga0G!0G?
 8|.4V23/_29/_29C0:_29Jo0/_0J!0:_31Wo <__0:__0>42Ga0G!0G?
 3|.4V23/_29/_29C0:_29Jo0/_0J!0:_31Wo <__0:__0>42Ga0G!0G?
 0\ .4V23/_29/_29C0:_29Jo0/_0J!0:_31Wo <__0:__0>42Ga0G!0G?
 4|.4V23/_29/_29C0:_29Jo0/_0J!0:_31Wo <__0:__0>42Ga0G!0G?
 6|.4V23/_29/_29C0:_29Jo0/_0J!0:_31Wo <__0:__0>42Ga0G!0G?
 1/.4V23/_30/_30C2:_33Jo0/_0J!2:_33Wo <__0:__0>42Ga0G!0G?4/4Pp3/3Rq
 8|.4V23/_30/_30C0:_30Jo0/_1J!0:_31Wo <__0:__0>42Ga0G!0G?
 3|.4V23/_30/_30C0:_30Jo0/_1J!0:_31Wo <__0:__0>42Ga0G!0G?
 6|.4V23/_30/_30C0:_30Jo0/_1J!0:_31Wo <__0:__0>42Ga0G!0G?
 5|.4V23/_30/_30C0:_30Jo0/_1J!0:_31Wo <__0:__0>42Ga0G!0G?
 7|.4V23/_30/_30C0:_30Jo0/_1J!0:_31Wo <__0:__0>42Ga0G!0G?
 4|.4V23/_30/_30C0:_30Jo0/_1J!0:_31Wo <__0:__0>42Ga0G!0G?
 0\ .4V23/_30/_30C0:_30Jo0/_0J!0:_31Wo <__0:__0>42Ga0G!0G?
 5 $ ##
 1/.4V23/_31/_31C3:_34Jo0/_0J!3:_34Wo <__0:__0>56Ga0G!0G?4/4Pp3/3Rq
 7|.4V23/_31/_31C0:_31Jo0/_0J!0:_31Wo <__0:__0>56Ga0G!0G?
 3|.4V23/_31/_31C0:_31Jo0/_0J!0:_31Wo <__0:__0>56Ga0G!0G?
 8|.4V23/_31/_31C0:_31Jo0/_0J!0:_31Wo <__0:__0>56Ga0G!0G?
 0\ .4V23/_31/_31C0:_31Jo0/_0J!0:_31Wo <__0:__0>56Ga0G!0G?
 4|.4V23/_31/_31C0:_31Jo0/_0J!0:_31Wo <__0:__0>56Ga0G!0G?
 6|.4V23/_31/_31C4:_35Jo0/_5J!0:_31Wo <__0:__0>56Ga0G!0G?
 1/.4V23/_32/_32C4:_35Jo0/_0J!4:_35Wo <__0:__0>56Ga0G!0G?4/4Pp3/3Rq
 0\ .4V23/_32/_32C1:_32Jo0/_0J!1:_32Wo <__0:__0>56Ga0G!0G?
 4|.4V23/_32/_32C1:_32Jo0/_1J!0:_31Wo <__0:__0>56Ga0G!0G?
 8|.4V23/_32/_32C1:_32Jo0/_0J!1:_32Wo <__0:__0>56Ga0G!0G?
 7|.4V23/_32/_32C1:_32Jo0/_0J!1:_32Wo <__0:__0>56Ga0G!0G?
 3|.4V23/_32/_32C1:_32Jo0/_0J!1:_32Wo <__0:__0>56Ga0G!0G?
 6|.4V23/_32/_32C4:_35Jo0/_0J!4:_35Wo <__0:__0>56Ga0G!0G?
 1/.4V23/_33/_33C5:_36Jo0/_0J!5:_36Wo <__0:__0>56Ga0G!0G?4/4Pp3/3Rq
 0\ .4V23/_33/_33C2:_33Jo0/_0J!2:_33Wo <__0:__0>56Ga0G!0G?
 6|.4V23/_33/_33C4:_35Jo0/_0J!4:_35Wo <__0:__0>56Ga0G!0G?
 7|.4V23/_33/_33C2:_33Jo0/_0J!2:_33Wo <__0:__0>56Ga0G!0G?
 8|.4V23/_33/_33C2:_33Jo0/_0J!2:_33Wo <__0:__0>56Ga0G!0G?
 4|.4V23/_33/_33C2:_33Jo0/_0J!2:_33Wo <__0:__0>56Ga0G!0G?
 3|.4V23/_33/_33C2:_33Jo0/_0J!2:_33Wo <__0:__0>56Ga0G!0G?
 1/.4V23/_34/_34C6:_37Jo0/_0J!6:_37Wo <__0:__0>57Ga0G!0G?4/4Pp3/3Rq
 0\ .4V23/_34/_34C3:_34Jo0/_0J!3:_34Wo <__0:__0>57Ga0G!0G?
 6|.4V23/_34/_34C4:_35Jo0/_0J!4:_35Wo <__0:__0>57Ga0G!0G?
 8|.4V23/_34/_34C3:_34Jo0/_0J!3:_34Wo <__0:__0>57Ga0G!0G?
 7|.4V23/_34/_34C3:_34Jo0/_0J!3:_34Wo <__0:__0>57Ga0G!0G?
 3|.4V23/_34/_34C7:_38Jo0/_5J!2:_33Wo <__0:__0>57Ga0G!0G?
 1/.4V23/_35/_35C7:_38Jo0/_0J!7:_38Wo <__0:__0>57Ga0G!0G?4/4Pp3/3Rq
 8|.4V23/_35/_35C4:_35Jo0/_1J!3:_34Wo <__0:__0>57Ga0G!0G?
 0\ .4V23/_35/_35C4:_35Jo0/_0J!4:_35Wo <__0:__0>57Ga0G!0G?
 6|.4V23/_35/_35C4:_35Jo0/_0J!4:_35Wo <__0:__0>57Ga0G!0G?
 7|.4V23/_35/_35C4:_35Jo0/_1J!3:_34Wo <__0:__0>57Ga0G!0G?
 3|.4V23/_35/_35C7:_38Jo0/_4J!5:_38Wo <__0:__0>57Ga0G!0G?
 4|.4V23/_34/_35C8:_39Jo0/_6J!2:_37Wo <__0:__0>57Ga0G!0G?
 4|.4V23/_35/_35C8:_39Jo0/_6J!2:_37Wo <__0:__0>57Ga0G!0G?
 1/.4V23/_36/_36C8:_39Jo0/_0J!8:_39Wo <__0:__0>57Ga0G!0G?4/4Pp3/3Rq
 0\ .4V23/_36/_36C5:_36Jo0/_0J!5:_36Wo <__0:__0>57Ga0G!0G?
 3|.4V23/_36/_36C7:_38Jo0/_0J!7:_38Wo <__0:__0>57Ga0G!0G?
 7|.4V23/_36/_36C5:_36Jo0/_0J!5:_36Wo <__0:__0>57Ga0G!0G?
 4|.4V23/_36/_36C8:_39Jo0/_1J!7:_38Wo <__0:__0>57Ga0G!0G?
 8|.4V23/_36/_36C5:_36Jo0/_0J!5:_36Wo <__0:__0>57Ga0G!0G?
 6|.4V23/_36/_36C9:_40Jo0/_3J!4:_40Wo <__0:__0>57Ga0G!0G?
 1/.4V23/_37/_37C9:_40Jo0/_0J!9:_40Wo <__0:__0>57Ga0G!0G?4/4Pp3/3Rq
 8|.4V23/_37/_37C6:_37Jo0/_1J!5:_36Wo <__0:__0>57Ga0G!0G?
 4|.4V23/_37/_37C8:_39Jo0/_0J!8:_39Wo <__0:__0>57Ga0G!0G?
 0\ .4V23/_37/_37C6:_37Jo0/_0J!6:_37Wo <__0:__0>57Ga0G!0G?
 7|.4V23/_37/_37C6:_37Jo0/_1J!6:_37Wo <__0:__0>57Ga0G!0G?
 3|.4V23/_37/_37C7:_38Jo0/_0J!7:_38Wo <__0:__0>57Ga0G!0G?
 6|.4V23/_37/_37C9:_40Jo0/_1J!7:_40Wo <__0:__0>57Ga0G!0G?
 1/.4V23/_38/_38C10:_41Jo0/_0J!10:_41Wo <__0:__0>57Ga0G!0G?4/4Pp2/3Rq
 7|.4V23/_38/_38C7:_38Jo0/_0J!7:_38Wo <__0:__0>57Ga0G!0G?
 4|.4V23/_38/_38C8:_39Jo0/_0J!8:_39Wo <__0:__0>57Ga0G!0G?
 3|.4V23/_38/_38C7:_38Jo0/_0J!7:_38Wo <__0:__0>57Ga0G!0G?
 8|.4V23/_38/_38C7:_38Jo0/_0J!7:_38Wo <__0:__0>57Ga0G!0G?
 6|.4V23/_38/_38C9:_40Jo0/_1J!9:_40Wo <__0:__0>57Ga0G!0G?
 0\ .4V23/_38/_38C7:_38Jo0/_0J!7:_38Wo <__0:__0>57Ga0G!0G?
 1/.4V23/_39/_39C11:_42Jo0/_1J!11:_42Wo <__0:__0>57Ga0G!0G?4/4Pp2/3Rq
 7|.4V23/_39/_39C8:_39Jo0/_1J!8:_39Wo <__0:__0>57Ga0G!0G?
 3|.4V23/_39/_39C8:_39Jo0/_1J!7:_38Wo <__0:__0>57Ga0G!0G?
 4|.4V23/_39/_39C8:_39Jo0/_0J!8:_39Wo <__0:__0>57Ga0G!0G?
 0\ .4V23/_39/_39C8:_39Jo0/_0J!8:_39Wo <__0:__0>57Ga0G!0G?
 8|.4V23/_39/_39C8:_39Jo0/_1J!8:_39Wo <__0:__0>57Ga0G!0G?
 6|.4V23/_39/_39C9:_40Jo0/_0J!9:_40Wo <__0:__0>57Ga0G!0G?
 1/.4V23/_40/_40C12:_43Jo0/_0J!12:_43Wo <__0:__0>57Ga0G!0G?4/4Pp2/3Rq
 0\ .4V23/_40/_40C9:_40Jo0/_0J!9:_40Wo <__0:__0>57Ga0G!0G?
 7|.4V23/_40/_40C9:_40Jo0/_0J!9:_40Wo <__0:__0>57Ga0G!0G?
 6|.4V23/_40/_40C9:_40Jo0/_0J!9:_40Wo <__0:__0>57Ga0G!0G?
 4|.4V23/_40/_40C13:_44Jo0/_5J!8:_42Wo <__0:__0>57Ga0G!0G?
 3|.4V23/_40/_40C13:_44Jo0/_5J!8:_41Wo <__0:__0>57Ga0G!0G?
 8|.4V23/_40/_40C13:_44Jo0/_4J!8:_41Wo <__0:__0>57Ga0G!0G?
 1/.4V23/_41/_41C13:_44Jo0/_0J!13:_44Wo <__0:__0>57Ga0G!0G?4/4Pp3/3Rq
 3|.4V23/_41/_41C13:_44Jo0/_0J!13:_44Wo <__0:__0>57Ga0G!0G?
 0\ .4V23/_41/_41C10:_41Jo0/_0J!10:_41Wo <__0:__0>57Ga0G!0G?
 7|.4V23/_41/_41C10:_41Jo0/_0J!10:_41Wo <__0:__0>57Ga0G!0G?
 8|.4V23/_41/_41C13:_44Jo0/_2J!10:_44Wo <__0:__0>57Ga0G!0G?
 4|.4V23/_41/_41C13:_44Jo0/_0J!13:_44Wo <__0:__0>57Ga0G!0G?
 6|.4V23/_41/_41C14:_45Jo0/_4J!11:_42Wo <__0:__0>57Ga0G!0G?
 1/.4V23/_42/_42C14:_45Jo0/_0J!14:_45Wo <__0:__0>57Ga0G!0G?4/4Pp3/3Rq
 0\ .4V23/_42/_42C11:_42Jo0/_0J!11:_42Wo <__0:__0>57Ga0G!0G?
 7|.4V23/_42/_42C11:_42Jo0/_0J!11:_42Wo <__0:__0>57Ga0G!0G?
 3|.4V23/_42/_42C13:_44Jo0/_0J!13:_44Wo <__0:__0>57Ga0G!0G?
 8|.4V23/_42/_42C13:_44Jo0/_0J!13:_44Wo <__0:__0>57Ga0G!0G?
 4|.4V23/_42/_42C13:_44Jo0/_0J!13:_44Wo <__0:__0>57Ga0G!0G?
 6|.4V23/_42/_42C14:_45Jo0/_1J!13:_44Wo <__0:__0>57Ga0G!0G?
 1/.4V23/_43/_43C15:_46Jo0/_0J!15:_46Wo <__0:__0>57Ga0G!0G?4/4Pp3/3Rq
 8|.4V23/_43/_43C13:_44Jo0/_0J!13:_44Wo <__0:__0>57Ga0G!0G?
 6|.4V23/_43/_43C14:_45Jo0/_0J!14:_45Wo <__0:__0>57Ga0G!0G?
 3|.4V23/_43/_43C13:_44Jo0/_0J!13:_44Wo <__0:__0>57Ga0G!0G?
 4|.4V23/_43/_43C13:_44Jo0/_0J!13:_44Wo <__0:__0>57Ga0G!0G?
 0\ .4V23/_43/_43C12:_43Jo0/_0J!12:_43Wo <__0:__0>57Ga0G!0G?
 7|.4V23/_43/_43C12:_43Jo0/_0J!12:_43Wo <__0:__0>57Ga0G!0G?
 1/.4V23/_44/_44C16:_47Jo0/_0J!16:_47Wo <__0:__0>57Ga0G!0G?4/4Pp3/3Rq
 6|.4V23/_44/_44C14:_45Jo0/_0J!14:_45Wo <__0:__0>57Ga0G!0G?
 4|.4V23/_44/_44C13:_44Jo0/_0J!13:_44Wo <__0:__0>57Ga0G!0G?
 0\ .4V23/_44/_44C13:_44Jo0/_0J!13:_44Wo <__0:__0>57Ga0G!0G?
 7|.4V23/_44/_44C13:_44Jo0/_0J!13:_44Wo <__0:__0>57Ga0G!0G?
 8|.4V23/_44/_44C13:_44Jo0/_0J!13:_44Wo <__0:__0>57Ga0G!0G?
 3|.4V23/_44/_44C13:_44Jo0/_0J!13:_44Wo <__0:__0>57Ga0G!0G?
 1/.4V23/_45/_45C17:_48Jo0/_0J!17:_48Wo <__0:__0>57Ga0G!0G?4/4Pp2/3Rq
 0\ .4V23/_45/_45C14:_45Jo0/_0J!14:_45Wo <__0:__0>57Ga0G!0G?
 6|.4V23/_45/_45C14:_45Jo0/_0J!14:_45Wo <__0:__0>57Ga0G!0G?
 8|.4V23/_45/_45C18:_49Jo0/_5J!13:_44Wo <__0:__0>57Ga0G!0G?
 7|.4V23/_45/_45C18:_49Jo0/_5J!13:_44Wo <__0:__0>57Ga0G!0G?
 4|.4V23/_45/_45C18:_49Jo0/_4J!13:_49Wo <__0:__0>57Ga0G!0G?
 3|.4V23/_45/_45C18:_49Jo0/_3J!13:_49Wo <__0:__0>57Ga0G!0G?
 1/.4V23/_46/_46C18:_49Jo0/_0J!18:_49Wo <__0:__0>57Ga0G!0G?4/4Pp1/3Rq
 8|.4V23/_46/_46C18:_49Jo0/_2J!15:_49Wo <__0:__0>57Ga0G!0G?
 0\ .4V23/_46/_46C15:_46Jo0/_0J!15:_46Wo <__0:__0>57Ga0G!0G?
 4|.4V23/_46/_46C18:_49Jo0/_0J!18:_49Wo <__0:__0>57Ga0G!0G?
 3|.4V23/_46/_46C18:_49Jo0/_2J!13:_49Wo <__0:__0>57Ga0G!0G?
 7|.4V23/_46/_46C18:_49Jo0/_3J!16:_47Wo <__0:__0>57Ga0G!0G?
 6|.4V23/_46/_46C19:_50Jo0/_5J!14:_45Wo <__0:__0>57Ga0G!0G?
 1/.4V23/_47/_47C19:_50Jo0/_0J!19:_50Wo <__0:__0>57Ga0G!0G?4/4Pp1/3Rq
 3|.4V23/_47/_47C18:_49Jo0/_0J!18:_49Wo <__0:__0>57Ga0G!0G?
 0\ .4V23/_47/_47C16:_47Jo0/_0J!16:_47Wo <__0:__0>57Ga0G!0G?
 6|.4V23/_47/_47C19:_50Jo0/_1J!18:_49Wo <__0:__0>57Ga0G!0G?
 7|.4V23/_47/_47C18:_49Jo0/_0J!18:_49Wo <__0:__0>57Ga0G!0G?
 8|.4V23/_47/_47C18:_49Jo0/_0J!18:_49Wo <__0:__0>57Ga0G!0G?
 4|.4V23/_47/_47C18:_49Jo0/_0J!18:_49Wo <__0:__0>57Ga0G!0G?
 1/.4V23/_48/_48C20:_51Jo0/_0J!20:_51Wo <__0:__0>57Ga0G!0G?4/4Pp3/3Rq
 7|.4V23/_48/_48C18:_49Jo0/_0J!18:_49Wo <__0:__0>57Ga0G!0G?
 8|.4V23/_48/_48C18:_49Jo0/_0J!18:_49Wo <__0:__0>57Ga0G!0G?
 6|.4V23/_48/_48C19:_50Jo0/_0J!19:_50Wo <__0:__0>57Ga0G!0G?
 3|.4V23/_48/_48C18:_49Jo0/_0J!18:_49Wo <__0:__0>57Ga0G!0G?
 4|.4V23/_48/_48C18:_49Jo0/_0J!18:_49Wo <__0:__0>57Ga0G!0G?
 0\ .4V23/_48/_48C17:_48Jo0/_0J!17:_48Wo <__0:__0>57Ga0G!0G?
 1/.4V23/_49/_49C21:_52Jo0/_1J!20:_51Wo <__0:__0>57Ga0G!0G?4/4Pp3/3Rq
 3|.4V23/_49/_49C18:_49Jo0/_0J!18:_49Wo <__0:__0>57Ga0G!0G?
 6|.4V23/_49/_49C19:_50Jo0/_0J!19:_50Wo <__0:__0>57Ga0G!0G?
 8|.4V23/_49/_49C18:_49Jo0/_0J!18:_49Wo <__0:__0>57Ga0G!0G?
 0\ .4V23/_49/_49C18:_49Jo0/_0J!18:_49Wo <__0:__0>57Ga0G!0G?
 7|.4V23/_49/_49C18:_49Jo0/_0J!18:_49Wo <__0:__0>57Ga0G!0G?
 4|.4V23/_49/_49C18:_49Jo0/_0J!18:_49Wo <__0:__0>57Ga0G!0G?
 1/.4V23/_50/_50C22:_53Jo0/_0J!22:_53Wo <__0:__0>57Ga0G!0G?4/4Pp3/3Rq
 7|.4V23/_50/_50C19:_50Jo0/_0J!19:_50Wo <__0:__0>57Ga0G!0G?
 0\ .4V23/_50/_50C19:_50Jo0/_0J!19:_50Wo <__0:__0>57Ga0G!0G?
 8|.4V23/_50/_50C19:_50Jo0/_0J!19:_50Wo <__0:__0>57Ga0G!0G?
 6|.4V23/_50/_50C19:_50Jo0/_0J!19:_50Wo <__0:__0>57Ga0G!0G?
 3|.4V23/_50/_50C23:_54Jo0/_5J!18:_49Wo <__0:__0>57Ga0G!0G?
 4|.4V23/_50/_50C23:_54Jo0/_5J!20:_54Wo <__0:__0>57Ga0G!0G?
 1/.4V23/_51/_51C23:_54Jo0/_1J!23:_54Wo <__0:__0>57Ga0G!0G?4/4Pp3/3Rq
 1 [ /.4V23/_51/_51C24:_55Jo0/_2J!23:_54Wo <__0:__0>57Ga0G!0G?4/4Pp2/3Rq
 4|.4V23/_51/_51C23:_54Jo0/_5J!20:_54Wo <__0:__0>57Ga0G!0G?
 4 [ |.4V23/_51/_51C23:_54Jo0/_5J!20:_54Wo <__0:__0>57Ga0G!0G?
 0\ .4V23/_51/_51C20:_51Jo0/_0J!20:_51Wo <__0:__0>57Ga0G!0G?
 0 [ \ .4V23/_51/_51C20:_51Jo0/_0J!20:_51Wo <__0:__0>57Ga0G!0G?
 3|.4V23/_51/_51C23:_54Jo0/_5J!22:_53Wo <__0:__0>57Ga0G!0G?
 3 [ |.4V23/_51/_51C23:_54Jo0/_5J!22:_53Wo <__0:__0>57Ga0G!0G?
 6|.4V23/_51/_51C24:_55Jo0/_5J!20:_51Wo <__0:__0>57Ga0G!0G?
 6 [ |.4V23/_51/_51C24:_55Jo0/_5J!20:_51Wo <__0:__0>57Ga0G!0G?
 7|.4V23/_51/_51C24:_55Jo0/_5J!20:_51Wo <__0:__0>57Ga0G!0G?
 7 [ |.4V23/_51/_51C24:_55Jo0/_5J!20:_51Wo <__0:__0>57Ga0G!0G?
 8|.4V23/_51/_51C24:_55Jo0/_3J!19:_55Wo <__0:__0>57Ga0G!0G?
 8 [ |.4V23/_51/_51C24:_55Jo0/_3J!19:_55Wo <__0:__0>57Ga0G!0G?
 1 ] /.4V47/_51/_51C24:_55Jo0/_0J!24:_55Wo <__0:__0>53Ga0G!0G?4/4Pp3/3Rq
 1/.4V47/_52/_52C24:_55Jo0/_0J!24:_55Wo <__0:__0>53Ga0G!0G?4/4Pp3/3Rq
 4 ] |.4V47/_51/_51C23:_54Jo0/_0J!23:_54Wo <__0:__0>53Ga0G!0G?
 4|.4V47/_52/_52C23:_54Jo0/_0J!23:_54Wo <__0:__0>53Ga0G!0G?
 0 ] \ .4V47/_51/_52C21:_52Jo0/_0J!21:_52Wo <__0:__0>53Ga0G!0G?
 0\ .4V47/_52/_52C21:_52Jo0/_0J!21:_52Wo <__0:__0>53Ga0G!0G?
 6 ] |.4V47/_51/_52C24:_55Jo0/_1J!23:_54Wo <__0:__0>53Ga0G!0G?
 6|.4V47/_52/_52C24:_55Jo0/_1J!23:_54Wo <__0:__0>53Ga0G!0G?
 7 ] |.4V47/_51/_52C24:_55Jo0/_3J!24:_55Wo <__0:__0>53Ga0G!0G?
 7|.4V47/_52/_52C24:_55Jo0/_3J!24:_55Wo <__0:__0>53Ga0G!0G?
 1/.4V47/_53/_53C25:_56Jo0/_0J!25:_56Wo <__0:__0>54Ga0G!0G?4/4Pp3/3Rq
 4|.4V47/_53/_53C23:_54Jo0/_0J!23:_54Wo <__0:__0>54Ga0G!0G?
 3 ] |.4V47/_51/_53C23:_54Jo0/_0J!23:_54Wo <__0:__0>53Ga0G!0G?
 3|.4V47/_52/_53C23:_54Jo0/_0J!23:_54Wo <__0:__0>53Ga0G!0G?
 3|.4V47/_53/_53C23:_54Jo0/_0J!23:_54Wo <__0:__0>53Ga0G!0G?
 7|.4V47/_53/_53C24:_55Jo0/_2J!24:_55Wo <__0:__0>54Ga0G!0G?
 6|.4V47/_53/_53C24:_55Jo0/_0J!24:_55Wo <__0:__0>54Ga0G!0G?
 0\ .4V47/_53/_53C22:_53Jo0/_0J!22:_53Wo <__0:__0>54Ga0G!0G?
 8 ] |.4V47/_51/_53C24:_55Jo0/_0J!24:_55Wo <__0:__0>53Ga0G!0G?
 8|.4V47/_52/_53C24:_55Jo0/_0J!24:_55Wo <__0:__0>53Ga0G!0G?
 8|.4V47/_53/_53C24:_55Jo0/_0J!24:_55Wo <__0:__0>53Ga0G!0G?
 1/.4V47/_54/_54C26:_57Jo0/_0J!26:_57Wo <__0:__0>54Ga0G!0G?4/4Pp3/3Rq
 4|.4V47/_54/_54C23:_54Jo0/_0J!23:_54Wo <__0:__0>54Ga0G!0G?
 0\ .4V47/_54/_54C23:_54Jo0/_0J!23:_54Wo <__0:__0>54Ga0G!0G?
 7|.4V47/_54/_54C24:_55Jo0/_0J!24:_55Wo <__0:__0>54Ga0G!0G?
 8|.4V47/_54/_54C24:_55Jo0/_0J!24:_55Wo <__0:__0>54Ga0G!0G?
 3|.4V47/_54/_54C23:_54Jo0/_0J!23:_54Wo <__0:__0>54Ga0G!0G?
 6|.4V47/_54/_54C24:_55Jo0/_0J!24:_55Wo <__0:__0>54Ga0G!0G?
 1/.4V47/_55/_55C27:_58Jo0/_0J!27:_58Wo <__0:__0>68Ga0G!0G?4/4Pp3/3Rq
 7|.4V47/_55/_55C24:_55Jo0/_0J!24:_55Wo <__0:__0>68Ga0G!0G?
 6|.4V47/_55/_55C24:_55Jo0/_0J!24:_55Wo <__0:__0>68Ga0G!0G?
 8|.4V47/_55/_55C24:_55Jo0/_0J!24:_55Wo <__0:__0>68Ga0G!0G?
 0\ .4V47/_55/_55C24:_55Jo0/_0J!24:_55Wo <__0:__0>68Ga0G!0G?
 4|.4V47/_55/_55C28:_59Jo0/_5J!23:_57Wo <__0:__0>68Ga0G!0G?
 3|.4V47/_55/_55C28:_59Jo0/_5J!23:_59Wo <__0:__0>68Ga0G!0G?
 1/.4V47/_56/_56C28:_59Jo0/_0J!28:_59Wo <__0:__0>69Ga0G!0G?4/4Pp3/3Rq
 4|.4V47/_56/_56C28:_59Jo0/_2J!28:_59Wo <__0:__0>69Ga0G!0G?
 0\ .4V47/_56/_56C25:_56Jo0/_0J!25:_56Wo <__0:__0>69Ga0G!0G?
 8|.4V47/_56/_56C25:_56Jo0/_0J!25:_56Wo <__0:__0>69Ga0G!0G?
 7|.4V47/_56/_56C25:_56Jo0/_0J!25:_56Wo <__0:__0>69Ga0G!0G?
 3|.4V47/_56/_56C28:_59Jo0/_0J!28:_59Wo <__0:__0>69Ga0G!0G?
 6|.4V47/_56/_56C29:_60Jo0/_5J!24:_55Wo <__0:__0>69Ga0G!0G?
 1/.4V47/_57/_57C29:_60Jo0/_0J!29:_60Wo <__0:__0>69Ga0G!0G?4/4Pp3/3Rq
 0\ .4V47/_57/_57C26:_57Jo0/_0J!26:_57Wo <__0:__0>69Ga0G!0G?
 4|.4V47/_57/_57C28:_59Jo0/_1J!28:_59Wo <__0:__0>69Ga0G!0G?
 7|.4V47/_57/_57C26:_57Jo0/_0J!26:_57Wo <__0:__0>69Ga0G!0G?
 3|.4V47/_57/_57C28:_59Jo0/_0J!28:_59Wo <__0:__0>69Ga0G!0G?
 8|.4V47/_57/_57C26:_57Jo0/_0J!26:_57Wo <__0:__0>69Ga0G!0G?
 6|.4V47/_57/_57C29:_60Jo0/_4J!26:_60Wo <__0:__0>69Ga0G!0G?
 1/.4V47/_58/_58C30:_61Jo0/_0J!30:_61Wo <__0:__0>69Ga0G!0G?4/4Pp3/3Rq
 8|.4V47/_58/_58C27:_58Jo0/_1J!26:_57Wo <__0:__0>69Ga0G!0G?
 4|.4V47/_58/_58C28:_59Jo0/_0J!28:_59Wo <__0:__0>69Ga0G!0G?
 7|.4V47/_58/_58C27:_58Jo0/_1J!26:_57Wo <__0:__0>69Ga0G!0G?
 3|.4V47/_58/_58C28:_59Jo0/_0J!28:_59Wo <__0:__0>69Ga0G!0G?
 0\ .4V47/_58/_58C27:_58Jo0/_0J!27:_58Wo <__0:__0>69Ga0G!0G?
 6|.4V47/_58/_58C29:_60Jo0/_0J!29:_60Wo <__0:__0>69Ga0G!0G?
 1/.4V47/_59/_59C31:_62Jo0/_0J!31:_62Wo <__0:__0>84Ga0G!0G?4/4Pp3/3Rq
 4|.4V47/_59/_59C28:_59Jo0/_0J!28:_59Wo <__0:__0>84Ga0G!0G?
 6|.4V47/_59/_59C29:_60Jo0/_0J!29:_60Wo <__0:__0>84Ga0G!0G?
 8|.4V47/_59/_59C28:_59Jo0/_1J!28:_59Wo <__0:__0>84Ga0G!0G?
 0\ .4V47/_59/_59C28:_59Jo0/_0J!28:_59Wo <__0:__0>84Ga0G!0G?
 7|.4V47/_59/_59C28:_59Jo0/_1J!28:_59Wo <__0:__0>84Ga0G!0G?
 3|.4V47/_59/_59C28:_59Jo0/_0J!28:_59Wo <__0:__0>84Ga0G!0G?
 1/.4V47/_60/_60C32:_63Jo0/_0J!32:_63Wo <__0:__0>84Ga0G!0G?4/4Pp3/3Rq
 7|.4V47/_60/_60C29:_60Jo0/_0J!29:_60Wo <__0:__0>84Ga0G!0G?
 8|.4V47/_60/_60C29:_60Jo0/_0J!29:_60Wo <__0:__0>84Ga0G!0G?
 0\ .4V47/_60/_60C29:_60Jo0/_0J!29:_60Wo <__0:__0>84Ga0G!0G?
 6|.4V47/_60/_60C29:_60Jo0/_0J!29:_60Wo <__0:__0>84Ga0G!0G?
 3|.4V47/_60/_60C33:_64Jo0/_5J!29:_60Wo <__0:__0>84Ga0G!0G?
 4|.4V47/_60/_60C33:_64Jo0/_5J!28:_59Wo <__0:__0>84Ga0G!0G?
 1/.4V47/_61/_61C33:_64Jo0/_0J!33:_64Wo <__0:__0>84Ga0G!0G?4/4Pp3/3Rq
 3|.4V47/_61/_61C33:_64Jo0/_0J!33:_64Wo <__0:__0>84Ga0G!0G?
 0\ .4V47/_61/_61C30:_61Jo0/_0J!30:_61Wo <__0:__0>84Ga0G!0G?
 7|.4V47/_61/_61C30:_61Jo0/_0J!30:_61Wo <__0:__0>84Ga0G!0G?
 8|.4V47/_61/_61C30:_61Jo0/_0J!30:_61Wo <__0:__0>84Ga0G!0G?
 4|.4V47/_61/_61C33:_64Jo0/_4J!29:_64Wo <__0:__0>84Ga0G!0G?
 6|.4V47/_61/_61C34:_65Jo0/_5J!29:_63Wo <__0:__0>84Ga0G!0G?
 1/.4V47/_62/_62C34:_65Jo0/_0J!34:_65Wo <__0:__0>84Ga0G!0G?4/4Pp3/3Rq
 8|.4V47/_62/_62C31:_62Jo0/_0J!31:_62Wo <__0:__0>84Ga0G!0G?
 4|.4V47/_62/_62C33:_64Jo0/_1J!31:_64Wo <__0:__0>84Ga0G!0G?
 0\ .4V47/_62/_62C31:_62Jo0/_0J!31:_62Wo <__0:__0>84Ga0G!0G?
 7|.4V47/_62/_62C31:_62Jo0/_0J!31:_62Wo <__0:__0>84Ga0G!0G?
 6|.4V47/_62/_62C34:_65Jo0/_0J!34:_65Wo <__0:__0>84Ga0G!0G?
 3|.4V47/_62/_62C33:_64Jo0/_0J!33:_64Wo <__0:__0>84Ga0G!0G?
 1/.4V47/_63/_63C35:_66Jo0/_0J!35:_66Wo <__0:__0>99Ga0G!0G?4/4Pp3/3Rq
 0\ .4V47/_63/_63C32:_63Jo0/_0J!32:_63Wo <__0:__0>99Ga0G!0G?
 7|.4V47/_63/_63C32:_63Jo0/_0J!32:_63Wo <__0:__0>99Ga0G!0G?
 4|.4V47/_63/_63C33:_64Jo0/_0J!33:_64Wo <__0:__0>99Ga0G!0G?
 6|.4V47/_63/_63C34:_65Jo0/_0J!34:_65Wo <__0:__0>99Ga0G!0G?
 3|.4V47/_63/_63C33:_64Jo0/_0J!33:_64Wo <__0:__0>99Ga0G!0G?
 8|.4V47/_63/_63C32:_63Jo0/_0J!32:_63Wo <__0:__0>99Ga0G!0G?
 1/.4V47/_64/_64C36:_67Jo0/_0J!36:_67Wo <__0:__0>99Ga0G!0G?4/4Pp3/3Rq
 0\ .4V47/_64/_64C33:_64Jo0/_0J!33:_64Wo <__0:__0>99Ga0G!0G?
 4|.4V47/_64/_64C33:_64Jo0/_0J!33:_64Wo <__0:__0>99Ga0G!0G?
 6|.4V47/_64/_64C34:_65Jo0/_0J!34:_65Wo <__0:__0>99Ga0G!0G?
 8|.4V47/_64/_64C33:_64Jo0/_1J!32:_63Wo <__0:__0>99Ga0G!0G?
 3|.4V47/_64/_64C33:_64Jo0/_0J!33:_64Wo <__0:__0>99Ga0G!0G?
 7|.4V47/_64/_64C33:_64Jo0/_1J!33:_64Wo <__0:__0>99Ga0G!0G?
 1/.4V47/_65/_65C37:_68Jo0/_0J!37:_68Wo <__0:__0>99Ga0G!0G?4/4Pp3/3Rq
 0\ .4V47/_65/_65C34:_65Jo0/_0J!34:_65Wo <__0:__0>99Ga0G!0G?
 7|.4V47/_65/_65C34:_65Jo0/_0J!34:_65Wo <__0:__0>99Ga0G!0G?
 3|.4V47/_65/_65C34:_65Jo0/_0J!34:_65Wo <__0:__0>99Ga0G!0G?
 6|.4V47/_65/_65C34:_65Jo0/_0J!34:_65Wo <__0:__0>99Ga0G!0G?
 8|.4V47/_65/_65C34:_65Jo0/_0J!34:_65Wo <__0:__0>99Ga0G!0G?
 4|.4V47/_65/_65C38:_69Jo0/_4J!33:_68Wo <__0:__0>99Ga0G!0G?
 1/.4V47/_66/_66C38:_69Jo0/_0J!38:_69Wo <__0:__0>99Ga0G!0G?4/4Pp3/3Rq
 8|.4V47/_66/_66C35:_66Jo0/_0J!35:_66Wo <__0:__0>99Ga0G!0G?
 4|.4V47/_66/_66C38:_69Jo0/_0J!38:_69Wo <__0:__0>99Ga0G!0G?
 3|.4V47/_66/_66C35:_66Jo0/_0J!35:_66Wo <__0:__0>99Ga0G!0G?
 0\ .4V47/_66/_66C35:_66Jo0/_0J!35:_66Wo <__0:__0>99Ga0G!0G?
 7|.4V47/_66/_66C35:_66Jo0/_0J!35:_66Wo <__0:__0>99Ga0G!0G?
 6|.4V47/_66/_66C39:_70Jo0/_5J!35:_66Wo <__0:__0>99Ga0G!0G?
 1/.4V47/_67/_67C39:_70Jo0/_0J!39:_70Wo <__0:__0>114Ga0G!0G?4/4Pp3/3Rq
 7|.4V47/_67/_67C36:_67Jo0/_0J!36:_67Wo <__0:__0>114Ga0G!0G?
 6|.4V47/_67/_67C39:_70Jo0/_3J!39:_70Wo <__0:__0>114Ga0G!0G?
 4|.4V47/_67/_67C38:_69Jo0/_0J!38:_69Wo <__0:__0>114Ga0G!0G?
 0\ .4V47/_67/_67C36:_67Jo0/_0J!36:_67Wo <__0:__0>114Ga0G!0G?
 8|.4V47/_67/_67C40:_71Jo0/_4J!35:_71Wo <__0:__0>114Ga0G!0G?
 3|.4V47/_67/_67C40:_71Jo0/_5J!35:_70Wo <__0:__0>114Ga0G!0G?
 1/.4V47/_68/_68C40:_71Jo0/_0J!40:_71Wo <__0:__0>114Ga0G!0G?4/4Pp3/3Rq
 4|.4V47/_68/_68C38:_69Jo0/_0J!38:_69Wo <__0:__0>114Ga0G!0G?
 0\ .4V47/_68/_68C37:_68Jo0/_0J!37:_68Wo <__0:__0>114Ga0G!0G?
 3|.4V47/_68/_68C40:_71Jo0/_3J!39:_70Wo <__0:__0>114Ga0G!0G?
 6|.4V47/_68/_68C39:_70Jo0/_2J!39:_70Wo <__0:__0>114Ga0G!0G?
 7|.4V47/_68/_68C37:_68Jo0/_0J!37:_68Wo <__0:__0>114Ga0G!0G?
 8|.4V47/_68/_68C40:_71Jo0/_3J!40:_71Wo <__0:__0>114Ga0G!0G?
 1/.4V47/_69/_69C41:_72Jo0/_0J!41:_72Wo <__0:__0>114Ga0G!0G?4/4Pp3/3Rq
 3|.4V47/_69/_69C40:_71Jo0/_0J!40:_71Wo <__0:__0>114Ga0G!0G?
 6|.4V47/_69/_69C39:_70Jo0/_0J!39:_70Wo <__0:__0>114Ga0G!0G?
 8|.4V47/_69/_69C40:_71Jo0/_1J!40:_71Wo <__0:__0>114Ga0G!0G?
 7|.4V47/_69/_69C38:_69Jo0/_0J!38:_69Wo <__0:__0>114Ga0G!0G?
 0\ .4V47/_69/_69C38:_69Jo0/_0J!38:_69Wo <__0:__0>114Ga0G!0G?
 4|.4V47/_69/_69C38:_69Jo0/_0J!38:_69Wo <__0:__0>114Ga0G!0G?
 1/.4V47/_70/_70C42:_73Jo0/_0J!42:_73Wo <__0:__0>115Ga0G!0G?4/4Pp3/3Rq
 3|.4V47/_70/_70C40:_71Jo0/_0J!40:_71Wo <__0:__0>115Ga0G!0G?
 8|.4V47/_70/_70C40:_71Jo0/_0J!40:_71Wo <__0:__0>115Ga0G!0G?
 0\ .4V47/_70/_70C39:_70Jo0/_0J!39:_70Wo <__0:__0>115Ga0G!0G?
 7|.4V47/_70/_70C39:_70Jo0/_0J!39:_70Wo <__0:__0>115Ga0G!0G?
 6|.4V47/_70/_70C39:_70Jo0/_0J!39:_70Wo <__0:__0>115Ga0G!0G?
 4|.4V47/_70/_70C43:_74Jo0/_5J!39:_70Wo <__0:__0>115Ga0G!0G?
 1/.4V47/_71/_71C43:_74Jo0/_0J!43:_74Wo <__0:__0>116Ga0G!0G?4/4Pp3/3Rq
 0\ .4V47/_71/_71C40:_71Jo0/_0J!40:_71Wo <__0:__0>116Ga0G!0G?
 3|.4V47/_71/_71C40:_71Jo0/_0J!40:_71Wo <__0:__0>116Ga0G!0G?
 8|.4V47/_71/_71C40:_71Jo0/_0J!40:_71Wo <__0:__0>116Ga0G!0G?
 7|.4V47/_71/_71C40:_71Jo0/_1J!40:_71Wo <__0:__0>116Ga0G!0G?
 4|.4V47/_71/_71C43:_74Jo0/_4J!40:_71Wo <__0:__0>116Ga0G!0G?
 1/.4V47/_72/_72C44:_75Jo0/_0J!44:_75Wo <__0:__0>116Ga0G!0G?4/4Pp3/3Rq
 3|.4V47/_72/_72C41:_72Jo0/_0J!41:_72Wo <__0:__0>116Ga0G!0G?
 7|.4V47/_72/_72C41:_72Jo0/_1J!40:_71Wo <__0:__0>116Ga0G!0G?
 4|.4V47/_72/_72C43:_74Jo0/_1J!42:_73Wo <__0:__0>116Ga0G!0G?
 0\ .4V47/_72/_72C41:_72Jo0/_0J!41:_72Wo <__0:__0>116Ga0G!0G?
 8|.4V47/_72/_72C41:_72Jo0/_1J!40:_71Wo <__0:__0>116Ga0G!0G?
 6|.4V47/_71/_72C44:_75Jo0/_5J!39:_75Wo <__0:__0>116Ga0G!0G?
 6|.4V47/_72/_72C44:_75Jo0/_5J!39:_75Wo <__0:__0>116Ga0G!0G?
 1/.4V47/_73/_73C45:_76Jo0/_0J!45:_76Wo <__0:__0>116Ga0G!0G?4/4Pp3/3Rq
 3|.4V47/_73/_73C42:_73Jo0/_1J!42:_73Wo <__0:__0>116Ga0G!0G?
 7|.4V47/_73/_73C42:_73Jo0/_1J!42:_73Wo <__0:__0>116Ga0G!0G?
 4|.4V47/_73/_73C43:_74Jo0/_0J!43:_74Wo <__0:__0>116Ga0G!0G?
 8|.4V47/_73/_73C42:_73Jo0/_1J!42:_73Wo <__0:__0>116Ga0G!0G?
 0\ .4V47/_73/_73C42:_73Jo0/_0J!42:_73Wo <__0:__0>116Ga0G!0G?
 6|.4V47/_73/_73C44:_75Jo0/_4J!44:_75Wo <__0:__0>116Ga0G!0G?
 1/.4V47/_74/_74C46:_77Jo0/_0J!46:_77Wo <__0:__0>116Ga0G!0G?4/4Pp3/3Rq
 8|.4V47/_74/_74C43:_74Jo0/_1J!42:_73Wo <__0:__0>116Ga0G!0G?
 0\ .4V47/_74/_74C43:_74Jo0/_0J!43:_74Wo <__0:__0>116Ga0G!0G?
 4|.4V47/_74/_74C43:_74Jo0/_0J!43:_74Wo <__0:__0>116Ga0G!0G?
 7|.4V47/_74/_74C43:_74Jo0/_1J!42:_73Wo <__0:__0>116Ga0G!0G?
 6|.4V47/_74/_74C44:_75Jo0/_2J!44:_75Wo <__0:__0>116Ga0G!0G?
 3|.4V47/_74/_74C47:_78Jo0/_4J!42:_77Wo <__0:__0>116Ga0G!0G?
 1/.4V47/_75/_75C47:_78Jo0/_0J!47:_78Wo <__0:__0>117Ga0G!0G?4/4Pp3/3Rq
 1 [ /.4V47/_75/_75C48:_79Jo0/_1J!47:_78Wo <__0:__0>117Ga0G!0G?4/4Pp2/3Rq
 7|.4V47/_75/_75C44:_75Jo0/_0J!44:_75Wo <__0:__0>117Ga0G!0G?
 7 [ |.4V47/_75/_75C44:_75Jo0/_0J!44:_75Wo <__0:__0>117Ga0G!0G?
 3|.4V47/_75/_75C47:_78Jo0/_0J!47:_78Wo <__0:__0>117Ga0G!0G?
 3 [ |.4V47/_75/_75C47:_78Jo0/_0J!47:_78Wo <__0:__0>117Ga0G!0G?
 0\ .4V47/_75/_75C44:_75Jo0/_0J!44:_75Wo <__0:__0>117Ga0G!0G?
 0 [ \ .4V47/_75/_75C44:_75Jo0/_0J!44:_75Wo <__0:__0>117Ga0G!0G?
 6|.4V47/_75/_75C44:_75Jo0/_0J!44:_75Wo <__0:__0>117Ga0G!0G?
 6 [ |.4V47/_75/_75C44:_75Jo0/_0J!44:_75Wo <__0:__0>117Ga0G!0G?
 8|.4V47/_75/_75C44:_75Jo0/_0J!44:_75Wo <__0:__0>117Ga0G!0G?
 8 [ |.4V47/_75/_75C44:_75Jo0/_0J!44:_75Wo <__0:__0>117Ga0G!0G?
 4|.4V47/_75/_75C48:_79Jo0/_5J!43:_77Wo <__0:__0>117Ga0G!0G?
 4 [ |.4V47/_75/_75C48:_79Jo0/_5J!43:_77Wo <__0:__0>117Ga0G!0G?
 7 ] |.4V71/_75/_75C45:_76Jo0/_0J!45:_76Wo <__0:__0>102Ga0G!0G?
 1 ] /.4V71/_75/_75C48:_79Jo0/_0J!48:_79Wo <__0:__0>102Ga0G!0G?4/4Pp3/3Rq
 8 ] |.4V71/_75/_75C45:_76Jo0/_0J!45:_76Wo <__0:__0>102Ga0G!0G?
 1/.4V71/_76/_76C48:_79Jo0/_0J!48:_79Wo <__0:__0>102Ga0G!0G?4/4Pp3/3Rq
 7|.4V71/_76/_76C45:_76Jo0/_0J!45:_76Wo <__0:__0>102Ga0G!0G?
 8|.4V71/_76/_76C45:_76Jo0/_0J!45:_76Wo <__0:__0>102Ga0G!0G?
 6 ] |.4V71/_75/_76C48:_79Jo0/_4J!44:_75Wo <__0:__0>102Ga0G!0G?
 6|.4V71/_76/_76C48:_79Jo0/_4J!44:_75Wo <__0:__0>102Ga0G!0G?
 0 ] \ .4V71/_75/_76C45:_76Jo0/_0J!45:_76Wo <__0:__0>102Ga0G!0G?
 0\ .4V71/_76/_76C45:_76Jo0/_0J!45:_76Wo <__0:__0>102Ga0G!0G?
 3 ] |.4V71/_75/_76C47:_78Jo0/_0J!47:_78Wo <__0:__0>102Ga0G!0G?
 3|.4V71/_76/_76C47:_78Jo0/_0J!47:_78Wo <__0:__0>102Ga0G!0G?
 4 ] |.4V71/_75/_76C48:_79Jo0/_0J!48:_79Wo <__0:__0>102Ga0G!0G?
 4|.4V71/_76/_76C48:_79Jo0/_0J!48:_79Wo <__0:__0>102Ga0G!0G?
 1/.4V71/_77/_77C49:_80Jo0/_0J!49:_80Wo <__0:__0>104Ga0G!0G?4/4Pp3/3Rq
 3|.4V71/_77/_77C47:_78Jo0/_0J!47:_78Wo <__0:__0>104Ga0G!0G?
 4|.4V71/_77/_77C48:_79Jo0/_0J!48:_79Wo <__0:__0>104Ga0G!0G?
 6|.4V71/_77/_77C48:_79Jo0/_0J!48:_79Wo <__0:__0>104Ga0G!0G?
 8|.4V71/_77/_77C46:_77Jo0/_0J!46:_77Wo <__0:__0>104Ga0G!0G?
 7|.4V71/_77/_77C46:_77Jo0/_0J!46:_77Wo <__0:__0>104Ga0G!0G?
 0\ .4V71/_77/_77C46:_77Jo0/_0J!46:_77Wo <__0:__0>104Ga0G!0G?
 1/.4V71/_78/_78C50:_81Jo0/_0J!50:_81Wo <__0:__0>104Ga0G!0G?4/4Pp3/3Rq
 6|.4V71/_78/_78C48:_79Jo0/_0J!48:_79Wo <__0:__0>104Ga0G!0G?
 0\ .4V71/_78/_78C47:_78Jo0/_0J!47:_78Wo <__0:__0>104Ga0G!0G?
 4|.4V71/_78/_78C48:_79Jo0/_0J!48:_79Wo <__0:__0>104Ga0G!0G?
 3|.4V71/_78/_78C47:_78Jo0/_0J!47:_78Wo <__0:__0>104Ga0G!0G?
 7|.4V71/_78/_78C51:_82Jo0/_5J!46:_82Wo <__0:__0>104Ga0G!0G?
 8|.4V71/_78/_78C51:_82Jo0/_4J!46:_82Wo <__0:__0>104Ga0G!0G?
 1/.4V71/_79/_79C51:_82Jo0/_0J!51:_82Wo <__0:__0>104Ga0G!0G?4/4Pp3/3Rq
 4|.4V71/_79/_79C48:_79Jo0/_0J!48:_79Wo <__0:__0>104Ga0G!0G?
 6|.4V71/_79/_79C48:_79Jo0/_0J!48:_79Wo <__0:__0>104Ga0G!0G?
 0\ .4V71/_79/_79C48:_79Jo0/_0J!48:_79Wo <__0:__0>104Ga0G!0G?
 8|.4V71/_79/_79C51:_82Jo0/_3J!46:_82Wo <__0:__0>104Ga0G!0G?
 3|.4V71/_79/_79C52:_83Jo0/_5J!47:_78Wo <__0:__0>104Ga0G!0G?
 7|.4V71/_79/_79C51:_82Jo0/_3J!46:_82Wo <__0:__0>104Ga0G!0G?
 1/.4V71/_80/_80C52:_83Jo0/_0J!52:_83Wo <__0:__0>104Ga0G!0G?4/4Pp3/3Rq
 0\ .4V71/_80/_80C49:_80Jo0/_0J!49:_80Wo <__0:__0>104Ga0G!0G?
 8|.4V71/_80/_80C51:_82Jo0/_0J!51:_82Wo <__0:__0>104Ga0G!0G?
 7|.4V71/_80/_80C51:_82Jo0/_0J!51:_82Wo <__0:__0>104Ga0G!0G?
 3|.4V71/_80/_80C52:_83Jo0/_2J!50:_83Wo <__0:__0>104Ga0G!0G?
 6|.4V71/_80/_80C53:_84Jo0/_5J!48:_79Wo <__0:__0>104Ga0G!0G?
 4|.4V71/_80/_80C53:_84Jo0/_5J!48:_79Wo <__0:__0>104Ga0G!0G?
 1/.4V71/_81/_81C53:_84Jo0/_0J!53:_84Wo <__0:__0>105Ga0G!0G?4/4Pp3/3Rq
 8|.4V71/_81/_81C51:_82Jo0/_0J!51:_82Wo <__0:__0>105Ga0G!0G?
 7|.4V71/_81/_81C51:_82Jo0/_0J!51:_82Wo <__0:__0>105Ga0G!0G?
 4|.4V71/_81/_81C53:_84Jo0/_4J!49:_83Wo <__0:__0>105Ga0G!0G?
 6|.4V71/_81/_81C53:_84Jo0/_4J!50:_81Wo <__0:__0>105Ga0G!0G?
 3|.4V71/_81/_81C52:_83Jo0/_0J!52:_83Wo <__0:__0>105Ga0G!0G?
 0\ .4V71/_81/_81C50:_81Jo0/_0J!50:_81Wo <__0:__0>105Ga0G!0G?
 1/.4V71/_82/_82C54:_85Jo0/_0J!54:_85Wo <__0:__0>105Ga0G!0G?4/4Pp3/3Rq
 0\ .4V71/_82/_82C51:_82Jo0/_0J!51:_82Wo <__0:__0>105Ga0G!0G?
 3|.4V71/_82/_82C52:_83Jo0/_0J!52:_83Wo <__0:__0>105Ga0G!0G?
 8|.4V71/_82/_82C51:_82Jo0/_0J!51:_82Wo <__0:__0>105Ga0G!0G?
 4|.4V71/_82/_82C53:_84Jo0/_1J!53:_84Wo <__0:__0>105Ga0G!0G?
 7|.4V71/_82/_82C51:_82Jo0/_0J!51:_82Wo <__0:__0>105Ga0G!0G?
 6|.4V71/_82/_82C53:_84Jo0/_1J!53:_84Wo <__0:__0>105Ga0G!0G?
 1/.4V71/_83/_83C55:_86Jo0/_0J!55:_86Wo <__0:__0>105Ga0G!0G?4/4Pp3/3Rq
 6|.4V71/_83/_83C53:_84Jo0/_0J!53:_84Wo <__0:__0>105Ga0G!0G?
 4|.4V71/_83/_83C53:_84Jo0/_0J!53:_84Wo <__0:__0>105Ga0G!0G?
 3|.4V71/_83/_83C52:_83Jo0/_0J!52:_83Wo <__0:__0>105Ga0G!0G?
 0\ .4V71/_83/_83C52:_83Jo0/_0J!52:_83Wo <__0:__0>105Ga0G!0G?
 7|.4V71/_83/_83C56:_87Jo0/_3J!51:_85Wo <__0:__0>105Ga0G!0G?
 8|.4V71/_83/_83C56:_87Jo0/_3J!51:_86Wo <__0:__0>105Ga0G!0G?
 1/.4V71/_84/_84C56:_87Jo0/_0J!56:_87Wo <__0:__0>105Ga0G!0G?4/4Pp3/3Rq
 8|.4V71/_84/_84C56:_87Jo0/_2J!55:_86Wo <__0:__0>105Ga0G!0G?
 6|.4V71/_84/_84C53:_84Jo0/_0J!53:_84Wo <__0:__0>105Ga0G!0G?
 0\ .4V71/_84/_84C53:_84Jo0/_0J!53:_84Wo <__0:__0>105Ga0G!0G?
 4|.4V71/_84/_84C53:_84Jo0/_0J!53:_84Wo <__0:__0>105Ga0G!0G?
 7|.4V71/_84/_84C56:_87Jo0/_1J!54:_87Wo <__0:__0>105Ga0G!0G?
 3|.4V71/_84/_84C57:_88Jo0/_5J!52:_83Wo <__0:__0>105Ga0G!0G?
 1/.4V71/_85/_85C57:_88Jo0/_0J!57:_88Wo <__0:__0>106Ga0G!0G?4/4Pp3/3Rq
 7|.4V71/_85/_85C56:_87Jo0/_1J!54:_87Wo <__0:__0>106Ga0G!0G?
 0\ .4V71/_85/_85C54:_85Jo0/_0J!54:_85Wo <__0:__0>106Ga0G!0G?
 3|.4V71/_85/_85C57:_88Jo0/_3J!54:_88Wo <__0:__0>106Ga0G!0G?
 6|.4V71/_85/_85C58:_89Jo0/_4J!53:_87Wo <__0:__0>106Ga0G!0G?
 8|.4V71/_85/_85C56:_87Jo0/_0J!56:_87Wo <__0:__0>106Ga0G!0G?
 4|.4V71/_85/_85C58:_89Jo0/_5J!53:_88Wo <__0:__0>106Ga0G!0G?
 1/.4V71/_86/_86C58:_89Jo0/_0J!58:_89Wo <__0:__0>106Ga0G!0G?4/4Pp3/3Rq
 6|.4V71/_86/_86C58:_89Jo0/_1J!56:_89Wo <__0:__0>106Ga0G!0G?
 7|.4V71/_86/_86C56:_87Jo0/_0J!56:_87Wo <__0:__0>106Ga0G!0G?
 0\ .4V71/_86/_86C55:_86Jo0/_0J!55:_86Wo <__0:__0>106Ga0G!0G?
 4|.4V71/_86/_86C58:_89Jo0/_1J!54:_89Wo <__0:__0>106Ga0G!0G?
 3|.4V71/_86/_86C57:_88Jo0/_0J!57:_88Wo <__0:__0>106Ga0G!0G?
 8|.4V71/_86/_86C56:_87Jo0/_0J!56:_87Wo <__0:__0>106Ga0G!0G?
 1/.4V71/_87/_87C59:_90Jo0/_0J!59:_90Wo <__0:__0>106Ga0G!0G?4/4Pp3/3Rq
 3|.4V71/_87/_87C57:_88Jo0/_0J!57:_88Wo <__0:__0>106Ga0G!0G?
 4|.4V71/_87/_87C58:_89Jo0/_0J!58:_89Wo <__0:__0>106Ga0G!0G?
 8|.4V71/_87/_87C56:_87Jo0/_0J!56:_87Wo <__0:__0>106Ga0G!0G?
 7|.4V71/_87/_87C56:_87Jo0/_0J!56:_87Wo <__0:__0>106Ga0G!0G?
 6|.4V71/_87/_87C58:_89Jo0/_0J!58:_89Wo <__0:__0>106Ga0G!0G?
 0\ .4V71/_87/_87C56:_87Jo0/_0J!56:_87Wo <__0:__0>106Ga0G!0G?
 1/.4V71/_88/_88C60:_91Jo0/_0J!60:_91Wo <__0:__0>106Ga0G!0G?4/4Pp3/3Rq
 3|.4V71/_88/_88C57:_88Jo0/_0J!57:_88Wo <__0:__0>106Ga0G!0G?
 6|.4V71/_88/_88C58:_89Jo0/_0J!58:_89Wo <__0:__0>106Ga0G!0G?
 0\ .4V71/_88/_88C57:_88Jo0/_0J!57:_88Wo <__0:__0>106Ga0G!0G?
 7|.4V71/_88/_88C57:_88Jo0/_0J!57:_88Wo <__0:__0>106Ga0G!0G?
 4|.4V71/_88/_88C58:_89Jo0/_0J!58:_89Wo <__0:__0>106Ga0G!0G?
 8|.4V71/_88/_88C57:_88Jo0/_0J!57:_88Wo <__0:__0>106Ga0G!0G?
 1/.4V71/_89/_89C61:_92Jo0/_0J!61:_92Wo <__0:__0>107Ga0G!0G?4/4Pp3/3Rq
 8|.4V71/_89/_89C58:_89Jo0/_0J!58:_89Wo <__0:__0>107Ga0G!0G?
 6|.4V71/_89/_89C58:_89Jo0/_0J!58:_89Wo <__0:__0>107Ga0G!0G?
 7|.4V71/_89/_89C58:_89Jo0/_0J!58:_89Wo <__0:__0>107Ga0G!0G?
 4|.4V71/_89/_89C58:_89Jo0/_0J!58:_89Wo <__0:__0>107Ga0G!0G?
 0\ .4V71/_89/_89C58:_89Jo0/_0J!58:_89Wo <__0:__0>107Ga0G!0G?
 3|.4V71/_89/_89C58:_89Jo0/_1J!58:_89Wo <__0:__0>107Ga0G!0G?
 1/.4V71/_90/_90C62:_93Jo0/_0J!62:_93Wo <__0:__0>107Ga0G!0G?4/4Pp3/3Rq
 0\ .4V71/_90/_90C59:_90Jo0/_0J!59:_90Wo <__0:__0>107Ga0G!0G?
 7|.4V71/_90/_90C63:_94Jo0/_5J!58:_89Wo <__0:__0>107Ga0G!0G?
 4|.4V71/_90/_90C63:_94Jo0/_5J!58:_89Wo <__0:__0>107Ga0G!0G?
 8|.4V71/_90/_90C63:_94Jo0/_4J!59:_94Wo <__0:__0>107Ga0G!0G?
 3|.4V71/_90/_90C63:_94Jo0/_5J!58:_89Wo <__0:__0>107Ga0G!0G?
 6|.4V71/_90/_90C63:_94Jo0/_2J!58:_94Wo <__0:__0>107Ga0G!0G?
 1/.4V71/_91/_91C63:_94Jo0/_0J!63:_94Wo <__0:__0>121Ga0G!0G?4/4Pp2/3Rq
 8|.4V71/_91/_91C63:_94Jo0/_0J!63:_94Wo <__0:__0>121Ga0G!0G?
 6|.4V71/_91/_91C63:_94Jo0/_1J!63:_94Wo <__0:__0>121Ga0G!0G?
 4|.4V71/_91/_91C63:_94Jo0/_3J!63:_94Wo <__0:__0>121Ga0G!0G?
 3|.4V71/_91/_91C63:_94Jo0/_2J!62:_93Wo <__0:__0>121Ga0G!0G?
 7|.4V71/_91/_91C63:_94Jo0/_2J!63:_94Wo <__0:__0>121Ga0G!0G?
 0\ .4V71/_91/_91C60:_91Jo0/_0J!60:_91Wo <__0:__0>121Ga0G!0G?
 1/.4V71/_92/_92C64:_95Jo0/_0J!64:_95Wo <__0:__0>121Ga0G!0G?4/4Pp1/3Rq
 3|.4V71/_92/_92C63:_94Jo0/_0J!63:_94Wo <__0:__0>121Ga0G!0G?
 8|.4V71/_92/_92C63:_94Jo0/_0J!63:_94Wo <__0:__0>121Ga0G!0G?
 0\ .4V71/_92/_92C61:_92Jo0/_0J!61:_92Wo <__0:__0>121Ga0G!0G?
 7|.4V71/_92/_92C63:_94Jo0/_0J!63:_94Wo <__0:__0>121Ga0G!0G?
 6|.4V71/_92/_92C63:_94Jo0/_0J!63:_94Wo <__0:__0>121Ga0G!0G?
 4|.4V71/_92/_92C63:_94Jo0/_0J!63:_94Wo <__0:__0>121Ga0G!0G?
 1/.4V71/_93/_93C65:_96Jo0/_0J!65:_96Wo <__0:__0>122Ga0G!0G?4/4Pp1/3Rq
 3|.4V71/_93/_93C63:_94Jo0/_0J!63:_94Wo <__0:__0>122Ga0G!0G?
 7|.4V71/_93/_93C63:_94Jo0/_0J!63:_94Wo <__0:__0>122Ga0G!0G?
 8|.4V71/_93/_93C63:_94Jo0/_0J!63:_94Wo <__0:__0>122Ga0G!0G?
 0\ .4V71/_93/_93C62:_93Jo0/_0J!62:_93Wo <__0:__0>122Ga0G!0G?
 4|.4V71/_93/_93C63:_94Jo0/_0J!63:_94Wo <__0:__0>122Ga0G!0G?
 6|.4V71/_93/_93C63:_94Jo0/_0J!63:_94Wo <__0:__0>122Ga0G!0G?
 1/.4V71/_94/_94C66:_97Jo0/_0J!66:_97Wo <__0:__0>123Ga0G!0G?4/4Pp1/3Rq
 7|.4V71/_94/_94C63:_94Jo0/_0J!63:_94Wo <__0:__0>123Ga0G!0G?
 8|.4V71/_94/_94C63:_94Jo0/_0J!63:_94Wo <__0:__0>123Ga0G!0G?
 4|.4V71/_94/_94C63:_94Jo0/_0J!63:_94Wo <__0:__0>123Ga0G!0G?
 3|.4V71/_94/_94C63:_94Jo0/_0J!63:_94Wo <__0:__0>123Ga0G!0G?
 0\ .4V71/_94/_94C63:_94Jo0/_0J!63:_94Wo <__0:__0>123Ga0G!0G?
 6|.4V71/_94/_94C63:_94Jo0/_0J!63:_94Wo <__0:__0>123Ga0G!0G?
 1/.4V71/_95/_95C67:_98Jo0/_0J!67:_98Wo <__0:__0>123Ga0G!0G?4/4Pp0/3Rq
 8|.4V71/_95/_95C64:_95Jo0/_1J!64:_95Wo <__0:__0>123Ga0G!0G?
 7|.4V71/_95/_95C64:_95Jo0/_1J!63:_94Wo <__0:__0>123Ga0G!0G?
 4|.4V71/_95/_95C68:_99Jo0/_4J!64:_95Wo <__0:__0>123Ga0G!0G?
 6|.4V71/_95/_95C68:_99Jo0/_5J!63:_96Wo <__0:__0>123Ga0G!0G?
 0\ .4V71/_95/_95C65:_96Jo0/_1J!64:_95Wo <__0:__0>123Ga0G!0G?
 3|.4V71/_95/_95C68:_99Jo0/_3J!63:_99Wo <__0:__0>123Ga0G!0G?
 1/.4V71/_96/_96C68:_99Jo0/_0J!68:_99Wo <__0:__0>123Ga0G!0G?4/4Pp0/3Rq
 4|.4V71/_96/_96C68:_99Jo0/_1J!65:_99Wo <__0:__0>123Ga0G!0G?
 6|.4V71/_96/_96C68:_99Jo0/_0J!68:_99Wo <__0:__0>123Ga0G!0G?
 0\ .4V71/_96/_96C65:_96Jo0/_0J!65:_96Wo <__0:__0>123Ga0G!0G?
 7|.4V71/_96/_96C65:_96Jo0/_0J!65:_96Wo <__0:__0>123Ga0G!0G?
 8|.4V71/_96/_96C65:_96Jo0/_0J!65:_96Wo <__0:__0>123Ga0G!0G?
 3|.4V71/_96/_96C68:_99Jo0/_0J!68:_99Wo <__0:__0>123Ga0G!0G?
 1/.4V71/_97/_97C69:100Jo0/_1J!69:100Wo <__0:__0>124Ga0G!0G?4/4Pp0/3Rq
 3|.4V71/_97/_97C68:_99Jo0/_0J!68:_99Wo <__0:__0>124Ga0G!0G?
 6|.4V71/_97/_97C68:_99Jo0/_0J!68:_99Wo <__0:__0>124Ga0G!0G?
 4|.4V71/_97/_97C68:_99Jo0/_0J!68:_99Wo <__0:__0>124Ga0G!0G?
 0\ .4V71/_97/_97C66:_97Jo0/_0J!66:_97Wo <__0:__0>124Ga0G!0G?
 7|.4V71/_97/_97C66:_97Jo0/_0J!66:_97Wo <__0:__0>124Ga0G!0G?
 8|.4V71/_97/_97C69:100Jo0/_4J!65:_96Wo <__0:__0>124Ga0G!0G?
 1/.4V71/_98/_98C69:100Jo0/_0J!69:100Wo <__0:__0>124Ga0G!0G?3/4Pp0/3Rq
 0\ .4V71/_98/_98C67:_98Jo0/_0J!67:_98Wo <__0:__0>124Ga0G!0G?
 4|.4V71/_98/_98C68:_99Jo0/_0J!68:_99Wo <__0:__0>124Ga0G!0G?
 3|.4V71/_98/_98C68:_99Jo0/_0J!68:_99Wo <__0:__0>124Ga0G!0G?
 6|.4V71/_98/_98C68:_99Jo0/_0J!68:_99Wo <__0:__0>124Ga0G!0G?
 8|.4V71/_98/_98C69:100Jo0/_1J!69:100Wo <__0:__0>124Ga0G!0G?
 7|.4V71/_98/_98C69:100Jo0/_3J!66:_97Wo <__0:__0>124Ga0G!0G?
 1/.4V71/_99/_99C69:100Jo0/_0J!69:100Wo <__0:__0>124Ga0G!0G?2/4Pp0/3Rq
 1 [ /.4V71/_99/_99C69:100Jo0/_0J!69:100Wo <__0:__0>124Ga0G!0G?1/4Pp0/3Rq
 4|.4V71/_99/_99C68:_99Jo0/_0J!68:_99Wo <__0:__0>124Ga0G!0G?
 4 [ |.4V71/_99/_99C68:_99Jo0/_0J!68:_99Wo <__0:__0>124Ga0G!0G?
 0\ .4V71/_99/_99C68:_99Jo0/_0J!68:_99Wo <__0:__0>124Ga0G!0G?
 0 [ \ .4V71/_99/_99C68:_99Jo0/_0J!68:_99Wo <__0:__0>124Ga0G!0G?
 6|.4V71/_99/_99C68:_99Jo0/_0J!68:_99Wo <__0:__0>124Ga0G!0G?
 6 [ |.4V71/_99/_99C68:_99Jo0/_0J!68:_99Wo <__0:__0>124Ga0G!0G?
 7|.4V71/_99/_99C69:100Jo0/_1J!69:100Wo <__0:__0>124Ga0G!0G?
 7 [ |.4V71/_99/_99C69:100Jo0/_1J!69:100Wo <__0:__0>124Ga0G!0G?
 8|.4V71/_99/_99C69:100Jo0/_0J!69:100Wo <__0:__0>124Ga0G!0G?
 8 [ |.4V71/_99/_99C69:100Jo0/_0J!69:100Wo <__0:__0>124Ga0G!0G?
 3|.4V71/_99/_99C68:_99Jo0/_0J!68:_99Wo <__0:__0>124Ga0G!0G?
 3 [ |.4V71/_99/_99C68:_99Jo0/_0J!68:_99Wo <__0:__0>124Ga0G!0G?
 1 ] /.4V95/_99/_99C70:101Jo0/_1J!69:100Wo <__0:__0>114Ga0G!0G?2/4Pp0/3Rq
 3 ] |.4V95/_99/_99C68:_99Jo0/_0J!68:_99Wo <__0:__0>114Ga0G!0G?
 4 ] |.4V95/_99/_99C68:_99Jo0/_0J!68:_99Wo <__0:__0>114Ga0G!0G?
 6 ] |.4V95/_99/_99C68:_99Jo0/_0J!68:_99Wo <__0:__0>114Ga0G!0G?
 0 ] \ .4V95/_99/_99C69:100Jo0/_1J!69:100Wo <__0:__0>114Ga0G!0G?
 1/.4V95/100/100C70:101Jo0/_0J!70:101Wo <__0:__0>114Ga0G!0G?2/4Pp0/3Rq
 0\ .4V95/100/100C69:100Jo0/_0J!69:100Wo <__0:__0>114Ga0G!0G?
 8 ] |.4V95/_99/100C69:100Jo0/_0J!69:100Wo <__0:__0>114Ga0G!0G?
 8|.4V95/100/100C69:100Jo0/_0J!69:100Wo <__0:__0>114Ga0G!0G?
 6|.4V95/100/100C71:102Jo0/_3J!68:101Wo <__0:__0>114Ga0G!0G?
 3|.4V95/100/100C71:102Jo0/_2J!68:102Wo <__0:__0>114Ga0G!0G?
 4|.4V95/100/100C71:102Jo0/_2J!68:102Wo <__0:__0>114Ga0G!0G?
 7 ] |.4V95/_99/100C69:100Jo0/_0J!69:100Wo <__0:__0>114Ga0G!0G?
 7|.4V95/100/100C69:100Jo0/_0J!69:100Wo <__0:__0>114Ga0G!0G?
 1/.4V95/101/101C71:102Jo0/_0J!71:102Wo <__0:__0>116Ga0G!0G?2/4Pp0/3Rq
 3|.4V95/101/101C71:102Jo0/_0J!71:102Wo <__0:__0>116Ga0G!0G?
 7|.4V95/101/101C70:101Jo0/_0J!70:101Wo <__0:__0>116Ga0G!0G?
 0\ .4V95/101/101C70:101Jo0/_0J!70:101Wo <__0:__0>116Ga0G!0G?
 4|.4V95/101/101C71:102Jo0/_0J!71:102Wo <__0:__0>116Ga0G!0G?
 6|.4V95/101/101C71:102Jo0/_0J!71:102Wo <__0:__0>116Ga0G!0G?
 8|.4V95/101/101C72:103Jo0/_3J!70:101Wo <__0:__0>116Ga0G!0G?
 1/.4V95/102/102C72:103Jo0/_0J!72:103Wo <__0:__0>116Ga0G!0G?2/4Pp0/3Rq
 6|.4V95/102/102C71:102Jo0/_0J!71:102Wo <__0:__0>116Ga0G!0G?
 7|.4V95/102/102C71:102Jo0/_1J!70:101Wo <__0:__0>116Ga0G!0G?
 0\ .4V95/102/102C71:102Jo0/_0J!71:102Wo <__0:__0>116Ga0G!0G?
 3|.4V95/102/102C71:102Jo0/_0J!71:102Wo <__0:__0>116Ga0G!0G?
 4|.4V95/102/102C71:102Jo0/_0J!71:102Wo <__0:__0>116Ga0G!0G?
 8|.4V95/102/102C72:103Jo0/_1J!72:103Wo <__0:__0>116Ga0G!0G?
 1/.4V95/103/103C72:103Jo0/_0J!72:103Wo <__0:__0>130Ga0G!0G?1/4Pp0/3Rq
 2  \.4V0/__0/_25C0:_29Jo0/_0J!0:_31Wo <__0:__0>nullGa0G!0G?
 5  |.4V23/_23/_27C0:_29Jo0/_0J!0:_31Wo <__0:__0>nullGa0G!0G?
 2\.4V0/__1/_25C0:_29Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?
 2\.4V0/__2/_25C0:_29Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?
 2\.4V0/__3/_25C0:_29Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?
 2\.4V0/__4/_25C0:_29Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?
 2\.4V0/__5/_25C0:_29Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?
 2\.4V0/__6/_25C0:_29Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?
 2\.4V0/__7/_25C0:_29Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?
 2\.4V0/__8/_25C0:_29Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?
 2\.4V0/__9/_25C0:_29Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?
 2\.4V0/_10/_25C0:_29Jo0/_0J!0:_31Wo <__0:__0>0Ga0G!0G?
 2\.4V0/_11/_25C0:_29Jo0/_0J!0:_31Wo <__0:__0>14Ga0G!0G?
 8|.4V95/103/103C72:103Jo0/_0J!72:103Wo <__0:__0>130Ga0G!0G?
 5 < ~.4V23/_23/103C0:_29Jo0/_0J!0:_31Wo <__0:__0>41Ga0G!0G?
 0\ .4V95/103/103C72:103Jo0/_0J!72:103Wo <__0:__0>130Ga0G!0G?
 3|.4V95/103/103C72:103Jo0/_1J!71:102Wo <__0:__0>130Ga0G!0G?
 4|.4V95/103/103C72:103Jo0/_1J!71:102Wo <__0:__0>130Ga0G!0G?
 6|.4V95/103/103C72:103Jo0/_1J!72:103Wo <__0:__0>130Ga0G!0G?
 7|.4V95/103/103C72:103Jo0/_1J!71:102Wo <__0:__0>130Ga0G!0G?
 2 < ~.4V0/_11/103C0:_29Jo0/_0J!0:_31Wo <__0:__0>14Ga0G!0G?
 5 > |h4V95/_95/103C0:_29Jo0/_0J!0:_31Wo <_28:_99>nullGa0G!0G?
 2 > \h4V95/_95/103C0:_29Jo0/_0J!0:_31Wo <__0:_99>nullGa0G!0G?
 5|.4V95/_96/103C8:103Jo0/_0J!8:103Wo <_28:_99>114Ga0G!3G?
 5|.4V95/_97/103C8:103Jo0/_0J!8:103Wo <_28:_99>114Ga0G!3G?
 2\.4V95/_96/103C8:103Jo0/_7J!8:103Wo <__0:_99>114Ga0G!4G?
 2\.4V95/_97/103C8:103Jo0/_7J!8:103Wo <__0:_99>114Ga0G!4G?
 2\.4V95/_98/103C8:103Jo0/_7J!8:103Wo <__0:_99>114Ga0G!4G?
 5|.4V95/_98/103C8:103Jo0/_0J!8:103Wo <_28:_99>114Ga0G!2G?
 2\.4V95/_99/103C8:103Jo0/_5J!8:103Wo <__0:_99>114Ga0G!4G?
 2\.4V95/100/103C8:103Jo0/_5J!8:103Wo <__0:_99>114Ga0G!4G?
 2\.4V95/101/103C8:103Jo0/_5J!8:103Wo <__0:_99>114Ga0G!4G?
 2\.4V95/102/103C8:103Jo0/_5J!8:103Wo <__0:_99>116Ga0G!4G?
 2\.4V95/103/103C8:103Jo0/_5J!8:103Wo <__0:_99>116Ga0G!4G?
 5|.4V95/_99/103C8:103Jo0/_0J!8:103Wo <_28:_99>114Ga0G!4G?
 5|.4V95/100/103C8:103Jo0/_0J!8:103Wo <_28:_99>114Ga0G!4G?
 5|.4V95/101/103C8:103Jo0/_0J!8:103Wo <_28:_99>114Ga0G!4G?
 5|.4V95/102/103C8:103Jo0/_0J!8:103Wo <_28:_99>116Ga0G!4G?
 5|.4V95/103/103C8:103Jo0/_0J!8:103Wo <_28:_99>116Ga0G!4G?
@matklad
Copy link
Member

matklad commented Feb 2, 2024

thread 17801 panic: reached unreachable code
/home/matklad/p/tb/main/zig/lib/std/debug.zig:343:14: 0x31a2b2 in assert (simulator)
    if (!ok) unreachable; // assertion failure
             ^
/home/matklad/p/tb/sim/src/vsr/client_replies.zig:173:19: 0x40c9f8 in read_reply_sync (simulator)
            assert(!client_replies.faulty.isSet(slot.index));
                  ^
/home/matklad/p/tb/sim/src/vsr/replica.zig:2202:52: 0x3d3124 in on_request_reply (simulator)
            if (self.client_replies.read_reply_sync(slot, entry)) |reply| {
                                                   ^
/home/matklad/p/tb/sim/src/vsr/replica.zig:1205:60: 0x379003 in on_message (simulator)
                .request_reply => |m| self.on_request_reply(m),
                                                           ^
/home/matklad/p/tb/sim/src/vsr/replica.zig:1145:28: 0x34bd37 in on_message_from_bus (simulator)
            self.on_message(message);
                           ^
/home/matklad/p/tb/sim/src/testing/cluster/network.zig:296:39: 0x4b7316 in deliver_message (simulator)
        target_bus.on_message_callback(target_bus, target_message);
                                      ^
/home/matklad/p/tb/sim/src/testing/packet_simulator.zig:378:45: 0x420a5e in tick (simulator)
                        link_packet.callback(link_packet.packet, path);
                                            ^
/home/matklad/p/tb/sim/src/testing/cluster/network.zig:134:38: 0x3e111c in tick (simulator)
        network.packet_simulator.tick();
                                     ^
/home/matklad/p/tb/sim/src/testing/cluster.zig:349:33: 0x38e337 in tick (simulator)
            cluster.network.tick();
                                ^
/home/matklad/p/tb/sim/src/simulator.zig:448:31: 0x362179 in tick (simulator)
        simulator.cluster.tick();

@matklad
Copy link
Member

matklad commented Feb 2, 2024

Ah, interesting, this lookslike a race between reply read and reply read!

We set fauly when a read completes with an error:

        fn on_request_reply_read_callback(
            client_replies: *ClientReplies,
            reply_header: *const Header.Reply,
            reply_: ?*Message.Reply,
            destination_replica: ?u8,
        ) void {
            const self = @fieldParentPtr(Self, "client_replies", client_replies);
            const reply = reply_ orelse {
                log.debug("{}: on_request_reply: reply not found for replica={} (checksum={})", .{
                    self.replica,
                    destination_replica.?,
                    reply_header.checksum,
                });

                if (self.client_sessions.get_slot_for_header(reply_header)) |slot| {
                    self.client_replies.faulty.set(slot.index);
                }
                return;
            };

and we unset faulty immediately when we enqueue a write.

So, if the sequence of events is:

  • enqueue read
  • enqueue write
  • complete read
  • complete write

the slot ends up being marked as faulty, although it isn't.

Additionally, I think theer's an unrelated (?) bug I've introduced into read_reply_sync :

I use if (!client_replies.writing.isSet(slot.index)) return null; as a fast path if there are ny writes, but writing only covers writes which are excuting, and doesn't cover writes which are queued...

matklad added a commit that referenced this issue Feb 5, 2024
- it might be the case that `writing` bitset is not set, but there's a
  write for the slot in the queue: replies can wait on read to complete.
- when a faulty read completes, it might clobber faulty bit, unset by a
  a write which was scheduled after the read.

SEED: 2517747396662708227
Closes: #1511
matklad added a commit that referenced this issue Feb 5, 2024
- it might be the case that `writing` bitset is not set, but there's a
  write for the slot in the queue: replies can wait on read to complete.
- when a faulty read completes, it might clobber faulty bit, unset by a
  a write which was scheduled after the read.

The specific series of events here:

1. Replica receives a RequestReply and starts a reply read
2. The read completes with a failure, replica sets the faulty bit
3. Replica receives RequestReply starts a reply read
4. Replica receives Reply and starts a reply write
    - the write unsets faulty bit
    - the write doesn't start, because there's a read executing
4. The read completes, setting the faulty bit _again_
5. Replica receives RequestReply
   - It _doesn't_ start reply read, because there's an in-progress write
     that can resolve a read.
   - But the faulty bit is set, tripping up an assertion.

To prevent the clobbering:

- Introduce `writing_or_queued(slot)` to check if we _will_ write to
  this slot soon (i.e, we are writing to it right now, _or_ there's a
  write queued, but not executing because there's also a pending read).
- When a faulty read complets, check if there are any pending writes,
  and avoid setting the faulty bit.

  In other words, the state of the `faulty` bit is determined by the
  order in which IO operations start.

Some alternative approaches here:

- Embrace the races: allow clobbering of faulty bit by an old read, and
  relax the assertion. If the clobbering happens, a replica will run one
  more repair, which isn't a big deal
- Properly resolve concurrent reads and writes, run read's callback
  _before_ we enqueue clobbering write.

SEED: 2517747396662708227
Closes: #1511
matklad added a commit that referenced this issue Feb 5, 2024
- it might be the case that `writing` bitset is not set, but there's a
  write for the slot in the queue: replies can wait on read to complete.
- when a faulty read completes, it might clobber faulty bit, unset by a
  a write which was scheduled after the read.

The specific series of events here:

1. Replica receives a RequestReply and starts a reply read
2. The read completes with a failure, replica sets the faulty bit
3. Replica receives RequestReply starts a reply read
4. Replica receives Reply and starts a reply write
    - the write unsets faulty bit
    - the write doesn't start, because there's a read executing
4. The read completes, setting the faulty bit _again_
5. Replica receives RequestReply
   - It _doesn't_ start reply read, because there's an in-progress write
     that can resolve a read.
   - But the faulty bit is set, tripping up an assertion.

The root issue here is the race between a read and a write for the same
reply. Remove the race by explicitly handling the interleaving:

* When submitting a read, resolve it immediately if there's a pending
  write (this was already handled by `read_reply_sync`)
* When submitting a write, resolve any pending reads for the same reply.
* Remove the code to block the write while the read is in-progress, as
  this is no longer possible.

Note that it is still possible that a read and a write for the same slot
race, if they target different replies. In this case, there won't be
clobbering, as, when the read completes, we double-check freshness by
consulting `client_sessions`.

SEED: 2517747396662708227
Closes: #1511
matklad added a commit that referenced this issue Feb 5, 2024
- it might be the case that `writing` bitset is not set, but there's a
  write for the slot in the queue: replies can wait on read to complete.
- when a faulty read completes, it might clobber faulty bit, unset by a
  a write which was scheduled after the read.

The specific series of events here:

1. Replica receives a RequestReply and starts a reply read
2. The read completes with a failure, replica sets the faulty bit
3. Replica receives RequestReply starts a reply read
4. Replica receives Reply and starts a reply write
    - the write unsets faulty bit
    - the write doesn't start, because there's a read executing
4. The read completes, setting the faulty bit _again_
5. Replica receives RequestReply
   - It _doesn't_ start reply read, because there's an in-progress write
     that can resolve a read.
   - But the faulty bit is set, tripping up an assertion.

The root issue here is the race between a read and a write for the same
reply. Remove the race by explicitly handling the interleaving:

* When submitting a read, resolve it immediately if there's a pending
  write (this was already handled by `read_reply_sync`)
* When submitting a write, resolve any pending reads for the same reply.
* Remove the code to block the write while the read is in-progress, as
  this is no longer possible.

Note that it is still possible that a read and a write for the same slot
race, if they target different replies. In this case, there won't be
clobbering, as, when the read completes, we double-check freshness by
consulting `client_sessions`.

SEED: 2517747396662708227
Closes: #1511
matklad added a commit that referenced this issue Feb 5, 2024
- it might be the case that `writing` bitset is not set, but there's a
  write for the slot in the queue: replies can wait on read to complete.
- when a faulty read completes, it might clobber faulty bit, unset by a
  a write which was scheduled after the read.

The specific series of events here:

1. Replica receives a RequestReply and starts a reply read
2. The read completes with a failure, replica sets the faulty bit
3. Replica receives RequestReply starts a reply read
4. Replica receives Reply and starts a reply write
    - the write unsets faulty bit
    - the write doesn't start, because there's a read executing
4. The read completes, setting the faulty bit _again_
5. Replica receives RequestReply
   - It _doesn't_ start reply read, because there's an in-progress write
     that can resolve a read.
   - But the faulty bit is set, tripping up an assertion.

The root issue here is the race between a read and a write for the same
reply. Remove the race by explicitly handling the interleaving:

* When submitting a read, resolve it immediately if there's a pending
  write (this was already handled by `read_reply_sync`)
* When submitting a write, resolve any pending reads for the same reply.
* Remove the code to block the write while the read is in-progress, as
  this is no longer possible.

Note that it is still possible that a read and a write for the same slot
race, if they target different replies. In this case, there won't be
clobbering, as, when the read completes, we double-check freshness by
consulting `client_sessions`.

SEED: 2517747396662708227
Closes: #1511
matklad added a commit that referenced this issue Feb 5, 2024
- it might be the case that `writing` bitset is not set, but there's a
  write for the slot in the queue: replies can wait on read to complete.
- when a faulty read completes, it might clobber faulty bit, unset by a
  a write which was scheduled after the read.

The specific series of events here:

1. Replica receives a RequestReply and starts a reply read
2. The read completes with a failure, replica sets the faulty bit
3. Replica receives RequestReply starts a reply read
4. Replica receives Reply and starts a reply write
    - the write unsets faulty bit
    - the write doesn't start, because there's a read executing
4. The read completes, setting the faulty bit _again_
5. Replica receives RequestReply
   - It _doesn't_ start reply read, because there's an in-progress write
     that can resolve a read.
   - But the faulty bit is set, tripping up an assertion.

The root issue here is the race between a read and a write for the same
reply. Remove the race by explicitly handling the interleaving:

* When submitting a read, resolve it immediately if there's a pending
  write (this was already handled by `read_reply_sync`)
* When submitting a write, resolve any pending reads for the same reply.
* Remove the code to block the write while the read is in-progress, as
  this is no longer possible.

Note that it is still possible that a read and a write for the same slot
race, if they target different replies. In this case, there won't be
clobbering, as, when the read completes, we double-check freshness by
consulting `client_sessions`.

SEED: 2517747396662708227
Closes: #1511
matklad added a commit that referenced this issue Feb 5, 2024
- it might be the case that `writing` bitset is not set, but there's a
  write for the slot in the queue: replies can wait on read to complete.
- when a faulty read completes, it might clobber faulty bit, unset by a
  a write which was scheduled after the read.

The specific series of events here:

1. Replica receives a RequestReply and starts a reply read
2. The read completes with a failure, replica sets the faulty bit
3. Replica receives RequestReply starts a reply read
4. Replica receives Reply and starts a reply write
    - the write unsets faulty bit
    - the write doesn't start, because there's a read executing
4. The read completes, setting the faulty bit _again_
5. Replica receives RequestReply
   - It _doesn't_ start reply read, because there's an in-progress write
     that can resolve a read.
   - But the faulty bit is set, tripping up an assertion.

The root issue here is the race between a read and a write for the same
reply. Remove the race by explicitly handling the interleaving:

* When submitting a read, resolve it immediately if there's a pending
  write (this was already handled by `read_reply_sync`)
* When submitting a write, resolve any pending reads for the same reply.
* Remove the code to block the write while the read is in-progress, as
  this is no longer possible.

Note that it is still possible that a read and a write for the same slot
race, if they target different replies. In this case, there won't be
clobbering, as, when the read completes, we double-check freshness by
consulting `client_sessions`.

SEED: 2517747396662708227
Closes: #1511
matklad added a commit that referenced this issue Feb 5, 2024
- it might be the case that `writing` bitset is not set, but there's a
  write for the slot in the queue: replies can wait on read to complete.
- when a faulty read completes, it might clobber faulty bit, unset by a
  a write which was scheduled after the read.

The specific series of events here:

1. Replica receives a RequestReply and starts a reply read
2. The read completes with a failure, replica sets the faulty bit
3. Replica receives RequestReply starts a reply read
4. Replica receives Reply and starts a reply write
    - the write unsets faulty bit
    - the write doesn't start, because there's a read executing
4. The read completes, setting the faulty bit _again_
5. Replica receives RequestReply
   - It _doesn't_ start reply read, because there's an in-progress write
     that can resolve a read.
   - But the faulty bit is set, tripping up an assertion.

The root issue here is the race between a read and a write for the same
reply. Remove the race by explicitly handling the interleaving:

* When submitting a read, resolve it immediately if there's a pending
  write (this was already handled by `read_reply_sync`)
* When submitting a write, resolve any pending reads for the same reply.
* Remove the code to block the write while the read is in-progress, as
  this is no longer possible.

Note that it is still possible that a read and a write for the same slot
race, if they target different replies. In this case, there won't be
clobbering, as, when the read completes, we double-check freshness by
consulting `client_sessions`.

SEED: 2517747396662708227
Closes: #1511
matklad added a commit that referenced this issue Feb 5, 2024
- it might be the case that `writing` bitset is not set, but there's a
  write for the slot in the queue: replies can wait on read to complete.
- when a faulty read completes, it might clobber faulty bit, unset by a
  a write which was scheduled after the read.

The specific series of events here:

1. Replica receives a RequestReply and starts a reply read
2. The read completes with a failure, replica sets the faulty bit
3. Replica receives RequestReply starts a reply read
4. Replica receives Reply and starts a reply write
    - the write unsets faulty bit
    - the write doesn't start, because there's a read executing
4. The read completes, setting the faulty bit _again_
5. Replica receives RequestReply
   - It _doesn't_ start reply read, because there's an in-progress write
     that can resolve a read.
   - But the faulty bit is set, tripping up an assertion.

The root issue here is the race between a read and a write for the same
reply. Remove the race by explicitly handling the interleaving:

* When submitting a read, resolve it immediately if there's a pending
  write (this was already handled by `read_reply_sync`)
* When submitting a write, resolve any pending reads for the same reply.
* Remove the code to block the write while the read is in-progress, as
  this is no longer possible.

Note that it is still possible that a read and a write for the same slot
race, if they target different replies. In this case, there won't be
clobbering, as, when the read completes, we double-check freshness by
consulting `client_sessions`.

SEED: 2517747396662708227
Closes: #1511
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants