diff --git a/liteeth/mac/core.py b/liteeth/mac/core.py index e423b06..21d5858 100644 --- a/liteeth/mac/core.py +++ b/liteeth/mac/core.py @@ -125,7 +125,8 @@ class LiteEthMACCore(Module, AutoCSR): if core_dw != 8: tx_datapath.add_last_be() # Gap insertion has to occurr in phy tx domain to ensure gap is correctly maintained - tx_datapath.add_gap() + if not getattr(phy, "integrated_ifg_inserter", False): + tx_datapath.add_gap() tx_datapath.pipeline.append(phy) self.submodules.tx_datapath = tx_datapath diff --git a/liteeth/phy/xgmii.py b/liteeth/phy/xgmii.py index 327bb37..196bcc6 100644 --- a/liteeth/phy/xgmii.py +++ b/liteeth/phy/xgmii.py @@ -17,66 +17,382 @@ XGMII_START = Constant(0xFB, bits_sign=8) XGMII_END = Constant(0xFD, bits_sign=8) class LiteEthPHYXGMIITX(Module): - def __init__(self, pads, dw): + def __init__(self, pads, dw, dic=True): # Enforce 64-bit data path assert dw == 64 # Sink for data to transmit self.sink = sink = stream.Endpoint(eth_phy_description(dw)) + # ---------- Generic signals ---------- + + # Masked last_be signal of current clock cycle. last_be should only be + # respected when last is also asserted. + masked_last_be = Signal.like(sink.last_be) + self.comb += [ + If(sink.last, + masked_last_be.eq(sink.last_be), + ), + ] + + # ---------- Inter-frame gap state ---------- + + # State to keep track of the current inter-frame gap we are required to + # maintain. We must take care to always have an inter-frame gap of at + # least 96 bits (12 bytes), with an exception for the deficit idle gap + # mechanism. Because XGMII transactions can only start on the first or + # fifth byte in a 64-bit bus word, it's sufficient to represent this as + # - 0: less than 4 bytes of IFG transmitted + # - 1: less than 8 bytes of IFG transmitted + # - 2: less than 12 bytes of IFG transmitted + # - 3: 12 or more bytes of IFG transmitted + current_ifg = Signal(max=4, reset=3) + next_ifg = Signal(max=4) + + # Shortcut "functions" to add a 32-bit or 64-bit idle bus word to the + # current inter-frame gap without worring about wrapping, or to reset it + # (typically on the start of a new transmission). This can be useful to + # see the effect on the next_ifg value and thus make decisions about + # subsequent signal states (e.g. sink.ready). + ifg_reset = Signal() + ifg_add_double = Signal() + ifg_add_single = Signal() + self.comb += [ + If(ifg_reset, + next_ifg.eq(0), + ).Elif(ifg_add_single, + If(current_ifg < 3, + next_ifg.eq(current_ifg + 1) + ), + ).Elif(ifg_add_double, + If(current_ifg < 2, + next_ifg.eq(current_ifg + 2), + ).Else( + next_ifg.eq(3), + ), + ).Else( + next_ifg.eq(current_ifg), + ), + ] + + self.sync += current_ifg.eq(next_ifg) + + # ---------- Deficit idle count mechanism state ---------- + + # Because XGMII only allows start of frame characters to be placed on + # lane 0 (first and fifth octet in a 64-bit bus word), when a packet's + # length % 4 != 0, we can't transmit exactly 12 XGMII idle characters + # inter-frame gap (the XGMII end of frame character counts towards the + # inter-frame gap, while start of frame does not). Given we are required + # to transmit a minimum of 12 bytes IFG, it's allowed to send packet + # length % 4 bytes additional IFG bytes. However this would waste + # precious bandwidth transmitting these characters. + # + # Thus, 10Gbit/s Ethernet and above allow using the deficit idle count + # mechanism. It allows to delete some idle characters, as long as an + # average count of >= 12 bytes IFG is maintained. This is to be + # implemented as a two bit counter as specified in IEEE802.3-2018, + # section four, 46.3.1.4 Start control character alignment. + # + # This module implements the deficit idle count algorithm as described + # by Eric Lynskey of the UNH InterOperability Lab[1]: + # + # | current | | | | | + # | count | 0 | 1 | 2 | 3 | + # |---------+-----+-------+-----+-------+-----+-------+-----+-------| + # | | | new | | new | | new | | new | + # | pkt % 4 | IFG | count | IFG | count | IFG | count | IFG | count | + # |---------+-----+-------+-----+-------+-----+-------+-----+-------| + # | 0 | 12 | 0 | 12 | 1 | 12 | 2 | 12 | 3 | + # | 1 | 11 | 1 | 11 | 2 | 11 | 3 | 15 | 0 | + # | 2 | 10 | 2 | 10 | 3 | 14 | 0 | 14 | 1 | + # | 3 | 9 | 3 | 13 | 0 | 13 | 1 | 13 | 2 | + # + # [1]: https://www.iol.unh.edu/sites/default/files/knowledgebase/10gec/10GbE_DIC.pdf + + + # Additional state to keep track of exactly how many bytes % 4 we've + # transmitted in the last packet. We need this information to judge + # whether we've had a sufficiently large IFG given the current DIC + # count. Value the range of [0; 3]. + # + # If we disable the deficit idle count, we replace this with a constant + # of 0, meaning that we pretend to not have transmitted any additional + # IDLE characters. This should allow significant logic optimizations + # while having the same effect as not implementing DIC at all. + if dic: + last_packet_rem = Signal(max=4) + else: + last_packet_rem = Constant(0, bits_sign=2) + + # Bounded counter of deleted XGMII idle characters. Must be within [0; + # 3]. If we disable the deficit idle count mechanism, this signal should + # not change. However, it's still present to avoid the logic below + # getting too complex. + current_dic = Signal(max=4, reset=3) + + + # ---------- Shifted transmit state ---------- + + # Whether the current transmission is shifted, meaning that the packet's + # transmission started on the fifth octect within the 64-bit bus + # word. As a consequence of the shifted transmission, given that we + # receive 64 valid bits from the sink, we need to store and delay the + # upper half of the current clock cycle's data to the next. + # + # This register is to be set when transitioning out of the IDLE + # state. + transmit_shifted = Signal() + + # Upper half of the data of the previous clock cycle. + prev_valid_data = Signal(dw) + prev_valid_last_be = Signal(dw // 8) + self.sync += [ + If(sink.valid & sink.ready, + prev_valid_data.eq(sink.data), + If(sink.last, + prev_valid_last_be.eq(masked_last_be) + ).Else( + prev_valid_last_be.eq(0), + ), + ), + ] + + # Previous clock cycle sink valid signal + prev_valid = Signal() + self.sync += prev_valid.eq(sink.valid) + + # Adjusted sink data & last_be. If our transmission is shifted, this + # will contain the upper-half of the previous and lower-half of the + # current clock cycle. Otherwise, simply equal to data and the masked + # last_be. + adjusted_sink_valid = Signal() + adjusted_sink_valid_data = Signal.like(sink.data) + adjusted_sink_valid_last_be = Signal.like(sink.last_be) + self.comb += [ + If(transmit_shifted, + # Because we are injecting data from the previous cycle, we need + # to respect it's valid. It's fine that adjusted_sink_valid + # therefore is deasserted for the very first bus word, given + # this is handled in the IDLE fsm state still. This assumes a + # non-hostile sink where valid is constantly asserted during a + # single transmission. + adjusted_sink_valid.eq(prev_valid), + adjusted_sink_valid_data.eq(Cat( + prev_valid_data[(dw // 2):], + sink.data[:(dw // 2)], + )), + adjusted_sink_valid_last_be.eq(Cat( + prev_valid_last_be[(dw // 8 // 2):], + masked_last_be[:(dw // 8 // 2)], + )), + ).Else( + adjusted_sink_valid.eq(sink.valid), + adjusted_sink_valid_data.eq(sink.data), + adjusted_sink_valid_last_be.eq(masked_last_be), + ), + ] + + # ---------- XGMII transmission logic ---------- + # Transmit FSM self.submodules.fsm = fsm = FSM(reset_state="IDLE") + # This block will be executed by the FSM below in the IDLE state, when + # it's time to start a transmission aligned on the FIRST byte in a + # 64-bit bus word. This can happen both because we've waited the 12 byte + # IFG and coincidentally the first byte is the next valid start point, + # or because we reduced the IFG to 8 bytes because of the deficit idle + # count mechanism. Thus have it as a reusable component here. + unshifted_idle_transmit = [ + # Currently idling, but a new frame is ready for transmission + # and we had at least the full IFG idle before. Thus transmit + # the preamble, but replace the first byte with the XGMII start + # of frame control character. Accept more data. + ifg_reset.eq(1), + pads.tx_ctl.eq(0x01), + pads.tx_data.eq(Cat(XGMII_START, sink.data[8:dw])), + NextValue(transmit_shifted, 0), + NextValue(sink.ready, 1), + NextState("TRANSMIT"), + ] + + # This block will be executed by the FSM below in the IDLE state, when + # it's time to start a transmission aligned on the FIFTH byte in a + # 64-bit bus word. This can happen either because we've waited the 8 + # byte IFG and need to insert only four bytes more in this cycle, or + # because the deficit idle count mechanism allows transmit with a + # smaller IFG (e.g. 1 bits packet remainder + 4 bytes TRANSMIT IFG in + # previous cycle + 4 bytes IDLE ID in current cycle = 9 bytes total + # IFG). + shifted_idle_transmit = [ + # Currently idling, but a new frame is ready for transmission and + # there is only 4 bytes missing in the IFG (or we have created an + # acceptable IFG deficit). Thus transmit the preamble on the second + # 32-bit bus word, but replace the first byte with the XGMII start + # of frame control character. Accept more data. + pads.tx_ctl.eq(0x1F), + pads.tx_data.eq(Cat( + Replicate(XGMII_IDLE, 4), + XGMII_START, + sink.data[8:(dw // 2)], + )), + ifg_reset.eq(1), + NextValue(transmit_shifted, 1), + NextValue(sink.ready, 1), + NextState("TRANSMIT"), + ] + fsm.act("IDLE", - If(sink.valid, - # Currently idling, but a new frame is ready for - # transmission. Thus transmit the preamble, but replace the - # first byte with the XGMII start of frame control - # character. Accept more data. - pads.tx_ctl.eq(0x01), - pads.tx_data.eq(Cat(XGMII_START, sink.data[8:dw])), - NextValue(sink.ready, 1), - NextState("TRANSMIT"), + If(sink.valid & (current_ifg == 3), + # Branch A: we've transmitted at least the full 12 bytes + # IFG. This means that we can unconditionally start transmission + # on the first octet. In addition to that, we may have inserted + # some extra XGMII, thus we can reduce the deficit. + *unshifted_idle_transmit, + If(current_dic - last_packet_rem < 0, + NextValue(current_dic, 0), + ).Else( + NextValue(current_dic, current_dic - last_packet_rem), + ) + ).Elif(sink.valid & (current_ifg == 2), + # Branch B: we've transmitted at least 8 bytes of IFG. This + # means that we can either, depending on the DIC start + # transmission on the first or fith octect. Manipulate the DIC + # count accordingly. + If((last_packet_rem != 0) + & (current_dic + last_packet_rem <= 3), + # We've taken some extra IFG bytes (added to the deficit) + *unshifted_idle_transmit, + NextValue(current_dic, current_dic + last_packet_rem), + ).Else( + # We might have inserted some extra IFG bytes (subtracted + # from the deficit) + *shifted_idle_transmit, + If(current_dic - last_packet_rem < 0, + NextValue(current_dic, 0), + ).Else( + NextValue(current_dic, current_dic - last_packet_rem), + ) + ), + ).Elif(sink.valid & (current_ifg == 1) & (last_packet_rem != 0) + & (current_dic + last_packet_rem <= 3), + # Branch C: we've transmitted at least 4 bytes of IFG. Whether + # we can start a new transmission here depends on the DIC. In + # any case, we're deleting at least one XGMII idle character, + # which we need to keep track of. Furthermore, transmission can + # only ever start on the fifth octect here. + *shifted_idle_transmit, + NextValue(current_dic, current_dic + last_packet_rem), ).Else( - # Idling, transmit XGMII IDLE control characters - # only. Accept more data. + # Idling, transmit XGMII IDLE control characters only and add + # them to the IFG. pads.tx_ctl.eq(0xFF), pads.tx_data.eq(Cat(*([XGMII_IDLE] * 8))), - NextValue(sink.ready, 1), + ifg_add_double.eq(1), + + # Accept more data if we've had a sufficiently large inter-frame + # gap (accounting for deficit idle count). For this we need to + # determine whether the next sink.valid clock cycle will take a + # given branch of A, B or C. + If((next_ifg >= 2) + | ((next_ifg == 1) & (last_packet_rem != 0) + & (current_dic + last_packet_rem <= 3)), + # Branch A, B or C will be taken as soon as sink.valid + # again, thus accept more data. + NextValue(sink.ready, 1), + ).Else( + # We haven't transmitted a sufficient IFG. The next + # sink.valid clock cycle will not start a transmission. + NextValue(sink.ready, 0), + ), + + # If we've remained in IDLE because the sink is not yet valid, + # even though the full IFG has been sent already, remove any + # deficit idle count. We've made up for that by now. + If(current_ifg >= 2, + NextValue(current_dic, 0), + ), + NextState("IDLE"), ) ) + # How many bytes % 4 we've transmitted in the current packet. This + # signal is to be asserted when the packet ends in the current clock + # cycle. + # + # If we disable the deficit idle count, we replace this with a constant + # of 0, meaning that we pretend to not have transmitted any additional + # IDLE characters. This should allow significant logic optimizations. + if dic: + current_packet_rem = Signal(max=4) + else: + current_packet_rem = Constant(0, bits_sign=2) + + # Wether the current transmission must be ended in the next clock + # cycle. This might be required if we haven't transmitted the XGMII end + # of frame control character, but send all other data of the packet. + end_transmission = Signal() + fsm.act("TRANSMIT", # Check whether the data is still valid first or we are are not # ready to accept a new transmission. - If(~sink.valid | ~sink.ready, - # Data isn't valid, or we aren't ready to accept a new - # transmission yet as another one has ended but the XGMII end of - # frame control character has not been transmitted. We must - # transmit the end of frame marker and return to - # afterwards. Immediately accept more data, given we have - # transmitted the end of frame control character. + If(end_transmission | ~adjusted_sink_valid, + # Data isn't valid, but we're still in the transmit state. This + # can happen because we've finished transmitting all packet + # data, but must still transmit the XGMII end of frame control + # character. Thus put this control character and IDLE on the + # line, return to IDLE afterwards. pads.tx_ctl.eq(0xFF), pads.tx_data.eq(Cat(XGMII_END, Replicate(XGMII_IDLE, 7))), + # Also, we're transmitting 64 bits worth of idle characters. + ifg_add_double.eq(1), + # We're transmitting 8 bytes of IFG in this cycle. Thus we know + # that in the next cycle we can for sure start a new + # transmission, irrespective of whether we use DIC (either on + # the first or fifth byte in the 64-bit word). Thus set + # sink.ready accordingly. NextValue(sink.ready, 1), + # Packet transmission is complete, return to IDLE and reset the + # end_transmission register. + NextValue(end_transmission, 0), NextState("IDLE"), ).Else( # The data is valid. For each byte, determine whether it is # valid or must be an XGMII idle or end of frame control # character based on the value of last_be. *[ - If(~sink.last | (sink.last_be >= (1 << i)), + If((adjusted_sink_valid_last_be == 0) + | (adjusted_sink_valid_last_be >= (1 << i)), # Either not the last data word or last_be indicates # this byte is still valid pads.tx_ctl[i].eq(0), - pads.tx_data[8*i:8*(i+1)].eq(sink.data[8*i:8*(i+1)]), - ).Elif((sink.last_be == (1 << (i - 1))) if i > 0 else 0, + pads.tx_data[8*i:8*(i+1)].eq( + adjusted_sink_valid_data[8*i:8*(i+1)] + ), + ).Elif((adjusted_sink_valid_last_be == (1 << (i - 1))) + if i > 0 else 0, # last_be indicates that this byte is the first one # which is no longer valid, hence transmit the XGMII end # of frame character pads.tx_ctl[i].eq(1), pads.tx_data[8*i:8*(i+1)].eq(XGMII_END), + # Also, starting from this character, the inter-frame + # gap starts. Depending on where we are in the bus word + # (index 0 to 4) we can already count cycle as one + # 32-bit IFG step (the XGMII end of frame character + # counts towards the IFG). + If(i < 5, + ifg_add_single.eq(1), + ), + # If the DIC mechanism is enabled, furthermore keep + # track of the remainder (mod 4) of IDLE bytes being + # sent. + *([ + current_packet_rem.eq(i % 4), + NextValue(last_packet_rem, i % 4), + ] if dic else []), ).Else( # We must've transmitted the XGMII end of frame control # character, all other bytes must be XGMII idle control @@ -93,15 +409,42 @@ class LiteEthPHYXGMIITX(Module): # XGMII bus word containing the XGMII end of frame and idle # control characters. This happens if we remain in the TRANSMIT # state. - If(~sink.last, - NextValue(sink.ready, 1), + If(adjusted_sink_valid_last_be == 0, + # This hasn't been the last bus word. However, before we can + # tell the data sink to send us additional data, in case + # we're performing a shifted transmission, we must see + # whether the current sink data word already indicates the + # end of data in it's upper half. If so, we must not request + # additional data. Otherwise we could loose valid data, as + # we're transmitting the IFG first. + If(transmit_shifted & sink.last + & ((sink.last_be & 0xF0) != 0), + # We're in a shifted transmit and already have received + # the last data bytes from the sink. + NextValue(sink.ready, 0), + ).Else( + # Everything's good, the sink hasn't yet asserted last. + NextValue(sink.ready, 1), + ), NextState("TRANSMIT"), - ).Elif(sink.last_be == (1 << 7), - # Last data word, but all bytes were valid. + ).Elif(adjusted_sink_valid_last_be == (1 << 7), + # Last data word, but all bytes were valid. Thus we still + # need to transmit the XGMII end control character. + NextValue(end_transmission, 1), NextValue(sink.ready, 0), NextState("TRANSMIT"), ).Else( - NextValue(sink.ready, 1), + # We did already transmit the XGMII end control + # character. Depending on the interframegap sent as part of + # this cycle and the current deficit idle count, we might + # already be able to accept data in the next clock cycle. + If((next_ifg >= 2) + | ((next_ifg == 1) & (last_packet_rem != 0) + & (current_dic + last_packet_rem <= 3)), + NextValue(sink.ready, 1), + ).Else( + NextValue(sink.ready, 0), + ), NextState("IDLE"), ) ) @@ -310,12 +653,19 @@ class LiteEthPHYXGMII(Module, AutoCSR): pads, model=False, dw=64, - with_hw_init_reset=True): + with_hw_init_reset=True, + dic=True, + ): self.dw = dw self.cd_eth_tx, self.cd_eth_rx = "eth_tx", "eth_rx" + self.integrated_ifg_inserter = True self.submodules.crg = LiteEthPHYXGMIICRG(clock_pads, model) self.submodules.tx = ClockDomainsRenamer(self.cd_eth_tx)( - LiteEthPHYXGMIITX(pads, self.dw)) + LiteEthPHYXGMIITX( + pads, + self.dw, + dic=dic, + )) self.submodules.rx = ClockDomainsRenamer(self.cd_eth_rx)( LiteEthPHYXGMIIRX(pads, self.dw)) self.sink, self.source = self.tx.sink, self.rx.source diff --git a/test/assets/xgmii_bus_capture.csv b/test/assets/xgmii_bus_capture.csv new file mode 100644 index 0000000..ffd1257 --- /dev/null +++ b/test/assets/xgmii_bus_capture.csv @@ -0,0 +1,2877 @@ +# Capture of a XGMII bus connecting two transceivers, recording traffic between +# two computers performing an iperf3 TCP bandwidth measurement. This is useful +# to test the XGMII to stream converter (LiteEth "phy"). +# +# This data is tightly packed and uses the deficit idle count mechanism, but is +# not too interesting per se. It rather serves as a template for tests in case +# the LiteEth XGMII to stream converter fails for some edge cases, to provide an +# easy mechanism to reproduce these issues with an inspectable test bench. +# +# Capturing this data is quite easy with two working XGMII-interfaced +# transceivers and a sufficently large Xilinx FPGA. Instantiate an integrated +# logic analyzer (ILA) core on the respective signals, trigger in the right +# moment and export as CSV. +# +# `test/test_xgmii_phy.py` contains an XGMII64bCSVReader, which maps a file like +# this to signals usable in a Migen testbench. See `test_xgmii_rx` or +# `test_xgmii_stream_loopback` for examples on how to use this test +# infrastructure. +# +# This data can be used under the terms and conditions of the CC0 1.0 Universal +# (CC0 1.0) Public Domain Dedication. +# +# - Leon Schuermann +# +Sample in Buffer,Sample in Window,TRIGGER,rx_data[63:0],rx_ctl[7:0],tx_data[63:0],tx_ctl[7:0] +Radix - UNSIGNED,UNSIGNED,UNSIGNED,HEX,HEX,HEX,HEX +0,0,0,0afcd23eb7bf6324,00,0707070707070707,ff +1,1,0,744d05bb8f3f8fc6,00,0707070707070707,ff +2,2,0,c1a7c37d9dd9a999,00,0707070707070707,ff +3,3,0,e83fe5756663331b,00,0707070707070707,ff +4,4,0,1501054817fb5f66,00,0707070707070707,ff +5,5,0,064a4b5ac1e75eca,00,0707070707070707,ff +6,6,0,44019d161fec6d6a,00,0707070707070707,ff +7,7,0,b01d83013d1d2496,00,0707070707070707,ff +8,8,0,9ba00bb492dbe6bc,00,0707070707070707,ff +9,9,0,0c5567f77b47deda,00,0707070707070707,ff +10,10,0,1490470d7cc5e22c,00,0707070707070707,ff +11,11,0,37c93d6c6ee07c30,00,0707070707070707,ff +12,12,0,525424bd996d9e8f,00,0707070707070707,ff +13,13,0,ac103e3398573938,00,0707070707070707,ff +14,14,0,299ed8a57dd3b34f,00,0707070707070707,ff +15,15,0,204d4e5175fe86e4,00,0707070707070707,ff +16,16,0,7ab5165bf50febe2,00,0707070707070707,ff +17,17,0,5f72e66396ce248b,00,0707070707070707,ff +18,18,0,3e4b58515154c6c6,00,0707070707070707,ff +19,19,0,abecb746b5a2d270,00,0707070707070707,ff +20,20,0,635ea27dc10518ac,00,0707070707070707,ff +21,21,0,8e57f066be89acb1,00,0707070707070707,ff +22,22,0,3ece9f7b9f9e6f31,00,0707070707070707,ff +23,23,0,2c3f88f02ea03920,00,0707070707070707,ff +24,24,0,459a4bdec7dca18d,00,0707070707070707,ff +25,25,0,be0c52898df0475d,00,0707070707070707,ff +26,26,0,840a6d7f6948a5bb,00,0707070707070707,ff +27,27,0,989e8c011e2a2a0a,00,0707070707070707,ff +28,28,0,644c646691bfcbf4,00,0707070707070707,ff +29,29,0,dc34149774b76cd0,00,0707070707070707,ff +30,30,0,23f78d80017ab614,00,0707070707070707,ff +31,31,0,949b7afa5dc3cc33,00,0707070707070707,ff +32,32,0,309da4e66ab48aec,00,0707070707070707,ff +33,33,0,a70d2eb1e42633e1,00,0707070707070707,ff +34,34,0,7a11f29c95befba4,00,0707070707070707,ff +35,35,0,27b9e9a9ab5a32fd,00,0707070707070707,ff +36,36,0,db1f6033e6714e94,00,0707070707070707,ff +37,37,0,307fe63a15c98d3f,00,0707070707070707,ff +38,38,0,3ac6810a7e57f314,00,0707070707070707,ff +39,39,0,5e2561bc4fa37bc2,00,0707070707070707,ff +40,40,0,10df9b38b8d05829,00,0707070707070707,ff +41,41,0,3bdeb0a14d180f8e,00,0707070707070707,ff +42,42,0,eac02651cee6da11,00,0707070707070707,ff +43,43,0,b4b4448c387fc7ff,00,0707070707070707,ff +44,44,0,9c51891dcbdcdc2d,00,0707070707070707,ff +45,45,0,a3c0296caa53484e,00,0707070707070707,ff +46,46,0,c84e46f2e8d7045c,00,0707070707070707,ff +47,47,0,873a80411d571a6f,00,0707070707070707,ff +48,48,0,a1bcb4a32437ee5d,00,0707070707070707,ff +49,49,0,b8c99c566c31f0ec,00,0707070707070707,ff +50,50,0,3dfc23dba85967cd,00,0707070707070707,ff +51,51,0,ab3e2c63ced64b2d,00,0707070707070707,ff +52,52,0,d4f8b729cfbbff63,00,0707070707070707,ff +53,53,0,ba2c37133a44469d,00,0707070707070707,ff +54,54,0,8aef5f0f5c46c5e5,00,0707070707070707,ff +55,55,0,33a8f5a1d0139e9a,00,0707070707070707,ff +56,56,0,a3d78783f1ba4090,00,0707070707070707,ff +57,57,0,8221c2b94a66c1b2,00,0707070707070707,ff +58,58,0,e7e1637787d1713f,00,0707070707070707,ff +59,59,0,66562cfa946e3026,00,0707070707070707,ff +60,60,0,560a3ae159dff4f1,00,0707070707070707,ff +61,61,0,f14eaa7a0f6e2a8d,00,0707070707070707,ff +62,62,0,d6c7ffeb501acea0,00,0707070707070707,ff +63,63,0,0a014008c523a929,00,0707070707070707,ff +64,64,0,50dab5c068e625d2,00,0707070707070707,ff +65,65,0,eef40717ae77c2c7,00,0707070707070707,ff +66,66,0,a2f9b954e3d39da1,00,0707070707070707,ff +67,67,0,d68c02090ecb5af2,00,0707070707070707,ff +68,68,0,e2afe1c407670dc3,00,0707070707070707,ff +69,69,0,44e3630f7c5275e5,00,0707070707070707,ff +70,70,0,f6ef875717c64bd8,00,0707070707070707,ff +71,71,0,37cf0ad87c02f511,00,0707070707070707,ff +72,72,0,c283d04a35a40592,00,0707070707070707,ff +73,73,0,e2a17f1f37863864,00,0707070707070707,ff +74,74,0,d84346eef69fecca,00,0707070707070707,ff +75,75,0,de08498ea6dcabc1,00,0707070707070707,ff +76,76,0,67512d05dabfa409,00,0707070707070707,ff +77,77,0,e5cf799f27849d10,00,0707070707070707,ff +78,78,0,cd2e660c4659e3f3,00,0707070707070707,ff +79,79,0,a23f8bd307506c90,00,0707070707070707,ff +80,80,0,12e3bf5acd2ce92e,00,0707070707070707,ff +81,81,0,74434190f837fcc7,00,0707070707070707,ff +82,82,0,b5cffe36155f350c,00,0707070707070707,ff +83,83,0,64dac0ca04fe4ffb,00,0707070707070707,ff +84,84,0,fad579855e6b4f85,00,0707070707070707,ff +85,85,0,241c73064c4815ac,00,0707070707070707,ff +86,86,0,aef901b107680d1c,00,0707070707070707,ff +87,87,0,f6da5094065658dd,00,0707070707070707,ff +88,88,0,47c84fdab720b3e2,00,0707070707070707,ff +89,89,0,05d922e05e78e5d4,00,0707070707070707,ff +90,90,0,02579269172c3c1a,00,0707070707070707,ff +91,91,0,50ddb938b1966f68,00,0707070707070707,ff +92,92,0,117d587970a65a3e,00,0707070707070707,ff +93,93,0,405d4b24e18dd79c,00,0707070707070707,ff +94,94,0,ac0d80104200988e,00,0707070707070707,ff +95,95,0,2da17479e12e5243,00,0707070707070707,ff +96,96,0,377dda9bd573db0e,00,0707070707070707,ff +97,97,0,fa8e533a1acb69eb,00,0707070707070707,ff +98,98,0,838f9bf46199c004,00,0707070707070707,ff +99,99,0,d814e01bce145cbb,00,0707070707070707,ff +100,100,0,8cb9ee8066b59c9e,00,0707070707070707,ff +101,101,0,a61e0437d7703ca5,00,0707070707070707,ff +102,102,0,c8b3a21fa07ed430,00,0707070707070707,ff +103,103,0,deebc3b01089af71,00,0707070707070707,ff +104,104,0,d0dc6abd76f0fa10,00,0707070707070707,ff +105,105,0,3b3aa1797b9b1f1e,00,0707070707070707,ff +106,106,0,7d8f331783233d34,00,0707070707070707,ff +107,107,0,922064984f4a82f2,00,0707070707070707,ff +108,108,0,3a31f7e28653c660,00,0707070707070707,ff +109,109,0,f086f87926a5ebc8,00,0707070707070707,ff +110,110,0,173df68aded963e9,00,0707070707070707,ff +111,111,0,6ed3c08d06ff7172,00,0707070707070707,ff +112,112,0,f1d8daaed76dc9e6,00,0707070707070707,ff +113,113,0,a23f4f6c32dd6e7d,00,0707070707070707,ff +114,114,0,9177a12abdd3623b,00,0707070707070707,ff +115,115,0,94a34e4741c5a830,00,0707070707070707,ff +116,116,0,b8b87a6919dd9776,00,0707070707070707,ff +117,117,0,acb8fe8e833d24b2,00,0707070707070707,ff +118,118,0,ea28b8b41e883e03,00,0707070707070707,ff +119,119,0,abf68864bc86ee6e,00,0707070707070707,ff +120,120,0,b6239fd51b46a408,00,0707070707070707,ff +121,121,0,4dbaa79386381c56,00,0707070707070707,ff +122,122,0,5b91bac647fff75f,00,0707070707070707,ff +123,123,0,5bec2edd374fa167,00,0707070707070707,ff +124,124,0,d8656587bde214a4,00,0707070707070707,ff +125,125,0,5cabb96a7d604044,00,0707070707070707,ff +126,126,0,7f0a3c9b8b52b900,00,0707070707070707,ff +127,127,0,d8b231fdbfc3214c,00,0707070707070707,ff +128,128,0,a66bca0779dc8105,00,0707070707070707,ff +129,129,0,f47962afd0058390,00,0707070707070707,ff +130,130,0,17be1856254a103e,00,0707070707070707,ff +131,131,0,ff8f28dbda248f0f,00,0707070707070707,ff +132,132,0,56af37a65e7869cf,00,0707070707070707,ff +133,133,0,67a3d24a98047998,00,0707070707070707,ff +134,134,0,3a2074f58cda1756,00,0707070707070707,ff +135,135,0,c15abb79861b952b,00,0707070707070707,ff +136,136,0,2e59cf5f4a317507,00,0707070707070707,ff +137,137,0,4e755dfd69ccde8b,00,0707070707070707,ff +138,138,0,644664448b81575c,00,0707070707070707,ff +139,139,0,a275c1d8a0a464ec,00,0707070707070707,ff +140,140,0,d8d832c7d14430f1,00,0707070707070707,ff +141,141,0,21fdd7b27fb1e6b6,00,0707070707070707,ff +142,142,0,618a96f1c7654e99,00,0707070707070707,ff +143,143,0,760b0f05d28fda22,00,0707070707070707,ff +144,144,0,955bd7cc0c15101b,00,0707070707070707,ff +145,145,0,d04bf3931f076b68,00,0707070707070707,ff +146,146,0,c814b1b5ba416c32,00,0707070707070707,ff +147,147,0,17220f5d00536fea,00,0707070707070707,ff +148,148,0,2f1a53d05a4afeae,00,0707070707070707,ff +149,149,0,a1a732c3581e2ce3,00,0707070707070707,ff +150,150,0,06f1e452959a1962,00,0707070707070707,ff +151,151,0,80467f44b655fc93,00,0707070707070707,ff +152,152,0,4d203a942a57bf4d,00,0707070707070707,ff +153,153,0,07fde62e0ca578c4,c0,0707070707070707,ff +154,154,0,0707070707070707,ff,0707070707070707,ff +155,155,0,555555fb07070707,1f,0707070707070707,ff +156,156,0,2aede000d5555555,00,0707070707070707,ff +157,157,0,af2644be5e242e6f,00,0707070707070707,ff +158,158,0,0b0adc0500450008,00,0707070707070707,ff +159,159,0,a8c0bda106400040,00,0707070707070707,ff +160,160,0,3ecc0104a8c00204,00,0707070707070707,ff +161,161,0,37e0ea35e7ac5114,00,0707070707070707,ff +162,162,0,6041f6011080e7c4,00,0707070707070707,ff +163,163,0,35f60a0801010000,00,0707070707070707,ff +164,164,0,b84c341facc68277,00,0707070707070707,ff +165,165,0,df4973754d36fee6,00,0707070707070707,ff +166,166,0,3d3050408f07579d,00,0707070707070707,ff +167,167,0,3a2f47298e21565c,00,0707070707070707,ff +168,168,0,48e58a9f06a9ccc8,00,0707070707070707,ff +169,169,0,8c77626faa746b15,00,0707070707070707,ff +170,170,0,7d8cf0e97d90d1cf,00,0707070707070707,ff +171,171,0,5b144110b9f2a5b9,00,0707070707070707,ff +172,172,0,24fa572bdf58b5ec,00,0707070707070707,ff +173,173,0,5fc44762d1f18aed,00,0707070707070707,ff +174,174,0,a00a9c4e986f5500,00,0707070707070707,ff +175,175,0,7233cb66e538e70d,00,0707070707070707,ff +176,176,0,f7b97a36a6e628da,00,0707070707070707,ff +177,177,0,cc68d0754873eb65,00,0707070707070707,ff +178,178,0,1a26ef84311e83c2,00,0707070707070707,ff +179,179,0,54c7906441b5336e,00,0707070707070707,ff +180,180,0,f08a29710e70c9b7,00,0707070707070707,ff +181,181,0,7731b1898f362ebd,00,0707070707070707,ff +182,182,0,5b975c4667295db9,00,0707070707070707,ff +183,183,0,988ba6882c1b43cc,00,0707070707070707,ff +184,184,0,38bd38908974d3b8,00,0707070707070707,ff +185,185,0,e085f20416edbefd,00,0707070707070707,ff +186,186,0,cf8cb5c6f5397d9f,00,0707070707070707,ff +187,187,0,8a9e9e74787fbcea,00,0707070707070707,ff +188,188,0,f8e94c6808cfce48,00,0707070707070707,ff +189,189,0,18d212f58107f296,00,0707070707070707,ff +190,190,0,a6b09ed2c7c09a6c,00,0707070707070707,ff +191,191,0,7dd7ee04e56914a8,00,0707070707070707,ff +192,192,0,af9a59090afa5cb7,00,0707070707070707,ff +193,193,0,fb7b5f2845619c83,00,0707070707070707,ff +194,194,0,0586e41d1caa34b4,00,0707070707070707,ff +195,195,0,b555c0885bc8ffb6,00,0707070707070707,ff +196,196,0,29838f310ddecee6,00,0707070707070707,ff +197,197,0,38f1aa020a846225,00,0707070707070707,ff +198,198,0,d5ba88f9c7ee89d8,00,0707070707070707,ff +199,199,0,3590aaa631492c62,00,0707070707070707,ff +200,200,0,3413166f5b09fcd0,00,0707070707070707,ff +201,201,0,96bd096ff2864aa7,00,0707070707070707,ff +202,202,0,1c625c3a12f41f88,00,0707070707070707,ff +203,203,0,057e811b9539a919,00,0707070707070707,ff +204,204,0,ecde2182524a0c17,00,0707070707070707,ff +205,205,0,4d33ea88d51d69af,00,0707070707070707,ff +206,206,0,9e7cab34192de3c3,00,0707070707070707,ff +207,207,0,0eb2742a88f4011d,00,0707070707070707,ff +208,208,0,5bf3b12c6784a1cd,00,0707070707070707,ff +209,209,0,ea0571b83b91986a,00,0707070707070707,ff +210,210,0,128030a41b816cb3,00,0707070707070707,ff +211,211,0,0f55184ebbc5202c,00,0707070707070707,ff +212,212,0,fc27038bef44d965,00,0707070707070707,ff +213,213,0,dc80ccc11734ff1c,00,0707070707070707,ff +214,214,0,9e5d2e7b4f9b948a,00,0707070707070707,ff +215,215,0,0fe370d110407af0,00,0707070707070707,ff +216,216,0,3f9f8cb16ff250c3,00,0707070707070707,ff +217,217,0,0c55151bf0ed0d47,00,0707070707070707,ff +218,218,0,f4e0e84b8f21ffae,00,0707070707070707,ff +219,219,0,fd5378b1a3cac3b1,00,0707070707070707,ff +220,220,0,2175029da248bfa8,00,0707070707070707,ff +221,221,0,d5695d2201701980,00,0707070707070707,ff +222,222,0,359d31abf0eb3746,00,0707070707070707,ff +223,223,0,1aa0e53193f6bf4c,00,0707070707070707,ff +224,224,0,51a9999fc32a8788,00,0707070707070707,ff +225,225,0,5d0219f01a52e273,00,0707070707070707,ff +226,226,0,7eb2fbcdd26e2f21,00,0707070707070707,ff +227,227,0,76c1034b16fdc17e,00,0707070707070707,ff +228,228,0,e3932236201c0296,00,0707070707070707,ff +229,229,0,44d0fce2762b52d8,00,0707070707070707,ff +230,230,0,ffb9b9438b3c4f29,00,0707070707070707,ff +231,231,0,afa3a59ad667e7c2,00,0707070707070707,ff +232,232,0,72b15f84b5fcb841,00,0707070707070707,ff +233,233,0,9371232736c4bbed,00,0707070707070707,ff +234,234,0,41553b42925b0678,00,0707070707070707,ff +235,235,0,84b9366a04d3899e,00,0707070707070707,ff +236,236,0,c738618b138c29c3,00,0707070707070707,ff +237,237,0,97e3f14e8315ef8c,00,0707070707070707,ff +238,238,0,c850f25919fe4f87,00,0707070707070707,ff +239,239,0,9343481e817ef910,00,0707070707070707,ff +240,240,0,c5beb90854d1b517,00,0707070707070707,ff +241,241,0,ea6b11886f1817b3,00,0707070707070707,ff +242,242,0,7ca52ba1eb29d7e9,00,0707070707070707,ff +243,243,0,1369b01a8f7b8b88,00,0707070707070707,ff +244,244,0,3bb5565d76c4c797,00,0707070707070707,ff +245,245,0,a1a767a311755b7d,00,0707070707070707,ff +246,246,0,029973c9b1ea1e0d,00,0707070707070707,ff +247,247,0,896f2cd10b47f2c6,00,0707070707070707,ff +248,248,0,cc913429d5bd55f6,00,0707070707070707,ff +249,249,0,7e55d50f1177dfc5,00,0707070707070707,ff +250,250,0,ec978789c6838f7d,00,0707070707070707,ff +251,251,0,9cdb8ed9dcf1e505,00,0707070707070707,ff +252,252,0,5cf2791aa92d8788,00,0707070707070707,ff +253,253,0,7ed7d48f51c829cb,00,0707070707070707,ff +254,254,0,499655f025152883,00,0707070707070707,ff +255,255,0,c99739d06b87f37b,00,0707070707070707,ff +256,256,0,96d3c7fefa6f3dca,00,0707070707070707,ff +257,257,0,89877cdb63135b1f,00,0707070707070707,ff +258,258,0,e34c6a01c38c3d94,00,0707070707070707,ff +259,259,0,cf813c1cfb1bea35,00,0707070707070707,ff +260,260,0,6b29b21c8db7c495,00,0707070707070707,ff +261,261,0,f5227e4ac595fa28,00,0707070707070707,ff +262,262,0,674dc8927e0d5428,00,0707070707070707,ff +263,263,0,4a404848420cea45,00,0707070707070707,ff +264,264,0,9079259e537d2292,00,0707070707070707,ff +265,265,0,fa56201624fea4bc,00,0707070707070707,ff +266,266,0,d76cd5424e61ae9e,00,0707070707070707,ff +267,267,0,335c5f0a282c07a8,00,0707070707070707,ff +268,268,0,63ee30ca4148da4e,00,0707070707070707,ff +269,269,0,ae35d74c44fc5f7d,00,0707070707070707,ff +270,270,0,ef16cd6b64992d08,00,0707070707070707,ff +271,271,0,7c9bd86ef311bcc2,00,0707070707070707,ff +272,272,0,4a4531a068766e44,00,0707070707070707,ff +273,273,0,1c108a0727b30b69,00,0707070707070707,ff +274,274,0,65a816db6f2ac3e1,00,0707070707070707,ff +275,275,0,83fc90a566326fb4,00,0707070707070707,ff +276,276,0,162e3dc09ff4c110,00,0707070707070707,ff +277,277,0,27002483420f7388,00,0707070707070707,ff +278,278,0,ca2330893970dfe0,00,0707070707070707,ff +279,279,0,243a2726fc0a9390,00,0707070707070707,ff +280,280,0,90e98533d7774eed,00,0707070707070707,ff +281,281,0,7e94d7990b831578,00,0707070707070707,ff +282,282,0,3173e1c598039553,00,0707070707070707,ff +283,283,0,b2c467c01c80e051,00,0707070707070707,ff +284,284,0,1245ce488494841a,00,0707070707070707,ff +285,285,0,7a2610753312cf49,00,0707070707070707,ff +286,286,0,fad4c4fceaaecd58,00,0707070707070707,ff +287,287,0,2283683ec9d71722,00,0707070707070707,ff +288,288,0,5f2299fc15556de5,00,0707070707070707,ff +289,289,0,dd90c11ed802b5db,00,0707070707070707,ff +290,290,0,0938929d3c214424,00,0707070707070707,ff +291,291,0,04480408ccac5938,00,0707070707070707,ff +292,292,0,800d5e2a196397fe,00,0707070707070707,ff +293,293,0,f5f489049bc7f09c,00,0707070707070707,ff +294,294,0,82b8846053983e4f,00,0707070707070707,ff +295,295,0,ac531e8a8b431a73,00,0707070707070707,ff +296,296,0,c0c68810206873fc,00,0707070707070707,ff +297,297,0,e2c57b8b1a5b9af7,00,0707070707070707,ff +298,298,0,d1e99f5577378d69,00,0707070707070707,ff +299,299,0,3d38e5a816790091,00,0707070707070707,ff +300,300,0,f4cbb806b3963a33,00,0707070707070707,ff +301,301,0,51f1e567e78d2bb2,00,0707070707070707,ff +302,302,0,93c4fdf92aa504b9,00,0707070707070707,ff +303,303,0,3d1e4982fa4f8d2a,00,0707070707070707,ff +304,304,0,513ef8f08c00b9b1,00,0707070707070707,ff +305,305,0,9ac41eac25b7224e,00,0707070707070707,ff +306,306,0,17954155187e9844,00,0707070707070707,ff +307,307,0,25eaa72d036a92ab,00,0707070707070707,ff +308,308,0,b59cc4566f29cfb9,00,0707070707070707,ff +309,309,0,415cd3b80e2589e5,00,0707070707070707,ff +310,310,0,cce2e2be637ad9c5,00,0707070707070707,ff +311,311,0,f2956e1b7aa7499d,00,0707070707070707,ff +312,312,0,e5e9a78e8dcd25ee,00,0707070707070707,ff +313,313,0,64a9d5a671264056,00,0707070707070707,ff +314,314,0,a4fb564d8a895d72,00,0707070707070707,ff +315,315,0,39d6b3be395a922c,00,0707070707070707,ff +316,316,0,c680ebb3fde30f0e,00,0707070707070707,ff +317,317,0,18f4255ff718c207,00,0707070707070707,ff +318,318,0,c5b0b50301a1f20a,00,0707070707070707,ff +319,319,0,954eb62faadb4ce0,00,0707070707070707,ff +320,320,0,d4aea210f2086c3b,00,0707070707070707,ff +321,321,0,114af341d209616b,00,0707070707070707,ff +322,322,0,41735a85ca223de8,00,0707070707070707,ff +323,323,0,5451ec0f4ef71fa1,00,0707070707070707,ff +324,324,0,0dd0a0fb9f395eb4,00,0707070707070707,ff +325,325,0,7bdf2e818c4af7a2,00,0707070707070707,ff +326,326,0,95398693ccf13622,00,0707070707070707,ff +327,327,0,4b670900bb113dbe,00,0707070707070707,ff +328,328,0,270d2d5ca81319a8,00,0707070707070707,ff +329,329,0,cfa4829c9f9f0be3,00,0707070707070707,ff +330,330,0,fb920201e8873654,00,0707070707070707,ff +331,331,0,c8d538e7870d5dfd,00,0707070707070707,ff +332,332,0,dc66ed47daf4cb15,00,0707070707070707,ff +333,333,0,8591d0ddafdedc98,00,0707070707070707,ff +334,334,0,ff63be4b639b2618,00,0707070707070707,ff +335,335,0,3cc5c9f66036c918,00,0707070707070707,ff +336,336,0,333f2c7182c37532,00,0707070707070707,ff +337,337,0,b4ba1ed111c3cfdd,00,0707070707070707,ff +338,338,0,db4d4ed92fd413cc,00,0707070707070707,ff +339,339,0,26cc7c1afca59344,00,0707070707070707,ff +340,340,0,bb690757cb7dafd7,00,0707070707070707,ff +341,341,0,9082da1c87b87055,00,0707070707070707,ff +342,342,0,dc5453c7d2f749fa,00,0707070707070707,ff +343,343,0,0502b2e020046727,00,0707070707070707,ff +344,344,0,796c3be45321239b,00,0707070707070707,ff +345,345,0,0c28e4973095e492,00,0707070707070707,ff +346,346,0,0707070707fd9cf7,fc,0707070707070707,ff +347,347,0,555555fb07070707,1f,0707070707070707,ff +348,348,0,2aede000d5555555,00,0707070707070707,ff +349,349,0,af2644be5e242e6f,00,0707070707070707,ff +350,350,0,0c0adc0500450008,00,0707070707070707,ff +351,351,0,a8c0bca106400040,00,0707070707070707,ff +352,352,0,3ecc0104a8c00204,00,0707070707070707,ff +353,353,0,37e0923be7ac5114,00,0707070707070707,ff +354,354,0,dcc0f6011080e7c4,00,0707070707070707,ff +355,355,0,35f60a0801010000,00,0707070707070707,ff +356,356,0,981c341facc68277,00,0707070707070707,ff +357,357,0,726de0e701d5daf4,00,0707070707070707,ff +358,358,0,45e2751a55274f57,00,0707070707070707,ff +359,359,0,81f5ab7f0b0052c1,00,0707070707070707,ff +360,360,0,bb9b218e97713e13,00,0707070707070707,ff +361,361,0,6e6d6925aa26afc9,00,0707070707070707,ff +362,362,0,038b41fa95a18122,00,0707070707070707,ff +363,363,0,1d2ee510280d9cfe,00,0707070707070707,ff +364,364,0,2eca910821160469,00,0707070707070707,ff +365,365,0,9c9b216849819a63,00,0707070707070707,ff +366,366,0,db73c0d4c08f7579,00,0707070707070707,ff +367,367,0,8d048154026154d7,00,0707070707070707,ff +368,368,0,6bb7d7761e6a701d,00,0707070707070707,ff +369,369,0,367133ebb10b4c5d,00,0707070707070707,ff +370,370,0,8fc5152478d9bd77,00,0707070707070707,ff +371,371,0,de9224f93a891e33,00,0707070707070707,ff +372,372,0,e043220e3584ad6c,00,0707070707070707,ff +373,373,0,d3720e4e9d15219b,00,0707070707070707,ff +374,374,0,8f8e7a83a47aac52,00,0707070707070707,ff +375,375,0,3c18a6ba466dab93,00,0707070707070707,ff +376,376,0,cffafc432cfac408,00,0707070707070707,ff +377,377,0,133e133685d3c929,00,0707070707070707,ff +378,378,0,7a1a6629438e66d5,00,0707070707070707,ff +379,379,0,11641525aac4037a,00,0707070707070707,ff +380,380,0,9495c8e98c33460f,00,0707070707070707,ff +381,381,0,513dd507a34bd4e1,00,0707070707070707,ff +382,382,0,bae364608cf8e7a7,00,0707070707070707,ff +383,383,0,04c00df2b888a93c,00,0707070707070707,ff +384,384,0,03b86c6d8db7e2fd,00,0707070707070707,ff +385,385,0,fb705771d46a20e6,00,0707070707070707,ff +386,386,0,313a916ede8935e0,00,0707070707070707,ff +387,387,0,0337b8d6431b5b20,00,0707070707070707,ff +388,388,0,832dd62ef6c5b355,00,0707070707070707,ff +389,389,0,2fbe0003dd8062d2,00,0707070707070707,ff +390,390,0,986054ef85ed944d,00,0707070707070707,ff +391,391,0,dffbd35f452c2b84,00,0707070707070707,ff +392,392,0,c2595d32bc29a257,00,0707070707070707,ff +393,393,0,70d201f809d3d84f,00,0707070707070707,ff +394,394,0,a8df4c3b66b42bd6,00,0707070707070707,ff +395,395,0,b30aa72b41c9968d,00,0707070707070707,ff +396,396,0,772c27afdd721e16,00,0707070707070707,ff +397,397,0,2f7ce9166ab9674d,00,0707070707070707,ff +398,398,0,9f830ecb8cd95104,00,0707070707070707,ff +399,399,0,600bf2fe945e8ab7,00,0707070707070707,ff +400,400,0,ddc1d3d88191e5c9,00,0707070707070707,ff +401,401,0,da22034f85605a5f,00,0707070707070707,ff +402,402,0,751bf079fb776e7d,00,0707070707070707,ff +403,403,0,c26fe5fd7705a915,00,0707070707070707,ff +404,404,0,668d0c6ad7e39d4e,00,0707070707070707,ff +405,405,0,c5ce63b2579578f8,00,0707070707070707,ff +406,406,0,65991d25b18d948a,00,0707070707070707,ff +407,407,0,cd511d608b46a660,00,0707070707070707,ff +408,408,0,343e09273c4d5cf6,00,0707070707070707,ff +409,409,0,abf26e279c16ea43,00,0707070707070707,ff +410,410,0,1020c7710fa2736c,00,0707070707070707,ff +411,411,0,52688b4408810507,00,0707070707070707,ff +412,412,0,7fa2286380fd4bba,00,0707070707070707,ff +413,413,0,47fcdf958e424a72,00,0707070707070707,ff +414,414,0,6def1484cba3db22,00,0707070707070707,ff +415,415,0,635777ccd665b431,00,0707070707070707,ff +416,416,0,addc8f1f824e16b0,00,0707070707070707,ff +417,417,0,e74d01a8cad9de4b,00,0707070707070707,ff +418,418,0,75a3781023e18e0b,00,0707070707070707,ff +419,419,0,3bbafab087f1b12b,00,0707070707070707,ff +420,420,0,d8dba19d6aebe0c2,00,0707070707070707,ff +421,421,0,e9942cdc1640921e,00,0707070707070707,ff +422,422,0,ebdb105432c36b24,00,0707070707070707,ff +423,423,0,5b8e9bb3a78f34c9,00,0707070707070707,ff +424,424,0,d2a67f5ca8237708,00,0707070707070707,ff +425,425,0,112d183abca5678e,00,0707070707070707,ff +426,426,0,9695fa15a6623d40,00,0707070707070707,ff +427,427,0,2b09d9f1d39561d9,00,0707070707070707,ff +428,428,0,0e5e122cb9bda5ce,00,0707070707070707,ff +429,429,0,b298f7b6abb66797,00,0707070707070707,ff +430,430,0,ab610ac063b8e445,00,0707070707070707,ff +431,431,0,89a55e06d36ac4f6,00,0707070707070707,ff +432,432,0,599ef2ab2b6b5462,00,0707070707070707,ff +433,433,0,212fbd4982a54003,00,0707070707070707,ff +434,434,0,df1d2612d2081b1f,00,0707070707070707,ff +435,435,0,ce6cb5cfc57ff4bb,00,0707070707070707,ff +436,436,0,7432c78eec12cd51,00,0707070707070707,ff +437,437,0,34d42094589f8f30,00,0707070707070707,ff +438,438,0,bbedbf43289c7904,00,0707070707070707,ff +439,439,0,454caba50e912dc9,00,0707070707070707,ff +440,440,0,d111b8f70c3a3667,00,0707070707070707,ff +441,441,0,68382bd825197c2a,00,0707070707070707,ff +442,442,0,6d7351c4b6a463c5,00,0707070707070707,ff +443,443,0,681d21f7336a85dc,00,0707070707070707,ff +444,444,0,2875b0530e0084bc,00,0707070707070707,ff +445,445,0,c3482d89c1237b56,00,0707070707070707,ff +446,446,0,78523c8e7582e27f,00,0707070707070707,ff +447,447,0,c22e4fd609c6f307,00,0707070707070707,ff +448,448,0,13fdeb5d5496aca1,00,0707070707070707,ff +449,449,0,dbcd5038d21516dc,00,0707070707070707,ff +450,450,0,9a7c7f7a349b2e60,00,0707070707070707,ff +451,451,0,d61fa89b96c3cbcd,00,0707070707070707,ff +452,452,0,8f57d7422b407f7e,00,0707070707070707,ff +453,453,0,cbb6e27dd9734d65,00,0707070707070707,ff +454,454,0,7da0cb153f47dd6f,00,0707070707070707,ff +455,455,0,f52f8664d89fd763,00,0707070707070707,ff +456,456,0,4d8588bc1ad3022c,00,0707070707070707,ff +457,457,0,1712e9a5cf46a683,00,0707070707070707,ff +458,458,0,932073f9aa71857b,00,0707070707070707,ff +459,459,0,e441d0e862169683,00,0707070707070707,ff +460,460,0,1d45e25311bbc882,00,0707070707070707,ff +461,461,0,d7979ed637470063,00,0707070707070707,ff +462,462,0,09839164a15b73e5,00,0707070707070707,ff +463,463,0,5c3514317089768f,00,0707070707070707,ff +464,464,0,408b14cb14fd51d7,00,0707070707070707,ff +465,465,0,6d910a812340f7e1,00,0707070707070707,ff +466,466,0,1928b8218c6e28c3,00,0707070707070707,ff +467,467,0,07a2f73a1b6568b8,00,0707070707070707,ff +468,468,0,d7e0ab9f9fa4af21,00,0707070707070707,ff +469,469,0,98645ddf88efbc94,00,0707070707070707,ff +470,470,0,f16bb71199ddd3f9,00,0707070707070707,ff +471,471,0,df649fdbbd4e5751,00,0707070707070707,ff +472,472,0,0c9e9a49c873f010,00,0707070707070707,ff +473,473,0,94753b89d803e831,00,0707070707070707,ff +474,474,0,5e18269d02a21b4a,00,0707070707070707,ff +475,475,0,061616919f9e3dd9,00,0707070707070707,ff +476,476,0,f78c0c3145625e82,00,0707070707070707,ff +477,477,0,a21e2ad0a5fc57f9,00,0707070707070707,ff +478,478,0,15a8aa086a980a2e,00,0707070707070707,ff +479,479,0,a62251ce8e702825,00,0707070707070707,ff +480,480,0,a7624ad6c8047e7e,00,0707070707070707,ff +481,481,0,e3c21119ca68d874,00,0707070707070707,ff +482,482,0,3280c664fb00a238,00,0707070707070707,ff +483,483,0,fc178db4fddf9abf,00,0707070707070707,ff +484,484,0,625484bc954a232b,00,0707070707070707,ff +485,485,0,d67c162da49a8f16,00,0707070707070707,ff +486,486,0,58307e66c0ed47d9,00,0707070707070707,ff +487,487,0,0b61b9a587f5b8d1,00,0707070707070707,ff +488,488,0,038c11b88a9ba006,00,0707070707070707,ff +489,489,0,ba28a91eb5d88302,00,0707070707070707,ff +490,490,0,8492d66dc66ffacb,00,0707070707070707,ff +491,491,0,0ec865fcb3c66def,00,0707070707070707,ff +492,492,0,6ab046b3dfb4653e,00,0707070707070707,ff +493,493,0,69128b4c88cdaf48,00,0707070707070707,ff +494,494,0,0c57917d4c1c1ef2,00,0707070707070707,ff +495,495,0,da82ce80b8dc69c7,00,0707070707070707,ff +496,496,0,e2355e23428bd03e,00,0707070707070707,ff +497,497,0,2cf576a2436daac6,00,0707070707070707,ff +498,498,0,bf3c2b62071997ab,00,0707070707070707,ff +499,499,0,f2041466c7a9455c,00,0707070707070707,ff +500,500,0,269f227d9c9a73da,00,0707070707070707,ff +501,501,0,9350bfe3c28a90f9,00,0707070707070707,ff +502,502,0,39379fee89b8f11c,00,0707070707070707,ff +503,503,0,93c695095e3830a1,00,0707070707070707,ff +504,504,0,7f1edc5f73f3368e,00,0707070707070707,ff +505,505,0,847a0ded3b3037d9,00,0707070707070707,ff +506,506,0,301652f2b881f9ff,00,0707070707070707,ff +507,507,0,661d174601f156b1,00,0707070707070707,ff +508,508,0,9b5f7efda3437711,00,0707070707070707,ff +509,509,0,964ad0e3068e4870,00,0707070707070707,ff +510,510,0,592d6d63fd450e19,00,0707070707070707,ff +511,511,0,7ba83f6b25672654,00,0707070707070707,ff +512,512,0,89ea0076f707c683,00,0707070707070707,ff +513,513,0,cbcb2d83efd1b8cb,00,0707070707070707,ff +514,514,0,411fbf9addaf5595,00,0707070707070707,ff +515,515,0,9defbf7e2448c71f,00,0707070707070707,ff +516,516,0,d837465113d21cde,00,0707070707070707,ff +517,517,0,e931fa351c6f2f7f,00,0707070707070707,ff +518,518,0,84c6b2e3cef9e59b,00,0707070707070707,ff +519,519,0,0fe646ec346656c1,00,0707070707070707,ff +520,520,0,dda279ff143ec06f,00,0707070707070707,ff +521,521,0,3372cf1d9d5e5153,00,0707070707070707,ff +522,522,0,4a7d372792b7c0f1,00,0707070707070707,ff +523,523,0,c6a0e55002f8eeb2,00,0707070707070707,ff +524,524,0,0e8c8f97aa5530e0,00,0707070707070707,ff +525,525,0,95a435e92edd14cc,00,0707070707070707,ff +526,526,0,76917e321f3a2f3d,00,0707070707070707,ff +527,527,0,e8c60207e3644810,00,0707070707070707,ff +528,528,0,8ba5f885d7c80d4d,00,0707070707070707,ff +529,529,0,0be2460a3cda01a0,00,0707070707070707,ff +530,530,0,85d5adeb366ab029,00,0707070707070707,ff +531,531,0,3f6c5a49b4689a6f,00,0707070707070707,ff +532,532,0,b42402dee6f7d399,00,0707070707070707,ff +533,533,0,bcdb41cca2299ab8,00,0707070707070707,ff +534,534,0,fd65b4bd046b8b54,00,0707070707070707,ff +535,535,0,865b017cfedb3938,00,0707070707070707,ff +536,536,0,54a904f67120bae9,00,0707070707070707,ff +537,537,0,d8654f21b8506a1b,00,0707070707070707,ff +538,538,0,0707070707fd561a,fc,0707070707070707,ff +539,539,0,0707070707070707,ff,0707070707070707,ff +540,540,0,d5555555555555fb,01,0707070707070707,ff +541,541,0,5e242e6f2aede000,00,0707070707070707,ff +542,542,0,00450008af2644be,00,0707070707070707,ff +543,543,0,064000400d0adc05,00,0707070707070707,ff +544,544,0,a8c00204a8c0bba1,00,0707070707070707,ff +545,545,0,e7ac51143ecc0104,00,0707070707070707,ff +546,546,0,1080e7c437e03a41,00,0707070707070707,ff +547,547,0,010100000d6cf601,00,0707070707070707,ff +548,548,0,acc6827735f60a08,00,0707070707070707,ff +549,549,0,7b09e0d04104341f,00,0707070707070707,ff +550,550,0,5bbec6b55a73b09f,00,0707070707070707,ff +551,551,0,f704f98c2c757180,00,0707070707070707,ff +552,552,0,7dc562becf04365c,00,0707070707070707,ff +553,553,0,66703664aa743041,00,0707070707070707,ff +554,554,0,e32eeca731501847,00,0707070707070707,ff +555,555,0,b589f49d51aab54f,00,0707070707070707,ff +556,556,0,5b98c3132a7909db,00,0707070707070707,ff +557,557,0,f7a76e8d7af7a015,00,0707070707070707,ff +558,558,0,caaa1f33faab5e2f,00,0707070707070707,ff +559,559,0,fa69c76279792cc1,00,0707070707070707,ff +560,560,0,64f3affbb3fa4b93,00,0707070707070707,ff +561,561,0,3446500bf784952a,00,0707070707070707,ff +562,562,0,4f26c700fc137a8b,00,0707070707070707,ff +563,563,0,64472dc03c38b269,00,0707070707070707,ff +564,564,0,2ce56a6b8eac45f1,00,0707070707070707,ff +565,565,0,d992fa995a44271c,00,0707070707070707,ff +566,566,0,9afb97f71e64cc27,00,0707070707070707,ff +567,567,0,984d8a434c6fe53d,00,0707070707070707,ff +568,568,0,a5c87c61d7638306,00,0707070707070707,ff +569,569,0,0785b71fb8096673,00,0707070707070707,ff +570,570,0,6eaec97a20472c6a,00,0707070707070707,ff +571,571,0,722447e975f9b0eb,00,0707070707070707,ff +572,572,0,447a4f1adc2a1363,00,0707070707070707,ff +573,573,0,87b8e455dc8a6d96,00,0707070707070707,ff +574,574,0,3d8c567dece4466a,00,0707070707070707,ff +575,575,0,4242c5dc70fdedb3,00,0707070707070707,ff +576,576,0,f2c2e0102b5728b4,00,0707070707070707,ff +577,577,0,8e10e484a828ac55,00,0707070707070707,ff +578,578,0,57a129620bbbfc9d,00,0707070707070707,ff +579,579,0,7fb2dfe551593646,00,0707070707070707,ff +580,580,0,3cf64d89de8d37bb,00,0707070707070707,ff +581,581,0,1e44ac7c3d6c2f1d,00,0707070707070707,ff +582,582,0,b62ee5742d55fbbf,00,0707070707070707,ff +583,583,0,9f82cf4a29bf42d2,00,0707070707070707,ff +584,584,0,646efd2cea4264b6,00,0707070707070707,ff +585,585,0,0aaf269fd2ba1f5d,00,0707070707070707,ff +586,586,0,f4397ba18da61c82,00,0707070707070707,ff +587,587,0,7e9576d07d1ffb20,00,0707070707070707,ff +588,588,0,377010ee7674d820,00,0707070707070707,ff +589,589,0,2abecd3ab9dc3f37,00,0707070707070707,ff +590,590,0,48cfa8a2b4690200,00,0707070707070707,ff +591,591,0,4da093f608310512,00,0707070707070707,ff +592,592,0,be39d9c77f46661e,00,0707070707070707,ff +593,593,0,c1fd6150bbaa2894,00,0707070707070707,ff +594,594,0,dd4750a3b954e9ad,00,0707070707070707,ff +595,595,0,f9af1c66ca4a7f77,00,0707070707070707,ff +596,596,0,b8af35954f0af553,00,0707070707070707,ff +597,597,0,1493061db493e607,00,0707070707070707,ff +598,598,0,82598e86be9c90b2,00,0707070707070707,ff +599,599,0,b9a591c5282a18a3,00,0707070707070707,ff +600,600,0,fd073dda42d5d922,00,0707070707070707,ff +601,601,0,5667abb3e8cdbb2d,00,0707070707070707,ff +602,602,0,6cfd66b956a0c7b2,00,0707070707070707,ff +603,603,0,6f73851f40aa0a83,00,0707070707070707,ff +604,604,0,f2083a0614936c0a,00,0707070707070707,ff +605,605,0,5792306585353a17,00,0707070707070707,ff +606,606,0,b965fcf6509dd007,00,0707070707070707,ff +607,607,0,3a64bd110dfc6ed2,00,0707070707070707,ff +608,608,0,40857b28598bec80,00,0707070707070707,ff +609,609,0,88437b838ae9b9d5,00,0707070707070707,ff +610,610,0,0c596b60634517ad,00,0707070707070707,ff +611,611,0,34d6959c6e3db14d,00,0707070707070707,ff +612,612,0,a13ffbcbfc23e2c9,00,0707070707070707,ff +613,613,0,774696400cc063c4,00,0707070707070707,ff +614,614,0,26540511c6bc72a6,00,0707070707070707,ff +615,615,0,864bf8658ae43c3d,00,0707070707070707,ff +616,616,0,c0ab814b5cfc116d,00,0707070707070707,ff +617,617,0,d2c8e3ebf553a029,00,0707070707070707,ff +618,618,0,d031e748e2efd4c8,00,0707070707070707,ff +619,619,0,f6425a316702e4f3,00,0707070707070707,ff +620,620,0,e7b2939f104157f7,00,0707070707070707,ff +621,621,0,30db0aebf7eac8c5,00,0707070707070707,ff +622,622,0,39f4f01410dffc59,00,0707070707070707,ff +623,623,0,05e63050d032395a,00,0707070707070707,ff +624,624,0,07098847df42aca3,00,0707070707070707,ff +625,625,0,69ccf1e5c08a3369,00,0707070707070707,ff +626,626,0,ca898f1e9105de21,00,0707070707070707,ff +627,627,0,635e8f236b6f0e27,00,0707070707070707,ff +628,628,0,5084278a3e81d811,00,0707070707070707,ff +629,629,0,a4ffc84ae55c0a13,00,0707070707070707,ff +630,630,0,32a52510940e0ba1,00,0707070707070707,ff +631,631,0,0542e7db01bbbc68,00,0707070707070707,ff +632,632,0,70f70dc896843b88,00,0707070707070707,ff +633,633,0,435a0d9818ea3884,00,0707070707070707,ff +634,634,0,43833a4aefa81ceb,00,0707070707070707,ff +635,635,0,59e855954327c150,00,0707070707070707,ff +636,636,0,599314c87c5a2c0e,00,0707070707070707,ff +637,637,0,0f330fb688dcd64f,00,0707070707070707,ff +638,638,0,442b0b8e93176c78,00,0707070707070707,ff +639,639,0,0ff4d31c5527451f,00,0707070707070707,ff +640,640,0,143546856bf1b5a6,00,0707070707070707,ff +641,641,0,8eae95c3ac04512c,00,0707070707070707,ff +642,642,0,7ebe2894cde0b468,00,0707070707070707,ff +643,643,0,c1ba03e6ae260d95,00,0707070707070707,ff +644,644,0,d9c7cc6930fa123a,00,0707070707070707,ff +645,645,0,82b003682ae40aee,00,0707070707070707,ff +646,646,0,efbf1868049e7f2b,00,0707070707070707,ff +647,647,0,6f8e4cd7247f0ff0,00,0707070707070707,ff +648,648,0,85c5217d8c404ad1,00,0707070707070707,ff +649,649,0,e17af5bbffa6eed1,00,0707070707070707,ff +650,650,0,a70dbfa86ea2acc6,00,0707070707070707,ff +651,651,0,2c0395f7701fa0ee,00,0707070707070707,ff +652,652,0,e248bbe8276e9a4c,00,0707070707070707,ff +653,653,0,5e2f8d583ebd95e4,00,0707070707070707,ff +654,654,0,7286448f2bde7a4b,00,0707070707070707,ff +655,655,0,c3fd7732cf13d42d,00,0707070707070707,ff +656,656,0,c3111d2ec4b140ea,00,0707070707070707,ff +657,657,0,1b2c7ff83d68ac9f,00,0707070707070707,ff +658,658,0,fb45bd7113aa105f,00,0707070707070707,ff +659,659,0,fc324f1f9179cb4b,00,0707070707070707,ff +660,660,0,23cba0e4a93e395a,00,0707070707070707,ff +661,661,0,b5b5eadc33eee300,00,0707070707070707,ff +662,662,0,46ae572dc9247898,00,0707070707070707,ff +663,663,0,e6ef49a1634f1c7c,00,0707070707070707,ff +664,664,0,6807e87b372ab8e1,00,0707070707070707,ff +665,665,0,a319ba43b36456b0,00,0707070707070707,ff +666,666,0,2ced14829c6f8d05,00,0707070707070707,ff +667,667,0,3f54fa8fb514faa6,00,0707070707070707,ff +668,668,0,3bcdff7411c03dd0,00,0707070707070707,ff +669,669,0,a0d5993b3879d05e,00,0707070707070707,ff +670,670,0,f411d48686357689,00,0707070707070707,ff +671,671,0,b515c06596a29bf7,00,0707070707070707,ff +672,672,0,b90fcf54bbfc3ad2,00,0707070707070707,ff +673,673,0,99779ba917dd57ee,00,0707070707070707,ff +674,674,0,2e31d2dd5610fdfd,00,0707070707070707,ff +675,675,0,bce96816df707ffb,00,0707070707070707,ff +676,676,0,ee23574b4928dfd0,00,0707070707070707,ff +677,677,0,9afcf9ddfedffbfe,00,0707070707070707,ff +678,678,0,4d203db069d14e8b,00,0707070707070707,ff +679,679,0,8ef7631e8f9c0e0a,00,0707070707070707,ff +680,680,0,8b0a5fe7c7a3adda,00,0707070707070707,ff +681,681,0,576439ed7fc0d2ee,00,0707070707070707,ff +682,682,0,a6b2bc293a02ea62,00,0707070707070707,ff +683,683,0,eea345808cb687c4,00,0707070707070707,ff +684,684,0,f23f8b3c8aa98518,00,0707070707070707,ff +685,685,0,dd9ce1d296cc146c,00,0707070707070707,ff +686,686,0,83d44733703f0840,00,0707070707070707,ff +687,687,0,4fdf5077af73b86c,00,0707070707070707,ff +688,688,0,c1c04bb792ea927f,00,0707070707070707,ff +689,689,0,54842b1bb81fbfcf,00,0707070707070707,ff +690,690,0,edb401fe2d15e132,00,0707070707070707,ff +691,691,0,3818d738327fd970,00,0707070707070707,ff +692,692,0,8473fb1e02281903,00,0707070707070707,ff +693,693,0,9773bb351b1e1bd8,00,0707070707070707,ff +694,694,0,5f20ee2aca7c7783,00,0707070707070707,ff +695,695,0,3f956812f42cd8e7,00,0707070707070707,ff +696,696,0,7e7ec9875e8e2394,00,0707070707070707,ff +697,697,0,2ac4d7aa44706f5d,00,0707070707070707,ff +698,698,0,75680d30495da4a0,00,0707070707070707,ff +699,699,0,9f0ba962cb98998b,00,0707070707070707,ff +700,700,0,cf22460ce65d1808,00,0707070707070707,ff +701,701,0,2d517cd2c68ed075,00,0707070707070707,ff +702,702,0,2dc32907218dab87,00,0707070707070707,ff +703,703,0,3cd3278dc7ccbb2f,00,0707070707070707,ff +704,704,0,43a8e89eefd2a568,00,0707070707070707,ff +705,705,0,1d1b0a0aea1e21eb,00,0707070707070707,ff +706,706,0,47a66227896fd9ca,00,0707070707070707,ff +707,707,0,e84a28cb263df755,00,0707070707070707,ff +708,708,0,ffdb2ba9785c43da,00,0707070707070707,ff +709,709,0,2fd2181fe94dc301,00,0707070707070707,ff +710,710,0,b4f1f9c352544950,00,0707070707070707,ff +711,711,0,18939dedae970dfc,00,0707070707070707,ff +712,712,0,0ed10b1971b17d5e,00,0707070707070707,ff +713,713,0,fdb0625b4c8ec01b,00,0707070707070707,ff +714,714,0,8e2e2e0c7f35ff06,00,0707070707070707,ff +715,715,0,61be2828a35af0ce,00,0707070707070707,ff +716,716,0,33a0f5a48d1e9305,00,0707070707070707,ff +717,717,0,048088494927150f,00,0707070707070707,ff +718,718,0,a7909e929ac23f5a,00,0707070707070707,ff +719,719,0,7722b32d19fc5bdb,00,0707070707070707,ff +720,720,0,d354e5c382d47709,00,0707070707070707,ff +721,721,0,0dead40c80487e4a,00,0707070707070707,ff +722,722,0,f6184fd64e69b3bb,00,0707070707070707,ff +723,723,0,fe598adadca453ea,00,0707070707070707,ff +724,724,0,c32f963d0be679da,00,0707070707070707,ff +725,725,0,bf5975c8615a6aa7,00,0707070707070707,ff +726,726,0,adcf9b85cef1b2e2,00,0707070707070707,ff +727,727,0,89b72ef351878ba9,00,0707070707070707,ff +728,728,0,027425e151bb389b,00,0707070707070707,ff +729,729,0,179ce2c0049130ff,00,0707070707070707,ff +730,730,0,07fdd6ca4f864450,c0,0707070707070707,ff +731,731,0,0707070707070707,ff,0707070707070707,ff +732,732,0,d5555555555555fb,01,0707070707070707,ff +733,733,0,5e242e6f2aede000,00,0707070707070707,ff +734,734,0,00450008af2644be,00,0707070707070707,ff +735,735,0,064000400e0adc05,00,0707070707070707,ff +736,736,0,a8c00204a8c0baa1,00,0707070707070707,ff +737,737,0,e7ac51143ecc0104,00,0707070707070707,ff +738,738,0,1080e7c437e0e246,00,0707070707070707,ff +739,739,0,01010000ca29f601,00,0707070707070707,ff +740,740,0,acc6827735f60a08,00,0707070707070707,ff +741,741,0,f34c6e80e494341f,00,0707070707070707,ff +742,742,0,5e06f6b51195987f,00,0707070707070707,ff +743,743,0,2882f7bbda8c603c,00,0707070707070707,ff +744,744,0,2ccc88423f766392,00,0707070707070707,ff +745,745,0,2bdc2aa7d7cf5471,00,0707070707070707,ff +746,746,0,685a4d37351e1c35,00,0707070707070707,ff +747,747,0,dd85502aa98d7db6,00,0707070707070707,ff +748,748,0,0a98d529de121c7f,00,0707070707070707,ff +749,749,0,04c6c77448f537bf,00,0707070707070707,ff +750,750,0,bbd2d7dc80bfd074,00,0707070707070707,ff +751,751,0,8b934ed57809c8b4,00,0707070707070707,ff +752,752,0,89799f7409358f7a,00,0707070707070707,ff +753,753,0,6fd0e9a199c1b86d,00,0707070707070707,ff +754,754,0,233282a0427e996c,00,0707070707070707,ff +755,755,0,e4ff90d31f67eb95,00,0707070707070707,ff +756,756,0,478b8c526cff8b9d,00,0707070707070707,ff +757,757,0,41a19710f0ea0516,00,0707070707070707,ff +758,758,0,e83947bd0dd2cd31,00,0707070707070707,ff +759,759,0,ac652165f89cfcd4,00,0707070707070707,ff +760,760,0,7775ca00a7543f31,00,0707070707070707,ff +761,761,0,295119a4d91db319,00,0707070707070707,ff +762,762,0,a0d786e7cd916925,00,0707070707070707,ff +763,763,0,1e79913bc5a388ee,00,0707070707070707,ff +764,764,0,4e26601951c3f0ae,00,0707070707070707,ff +765,765,0,60b156eb977e786f,00,0707070707070707,ff +766,766,0,76a220b33cbe429a,00,0707070707070707,ff +767,767,0,2952438d3a68d657,00,0707070707070707,ff +768,768,0,64ec1a6608d71c1e,00,0707070707070707,ff +769,769,0,f8100dde68b1b057,00,0707070707070707,ff +770,770,0,7beb22bc87072d0a,00,0707070707070707,ff +771,771,0,b7beea72c3ae85ac,00,0707070707070707,ff +772,772,0,77a6664d2ce4ef3a,00,0707070707070707,ff +773,773,0,d3bbaf71e97e3c0d,00,0707070707070707,ff +774,774,0,82318ee9b63af06f,00,0707070707070707,ff +775,775,0,9d32ad5feb258f67,00,0707070707070707,ff +776,776,0,6371dc2f860bd989,00,0707070707070707,ff +777,777,0,aa793e58facb145b,00,0707070707070707,ff +778,778,0,619790bfb7be41d8,00,0707070707070707,ff +779,779,0,5b0af1cdadf14278,00,0707070707070707,ff +780,780,0,7deed5af34fea673,00,0707070707070707,ff +781,781,0,a226598633f8df95,00,0707070707070707,ff +782,782,0,d5f373534d0ca9ce,00,0707070707070707,ff +783,783,0,06f303d78e96201e,00,0707070707070707,ff +784,784,0,460c25daa3ad7d0f,00,0707070707070707,ff +785,785,0,4f05a1120a860307,00,0707070707070707,ff +786,786,0,737b78e366c36d0a,00,0707070707070707,ff +787,787,0,0e9dcf3e09b4fcba,00,0707070707070707,ff +788,788,0,0add838363ddc945,00,0707070707070707,ff +789,789,0,0ba930e5473125c4,00,0707070707070707,ff +790,790,0,4756af834969dc57,00,0707070707070707,ff +791,791,0,750654db2172832c,00,0707070707070707,ff +792,792,0,cda8430d1b0b66db,00,0707070707070707,ff +793,793,0,07f87a385eb1f9ff,00,0707070707070707,ff +794,794,0,53d52cd9cfec32e6,00,0707070707070707,ff +795,795,0,367ab0ac30eeef20,00,0707070707070707,ff +796,796,0,961f7ce08a6ccfe1,00,0707070707070707,ff +797,797,0,d3f8d96507d993e5,00,0707070707070707,ff +798,798,0,e2101ba032ec3c46,00,0707070707070707,ff +799,799,0,555dafdf57a735fc,00,0707070707070707,ff +800,800,0,7def494234327edc,00,0707070707070707,ff +801,801,0,59cf977d245328a0,00,0707070707070707,ff +802,802,0,922940fb96ffb3d6,00,0707070707070707,ff +803,803,0,a9dc78d8670046dc,00,0707070707070707,ff +804,804,0,df6bee763daa2a7a,00,0707070707070707,ff +805,805,0,11a7a81cfabc0cb2,00,0707070707070707,ff +806,806,0,3e97dfc3f7874278,00,0707070707070707,ff +807,807,0,3e1f7d4bf99bbe38,00,0707070707070707,ff +808,808,0,90f8d930787ee488,00,0707070707070707,ff +809,809,0,ec4c07dcbd93ae34,00,0707070707070707,ff +810,810,0,2a9177eb3431424c,00,0707070707070707,ff +811,811,0,115f1dbb46aa6c08,00,0707070707070707,ff +812,812,0,4218a0ee706a0dfb,00,0707070707070707,ff +813,813,0,741e26871809d3c0,00,0707070707070707,ff +814,814,0,640fdc90a1a02a60,00,0707070707070707,ff +815,815,0,b11188f599ccc815,00,0707070707070707,ff +816,816,0,bd530e62d6108d93,00,0707070707070707,ff +817,817,0,287db9b79c384ce5,00,0707070707070707,ff +818,818,0,0f27121918f177de,00,0707070707070707,ff +819,819,0,2fca4a28e2bfd9c4,00,0707070707070707,ff +820,820,0,ff333847907e30a8,00,0707070707070707,ff +821,821,0,e94864f8ec1ece4d,00,0707070707070707,ff +822,822,0,4ba66322700280c1,00,0707070707070707,ff +823,823,0,ee4625c28db7a81d,00,0707070707070707,ff +824,824,0,a14c89275eda70de,00,0707070707070707,ff +825,825,0,03d400df858a4184,00,0707070707070707,ff +826,826,0,1986f30ccaa63fb1,00,0707070707070707,ff +827,827,0,07433dfa6a54f17c,00,0707070707070707,ff +828,828,0,5ab681cabbd9dce9,00,0707070707070707,ff +829,829,0,7be6758d394ba9cf,00,0707070707070707,ff +830,830,0,6239b40d3388b4cf,00,0707070707070707,ff +831,831,0,7177580a1f1d5d55,00,0707070707070707,ff +832,832,0,fa058397830a3078,00,0707070707070707,ff +833,833,0,3a0297fcf6ef3184,00,0707070707070707,ff +834,834,0,de368d29d31ac4d4,00,0707070707070707,ff +835,835,0,569459155dcfb6b2,00,0707070707070707,ff +836,836,0,fccab9e476247256,00,0707070707070707,ff +837,837,0,e2754665fef90ece,00,0707070707070707,ff +838,838,0,deafc6f1047ef1b0,00,0707070707070707,ff +839,839,0,b9f17801480d5de3,00,0707070707070707,ff +840,840,0,0983ef4d4c66ccf2,00,0707070707070707,ff +841,841,0,799f760a26bc0be9,00,0707070707070707,ff +842,842,0,ea811387c04d93cb,00,0707070707070707,ff +843,843,0,c3e7a3cedf4c0a15,00,0707070707070707,ff +844,844,0,c8e476a5f2ff330c,00,0707070707070707,ff +845,845,0,d95ea4ef7c1b64bc,00,0707070707070707,ff +846,846,0,017149cfe2c7b55d,00,0707070707070707,ff +847,847,0,fea2b5da1f33596c,00,0707070707070707,ff +848,848,0,c5268c661b394515,00,0707070707070707,ff +849,849,0,8bf474a4c156b638,00,0707070707070707,ff +850,850,0,3f99478ee8bea17b,00,0707070707070707,ff +851,851,0,81e548601c841a75,00,0707070707070707,ff +852,852,0,56de582942daf18e,00,0707070707070707,ff +853,853,0,2ae440afe4a91959,00,0707070707070707,ff +854,854,0,092edc1bf57aaed1,00,0707070707070707,ff +855,855,0,f0ddb7a964aeb577,00,0707070707070707,ff +856,856,0,1e432ea14b0f5729,00,0707070707070707,ff +857,857,0,eb35e41ccd9a6355,00,0707070707070707,ff +858,858,0,d8bd8c8631c17cf6,00,0707070707070707,ff +859,859,0,9fdbbbb8e73b27d5,00,0707070707070707,ff +860,860,0,3f6caa36595ce1d8,00,0707070707070707,ff +861,861,0,f9d3b47661a40f69,00,0707070707070707,ff +862,862,0,e537c1df1d4f0582,00,0707070707070707,ff +863,863,0,6bd422799220fec1,00,0707070707070707,ff +864,864,0,1185178c8ad61a5f,00,0707070707070707,ff +865,865,0,0a33594757840a5e,00,0707070707070707,ff +866,866,0,a6ab4e5f60aefd5c,00,0707070707070707,ff +867,867,0,136fea7e14e26a38,00,0707070707070707,ff +868,868,0,d33aa054c686a0a9,00,0707070707070707,ff +869,869,0,90df545a5ae92703,00,0707070707070707,ff +870,870,0,6586eeaf8ed251fd,00,0707070707070707,ff +871,871,0,58a5f32745a431d6,00,0707070707070707,ff +872,872,0,08ed584a10682c0f,00,0707070707070707,ff +873,873,0,e3418fb0dfefc676,00,0707070707070707,ff +874,874,0,cd0c6756a9752dc5,00,0707070707070707,ff +875,875,0,97f4f99d4f31a23b,00,0707070707070707,ff +876,876,0,cfe624cf9d313b57,00,0707070707070707,ff +877,877,0,876c26923b781128,00,0707070707070707,ff +878,878,0,bf3e0fdc1a0f1b99,00,0707070707070707,ff +879,879,0,2ba7a99d0ac3e075,00,0707070707070707,ff +880,880,0,4a844116b1c92e77,00,0707070707070707,ff +881,881,0,bde3b305853c360b,00,0707070707070707,ff +882,882,0,0b24ba0516e5c8d6,00,0707070707070707,ff +883,883,0,d521d92893333f1e,00,0707070707070707,ff +884,884,0,4b2b87438ca1467e,00,0707070707070707,ff +885,885,0,a2982210b0936fb2,00,0707070707070707,ff +886,886,0,322ebd047908dc9f,00,0707070707070707,ff +887,887,0,99b2ac724020cd1a,00,0707070707070707,ff +888,888,0,7d64d89c5fe66b74,00,0707070707070707,ff +889,889,0,92c0fe869f1da40d,00,0707070707070707,ff +890,890,0,8a94549ddc6fc2f3,00,0707070707070707,ff +891,891,0,0ce174817be7bd9d,00,0707070707070707,ff +892,892,0,db985185935ee298,00,0707070707070707,ff +893,893,0,4dac7d39d07d306a,00,0707070707070707,ff +894,894,0,b2c450cf87eb3517,00,0707070707070707,ff +895,895,0,fa29cd180bffa429,00,0707070707070707,ff +896,896,0,ea885808f27bf799,00,0707070707070707,ff +897,897,0,44aff6cbb699c467,00,0707070707070707,ff +898,898,0,524bddf3ebc7634c,00,0707070707070707,ff +899,899,0,b25ab975a70f8249,00,0707070707070707,ff +900,900,0,7573640efc676843,00,0707070707070707,ff +901,901,0,6ea28eea6bb08671,00,0707070707070707,ff +902,902,0,b8b8974fd6ef7fae,00,0707070707070707,ff +903,903,0,545c4a4a35ed6526,00,0707070707070707,ff +904,904,0,363a07a4ae2bf461,00,0707070707070707,ff +905,905,0,3ad8ccf970f8381e,00,0707070707070707,ff +906,906,0,9510d1d92c1c08f1,00,0707070707070707,ff +907,907,0,12668664b1caf224,00,0707070707070707,ff +908,908,0,89715f102b03a230,00,0707070707070707,ff +909,909,0,7e14d0d531963857,00,0707070707070707,ff +910,910,0,62150f4cffa2748e,00,0707070707070707,ff +911,911,0,8235281ddc6d7cdb,00,0707070707070707,ff +912,912,0,a5ca92ea17507b7d,00,0707070707070707,ff +913,913,0,62ecbbbccef5c6e1,00,0707070707070707,ff +914,914,0,33e36275c23ad5d1,00,0707070707070707,ff +915,915,0,dbdb3b826fdd955a,00,0707070707070707,ff +916,916,0,bcdfe3feee53ebdf,00,0707070707070707,ff +917,917,0,de70e942b062324d,00,0707070707070707,ff +918,918,0,d828c6216ba0398b,00,0707070707070707,ff +919,919,0,ab12a5bd31109dbd,00,0707070707070707,ff +920,920,0,45d61bba2e2f77b5,00,0707070707070707,ff +921,921,0,70808c98c7a2b8f9,00,0707070707070707,ff +922,922,0,07fda0ea409d7787,c0,0707070707070707,ff +923,923,0,0707070707070707,ff,0707070707070707,ff +924,924,0,555555fb07070707,1f,0707070707070707,ff +925,925,0,2aede000d5555555,00,0707070707070707,ff +926,926,0,af2644be5e242e6f,00,0707070707070707,ff +927,927,0,0f0adc0500450008,00,0707070707070707,ff +928,928,0,a8c0b9a106400040,00,0707070707070707,ff +929,929,0,3ecc0104a8c00204,00,0707070707070707,ff +930,930,0,37e08a4ce7ac5114,00,0707070707070707,ff +931,931,0,8b10f6011080e7c4,00,0707070707070707,ff +932,932,0,35f60a0801010000,00,0707070707070707,ff +933,933,0,5338341facc68277,00,0707070707070707,ff +934,934,0,2a16a42ede3c6975,00,0707070707070707,ff +935,935,0,13949a4bb5c4d143,00,0707070707070707,ff +936,936,0,2d25d22aa7b061a1,00,0707070707070707,ff +937,937,0,38f6103159969e15,00,0707070707070707,ff +938,938,0,c3a122f959317c57,00,0707070707070707,ff +939,939,0,509bbcf790abf466,00,0707070707070707,ff +940,940,0,d7d61dd6cf1de820,00,0707070707070707,ff +941,941,0,7194ec16136c692a,00,0707070707070707,ff +942,942,0,3e373b852c259ad4,00,0707070707070707,ff +943,943,0,c22c84603ed2f169,00,0707070707070707,ff +944,944,0,048858f7241c4911,00,0707070707070707,ff +945,945,0,511499c4e0b17e4a,00,0707070707070707,ff +946,946,0,096d4abc612a94c9,00,0707070707070707,ff +947,947,0,8a00b5a5769089f2,00,0707070707070707,ff +948,948,0,dc82e885f659ae48,00,0707070707070707,ff +949,949,0,3f3c821bc5397bf8,00,0707070707070707,ff +950,950,0,35cc594db60d1a02,00,0707070707070707,ff +951,951,0,9e75d93a32566b71,00,0707070707070707,ff +952,952,0,1088943fd605d7e4,00,0707070707070707,ff +953,953,0,13ead22f4a1856f0,00,0707070707070707,ff +954,954,0,587a17134490d5f9,00,0707070707070707,ff +955,955,0,5fb9e27c81e4f441,00,0707070707070707,ff +956,956,0,a9e530d1c1544604,00,0707070707070707,ff +957,957,0,e0f65816c98c1623,00,0707070707070707,ff +958,958,0,43252c8e585fe2f7,00,0707070707070707,ff +959,959,0,c7437c53bfc3a893,00,0707070707070707,ff +960,960,0,d3715085248fc82f,00,0707070707070707,ff +961,961,0,f6143b092c44ba4a,00,0707070707070707,ff +962,962,0,3d7d0e70d33d2512,00,0707070707070707,ff +963,963,0,e42574b0c50fa8bc,00,0707070707070707,ff +964,964,0,5716a520597e9d5e,00,0707070707070707,ff +965,965,0,d368e23a4f4a3fa7,00,0707070707070707,ff +966,966,0,503cf095cc89647a,00,0707070707070707,ff +967,967,0,6128ad83aeff9c03,00,0707070707070707,ff +968,968,0,a7d1b435a49a6766,00,0707070707070707,ff +969,969,0,7518b6c7cbf9fcee,00,0707070707070707,ff +970,970,0,cc3086bcec213fa8,00,0707070707070707,ff +971,971,0,cb11ea72baa4a512,00,0707070707070707,ff +972,972,0,f98ad55fbfffeedb,00,0707070707070707,ff +973,973,0,924e3fa0baec36b1,00,0707070707070707,ff +974,974,0,f93008188a678fde,00,0707070707070707,ff +975,975,0,5f5bf66ff3a1b8eb,00,0707070707070707,ff +976,976,0,79abf18b96fbd354,00,0707070707070707,ff +977,977,0,14cb0b284835b133,00,0707070707070707,ff +978,978,0,614404383622858e,00,0707070707070707,ff +979,979,0,1de12c9a2dc009fe,00,0707070707070707,ff +980,980,0,b16661da757d1378,00,0707070707070707,ff +981,981,0,d201fa41f0f5f5e8,00,0707070707070707,ff +982,982,0,a06e56d6cc5214df,00,0707070707070707,ff +983,983,0,656e3e7b97dea09b,00,0707070707070707,ff +984,984,0,7a14c6cf039a2ce7,00,0707070707070707,ff +985,985,0,1817ca31356b4e0d,00,0707070707070707,ff +986,986,0,b80350ae86046537,00,0707070707070707,ff +987,987,0,347958e4ebc41a17,00,0707070707070707,ff +988,988,0,9e2ab92e9d02fedf,00,0707070707070707,ff +989,989,0,aca886698389ef49,00,0707070707070707,ff +990,990,0,413d27b5898358e6,00,0707070707070707,ff +991,991,0,f4b55cbc1a37d975,00,0707070707070707,ff +992,992,0,e1c75a086a81b652,00,0707070707070707,ff +993,993,0,637d5588aa52c7b4,00,0707070707070707,ff +994,994,0,d3779a79d7e22048,00,0707070707070707,ff +995,995,0,797a41f1e6fa0ac9,00,0707070707070707,ff +996,996,0,5c3de28516bd08ea,00,0707070707070707,ff +997,997,0,6da67c054608b3d6,00,0707070707070707,ff +998,998,0,715aaf12598d44c8,00,0707070707070707,ff +999,999,0,a5250665fe4c1e4e,00,0707070707070707,ff +1000,1000,0,77b2493d8c648b53,00,0707070707070707,ff +1001,1001,0,9517faa8d2d3fe21,00,0707070707070707,ff +1002,1002,0,a725e8e95a309e8e,00,0707070707070707,ff +1003,1003,0,8bcfb4b395d6cecc,00,0707070707070707,ff +1004,1004,0,254fc33eb240a8cc,00,0707070707070707,ff +1005,1005,0,3e57840a2d49277a,00,0707070707070707,ff +1006,1006,0,6c0f7f3465d8a660,00,0707070707070707,ff +1007,1007,0,5534470388c52e22,00,0707070707070707,ff +1008,1008,0,b6437f9f5e6c70ba,00,0707070707070707,ff +1009,1009,0,43e3c41bc208ad08,00,0707070707070707,ff +1010,1010,0,cd139404054daef7,00,0707070707070707,ff +1011,1011,0,51db978a20931f87,00,0707070707070707,ff +1012,1012,0,9afe90032ec1a3c2,00,0707070707070707,ff +1013,1013,0,9d23560885c3b2ab,00,0707070707070707,ff +1014,1014,0,c8b9c92c884622bb,00,0707070707070707,ff +1015,1015,0,364887c77aebe18b,00,0707070707070707,ff +1016,1016,0,0787f3d35255686f,00,0707070707070707,ff +1017,1017,0,81e57e59298bea96,00,0707070707070707,ff +1018,1018,0,fec6148455fa1b6c,00,0707070707070707,ff +1019,1019,0,11732549e17911e7,00,0707070707070707,ff +1020,1020,0,74a4cf85a32eaeeb,00,0707070707070707,ff +1021,1021,0,de8b4d0c08d8b5a0,00,0707070707070707,ff +1022,1022,0,ea805ac6a6caf840,00,0707070707070707,ff +1023,1023,0,0fd6075cd23041f7,00,0707070707070707,ff +1024,1024,0,c4da74e884693be3,00,0707070707070707,ff +1025,1025,0,4a8d8b5e1063df8d,00,0707070707070707,ff +1026,1026,0,3d445d683b48c89e,00,0707070707070707,ff +1027,1027,0,c936573649d6de10,00,0707070707070707,ff +1028,1028,0,75e3381c9c1d5744,00,0707070707070707,ff +1029,1029,0,0ea7f5a57c636723,00,0707070707070707,ff +1030,1030,0,13fd4915bde2897d,00,0707070707070707,ff +1031,1031,0,70e67223e698029d,00,0707070707070707,ff +1032,1032,0,33eb7befa084f7dd,00,0707070707070707,ff +1033,1033,0,3aa70d591d5fb992,00,0707070707070707,ff +1034,1034,0,4921548c7792fa15,00,0707070707070707,ff +1035,1035,0,f1c0ebda3bde0aad,00,0707070707070707,ff +1036,1036,0,0253ca2018c1a547,00,0707070707070707,ff +1037,1037,0,4d1e60bc2fe986c8,00,0707070707070707,ff +1038,1038,0,ff909dc33d71bd51,00,0707070707070707,ff +1039,1039,0,013274d842bab30d,00,0707070707070707,ff +1040,1040,0,1e8fbcb43efd7d78,00,0707070707070707,ff +1041,1041,0,8f703edf8d6fd9a2,00,0707070707070707,ff +1042,1042,0,9c0bfa982813fe30,00,0707070707070707,ff +1043,1043,0,0fa52dc1c5cdb54b,00,0707070707070707,ff +1044,1044,0,a1f3b9daeb1d890b,00,0707070707070707,ff +1045,1045,0,9bb36b9902126902,00,0707070707070707,ff +1046,1046,0,c2d1786f2ff8bb2f,00,0707070707070707,ff +1047,1047,0,752172f3fa0e0d24,00,0707070707070707,ff +1048,1048,0,a25db5ca350d835d,00,0707070707070707,ff +1049,1049,0,cce1f6cce05da9a6,00,0707070707070707,ff +1050,1050,0,8d10149ea0d91157,00,0707070707070707,ff +1051,1051,0,1b2e6ceadcc3f032,00,0707070707070707,ff +1052,1052,0,b728830dc6af5afb,00,0707070707070707,ff +1053,1053,0,871f9c70d0b49a26,00,0707070707070707,ff +1054,1054,0,faa28ecc2ad3a607,00,0707070707070707,ff +1055,1055,0,c35c07ee485f5568,00,0707070707070707,ff +1056,1056,0,b8d7475828faf5c9,00,0707070707070707,ff +1057,1057,0,071af44c105cacc3,00,0707070707070707,ff +1058,1058,0,bfbcb83a53853d09,00,0707070707070707,ff +1059,1059,0,8013339a9ce1e745,00,0707070707070707,ff +1060,1060,0,0d586ab4f2b75095,00,0707070707070707,ff +1061,1061,0,fdf4021a2b13b01c,00,0707070707070707,ff +1062,1062,0,d4e37d9a290fc5ff,00,0707070707070707,ff +1063,1063,0,def7e741f1c0a605,00,0707070707070707,ff +1064,1064,0,9bf7ea9c56de4ee7,00,0707070707070707,ff +1065,1065,0,6efc41e55c575f9e,00,0707070707070707,ff +1066,1066,0,e36fd6ea505694c2,00,0707070707070707,ff +1067,1067,0,3e6af5f0559707e4,00,0707070707070707,ff +1068,1068,0,a03c4fbcf0ab1aff,00,0707070707070707,ff +1069,1069,0,ffcb29333332f1c8,00,0707070707070707,ff +1070,1070,0,98571f24422680b1,00,0707070707070707,ff +1071,1071,0,2ed5363c0088befd,00,0707070707070707,ff +1072,1072,0,d8231e74d3be744a,00,0707070707070707,ff +1073,1073,0,f280cec9d60915cd,00,0707070707070707,ff +1074,1074,0,c23425870186cd25,00,0707070707070707,ff +1075,1075,0,e1c294925a54eb9e,00,0707070707070707,ff +1076,1076,0,6dccd2789f48cca8,00,0707070707070707,ff +1077,1077,0,6eb46f9994d4256b,00,0707070707070707,ff +1078,1078,0,df1f988623e0e3ca,00,0707070707070707,ff +1079,1079,0,fe5587de7a910b62,00,0707070707070707,ff +1080,1080,0,4add85355ccf4570,00,0707070707070707,ff +1081,1081,0,079c06620e55acc7,00,0707070707070707,ff +1082,1082,0,959ec45393d0eea0,00,0707070707070707,ff +1083,1083,0,6d63c7ba3e381d4a,00,0707070707070707,ff +1084,1084,0,5a4e65ffc3bd343d,00,0707070707070707,ff +1085,1085,0,91ea3fc2fa766a94,00,0707070707070707,ff +1086,1086,0,21b3871b554e6734,00,0707070707070707,ff +1087,1087,0,71ef018161a2b6e9,00,0707070707070707,ff +1088,1088,0,a87689c3eb4e3ab6,00,0707070707070707,ff +1089,1089,0,749830ef72a11828,00,0707070707070707,ff +1090,1090,0,e844bbc357c6564a,00,0707070707070707,ff +1091,1091,0,e48df901dcf3f5a8,00,0707070707070707,ff +1092,1092,0,07da0bcbd9cdce46,00,0707070707070707,ff +1093,1093,0,775d2cafdec289d4,00,0707070707070707,ff +1094,1094,0,4c65ef2e024960f8,00,0707070707070707,ff +1095,1095,0,d9579fb84f5bb5da,00,0707070707070707,ff +1096,1096,0,efa8b9724da4043b,00,0707070707070707,ff +1097,1097,0,50ad15b13a373d32,00,0707070707070707,ff +1098,1098,0,94ec1cefa7c3a378,00,0707070707070707,ff +1099,1099,0,6915fcc6c34a01f5,00,0707070707070707,ff +1100,1100,0,f117a2a1f8a77caf,00,0707070707070707,ff +1101,1101,0,a8ffb4820224e099,00,0707070707070707,ff +1102,1102,0,fc92f5e32698d6bf,00,0707070707070707,ff +1103,1103,0,4aba0ba749a43e07,00,0707070707070707,ff +1104,1104,0,6f79056a2710133b,00,0707070707070707,ff +1105,1105,0,00f0b5848c0f3130,00,0707070707070707,ff +1106,1106,0,63c1eaafd0f90126,00,0707070707070707,ff +1107,1107,0,73c8d7072a1844e5,00,0707070707070707,ff +1108,1108,0,824ac1251b4ca3fe,00,0707070707070707,ff +1109,1109,0,9646143f52f6af43,00,0707070707070707,ff +1110,1110,0,d229c78a370bb50c,00,0707070707070707,ff +1111,1111,0,239e59fd33c7d740,00,0707070707070707,ff +1112,1112,0,47776637dd005e6e,00,0707070707070707,ff +1113,1113,0,125ab5ee5bc98e4a,00,0707070707070707,ff +1114,1114,0,ecc3e98f574a72db,00,0707070707070707,ff +1115,1115,0,0707070707fde1f1,fc,0707070707070707,ff +1116,1116,0,555555fb07070707,1f,0707070707070707,ff +1117,1117,0,2aede000d5555555,00,0707070707070707,ff +1118,1118,0,af2644be5e242e6f,00,0707070707070707,ff +1119,1119,0,100adc0500450008,00,0707070707070707,ff +1120,1120,0,a8c0b8a106400040,00,0707070707070707,ff +1121,1121,0,3ecc0104a8c00204,00,0707070707070707,ff +1122,1122,0,37e03252e7ac5114,00,0707070707070707,ff +1123,1123,0,dd14f6011080e7c4,00,0707070707070707,ff +1124,1124,0,35f60a0801010000,00,0707070707070707,ff +1125,1125,0,4e23341facc68277,00,0707070707070707,ff +1126,1126,0,4d5493f25026f343,00,0707070707070707,ff +1127,1127,0,e30fa6ff8c69a171,00,0707070707070707,ff +1128,1128,0,4cf526c914224d7f,00,0707070707070707,ff +1129,1129,0,bc09967a7bbb2264,00,0707070707070707,ff +1130,1130,0,212831fcf078a5ec,00,0707070707070707,ff +1131,1131,0,889ae141237cd04e,00,0707070707070707,ff +1132,1132,0,1d40db8627b7732d,00,0707070707070707,ff +1133,1133,0,cfa65865526edec9,00,0707070707070707,ff +1134,1134,0,63adb9f217563086,00,0707070707070707,ff +1135,1135,0,321337f570a012bb,00,0707070707070707,ff +1136,1136,0,67d5155534e8d2bb,00,0707070707070707,ff +1137,1137,0,3544f510f6ab3150,00,0707070707070707,ff +1138,1138,0,1c3d933b3627c9b3,00,0707070707070707,ff +1139,1139,0,d2e04c49974ca4bc,00,0707070707070707,ff +1140,1140,0,34263407ce0a7271,00,0707070707070707,ff +1141,1141,0,2c4874a34882d477,00,0707070707070707,ff +1142,1142,0,805ed30ef13a494b,00,0707070707070707,ff +1143,1143,0,2f18202f2f85f54f,00,0707070707070707,ff +1144,1144,0,0900d3692fb9d5c1,00,0707070707070707,ff +1145,1145,0,a4fae0cc66f944af,00,0707070707070707,ff +1146,1146,0,04764a57cc4eeef1,00,0707070707070707,ff +1147,1147,0,dedd907196f48543,00,0707070707070707,ff +1148,1148,0,ea97ec550a5cd75d,00,0707070707070707,ff +1149,1149,0,6372ecc54be15db0,00,0707070707070707,ff +1150,1150,0,9e29e14970f75c53,00,0707070707070707,ff +1151,1151,0,28532b5e47ed0c1e,00,0707070707070707,ff +1152,1152,0,4967c7269d8c1dc6,00,0707070707070707,ff +1153,1153,0,c5f0a6274646dced,00,0707070707070707,ff +1154,1154,0,446cbe6fdbc0e970,00,0707070707070707,ff +1155,1155,0,bb17aec45a105d4d,00,0707070707070707,ff +1156,1156,0,73c307946843a9fa,00,0707070707070707,ff +1157,1157,0,f536bfe8f3860860,00,0707070707070707,ff +1158,1158,0,105a692131b9e0bf,00,0707070707070707,ff +1159,1159,0,fc44d4e2d45e104d,00,0707070707070707,ff +1160,1160,0,a6212ee1262a2e23,00,0707070707070707,ff +1161,1161,0,a9d96ea750c449e1,00,0707070707070707,ff +1162,1162,0,88739c130d6fae48,00,0707070707070707,ff +1163,1163,0,b52e2ce371fee838,00,0707070707070707,ff +1164,1164,0,edee93b586bb1873,00,0707070707070707,ff +1165,1165,0,b5971ae1af2b7406,00,0707070707070707,ff +1166,1166,0,93250c86b70499bb,00,0707070707070707,ff +1167,1167,0,553115d186bfdd7d,00,0707070707070707,ff +1168,1168,0,b1335359208dd599,00,0707070707070707,ff +1169,1169,0,a8fb39d15366de5c,00,0707070707070707,ff +1170,1170,0,38040a8da8b793bf,00,0707070707070707,ff +1171,1171,0,431016e49cc1f9de,00,0707070707070707,ff +1172,1172,0,a680d7a161a3b790,00,0707070707070707,ff +1173,1173,0,149470d014b93829,00,0707070707070707,ff +1174,1174,0,4a7c261f0244922b,00,0707070707070707,ff +1175,1175,0,d72c5590c1ab0a02,00,0707070707070707,ff +1176,1176,0,3d9189ac92072329,00,0707070707070707,ff +1177,1177,0,b2ed7acb2196b652,00,0707070707070707,ff +1178,1178,0,701231cc474ba268,00,0707070707070707,ff +1179,1179,0,5b26457dfc11e21f,00,0707070707070707,ff +1180,1180,0,011fde601b27ccef,00,0707070707070707,ff +1181,1181,0,195a18671b7616d0,00,0707070707070707,ff +1182,1182,0,2206c53c6bc9d70a,00,0707070707070707,ff +1183,1183,0,3ffe1bb1ebf18e63,00,0707070707070707,ff +1184,1184,0,d8b8b53ea0cd5f8b,00,0707070707070707,ff +1185,1185,0,b21a86b31f148b1d,00,0707070707070707,ff +1186,1186,0,5b5e0fbc284af17f,00,0707070707070707,ff +1187,1187,0,3a06ee53b5debfee,00,0707070707070707,ff +1188,1188,0,e06246511bf6901d,00,0707070707070707,ff +1189,1189,0,9006749a383b0921,00,0707070707070707,ff +1190,1190,0,79c2a23d27633c73,00,0707070707070707,ff +1191,1191,0,9b51c90e4fae1d2c,00,0707070707070707,ff +1192,1192,0,2c37ae8573d7e276,00,0707070707070707,ff +1193,1193,0,d4e0fc16dcefab92,00,0707070707070707,ff +1194,1194,0,7b5311583f2087eb,00,0707070707070707,ff +1195,1195,0,bf24648fced38e5f,00,0707070707070707,ff +1196,1196,0,6e5ccdd2e73f18c4,00,0707070707070707,ff +1197,1197,0,63dc527c50653ee0,00,0707070707070707,ff +1198,1198,0,a141f5ae69762a0a,00,0707070707070707,ff +1199,1199,0,aeb6bbadee3cb7f9,00,0707070707070707,ff +1200,1200,0,50596d232ba97837,00,0707070707070707,ff +1201,1201,0,9ddaed81fcbb8cec,00,0707070707070707,ff +1202,1202,0,ff445cb0d07755c8,00,0707070707070707,ff +1203,1203,0,4f0914005b936d22,00,0707070707070707,ff +1204,1204,0,ffff08e785781a3a,00,0707070707070707,ff +1205,1205,0,ddbe88fb238317f9,00,0707070707070707,ff +1206,1206,0,7e0fe40973acf5a2,00,0707070707070707,ff +1207,1207,0,4146b0f16d6a3f0e,00,0707070707070707,ff +1208,1208,0,93b9e323ce5c9956,00,0707070707070707,ff +1209,1209,0,51c7a004aaf26559,00,0707070707070707,ff +1210,1210,0,54827c1dc498dcf5,00,0707070707070707,ff +1211,1211,0,500c569038d65917,00,0707070707070707,ff +1212,1212,0,7c413949c739a406,00,0707070707070707,ff +1213,1213,0,3efac2012b382680,00,0707070707070707,ff +1214,1214,0,e685deb834fd0bd7,00,0707070707070707,ff +1215,1215,0,97e77fde208f877a,00,0707070707070707,ff +1216,1216,0,bf38fd6a3d47194b,00,0707070707070707,ff +1217,1217,0,59c771852c7eb287,00,0707070707070707,ff +1218,1218,0,37e3450ecdfde69b,00,0707070707070707,ff +1219,1219,0,8f8e089386cf700c,00,0707070707070707,ff +1220,1220,0,ae08ed4b4c0332fa,00,0707070707070707,ff +1221,1221,0,05b4b54ea360a8d6,00,0707070707070707,ff +1222,1222,0,5600ca3faeee480c,00,0707070707070707,ff +1223,1223,0,eb6133a4f5e8a877,00,0707070707070707,ff +1224,1224,0,c100b40fee5f49c1,00,0707070707070707,ff +1225,1225,0,f41a3426b5a131bc,00,0707070707070707,ff +1226,1226,0,5ef4c0d7f4336879,00,0707070707070707,ff +1227,1227,0,9b55b1902405bdf0,00,0707070707070707,ff +1228,1228,0,3fbefd35a6980f38,00,0707070707070707,ff +1229,1229,0,8d10c7ab3eff7bd9,00,0707070707070707,ff +1230,1230,0,664c18d3b0c2dc8e,00,0707070707070707,ff +1231,1231,0,8f2719b31337d874,00,0707070707070707,ff +1232,1232,0,96efe58836741611,00,0707070707070707,ff +1233,1233,0,b1dc7edb10093ad9,00,0707070707070707,ff +1234,1234,0,6f6c9c447c45780d,00,0707070707070707,ff +1235,1235,0,171aaaaaed2de600,00,0707070707070707,ff +1236,1236,0,5e68dd2de881e4bb,00,0707070707070707,ff +1237,1237,0,30c9de4b9f519567,00,0707070707070707,ff +1238,1238,0,4e3c9021de18dff4,00,0707070707070707,ff +1239,1239,0,afde173723973808,00,0707070707070707,ff +1240,1240,0,eeb1d91aaf45eb4a,00,0707070707070707,ff +1241,1241,0,02e8fd2d6fd15638,00,0707070707070707,ff +1242,1242,0,db3c1a1d458126fc,00,0707070707070707,ff +1243,1243,0,27c4f32244fad816,00,0707070707070707,ff +1244,1244,0,607cb4540c9d42ed,00,0707070707070707,ff +1245,1245,0,3fc7ee7505f9cbc5,00,0707070707070707,ff +1246,1246,0,c4b653b522312eb8,00,0707070707070707,ff +1247,1247,0,3413b5ad09f353d3,00,0707070707070707,ff +1248,1248,0,4051e9b0f479d21e,00,0707070707070707,ff +1249,1249,0,b62b2aa179d6c659,00,0707070707070707,ff +1250,1250,0,0f5d36e3d43a3d5c,00,0707070707070707,ff +1251,1251,0,dbfd19bb681102c6,00,0707070707070707,ff +1252,1252,0,4860f49d97153c6b,00,0707070707070707,ff +1253,1253,0,c698dcff62c94f22,00,0707070707070707,ff +1254,1254,0,ecfc6d52b1567837,00,0707070707070707,ff +1255,1255,0,9389addba21f7e51,00,0707070707070707,ff +1256,1256,0,ccf04eea1f686c64,00,0707070707070707,ff +1257,1257,0,b111cd8d54c133ba,00,0707070707070707,ff +1258,1258,0,f066237dfc2ea1d9,00,0707070707070707,ff +1259,1259,0,9e5f7a1265e03cfa,00,0707070707070707,ff +1260,1260,0,9649ba50ae6fef7b,00,0707070707070707,ff +1261,1261,0,a81ef8d5b42f2a93,00,0707070707070707,ff +1262,1262,0,143d012673d639a8,00,0707070707070707,ff +1263,1263,0,8300f9f114a92570,00,0707070707070707,ff +1264,1264,0,c1d8cec5d11fb238,00,0707070707070707,ff +1265,1265,0,d6739d1e5c7c8891,00,0707070707070707,ff +1266,1266,0,b8ffc349e96b7ad2,00,0707070707070707,ff +1267,1267,0,3591f448fe55e6bc,00,0707070707070707,ff +1268,1268,0,ef9cf55ea1d7b91e,00,0707070707070707,ff +1269,1269,0,cee620a7e3746974,00,0707070707070707,ff +1270,1270,0,608cfe6ee2dd6958,00,0707070707070707,ff +1271,1271,0,d8efde4143cedb21,00,0707070707070707,ff +1272,1272,0,95788f38b1624ae3,00,0707070707070707,ff +1273,1273,0,1481fb13756b5204,00,0707070707070707,ff +1274,1274,0,ea59c645cf7bfe42,00,0707070707070707,ff +1275,1275,0,7c79b208f5b6a763,00,0707070707070707,ff +1276,1276,0,c6f4b69f9d5d245a,00,0707070707070707,ff +1277,1277,0,ac394f6b8b2ef67a,00,0707070707070707,ff +1278,1278,0,4f64b7366ea9460c,00,0707070707070707,ff +1279,1279,0,be66dbd5a4e52d5b,00,0707070707070707,ff +1280,1280,0,5672ddcfd47cd712,00,0707070707070707,ff +1281,1281,0,641b82a0ca27fc21,00,0707070707070707,ff +1282,1282,0,275c650cbfaaf67c,00,0707070707070707,ff +1283,1283,0,20b1ab039c406732,00,0707070707070707,ff +1284,1284,0,82538c22c2c1e000,00,0707070707070707,ff +1285,1285,0,b1efb0fe33eb8d21,00,0707070707070707,ff +1286,1286,0,689348fb77cc3717,00,0707070707070707,ff +1287,1287,0,331d0cba9911ca15,00,0707070707070707,ff +1288,1288,0,e2779e8ac94ec40a,00,0707070707070707,ff +1289,1289,0,3a5a258f4a22074f,00,0707070707070707,ff +1290,1290,0,2797f5eeac383a24,00,0707070707070707,ff +1291,1291,0,15fb34c64f2ad375,00,0707070707070707,ff +1292,1292,0,c20c14e6652fc5b6,00,0707070707070707,ff +1293,1293,0,a3581122759330c0,00,0707070707070707,ff +1294,1294,0,d818d4399511f1c1,00,0707070707070707,ff +1295,1295,0,698627e7fa5c1274,00,0707070707070707,ff +1296,1296,0,d91d00d72a59100c,00,0707070707070707,ff +1297,1297,0,30201f2085bf4415,00,0707070707070707,ff +1298,1298,0,553ab4a0a656ec47,00,0707070707070707,ff +1299,1299,0,311d936e0950f834,00,0707070707070707,ff +1300,1300,0,1ffc88b0bf3a686e,00,0707070707070707,ff +1301,1301,0,8cea514d4dff4626,00,0707070707070707,ff +1302,1302,0,7ac15f759a16c5b6,00,0707070707070707,ff +1303,1303,0,0286daf3e1c11718,00,0707070707070707,ff +1304,1304,0,5f177b1adb6df23f,00,0707070707070707,ff +1305,1305,0,4b8975fafcf513f0,00,0707070707070707,ff +1306,1306,0,c0aff7d3fb1e94a2,00,0707070707070707,ff +1307,1307,0,0707070707fd43cc,fc,0707070707070707,ff +1308,1308,0,0707070707070707,ff,0707070707070707,ff +1309,1309,0,d5555555555555fb,01,0707070707070707,ff +1310,1310,0,5e242e6f2aede000,00,0707070707070707,ff +1311,1311,0,00450008af2644be,00,0707070707070707,ff +1312,1312,0,06400040110adc05,00,0707070707070707,ff +1313,1313,0,a8c00204a8c0b7a1,00,0707070707070707,ff +1314,1314,0,e7ac51143ecc0104,00,0707070707070707,ff +1315,1315,0,1080e7c437e0da57,00,0707070707070707,ff +1316,1316,0,010100007b96f601,00,0707070707070707,ff +1317,1317,0,acc6827735f60a08,00,0707070707070707,ff +1318,1318,0,0d60e750dc34341f,00,0707070707070707,ff +1319,1319,0,d63cb6c1c78ce5e9,00,0707070707070707,ff +1320,1320,0,4a9780f9ea5271af,00,0707070707070707,ff +1321,1321,0,06159456c3d0198e,00,0707070707070707,ff +1322,1322,0,e0dc1616072f5c45,00,0707070707070707,ff +1323,1323,0,fb13484698901915,00,0707070707070707,ff +1324,1324,0,b35074f9635d3fdb,00,0707070707070707,ff +1325,1325,0,31d79f4c124d7e95,00,0707070707070707,ff +1326,1326,0,ff0c69426d1ea873,00,0707070707070707,ff +1327,1327,0,fea344f4b0ee63a1,00,0707070707070707,ff +1328,1328,0,a5cb26c1f5a2cfda,00,0707070707070707,ff +1329,1329,0,e481b805af415e81,00,0707070707070707,ff +1330,1330,0,c270f97d4ee52bc8,00,0707070707070707,ff +1331,1331,0,e347b6d5b20fe4cd,00,0707070707070707,ff +1332,1332,0,095d00f571ab0bdf,00,0707070707070707,ff +1333,1333,0,9dea58fc400d4889,00,0707070707070707,ff +1334,1334,0,f2573a196de392d5,00,0707070707070707,ff +1335,1335,0,7f409bce24608d34,00,0707070707070707,ff +1336,1336,0,2d471b9de19bae68,00,0707070707070707,ff +1337,1337,0,f6ba027c51fff3d4,00,0707070707070707,ff +1338,1338,0,0041521a50117614,00,0707070707070707,ff +1339,1339,0,ae3a45c58b1d14ab,00,0707070707070707,ff +1340,1340,0,0608e99dd59d03da,00,0707070707070707,ff +1341,1341,0,73c7b0fba9107677,00,0707070707070707,ff +1342,1342,0,b1f410b7e81b6d82,00,0707070707070707,ff +1343,1343,0,3abcc5452af4cb1b,00,0707070707070707,ff +1344,1344,0,b1e4ef863abc9e19,00,0707070707070707,ff +1345,1345,0,3d5be3013a8c6904,00,0707070707070707,ff +1346,1346,0,4e165ff458c03577,00,0707070707070707,ff +1347,1347,0,b1f3c7b6b583d183,00,0707070707070707,ff +1348,1348,0,a7379fe53fb56d3c,00,0707070707070707,ff +1349,1349,0,b6cb1963f61832c6,00,0707070707070707,ff +1350,1350,0,e75528bec4a24534,00,0707070707070707,ff +1351,1351,0,43eb8ba2b4b02e0a,00,0707070707070707,ff +1352,1352,0,aa232dd26ce9eacd,00,0707070707070707,ff +1353,1353,0,1b2300e5060af573,00,0707070707070707,ff +1354,1354,0,ca90a4bf5900e55b,00,0707070707070707,ff +1355,1355,0,afbfed36e8af2174,00,0707070707070707,ff +1356,1356,0,96d041c06b60f569,00,0707070707070707,ff +1357,1357,0,3c039b7450eceec8,00,0707070707070707,ff +1358,1358,0,8fa29f070b6c4ef8,00,0707070707070707,ff +1359,1359,0,653b0a8813ca5ecd,00,0707070707070707,ff +1360,1360,0,af49b381c26e991e,00,0707070707070707,ff +1361,1361,0,50b1efa24d8f0ea2,00,0707070707070707,ff +1362,1362,0,d206919047e40355,00,0707070707070707,ff +1363,1363,0,8c7841a6d8e703fd,00,0707070707070707,ff +1364,1364,0,9799c7d03a2f1802,00,0707070707070707,ff +1365,1365,0,4b6ea9843b42ac2e,00,0707070707070707,ff +1366,1366,0,b21afd6eb71c8417,00,0707070707070707,ff +1367,1367,0,128d66126f49c99c,00,0707070707070707,ff +1368,1368,0,3e5995e51661da89,00,0707070707070707,ff +1369,1369,0,ea900ffb4a7722e3,00,0707070707070707,ff +1370,1370,0,a7996047d1748465,00,0707070707070707,ff +1371,1371,0,3e21e2dcec790394,00,0707070707070707,ff +1372,1372,0,6a1589ab41947e6f,00,0707070707070707,ff +1373,1373,0,77e9c9b8d2a57963,00,0707070707070707,ff +1374,1374,0,580b0b8bf7d5a011,00,0707070707070707,ff +1375,1375,0,03a76b8c6967a05e,00,0707070707070707,ff +1376,1376,0,8de82b825cff15e1,00,0707070707070707,ff +1377,1377,0,aba8a254cbaface1,00,0707070707070707,ff +1378,1378,0,43c9d6fdcf1ef62e,00,0707070707070707,ff +1379,1379,0,edea5d042fc0ab4d,00,0707070707070707,ff +1380,1380,0,bc30c94fc9fa8ec0,00,0707070707070707,ff +1381,1381,0,c492fa60989d1002,00,0707070707070707,ff +1382,1382,0,c0abcd90608b53d7,00,0707070707070707,ff +1383,1383,0,1856834213d86b6b,00,0707070707070707,ff +1384,1384,0,5657355263f68a05,00,0707070707070707,ff +1385,1385,0,38a797c0b57db20b,00,0707070707070707,ff +1386,1386,0,2af1395e73b25cc0,00,0707070707070707,ff +1387,1387,0,ad376f6a2d6af6d3,00,0707070707070707,ff +1388,1388,0,650eae02e47fd99d,00,0707070707070707,ff +1389,1389,0,086c02343a23f3cb,00,0707070707070707,ff +1390,1390,0,c649041aae30b78e,00,0707070707070707,ff +1391,1391,0,3a4a64cc71273974,00,0707070707070707,ff +1392,1392,0,0f93f7bc8408b919,00,0707070707070707,ff +1393,1393,0,fc7a046ba136deac,00,0707070707070707,ff +1394,1394,0,91dec181011c086d,00,0707070707070707,ff +1395,1395,0,75f25caee1496c12,00,0707070707070707,ff +1396,1396,0,5055d2c9866676d6,00,0707070707070707,ff +1397,1397,0,f1d711f897683a10,00,0707070707070707,ff +1398,1398,0,9a967a8f06331c1b,00,0707070707070707,ff +1399,1399,0,0f876f2677312daa,00,0707070707070707,ff +1400,1400,0,94ff8e3ac69f6097,00,0707070707070707,ff +1401,1401,0,51526ab854c8f562,00,0707070707070707,ff +1402,1402,0,15fb5ab54e59d269,00,0707070707070707,ff +1403,1403,0,f6d582fb07babc7d,00,0707070707070707,ff +1404,1404,0,60a54bfb70c2429b,00,0707070707070707,ff +1405,1405,0,b28ba10990197c92,00,0707070707070707,ff +1406,1406,0,aacb0a0f545eb414,00,0707070707070707,ff +1407,1407,0,c79461618abfb23a,00,0707070707070707,ff +1408,1408,0,196e5de75cc8379c,00,0707070707070707,ff +1409,1409,0,aa0fb8ff2ec10c90,00,0707070707070707,ff +1410,1410,0,7f1c7626e8fe0803,00,0707070707070707,ff +1411,1411,0,6a96415cea4b230d,00,0707070707070707,ff +1412,1412,0,231d827c88842c9c,00,0707070707070707,ff +1413,1413,0,3314123502f4dc2e,00,0707070707070707,ff +1414,1414,0,193822912182564f,00,0707070707070707,ff +1415,1415,0,8f8e215ffd39497d,00,0707070707070707,ff +1416,1416,0,61c9f1821dab272f,00,0707070707070707,ff +1417,1417,0,46c835a078fb5851,00,0707070707070707,ff +1418,1418,0,52609ac82af6e613,00,0707070707070707,ff +1419,1419,0,b75e0badb36b718a,00,0707070707070707,ff +1420,1420,0,0ecfacbd2603e375,00,0707070707070707,ff +1421,1421,0,597c5e497e8b545a,00,0707070707070707,ff +1422,1422,0,4020d5bdf14a69cb,00,0707070707070707,ff +1423,1423,0,17103ba6fcb84a76,00,0707070707070707,ff +1424,1424,0,0a2e8849fb277522,00,0707070707070707,ff +1425,1425,0,8cdf16e9b41938a4,00,0707070707070707,ff +1426,1426,0,ad5f0dfc50da5918,00,0707070707070707,ff +1427,1427,0,6fdd9ba7218d5e69,00,0707070707070707,ff +1428,1428,0,9223b4b898f4f8ea,00,0707070707070707,ff +1429,1429,0,a776c0889f74b271,00,0707070707070707,ff +1430,1430,0,5f3f3b2a1ffc64e9,00,0707070707070707,ff +1431,1431,0,43fc189a572c57d4,00,0707070707070707,ff +1432,1432,0,ba1fa190c402000d,00,0707070707070707,ff +1433,1433,0,e61394c1e5f83c59,00,0707070707070707,ff +1434,1434,0,bc6f3d7f1efc2506,00,0707070707070707,ff +1435,1435,0,4d9227936bcc73fe,00,0707070707070707,ff +1436,1436,0,3836a5edfc46c56e,00,0707070707070707,ff +1437,1437,0,3233e7fc3b2e7593,00,0707070707070707,ff +1438,1438,0,e67e9cf0de616be8,00,0707070707070707,ff +1439,1439,0,36dd7f39afc06843,00,0707070707070707,ff +1440,1440,0,a85543e66f708338,00,0707070707070707,ff +1441,1441,0,cc55bf1b7f7526f6,00,0707070707070707,ff +1442,1442,0,13c663a7941d4e68,00,0707070707070707,ff +1443,1443,0,3ff32c3d9ac7d249,00,0707070707070707,ff +1444,1444,0,6347314293ac5083,00,0707070707070707,ff +1445,1445,0,fc26b8bde2509def,00,0707070707070707,ff +1446,1446,0,5fe172ad10745d1a,00,0707070707070707,ff +1447,1447,0,e890e464e8017e28,00,0707070707070707,ff +1448,1448,0,d5b27b940b9cf4dd,00,0707070707070707,ff +1449,1449,0,a59812bc205eef48,00,0707070707070707,ff +1450,1450,0,38b3d91fb5e6e50a,00,0707070707070707,ff +1451,1451,0,d2a465dfd922e2d9,00,0707070707070707,ff +1452,1452,0,49a3d62618f415a7,00,0707070707070707,ff +1453,1453,0,bebfd073811fa567,00,0707070707070707,ff +1454,1454,0,5f7201056fca9c8a,00,0707070707070707,ff +1455,1455,0,f47b6296fa1c571c,00,0707070707070707,ff +1456,1456,0,ed1a07c64a330152,00,0707070707070707,ff +1457,1457,0,dd5074d87cd71d07,00,0707070707070707,ff +1458,1458,0,be63f619d98b74e0,00,0707070707070707,ff +1459,1459,0,4ba15e0755eae2f5,00,0707070707070707,ff +1460,1460,0,ed900dddee53192c,00,0707070707070707,ff +1461,1461,0,d585478596a9cb49,00,0707070707070707,ff +1462,1462,0,217f8556e385666b,00,0707070707070707,ff +1463,1463,0,11b1dc661d15799e,00,0707070707070707,ff +1464,1464,0,6a5a6f9982493ef4,00,0707070707070707,ff +1465,1465,0,dedcc04397dc10f9,00,0707070707070707,ff +1466,1466,0,37a9044338feccdb,00,0707070707070707,ff +1467,1467,0,10d9617e162780a4,00,0707070707070707,ff +1468,1468,0,eb0b59fdcf65ff06,00,0707070707070707,ff +1469,1469,0,991827ecb60a7b15,00,0707070707070707,ff +1470,1470,0,40e3a96e46f1fb88,00,0707070707070707,ff +1471,1471,0,7585819748ca1c56,00,0707070707070707,ff +1472,1472,0,a356ae4a78debdd2,00,0707070707070707,ff +1473,1473,0,e99ca9a2c14cae86,00,0707070707070707,ff +1474,1474,0,74407ec89d5836d6,00,0707070707070707,ff +1475,1475,0,93492453c88be05f,00,0707070707070707,ff +1476,1476,0,35d1d67ed42f4b20,00,0707070707070707,ff +1477,1477,0,55c146b0f02b9f24,00,0707070707070707,ff +1478,1478,0,355681c7f8123a78,00,0707070707070707,ff +1479,1479,0,e10bdd6c7578831d,00,0707070707070707,ff +1480,1480,0,b30239de0dc0b7d8,00,0707070707070707,ff +1481,1481,0,a738e90bc009a244,00,0707070707070707,ff +1482,1482,0,fad9691d09f07434,00,0707070707070707,ff +1483,1483,0,3d57600d1aec46a3,00,0707070707070707,ff +1484,1484,0,dfac4cbf9aa02b1d,00,0707070707070707,ff +1485,1485,0,55ea66e36fa68c60,00,0707070707070707,ff +1486,1486,0,c9e3cee8a3f3c8be,00,0707070707070707,ff +1487,1487,0,cff5f7b98359b921,00,0707070707070707,ff +1488,1488,0,e351c023277893a9,00,0707070707070707,ff +1489,1489,0,b8736d237d207393,00,0707070707070707,ff +1490,1490,0,db8e02ce492e93ab,00,0707070707070707,ff +1491,1491,0,c85bf252e17ae54a,00,0707070707070707,ff +1492,1492,0,e7751b4745f4e7cb,00,0707070707070707,ff +1493,1493,0,2f46ae9664eab9cf,00,0707070707070707,ff +1494,1494,0,5676e9ea2ed09f12,00,0707070707070707,ff +1495,1495,0,d6330b1f8ad3e2dd,00,0707070707070707,ff +1496,1496,0,264457a828f17277,00,0707070707070707,ff +1497,1497,0,d56b107718263465,00,0707070707070707,ff +1498,1498,0,7f251200eadf209e,00,0707070707070707,ff +1499,1499,0,07fd11645ec3ebbb,c0,0707070707070707,ff +1500,1500,0,0707070707070707,ff,0707070707070707,ff +1501,1501,0,d5555555555555fb,01,0707070707070707,ff +1502,1502,0,5e242e6f2aede000,00,0707070707070707,ff +1503,1503,0,00450008af2644be,00,0707070707070707,ff +1504,1504,0,06400040120adc05,00,0707070707070707,ff +1505,1505,0,a8c00204a8c0b6a1,00,0707070707070707,ff +1506,1506,0,e7ac51143ecc0104,00,0707070707070707,ff +1507,1507,0,1080e7c437e0825d,00,0707070707070707,ff +1508,1508,0,0101000001b0f601,00,0707070707070707,ff +1509,1509,0,acc6827735f60a08,00,0707070707070707,ff +1510,1510,0,b6f24ea90fa8341f,00,0707070707070707,ff +1511,1511,0,31ea4c4e532c72f6,00,0707070707070707,ff +1512,1512,0,df5f85471df4ab99,00,0707070707070707,ff +1513,1513,0,380962b55e11a433,00,0707070707070707,ff +1514,1514,0,431b48ebb7cf5bc2,00,0707070707070707,ff +1515,1515,0,48cf82a1e36602c1,00,0707070707070707,ff +1516,1516,0,77e38a3765f67846,00,0707070707070707,ff +1517,1517,0,772b01e16e58a4c7,00,0707070707070707,ff +1518,1518,0,455efb9296333392,00,0707070707070707,ff +1519,1519,0,3a2fb2ca91695fcc,00,0707070707070707,ff +1520,1520,0,a6e1f012a8174f5b,00,0707070707070707,ff +1521,1521,0,33bdd773aeca479f,00,0707070707070707,ff +1522,1522,0,1db5276be266dd24,00,0707070707070707,ff +1523,1523,0,561bcabcbea46f97,00,0707070707070707,ff +1524,1524,0,63f65a4ff6a8c9ab,00,0707070707070707,ff +1525,1525,0,548c61beabbd65c4,00,0707070707070707,ff +1526,1526,0,b266c096f998bc13,00,0707070707070707,ff +1527,1527,0,b2109daabc82c158,00,0707070707070707,ff +1528,1528,0,f2aba2454a8dc15f,00,0707070707070707,ff +1529,1529,0,05f7e084ce980338,00,0707070707070707,ff +1530,1530,0,5be4b09372ee4a27,00,0707070707070707,ff +1531,1531,0,2de904339323288e,00,0707070707070707,ff +1532,1532,0,471931a49efede6c,00,0707070707070707,ff +1533,1533,0,f8240ee926e82c45,00,0707070707070707,ff +1534,1534,0,d26713f4671a226a,00,0707070707070707,ff +1535,1535,0,2191c0abdefa3f25,00,0707070707070707,ff +1536,1536,0,58f306bf37340cc8,00,0707070707070707,ff +1537,1537,0,b44bf54476be79dd,00,0707070707070707,ff +1538,1538,0,8e23e0eee722982b,00,0707070707070707,ff +1539,1539,0,b1a51c541172af7a,00,0707070707070707,ff +1540,1540,0,c8f0791beb1cdaad,00,0707070707070707,ff +1541,1541,0,8decd07c12073b00,00,0707070707070707,ff +1542,1542,0,98378f8e813f253f,00,0707070707070707,ff +1543,1543,0,f88ba0df7e5d9c99,00,0707070707070707,ff +1544,1544,0,5a067b197c0f3c95,00,0707070707070707,ff +1545,1545,0,e91499e287b4f046,00,0707070707070707,ff +1546,1546,0,bcd6bc794a73870b,00,0707070707070707,ff +1547,1547,0,ce275bb601b2681e,00,0707070707070707,ff +1548,1548,0,9859512c9147517f,00,0707070707070707,ff +1549,1549,0,fb509d2cb1045bb5,00,0707070707070707,ff +1550,1550,0,5b8cf49213f00e68,00,0707070707070707,ff +1551,1551,0,8a89d83da360924d,00,0707070707070707,ff +1552,1552,0,cb5dac91f07500dc,00,0707070707070707,ff +1553,1553,0,630c457a7ab67315,00,0707070707070707,ff +1554,1554,0,4ecea8fe50dec267,00,0707070707070707,ff +1555,1555,0,deadce62cf8e2f23,00,0707070707070707,ff +1556,1556,0,e9cadeeb816751ce,00,0707070707070707,ff +1557,1557,0,2e692d57a20a42e3,00,0707070707070707,ff +1558,1558,0,6f20aa37f42c406f,00,0707070707070707,ff +1559,1559,0,c333b5f88fd2fbb0,00,0707070707070707,ff +1560,1560,0,3bf43f145d578546,00,0707070707070707,ff +1561,1561,0,7be32167ac8ee214,00,0707070707070707,ff +1562,1562,0,ea91b9467e939110,00,0707070707070707,ff +1563,1563,0,93c57de623014f33,00,0707070707070707,ff +1564,1564,0,0262d6d5d164d3f5,00,0707070707070707,ff +1565,1565,0,6656d18bc71478d1,00,0707070707070707,ff +1566,1566,0,527e7a8f9b7bac5b,00,0707070707070707,ff +1567,1567,0,3cfb565864fe534e,00,0707070707070707,ff +1568,1568,0,0133f0cafbfcf41b,00,0707070707070707,ff +1569,1569,0,942c69c48c85a8f1,00,0707070707070707,ff +1570,1570,0,50bfcc676ccd54aa,00,0707070707070707,ff +1571,1571,0,d15a19aa1113b2bb,00,0707070707070707,ff +1572,1572,0,6bc5dfa88c48cb78,00,0707070707070707,ff +1573,1573,0,ecc77308ad2f13de,00,0707070707070707,ff +1574,1574,0,69dfdbe7a8fe0904,00,0707070707070707,ff +1575,1575,0,f6a3b2e8c90243a6,00,0707070707070707,ff +1576,1576,0,f40067094fa45251,00,0707070707070707,ff +1577,1577,0,25339d9373ba6380,00,0707070707070707,ff +1578,1578,0,5dcc8ecefa0aa5e2,00,0707070707070707,ff +1579,1579,0,c29de1c9e6fd54cf,00,0707070707070707,ff +1580,1580,0,a62c0e6bad4e44a5,00,0707070707070707,ff +1581,1581,0,bfcebcd1515eb147,00,0707070707070707,ff +1582,1582,0,e85eee7e0a65d79c,00,0707070707070707,ff +1583,1583,0,c7927b3cb60490be,00,0707070707070707,ff +1584,1584,0,1d7d31f85abcb10c,00,0707070707070707,ff +1585,1585,0,e007b07fd060086f,00,0707070707070707,ff +1586,1586,0,ad44168292adb168,00,0707070707070707,ff +1587,1587,0,deb06ed8e9dd2339,00,0707070707070707,ff +1588,1588,0,a4e7e166a094f075,00,0707070707070707,ff +1589,1589,0,6f0c9dfabdc71421,00,0707070707070707,ff +1590,1590,0,8d13ebb1a787bcd6,00,0707070707070707,ff +1591,1591,0,023cd5dfade4551e,00,0707070707070707,ff +1592,1592,0,1b1b61ed68648667,00,0707070707070707,ff +1593,1593,0,da325c27433809ca,00,0707070707070707,ff +1594,1594,0,2e58a3c00cb310a3,00,0707070707070707,ff +1595,1595,0,7ea077ba789d2e39,00,0707070707070707,ff +1596,1596,0,7a78c15143d5b394,00,0707070707070707,ff +1597,1597,0,68938d93dd3a623b,00,0707070707070707,ff +1598,1598,0,36f5fd77ae39e895,00,0707070707070707,ff +1599,1599,0,136fea5eb9b895c6,00,0707070707070707,ff +1600,1600,0,9857486eaa0e96e7,00,0707070707070707,ff +1601,1601,0,8fad9e6ef2e1d059,00,0707070707070707,ff +1602,1602,0,b2e1e1af93bc1865,00,0707070707070707,ff +1603,1603,0,68e38a321c121381,00,0707070707070707,ff +1604,1604,0,ab01d859230ff9b3,00,0707070707070707,ff +1605,1605,0,00d66dc241251b56,00,0707070707070707,ff +1606,1606,0,e08bc7e4a241b6d9,00,0707070707070707,ff +1607,1607,0,35d3ba725381857f,00,0707070707070707,ff +1608,1608,0,e2f80ac091bf1063,00,0707070707070707,ff +1609,1609,0,146786b311b7f475,00,0707070707070707,ff +1610,1610,0,c0ba49727b2ff8f3,00,0707070707070707,ff +1611,1611,0,8c659a88a5468c87,00,0707070707070707,ff +1612,1612,0,d16d08209f3dd553,00,0707070707070707,ff +1613,1613,0,278faad8c2881742,00,0707070707070707,ff +1614,1614,0,0bac5c619e5cd27a,00,0707070707070707,ff +1615,1615,0,36304b302b8d1782,00,0707070707070707,ff +1616,1616,0,2e9cd9aeb2ef8161,00,0707070707070707,ff +1617,1617,0,4e25fc69205d782d,00,0707070707070707,ff +1618,1618,0,81994e07dca62296,00,0707070707070707,ff +1619,1619,0,6357cc4f937f64f8,00,0707070707070707,ff +1620,1620,0,5becd8abff5b247a,00,0707070707070707,ff +1621,1621,0,7199e7e417b553f7,00,0707070707070707,ff +1622,1622,0,a5a2582d10bfebba,00,0707070707070707,ff +1623,1623,0,89edf81c6f10cd2b,00,0707070707070707,ff +1624,1624,0,6744fb806489b130,00,0707070707070707,ff +1625,1625,0,c3238dad6b0568b1,00,0707070707070707,ff +1626,1626,0,5e3f9b3f8ecfa928,00,0707070707070707,ff +1627,1627,0,0ec5f207fc0292b2,00,0707070707070707,ff +1628,1628,0,f16748ec54cb21ac,00,0707070707070707,ff +1629,1629,0,a1d20d7593edaa78,00,0707070707070707,ff +1630,1630,0,c8823f0e574b7972,00,0707070707070707,ff +1631,1631,0,f9cd601e07e7c3bf,00,0707070707070707,ff +1632,1632,0,778d15f421b2d32a,00,0707070707070707,ff +1633,1633,0,92362c1c47c9e074,00,0707070707070707,ff +1634,1634,0,44cced8298a74a1d,00,0707070707070707,ff +1635,1635,0,9cae35f9e439be09,00,0707070707070707,ff +1636,1636,0,d597351c5b988640,00,0707070707070707,ff +1637,1637,0,0341c2deaf9312e1,00,0707070707070707,ff +1638,1638,0,cf1497a8dd9e74da,00,0707070707070707,ff +1639,1639,0,749dd6eb7519a59b,00,0707070707070707,ff +1640,1640,0,98f6456c67cdc498,00,0707070707070707,ff +1641,1641,0,80865daa7bec3eed,00,0707070707070707,ff +1642,1642,0,c327b75351590a57,00,0707070707070707,ff +1643,1643,0,8e9f80b31e784281,00,0707070707070707,ff +1644,1644,0,17517a3445d9c3a0,00,0707070707070707,ff +1645,1645,0,2c9d88097881f8cb,00,0707070707070707,ff +1646,1646,0,f8430a72d6e25886,00,0707070707070707,ff +1647,1647,0,7ea395677c67fbd4,00,0707070707070707,ff +1648,1648,0,0d309569ef13a65d,00,0707070707070707,ff +1649,1649,0,c2ce8ef332687188,00,0707070707070707,ff +1650,1650,0,02f7200252358f3d,00,0707070707070707,ff +1651,1651,0,1ab4bc2cc44740a9,00,0707070707070707,ff +1652,1652,0,455aeab3899942bd,00,0707070707070707,ff +1653,1653,0,8bc0c455e55a9f01,00,0707070707070707,ff +1654,1654,0,30adbed0bf569f19,00,0707070707070707,ff +1655,1655,0,e94b2d86155cce03,00,0707070707070707,ff +1656,1656,0,11f1c5c1066f5484,00,0707070707070707,ff +1657,1657,0,c375f78223719fe1,00,0707070707070707,ff +1658,1658,0,acaca1515829463e,00,0707070707070707,ff +1659,1659,0,b57b718c46366886,00,0707070707070707,ff +1660,1660,0,6431ba701bb265c9,00,0707070707070707,ff +1661,1661,0,cce2fd08935adf1a,00,0707070707070707,ff +1662,1662,0,f496ac7b180aa3f2,00,0707070707070707,ff +1663,1663,0,90aaf5c3422754e7,00,0707070707070707,ff +1664,1664,0,f5bf141c888ac699,00,0707070707070707,ff +1665,1665,0,dfc8be95a1d71c79,00,0707070707070707,ff +1666,1666,0,b6b472ec11f25405,00,0707070707070707,ff +1667,1667,0,c744accbbbb205bf,00,0707070707070707,ff +1668,1668,0,55c84a197e6d8fdb,00,0707070707070707,ff +1669,1669,0,64e8fe44e0554430,00,0707070707070707,ff +1670,1670,0,21468c9bfbfe5c59,00,0707070707070707,ff +1671,1671,0,23b951cc4b2098dc,00,0707070707070707,ff +1672,1672,0,e35dfb8d22b43b16,00,0707070707070707,ff +1673,1673,0,eba4152f89088580,00,0707070707070707,ff +1674,1674,0,76a8cad8dec1587b,00,0707070707070707,ff +1675,1675,0,a39e8340b5c6fa97,00,0707070707070707,ff +1676,1676,0,a37ed115ae10f5d0,00,0707070707070707,ff +1677,1677,0,c6178739498227fa,00,0707070707070707,ff +1678,1678,0,cc7029fa22ab59a9,00,0707070707070707,ff +1679,1679,0,11a6fc1a65bdfddd,00,0707070707070707,ff +1680,1680,0,bd4e718de326e939,00,0707070707070707,ff +1681,1681,0,5c8907252a59dc28,00,0707070707070707,ff +1682,1682,0,4b4ee42242e7320d,00,0707070707070707,ff +1683,1683,0,dfac1dc8e0be23a9,00,0707070707070707,ff +1684,1684,0,fbd44287c8010c62,00,0707070707070707,ff +1685,1685,0,44f6d4f75dc2b37b,00,0707070707070707,ff +1686,1686,0,579e8710fc4633b9,00,0707070707070707,ff +1687,1687,0,d290aa785cad1c1c,00,0707070707070707,ff +1688,1688,0,f9308147db61f873,00,0707070707070707,ff +1689,1689,0,d7428343929c47e8,00,0707070707070707,ff +1690,1690,0,14411e8a5bc2a1fc,00,0707070707070707,ff +1691,1691,0,07fd05474a0fb4a2,c0,0707070707070707,ff +1692,1692,0,0707070707070707,ff,0707070707070707,ff +1693,1693,0,555555fb07070707,1f,0707070707070707,ff +1694,1694,0,2aede000d5555555,00,0707070707070707,ff +1695,1695,0,af2644be5e242e6f,00,0707070707070707,ff +1696,1696,0,130adc0500450008,00,0707070707070707,ff +1697,1697,0,a8c0b5a106400040,00,0707070707070707,ff +1698,1698,0,3ecc0104a8c00204,00,0707070707070707,ff +1699,1699,0,37e02a63e7ac5114,00,0707070707070707,ff +1700,1700,0,5d84f6011080e7c4,00,0707070707070707,ff +1701,1701,0,35f60a0801010000,00,0707070707070707,ff +1702,1702,0,4f72341facc68277,00,0707070707070707,ff +1703,1703,0,8843d9398b92b487,00,0707070707070707,ff +1704,1704,0,bcd7a6f17cccf274,00,0707070707070707,ff +1705,1705,0,db012381913f7317,00,0707070707070707,ff +1706,1706,0,5eaebd196f8e0ba6,00,0707070707070707,ff +1707,1707,0,6ac23b4538e07bb1,00,0707070707070707,ff +1708,1708,0,d0167cb6337e9556,00,0707070707070707,ff +1709,1709,0,e5e22e7ef9e27b10,00,0707070707070707,ff +1710,1710,0,d7dd1b168edf0ddd,00,0707070707070707,ff +1711,1711,0,326405f168babddd,00,0707070707070707,ff +1712,1712,0,4a26fb24bc33a9b7,00,0707070707070707,ff +1713,1713,0,ed385573363e21f7,00,0707070707070707,ff +1714,1714,0,cf7029607be203d7,00,0707070707070707,ff +1715,1715,0,774ede672284d308,00,0707070707070707,ff +1716,1716,0,ae55e0ad1dea09a6,00,0707070707070707,ff +1717,1717,0,84ad4e4a9edd0f35,00,0707070707070707,ff +1718,1718,0,f88261ad601f3d15,00,0707070707070707,ff +1719,1719,0,92084efa608a3ea1,00,0707070707070707,ff +1720,1720,0,f1a7ce0a37527bf8,00,0707070707070707,ff +1721,1721,0,0ae9fd1c81d0c278,00,0707070707070707,ff +1722,1722,0,3a04e4326aa0f05a,00,0707070707070707,ff +1723,1723,0,d7612e39d92f9ec1,00,0707070707070707,ff +1724,1724,0,c6233fb593fddb75,00,0707070707070707,ff +1725,1725,0,1f4a37b20a9db681,00,0707070707070707,ff +1726,1726,0,69e051384e89c311,00,0707070707070707,ff +1727,1727,0,17c4a5eb6aad41ce,00,0707070707070707,ff +1728,1728,0,3738b350efccbb08,00,0707070707070707,ff +1729,1729,0,0f3bf0e9d52edfaa,00,0707070707070707,ff +1730,1730,0,b17217a8d56f1414,00,0707070707070707,ff +1731,1731,0,1519bb9840f25d14,00,0707070707070707,ff +1732,1732,0,b74b8e8a55b027fe,00,0707070707070707,ff +1733,1733,0,4c7e2bf853a51519,00,0707070707070707,ff +1734,1734,0,aa4f3cfdae3abeb8,00,0707070707070707,ff +1735,1735,0,98cbd4def096daf9,00,0707070707070707,ff +1736,1736,0,fa31cd003be7109a,00,0707070707070707,ff +1737,1737,0,cec215a944a70991,00,0707070707070707,ff +1738,1738,0,355ea801400926a0,00,0707070707070707,ff +1739,1739,0,70c283ef2bb61a7e,00,0707070707070707,ff +1740,1740,0,12062f5f301d11de,00,0707070707070707,ff +1741,1741,0,4f6c11f373b6651a,00,0707070707070707,ff +1742,1742,0,883917aeaf9634b2,00,0707070707070707,ff +1743,1743,0,56b955e68beffa33,00,0707070707070707,ff +1744,1744,0,82f7c4252964a578,00,0707070707070707,ff +1745,1745,0,ff007169e5670299,00,0707070707070707,ff +1746,1746,0,3aa062b2f3879f4a,00,0707070707070707,ff +1747,1747,0,ca1d35d7a09c0406,00,0707070707070707,ff +1748,1748,0,042e025dc249d824,00,0707070707070707,ff +1749,1749,0,42f407cc8e19023f,00,0707070707070707,ff +1750,1750,0,648ee599521f3c28,00,0707070707070707,ff +1751,1751,0,14cb02e561b8085f,00,0707070707070707,ff +1752,1752,0,971cc56f78c11bb6,00,0707070707070707,ff +1753,1753,0,04f428ca0cdcfd52,00,0707070707070707,ff +1754,1754,0,d99d480a733a6cc9,00,0707070707070707,ff +1755,1755,0,f841e80fd6349f46,00,0707070707070707,ff +1756,1756,0,2be4eb439591e684,00,0707070707070707,ff +1757,1757,0,535fb0cf947effd7,00,0707070707070707,ff +1758,1758,0,ce04b7ba0da91db6,00,0707070707070707,ff +1759,1759,0,2cf3bae6a63f5ca3,00,0707070707070707,ff +1760,1760,0,c5367e09185bc957,00,0707070707070707,ff +1761,1761,0,6af81dd2b192d657,00,0707070707070707,ff +1762,1762,0,c60ad8540d10da96,00,0707070707070707,ff +1763,1763,0,20b1a4a8d893e142,00,0707070707070707,ff +1764,1764,0,2e1ca9d7e2dd8196,00,0707070707070707,ff +1765,1765,0,b5453e3e7a702990,00,0707070707070707,ff +1766,1766,0,84ad1dd398cc52f2,00,0707070707070707,ff +1767,1767,0,42b58b20ab50b9f6,00,0707070707070707,ff +1768,1768,0,356f182ab4fbfe62,00,0707070707070707,ff +1769,1769,0,d45103ab2f5706a1,00,0707070707070707,ff +1770,1770,0,fa89d184e8515213,00,0707070707070707,ff +1771,1771,0,0e582e43b00b9cfd,00,0707070707070707,ff +1772,1772,0,e77cb6a4aef45413,00,0707070707070707,ff +1773,1773,0,99bd0f6886e6e9f8,00,0707070707070707,ff +1774,1774,0,8d6b12218a790b40,00,0707070707070707,ff +1775,1775,0,6dd90276572927da,00,0707070707070707,ff +1776,1776,0,646df4594c39ffb1,00,0707070707070707,ff +1777,1777,0,ecdad07d87dc5628,00,0707070707070707,ff +1778,1778,0,4c7f9ae68a80ec2b,00,0707070707070707,ff +1779,1779,0,614283fc8435fa1d,00,0707070707070707,ff +1780,1780,0,808dbc9af58b37b0,00,0707070707070707,ff +1781,1781,0,c4847ee2460d6112,00,0707070707070707,ff +1782,1782,0,8624d10473ff2b78,00,0707070707070707,ff +1783,1783,0,3b97f6de35bf1086,00,0707070707070707,ff +1784,1784,0,2d14b130d1470a49,00,0707070707070707,ff +1785,1785,0,95cbf252b908b451,00,0707070707070707,ff +1786,1786,0,60c4380ca5f9e5be,00,0707070707070707,ff +1787,1787,0,f81e1dc880a24bb4,00,0707070707070707,ff +1788,1788,0,3900f3e2516f34a3,00,0707070707070707,ff +1789,1789,0,1820ccc82c44bb88,00,0707070707070707,ff +1790,1790,0,c339a29eafbc85a2,00,0707070707070707,ff +1791,1791,0,d3376a3d41aafeeb,00,0707070707070707,ff +1792,1792,0,def27a4f05659e48,00,0707070707070707,ff +1793,1793,0,fbf1008fc62b5305,00,0707070707070707,ff +1794,1794,0,b3166d3c062c0cd2,00,0707070707070707,ff +1795,1795,0,13d811e488e6f49a,00,0707070707070707,ff +1796,1796,0,eefbb85c4aaee51e,00,0707070707070707,ff +1797,1797,0,28db6fd7821b9663,00,0707070707070707,ff +1798,1798,0,db00802c3ccb800c,00,0707070707070707,ff +1799,1799,0,ddf02fb60cc8230f,00,0707070707070707,ff +1800,1800,0,b292ff2219a7b04a,00,0707070707070707,ff +1801,1801,0,c26a1badf746fc38,00,0707070707070707,ff +1802,1802,0,ab0ebb15abb2e2a9,00,0707070707070707,ff +1803,1803,0,f615dc01b66648ac,00,0707070707070707,ff +1804,1804,0,ae1cc34ad6b7e021,00,0707070707070707,ff +1805,1805,0,f61ae57f90ac6d0c,00,0707070707070707,ff +1806,1806,0,ecf09ec002e55a26,00,0707070707070707,ff +1807,1807,0,3ce08bcfb48216aa,00,0707070707070707,ff +1808,1808,0,9dd15958ee9e1358,00,0707070707070707,ff +1809,1809,0,aff76074973adf82,00,0707070707070707,ff +1810,1810,0,3637e0c58ba965ca,00,0707070707070707,ff +1811,1811,0,837681347d7a482c,00,0707070707070707,ff +1812,1812,0,61604c20ab355777,00,0707070707070707,ff +1813,1813,0,23c17da042bf6824,00,0707070707070707,ff +1814,1814,0,2db5585487a55735,00,0707070707070707,ff +1815,1815,0,1b453f4af2efa90a,00,0707070707070707,ff +1816,1816,0,d9c7d24972323ff2,00,0707070707070707,ff +1817,1817,0,5629c28d34575243,00,0707070707070707,ff +1818,1818,0,3bf4db21b58dce76,00,0707070707070707,ff +1819,1819,0,6955249be8a8f1e2,00,0707070707070707,ff +1820,1820,0,15f78cc1fc09378b,00,0707070707070707,ff +1821,1821,0,b09367aeb43deca2,00,0707070707070707,ff +1822,1822,0,2a41e76c524aac20,00,0707070707070707,ff +1823,1823,0,19ce49bf4f75f3db,00,0707070707070707,ff +1824,1824,0,90cc36c9a8ce9ac4,00,0707070707070707,ff +1825,1825,0,0f7b568464e161db,00,0707070707070707,ff +1826,1826,0,d584a4b7735cf7c6,00,0707070707070707,ff +1827,1827,0,3a4c8303de4abdbc,00,0707070707070707,ff +1828,1828,0,87c9836c1e7644d0,00,0707070707070707,ff +1829,1829,0,c26f9928cc3302d2,00,0707070707070707,ff +1830,1830,0,c6d01ff3663265e6,00,0707070707070707,ff +1831,1831,0,391d67e3d6a7013b,00,0707070707070707,ff +1832,1832,0,c988098b705fd03f,00,0707070707070707,ff +1833,1833,0,e6c7a5d85372a760,00,0707070707070707,ff +1834,1834,0,40b0bfabf021a85c,00,0707070707070707,ff +1835,1835,0,44933c41c2a70756,00,0707070707070707,ff +1836,1836,0,6bc6a56917f7a7c0,00,0707070707070707,ff +1837,1837,0,780f8ad784f44ce5,00,0707070707070707,ff +1838,1838,0,6be810600daa5343,00,0707070707070707,ff +1839,1839,0,34abfbdbd5442650,00,0707070707070707,ff +1840,1840,0,950c8404d2e86459,00,0707070707070707,ff +1841,1841,0,c73ed3d6f2cbff57,00,0707070707070707,ff +1842,1842,0,0cc91bea6e2ea709,00,0707070707070707,ff +1843,1843,0,0c0dc43d8ef91741,00,0707070707070707,ff +1844,1844,0,fbc7b040f776d69e,00,0707070707070707,ff +1845,1845,0,23029205696c90b3,00,0707070707070707,ff +1846,1846,0,249e0e372a84eca3,00,0707070707070707,ff +1847,1847,0,07670dea15ffcc26,00,0707070707070707,ff +1848,1848,0,b29d1ccf3e12d8eb,00,0707070707070707,ff +1849,1849,0,4b0944df1e49ba2b,00,0707070707070707,ff +1850,1850,0,02fbb720ef37f02a,00,0707070707070707,ff +1851,1851,0,31bd456c021b13f5,00,0707070707070707,ff +1852,1852,0,7b0639c718bf6296,00,0707070707070707,ff +1853,1853,0,06044c4c46501ab1,00,0707070707070707,ff +1854,1854,0,458a82d54c026fdd,00,0707070707070707,ff +1855,1855,0,97f4b16d379f3c0f,00,0707070707070707,ff +1856,1856,0,4bc754d78b1b6fd0,00,0707070707070707,ff +1857,1857,0,e2d35e0f07cf2c29,00,0707070707070707,ff +1858,1858,0,df6e0fbe113d0c26,00,0707070707070707,ff +1859,1859,0,5e939245f361619c,00,0707070707070707,ff +1860,1860,0,24295e77907a838c,00,0707070707070707,ff +1861,1861,0,8ccd078d8b3e966d,00,0707070707070707,ff +1862,1862,0,4766f934fe83e1fd,00,0707070707070707,ff +1863,1863,0,339071d6f4a76a0f,00,0707070707070707,ff +1864,1864,0,6519d5d5b6268748,00,0707070707070707,ff +1865,1865,0,7e1637435f2d80cf,00,0707070707070707,ff +1866,1866,0,2c137abea30b4d6e,00,0707070707070707,ff +1867,1867,0,e48a0fb49ac6cf47,00,0707070707070707,ff +1868,1868,0,83534086065245f8,00,0707070707070707,ff +1869,1869,0,9648c0a8ea18cf81,00,0707070707070707,ff +1870,1870,0,c1fdf9f4c01a09bb,00,0707070707070707,ff +1871,1871,0,596e73ddae321765,00,0707070707070707,ff +1872,1872,0,f68dd9baafa9fba9,00,0707070707070707,ff +1873,1873,0,397f8dd4f65f9e79,00,0707070707070707,ff +1874,1874,0,baa40a2993d36968,00,0707070707070707,ff +1875,1875,0,0e187af76e5cbf03,00,0707070707070707,ff +1876,1876,0,cfafd0e801b4851a,00,0707070707070707,ff +1877,1877,0,5e5a3862410da03a,00,0707070707070707,ff +1878,1878,0,84f2ed633f07179d,00,0707070707070707,ff +1879,1879,0,5c95c4025401b452,00,0707070707070707,ff +1880,1880,0,152ff243d0771140,00,0707070707070707,ff +1881,1881,0,3a14affee572f7ca,00,0707070707070707,ff +1882,1882,0,9b270c0a91c7cc60,00,0707070707070707,ff +1883,1883,0,a0a972aa4a094c72,00,0707070707070707,ff +1884,1884,0,0707070707fde796,fc,0707070707070707,ff +1885,1885,0,555555fb07070707,1f,0707070707070707,ff +1886,1886,0,2aede000d5555555,00,0707070707070707,ff +1887,1887,0,af2644be5e242e6f,00,0707070707070707,ff +1888,1888,0,140adc0500450008,00,0707070707070707,ff +1889,1889,0,a8c0b4a106400040,00,0707070707070707,ff +1890,1890,0,3ecc0104a8c00204,00,0707070707070707,ff +1891,1891,0,37e0d268e7ac5114,00,0707070707070707,ff +1892,1892,0,f11bf6011080e7c4,00,0707070707070707,ff +1893,1893,0,35f60a0801010000,00,0707070707070707,ff +1894,1894,0,1c92341facc68277,00,0707070707070707,ff +1895,1895,0,a15dcc48f7e63927,00,0707070707070707,ff +1896,1896,0,ffdf27f3f2806571,00,0707070707070707,ff +1897,1897,0,21c60850e57169d3,00,0707070707070707,ff +1898,1898,0,41f0fb3672c0614d,00,0707070707070707,ff +1899,1899,0,ce0f38f6552e73c9,00,0707070707070707,ff +1900,1900,0,b732b23e85557ff3,00,0707070707070707,ff +1901,1901,0,5ea899e05390917d,00,0707070707070707,ff +1902,1902,0,5e24adfbc840795a,00,0707070707070707,ff +1903,1903,0,959ceed232c49574,00,0707070707070707,ff +1904,1904,0,ef066d33afa9c8d3,00,0707070707070707,ff +1905,1905,0,dd82057965dcbf99,00,0707070707070707,ff +1906,1906,0,885b9eb0f222316c,00,0707070707070707,ff +1907,1907,0,6ff4cdd803fe279d,00,0707070707070707,ff +1908,1908,0,f7ef3ae138bad44a,00,0707070707070707,ff +1909,1909,0,8034bea6603a1068,00,0707070707070707,ff +1910,1910,0,2bb556f624916f0e,00,0707070707070707,ff +1911,1911,0,3b45f9775f2ef5af,00,0707070707070707,ff +1912,1912,0,707b9d1f66e23bf2,00,0707070707070707,ff +1913,1913,0,d9f39780af602bf7,00,0707070707070707,ff +1914,1914,0,474e1df56cf3f498,00,0707070707070707,ff +1915,1915,0,80c59dba74c6e390,00,0707070707070707,ff +1916,1916,0,0f49198eb0a67e96,00,0707070707070707,ff +1917,1917,0,5cc8cafc6c46e1c2,00,0707070707070707,ff +1918,1918,0,620e2608493a2044,00,0707070707070707,ff +1919,1919,0,c76b845313fd164a,00,0707070707070707,ff +1920,1920,0,0016ba816bbcf5a3,00,0707070707070707,ff +1921,1921,0,a59a329b689c5640,00,0707070707070707,ff +1922,1922,0,f0b30244fe17ac1a,00,0707070707070707,ff +1923,1923,0,29f66ef0a3bd3e86,00,0707070707070707,ff +1924,1924,0,afc5e4362c765f37,00,0707070707070707,ff +1925,1925,0,6f7fd3e3d4a396e5,00,0707070707070707,ff +1926,1926,0,82d5d34ccda3b7f7,00,0707070707070707,ff +1927,1927,0,224d0b783df06d9c,00,0707070707070707,ff +1928,1928,0,82a70abc06012d1f,00,0707070707070707,ff +1929,1929,0,6e94f9f93b9e284e,00,0707070707070707,ff +1930,1930,0,4e49f4ff613f3518,00,0707070707070707,ff +1931,1931,0,2c31d5bef75f862e,00,0707070707070707,ff +1932,1932,0,47e6b4506f1d08b6,00,0707070707070707,ff +1933,1933,0,e96de7e3a698e992,00,0707070707070707,ff +1934,1934,0,233e74756c4fe706,00,0707070707070707,ff +1935,1935,0,d8c60a4b1d3dc2f5,00,0707070707070707,ff +1936,1936,0,c17571fbb730cc57,00,0707070707070707,ff +1937,1937,0,51c0d5797c37bada,00,0707070707070707,ff +1938,1938,0,e79f6f59aec9b4b2,00,0707070707070707,ff +1939,1939,0,978d8606394b8129,00,0707070707070707,ff +1940,1940,0,833c89d16be35f6d,00,0707070707070707,ff +1941,1941,0,0c2877a2b36482ca,00,0707070707070707,ff +1942,1942,0,5cdbe98b9cf1652a,00,0707070707070707,ff +1943,1943,0,4d4913e3ac2c365e,00,0707070707070707,ff +1944,1944,0,b84cce49c656fe94,00,0707070707070707,ff +1945,1945,0,5544916050c669b6,00,0707070707070707,ff +1946,1946,0,dd80bf72e82de15a,00,0707070707070707,ff +1947,1947,0,2d9132dc427f56dd,00,0707070707070707,ff +1948,1948,0,275cebbd8d7f86f2,00,0707070707070707,ff +1949,1949,0,fc1f4e598930c0ff,00,0707070707070707,ff +1950,1950,0,c5f04d53708409a4,00,0707070707070707,ff +1951,1951,0,7b659845b1365be9,00,0707070707070707,ff +1952,1952,0,91ce5848fec0c6bb,00,0707070707070707,ff +1953,1953,0,3c8c6235b764b3fb,00,0707070707070707,ff +1954,1954,0,f4b75d23bf39bc6c,00,0707070707070707,ff +1955,1955,0,daaa2b65c1b77a1e,00,0707070707070707,ff +1956,1956,0,ff8f6478e1cc2db8,00,0707070707070707,ff +1957,1957,0,1866cbb68a1d0aee,00,0707070707070707,ff +1958,1958,0,5612d1d84e544dbc,00,0707070707070707,ff +1959,1959,0,36efce65c72c5e6e,00,0707070707070707,ff +1960,1960,0,e2f28f0557123028,00,0707070707070707,ff +1961,1961,0,2de2c24d712caaef,00,0707070707070707,ff +1962,1962,0,ac4dea6f5e15fe22,00,0707070707070707,ff +1963,1963,0,713ef96e94603326,00,0707070707070707,ff +1964,1964,0,620df62d42ec1843,00,0707070707070707,ff +1965,1965,0,1d6b3784d91b3a2c,00,0707070707070707,ff +1966,1966,0,9239070dfb27e127,00,0707070707070707,ff +1967,1967,0,abfe43bd2f37214e,00,0707070707070707,ff +1968,1968,0,24be59ba681a6854,00,0707070707070707,ff +1969,1969,0,d2b8732a6beeeb92,00,0707070707070707,ff +1970,1970,0,7f16d13368bc15c6,00,0707070707070707,ff +1971,1971,0,48ebf316014b6ff9,00,0707070707070707,ff +1972,1972,0,325d3d6232bc3a23,00,0707070707070707,ff +1973,1973,0,175bebdb8513688a,00,0707070707070707,ff +1974,1974,0,185915942a4093d3,00,0707070707070707,ff +1975,1975,0,4d60f61a96a75fdd,00,0707070707070707,ff +1976,1976,0,37243b4913f6d899,00,0707070707070707,ff +1977,1977,0,af232b71e6d60f37,00,0707070707070707,ff +1978,1978,0,0eef5374f7605cc8,00,0707070707070707,ff +1979,1979,0,955c0aa5d8b39657,00,0707070707070707,ff +1980,1980,0,05bec50ffe1ac331,00,0707070707070707,ff +1981,1981,0,07896414796d8846,00,0707070707070707,ff +1982,1982,0,963942dece19d971,00,0707070707070707,ff +1983,1983,0,35b2c4f131b481b4,00,0707070707070707,ff +1984,1984,0,624247a266fc4d7d,00,0707070707070707,ff +1985,1985,0,36e48e0810b45e95,00,0707070707070707,ff +1986,1986,0,e8ff6e6c90bf8ff0,00,0707070707070707,ff +1987,1987,0,b1881fd73dd85b09,00,0707070707070707,ff +1988,1988,0,da233f284ab26231,00,0707070707070707,ff +1989,1989,0,fc43f1104094d79f,00,0707070707070707,ff +1990,1990,0,89990de112105cc5,00,0707070707070707,ff +1991,1991,0,295fd7ecf4c26e9e,00,0707070707070707,ff +1992,1992,0,337174eaae23190c,00,0707070707070707,ff +1993,1993,0,171a181aaae5b726,00,0707070707070707,ff +1994,1994,0,0a88c4c89692fa2f,00,0707070707070707,ff +1995,1995,0,78b969069c320104,00,0707070707070707,ff +1996,1996,0,133d9318d2aa1d79,00,0707070707070707,ff +1997,1997,0,ba95e38d09bbcc66,00,0707070707070707,ff +1998,1998,0,d4fb4a7821c24524,00,0707070707070707,ff +1999,1999,0,a8c53a9d30672443,00,0707070707070707,ff +2000,2000,0,1126cd073c3597b1,00,0707070707070707,ff +2001,2001,0,17c55f2c492c6ef5,00,0707070707070707,ff +2002,2002,0,d4e3d269c0c30f0a,00,0707070707070707,ff +2003,2003,0,59e31153c4a4069d,00,0707070707070707,ff +2004,2004,0,ed9e9f12eafab70f,00,0707070707070707,ff +2005,2005,0,5a5b9aadf5ace601,00,0707070707070707,ff +2006,2006,0,ab649128bb7fa8c4,00,0707070707070707,ff +2007,2007,0,6209d69d35789c90,00,0707070707070707,ff +2008,2008,0,48d915adbb20c06d,00,0707070707070707,ff +2009,2009,0,cca9669ae829ff82,00,0707070707070707,ff +2010,2010,0,72095f9e0227cf36,00,0707070707070707,ff +2011,2011,0,91ad118650fc8bd7,00,0707070707070707,ff +2012,2012,0,407a9d9bfe370f07,00,0707070707070707,ff +2013,2013,0,6c5e7c141c62edb5,00,0707070707070707,ff +2014,2014,0,b7b0e28887328f91,00,0707070707070707,ff +2015,2015,0,a007484e638df87c,00,0707070707070707,ff +2016,2016,0,18dbcda996696911,00,0707070707070707,ff +2017,2017,0,8155dbd9462a5f43,00,0707070707070707,ff +2018,2018,0,26e0d90e5b420c31,00,0707070707070707,ff +2019,2019,0,8a67b66d10a81031,00,0707070707070707,ff +2020,2020,0,99fea10cb8128c78,00,0707070707070707,ff +2021,2021,0,c77836901aaf61cc,00,0707070707070707,ff +2022,2022,0,1649b6dc4dc4903f,00,0707070707070707,ff +2023,2023,0,679b57d7bfd5b2f2,00,0707070707070707,ff +2024,2024,0,d15d21700f53c7ad,00,0707070707070707,ff +2025,2025,0,19ad2f40577a1f62,00,0707070707070707,ff +2026,2026,0,f380d39988de8543,00,0707070707070707,ff +2027,2027,0,8212f04c58591005,00,0707070707070707,ff +2028,2028,0,4d2cdc41e6334669,00,0707070707070707,ff +2029,2029,0,f09211e0669a0e0c,00,0707070707070707,ff +2030,2030,0,e83813d49f5972b7,00,0707070707070707,ff +2031,2031,0,83f17eaab8e8dc80,00,0707070707070707,ff +2032,2032,0,91aee717d83a2149,00,0707070707070707,ff +2033,2033,0,c347bf126a7d1cd4,00,0707070707070707,ff +2034,2034,0,0640f2c529cb6802,00,0707070707070707,ff +2035,2035,0,a0684f00a5ee8944,00,0707070707070707,ff +2036,2036,0,7b4a66a1cb6d6349,00,0707070707070707,ff +2037,2037,0,2d8b1060310637b4,00,0707070707070707,ff +2038,2038,0,f9b8e0a8282db08e,00,0707070707070707,ff +2039,2039,0,76999d0264574956,00,0707070707070707,ff +2040,2040,0,7773aadb45120d5f,00,0707070707070707,ff +2041,2041,0,a5d26ce36ae87942,00,0707070707070707,ff +2042,2042,0,f3a1fae3db2ff8f7,00,0707070707070707,ff +2043,2043,0,2550f575c379627f,00,0707070707070707,ff +2044,2044,0,0056abfa7e35ca00,00,0707070707070707,ff +2045,2045,0,b29eb4569aee687a,00,0707070707070707,ff +2046,2046,0,bc4f8a4218f3e489,00,0707070707070707,ff +2047,2047,0,f3335feda76725f7,00,0707070707070707,ff +2048,2048,0,a8d3a8b0b7874cf9,00,0707070707070707,ff +2049,2049,0,d8523919ba046b40,00,0707070707070707,ff +2050,2050,0,9747eb2fa543ec51,00,0707070707070707,ff +2051,2051,0,843530059f5109f4,00,0707070707070707,ff +2052,2052,0,379b17c46c9e965f,00,0707070707070707,ff +2053,2053,0,a2cccc397f8b237e,00,0707070707070707,ff +2054,2054,0,440875ffcc9e1778,00,0707070707070707,ff +2055,2055,0,ae015de0fe3fffdd,00,0707070707070707,ff +2056,2056,0,36417671a523c3e6,00,0707070707070707,ff +2057,2057,0,bc4aa3bb69f6a32d,00,0707070707070707,ff +2058,2058,0,a3161902bc7bd51a,00,0707070707070707,ff +2059,2059,0,9051552f681796ee,00,0707070707070707,ff +2060,2060,0,24a2dee0442b8fa9,00,0707070707070707,ff +2061,2061,0,53dbe6e8601c26d5,00,0707070707070707,ff +2062,2062,0,835e0aad37d08d9a,00,0707070707070707,ff +2063,2063,0,f3bb95efe9b950ed,00,0707070707070707,ff +2064,2064,0,2b4b0ff8485cced5,00,0707070707070707,ff +2065,2065,0,3f4e1825f91de52e,00,0707070707070707,ff +2066,2066,0,73083d36009f0204,00,0707070707070707,ff +2067,2067,0,619246343d0b7edb,00,0707070707070707,ff +2068,2068,0,1a5ea9fd55d71b0f,00,0707070707070707,ff +2069,2069,0,19a24ced633ea822,00,0707070707070707,ff +2070,2070,0,71e8ef553646bbad,00,0707070707070707,ff +2071,2071,0,6121a134b6fcf0b4,00,0707070707070707,ff +2072,2072,0,3949576fb856d5da,00,0707070707070707,ff +2073,2073,0,fd957b964167ce05,00,0707070707070707,ff +2074,2074,0,d2c663ded323d9eb,00,0707070707070707,ff +2075,2075,0,cfb0c27434bb1062,00,0707070707070707,ff +2076,2076,0,0707070707fd7f23,fc,0707070707070707,ff +2077,2077,0,0707070707070707,ff,0707070707070707,ff +2078,2078,0,d5555555555555fb,01,0707070707070707,ff +2079,2079,0,5e242e6f2aede000,00,0707070707070707,ff +2080,2080,0,00450008af2644be,00,0707070707070707,ff +2081,2081,0,06400040150adc05,00,0707070707070707,ff +2082,2082,0,a8c00204a8c0b3a1,00,0707070707070707,ff +2083,2083,0,e7ac51143ecc0104,00,0707070707070707,ff +2084,2084,0,1080e7c437e07a6e,00,0707070707070707,ff +2085,2085,0,01010000d048f601,00,0707070707070707,ff +2086,2086,0,acc6827735f60a08,00,0707070707070707,ff +2087,2087,0,524f939a362e341f,00,0707070707070707,ff +2088,2088,0,c925ac73e538f9a0,00,0707070707070707,ff +2089,2089,0,b505cf15d87173c8,00,0707070707070707,ff +2090,2090,0,ebf094984e279af9,00,0707070707070707,ff +2091,2091,0,e59cd17fa066765d,00,0707070707070707,ff +2092,2092,0,85c71d5343d93114,00,0707070707070707,ff +2093,2093,0,3c80544ce1bc58c8,00,0707070707070707,ff +2094,2094,0,5dd455855dcc5ed1,00,0707070707070707,ff +2095,2095,0,1ced1c231b2cdb8a,00,0707070707070707,ff +2096,2096,0,73757249a5a26925,00,0707070707070707,ff +2097,2097,0,1262c8acd302dc32,00,0707070707070707,ff +2098,2098,0,1341057ed29afe1a,00,0707070707070707,ff +2099,2099,0,09121d3837cdc022,00,0707070707070707,ff +2100,2100,0,75ec7915218a788b,00,0707070707070707,ff +2101,2101,0,fc9878870ef92fec,00,0707070707070707,ff +2102,2102,0,d45c4d9b414e0601,00,0707070707070707,ff +2103,2103,0,f0585ea18ae10d0c,00,0707070707070707,ff +2104,2104,0,0e7339ddba9cb69e,00,0707070707070707,ff +2105,2105,0,8648de173ca4a8e0,00,0707070707070707,ff +2106,2106,0,ff316902ebacf7d1,00,0707070707070707,ff +2107,2107,0,2ec11e54e6193bec,00,0707070707070707,ff +2108,2108,0,f9657d52cc3e4471,00,0707070707070707,ff +2109,2109,0,e68ec3dd70984dab,00,0707070707070707,ff +2110,2110,0,e07f34f5e3c6c1e6,00,0707070707070707,ff +2111,2111,0,b2e319c1e62e61c8,00,0707070707070707,ff +2112,2112,0,09d56081b46f3dda,00,0707070707070707,ff +2113,2113,0,645889be5b5c8391,00,0707070707070707,ff +2114,2114,0,4991c887a478fe14,00,0707070707070707,ff +2115,2115,0,be9400b50e40f1b3,00,0707070707070707,ff +2116,2116,0,24cc3c5ee171d262,00,0707070707070707,ff +2117,2117,0,9a3ace11f93d5f6b,00,0707070707070707,ff +2118,2118,0,fa00bde38e2ff105,00,0707070707070707,ff +2119,2119,0,986443fc981d07c6,00,0707070707070707,ff +2120,2120,0,e07b54ece8a08a51,00,0707070707070707,ff +2121,2121,0,ec1797f4c0789ee8,00,0707070707070707,ff +2122,2122,0,98fea1ae80993574,00,0707070707070707,ff +2123,2123,0,b39119bf3ba54faa,00,0707070707070707,ff +2124,2124,0,b15907165ff658ae,00,0707070707070707,ff +2125,2125,0,bc6898b1a724b830,00,0707070707070707,ff +2126,2126,0,d376737af265da41,00,0707070707070707,ff +2127,2127,0,4a8047b0eb84a116,00,0707070707070707,ff +2128,2128,0,fba7788be34622cb,00,0707070707070707,ff +2129,2129,0,d7ce378eb659cd1d,00,0707070707070707,ff +2130,2130,0,87bbb31ef8c5f438,00,0707070707070707,ff +2131,2131,0,d105837055c20a17,00,0707070707070707,ff +2132,2132,0,c5fde5fcf81c38ff,00,0707070707070707,ff +2133,2133,0,263b6ee3dd543ffe,00,0707070707070707,ff +2134,2134,0,ebce5b82178e8d93,00,0707070707070707,ff +2135,2135,0,5cd6d1e60327ad4d,00,0707070707070707,ff +2136,2136,0,9158c0207918e082,00,0707070707070707,ff +2137,2137,0,d2d0c0a034f526c0,00,0707070707070707,ff +2138,2138,0,bf53f5516aadb320,00,0707070707070707,ff +2139,2139,0,a2e3e8b513c671ac,00,0707070707070707,ff +2140,2140,0,f9533fe069993872,00,0707070707070707,ff +2141,2141,0,e965e2f23160eccf,00,0707070707070707,ff +2142,2142,0,eabd6ea4ae723b72,00,0707070707070707,ff +2143,2143,0,6b20dc600f69f80a,00,0707070707070707,ff +2144,2144,0,67452eff3cf8e86e,00,0707070707070707,ff +2145,2145,0,5b8c46c0071ef2f2,00,0707070707070707,ff +2146,2146,0,d82cb84f1c37956a,00,0707070707070707,ff +2147,2147,0,d95a873be113d08e,00,0707070707070707,ff +2148,2148,0,a76ae534938b2aba,00,0707070707070707,ff +2149,2149,0,dbaa4c055e2dd560,00,0707070707070707,ff +2150,2150,0,dac5c1a0a53b0b2d,00,0707070707070707,ff +2151,2151,0,4c60becc1780f7c3,00,0707070707070707,ff +2152,2152,0,581e3f3bbabf7e2b,00,0707070707070707,ff +2153,2153,0,76a6cb3cc4278ecb,00,0707070707070707,ff +2154,2154,0,1b490e1b48ce8b59,00,0707070707070707,ff +2155,2155,0,5301e6b0396d1ed4,00,0707070707070707,ff +2156,2156,0,b90844ffae93854b,00,0707070707070707,ff +2157,2157,0,698c229b2ac65677,00,0707070707070707,ff +2158,2158,0,32744b4b55c99318,00,0707070707070707,ff +2159,2159,0,55893801938ebe7a,00,0707070707070707,ff +2160,2160,0,843d2777bd67dd1a,00,0707070707070707,ff +2161,2161,0,69f735b2123a1e82,00,0707070707070707,ff +2162,2162,0,8089917e4e5ba972,00,0707070707070707,ff +2163,2163,0,a327fd18a9a8ef9a,00,0707070707070707,ff +2164,2164,0,0550c95794c40d57,00,0707070707070707,ff +2165,2165,0,f8ba7f1b656705a9,00,0707070707070707,ff +2166,2166,0,aec36bbd7f731e77,00,0707070707070707,ff +2167,2167,0,2dc6512fc9d48f38,00,0707070707070707,ff +2168,2168,0,c4f026c9e4c3c086,00,0707070707070707,ff +2169,2169,0,16f3400a7928da6e,00,0707070707070707,ff +2170,2170,0,c5736b9c711784e1,00,0707070707070707,ff +2171,2171,0,c05f7138bb8cac4d,00,0707070707070707,ff +2172,2172,0,1e027eefaae26468,00,0707070707070707,ff +2173,2173,0,cb80b520f6ad4e7e,00,0707070707070707,ff +2174,2174,0,1714099c403d6a21,00,0707070707070707,ff +2175,2175,0,2a0423912d3358bf,00,0707070707070707,ff +2176,2176,0,17e14a9c6553005b,00,0707070707070707,ff +2177,2177,0,6c9609137add3fb7,00,0707070707070707,ff +2178,2178,0,0a8b949532449530,00,0707070707070707,ff +2179,2179,0,67626f9744dc6d71,00,0707070707070707,ff +2180,2180,0,ad18a7652b36a95a,00,0707070707070707,ff +2181,2181,0,445db4e2ffb4c447,00,0707070707070707,ff +2182,2182,0,0d05427ee57901d8,00,0707070707070707,ff +2183,2183,0,8881d4f85fbbf546,00,0707070707070707,ff +2184,2184,0,318255b1011b199a,00,0707070707070707,ff +2185,2185,0,fc0711c7d8c4d8af,00,0707070707070707,ff +2186,2186,0,e92445f04c2817bf,00,0707070707070707,ff +2187,2187,0,c3db9b8393b51ea2,00,0707070707070707,ff +2188,2188,0,c5e8d9ce94909626,00,0707070707070707,ff +2189,2189,0,1ee673e0d162828a,00,0707070707070707,ff +2190,2190,0,80837b233fe9d62b,00,0707070707070707,ff +2191,2191,0,ce55f28c176b969b,00,0707070707070707,ff +2192,2192,0,0bf05a33bee528de,00,0707070707070707,ff +2193,2193,0,68674b5779d03cfd,00,0707070707070707,ff +2194,2194,0,70532b62930ba98e,00,0707070707070707,ff +2195,2195,0,b2d88016a3e5cf61,00,0707070707070707,ff +2196,2196,0,a90eeda7a46a5ec3,00,0707070707070707,ff +2197,2197,0,c748aa4200bcb4f6,00,0707070707070707,ff +2198,2198,0,e94d82a0dcda2cf0,00,0707070707070707,ff +2199,2199,0,ed3c6677baf2010c,00,0707070707070707,ff +2200,2200,0,30544cb0a4d18c2e,00,0707070707070707,ff +2201,2201,0,eed6dad7399dba04,00,0707070707070707,ff +2202,2202,0,2224ccf08b046796,00,0707070707070707,ff +2203,2203,0,62edb502465a8890,00,0707070707070707,ff +2204,2204,0,5d2bcd38f5e11d99,00,0707070707070707,ff +2205,2205,0,44008703555e81ff,00,0707070707070707,ff +2206,2206,0,3124abfd214eb042,00,0707070707070707,ff +2207,2207,0,6a8aae01cb6f7774,00,0707070707070707,ff +2208,2208,0,7541f3fa5c32e213,00,0707070707070707,ff +2209,2209,0,1c9d8f44ba4f9d3d,00,0707070707070707,ff +2210,2210,0,5dff7f54b92e8617,00,0707070707070707,ff +2211,2211,0,c31fbd614a426292,00,0707070707070707,ff +2212,2212,0,a294f241098256a8,00,0707070707070707,ff +2213,2213,0,2e997ffa20523835,00,0707070707070707,ff +2214,2214,0,b7b566d8ed2e6d67,00,0707070707070707,ff +2215,2215,0,c5e40c0629fd97e1,00,0707070707070707,ff +2216,2216,0,b96dbc0c5801d13f,00,0707070707070707,ff +2217,2217,0,c02dca3147518496,00,0707070707070707,ff +2218,2218,0,a4735152f6e5ad5b,00,0707070707070707,ff +2219,2219,0,00c7d190c1c2a99f,00,0707070707070707,ff +2220,2220,0,5ca7603ef2905164,00,0707070707070707,ff +2221,2221,0,0977b80dbc09ec4c,00,0707070707070707,ff +2222,2222,0,9ee075b45457e045,00,0707070707070707,ff +2223,2223,0,08d2d5f00a3ae033,00,0707070707070707,ff +2224,2224,0,c5205b54e9aad064,00,0707070707070707,ff +2225,2225,0,43b32143228a21e2,00,0707070707070707,ff +2226,2226,0,325a45c2b5d64703,00,0707070707070707,ff +2227,2227,0,45745c67458e0b52,00,0707070707070707,ff +2228,2228,0,36b7e3188d2eae69,00,0707070707070707,ff +2229,2229,0,843be14b52494262,00,0707070707070707,ff +2230,2230,0,83479a98fa0dc0ae,00,0707070707070707,ff +2231,2231,0,7e1e5e38ede7a5eb,00,0707070707070707,ff +2232,2232,0,cfd75cd1c6edd454,00,0707070707070707,ff +2233,2233,0,889fe43da476041b,00,0707070707070707,ff +2234,2234,0,7d7ac5b86dcbffb9,00,0707070707070707,ff +2235,2235,0,9dacfa2f50f8c138,00,0707070707070707,ff +2236,2236,0,f96f4189cfc76fce,00,0707070707070707,ff +2237,2237,0,c113cd9766b20735,00,0707070707070707,ff +2238,2238,0,12e32e2edca35473,00,0707070707070707,ff +2239,2239,0,7708473513176598,00,0707070707070707,ff +2240,2240,0,bb1a540463d0750e,00,0707070707070707,ff +2241,2241,0,6e9b5ca7df814a5e,00,0707070707070707,ff +2242,2242,0,a53b5dd001cdb16f,00,0707070707070707,ff +2243,2243,0,d4d8cf3772e649fa,00,0707070707070707,ff +2244,2244,0,71686bb67e35640d,00,0707070707070707,ff +2245,2245,0,dcba2eb57b40a5a5,00,0707070707070707,ff +2246,2246,0,a38ccab417ac113f,00,0707070707070707,ff +2247,2247,0,abe8e1a29b1683d9,00,0707070707070707,ff +2248,2248,0,175592bb6c89e83c,00,0707070707070707,ff +2249,2249,0,366fb2ccbe35bf0e,00,0707070707070707,ff +2250,2250,0,eb612f86c93ebe72,00,0707070707070707,ff +2251,2251,0,909bbfd7136cf405,00,0707070707070707,ff +2252,2252,0,c8f7929ae5e39383,00,0707070707070707,ff +2253,2253,0,bac8265063263954,00,0707070707070707,ff +2254,2254,0,c62eb244b0d4f963,00,0707070707070707,ff +2255,2255,0,b8374e183cfdde1b,00,0707070707070707,ff +2256,2256,0,4bfec5f7d20b651e,00,0707070707070707,ff +2257,2257,0,2820f9b85ef25fce,00,0707070707070707,ff +2258,2258,0,ae44f1ca7713c6d6,00,0707070707070707,ff +2259,2259,0,6b2bde1d9562caf1,00,0707070707070707,ff +2260,2260,0,95d72c16ceac711d,00,0707070707070707,ff +2261,2261,0,debab067a3ad881f,00,0707070707070707,ff +2262,2262,0,f9288878c9522e22,00,0707070707070707,ff +2263,2263,0,380c9c3bf572c419,00,0707070707070707,ff +2264,2264,0,88b04c9e487820d8,00,0707070707070707,ff +2265,2265,0,a8ae5cc29fbbf926,00,0707070707070707,ff +2266,2266,0,af1036f5752e8ca1,00,0707070707070707,ff +2267,2267,0,27855c651f6f87a4,00,0707070707070707,ff +2268,2268,0,07fd228c28a6a827,c0,0707070707070707,ff +2269,2269,0,0707070707070707,ff,0707070707070707,ff +2270,2270,0,d5555555555555fb,01,0707070707070707,ff +2271,2271,0,5e242e6f2aede000,00,0707070707070707,ff +2272,2272,0,00450008af2644be,00,0707070707070707,ff +2273,2273,0,06400040160adc05,00,0707070707070707,ff +2274,2274,0,a8c00204a8c0b2a1,00,0707070707070707,ff +2275,2275,0,e7ac51143ecc0104,00,0707070707070707,ff +2276,2276,0,1080e7c437e02274,00,0707070707070707,ff +2277,2277,0,01010000d138f601,00,0707070707070707,ff +2278,2278,0,acc6827735f60a08,00,0707070707070707,ff +2279,2279,0,37a38e7e09ce341f,00,0707070707070707,ff +2280,2280,0,d8537b87f861d79f,00,0707070707070707,ff +2281,2281,0,61e0eb450250395e,00,0707070707070707,ff +2282,2282,0,08c91e037f01429d,00,0707070707070707,ff +2283,2283,0,514a6eee3295dff5,00,0707070707070707,ff +2284,2284,0,e53a607b4477c3bc,00,0707070707070707,ff +2285,2285,0,cbe22b63e053cbf4,00,0707070707070707,ff +2286,2286,0,bb0240a8fcfaef1c,00,0707070707070707,ff +2287,2287,0,818c9da7910a0b9e,00,0707070707070707,ff +2288,2288,0,628f073c3018bad0,00,0707070707070707,ff +2289,2289,0,49e02131474e4931,00,0707070707070707,ff +2290,2290,0,93985b39feeadb2c,00,0707070707070707,ff +2291,2291,0,af9bd315c3d38cbd,00,0707070707070707,ff +2292,2292,0,b2c3459b05441be3,00,0707070707070707,ff +2293,2293,0,49d37ab9283c1bcd,00,0707070707070707,ff +2294,2294,0,6d9f4737ba06a81b,00,0707070707070707,ff +2295,2295,0,8a8c08367d7847fa,00,0707070707070707,ff +2296,2296,0,40ac4e6617ca994e,00,0707070707070707,ff +2297,2297,0,568a40f93929584c,00,0707070707070707,ff +2298,2298,0,60e58ea569db4945,00,0707070707070707,ff +2299,2299,0,2274ba555ea74f2f,00,0707070707070707,ff +2300,2300,0,1bc08333c711565b,00,0707070707070707,ff +2301,2301,0,0f590cdf222c1cee,00,0707070707070707,ff +2302,2302,0,2e5f041dd39fff18,00,0707070707070707,ff +2303,2303,0,0f0b8308e22f5663,00,0707070707070707,ff +2304,2304,0,fcb9ed22e14a7de0,00,0707070707070707,ff +2305,2305,0,71ea0f0308ddc084,00,0707070707070707,ff +2306,2306,0,c6675adda20d5fcf,00,0707070707070707,ff +2307,2307,0,ed31edb67a9b768b,00,0707070707070707,ff +2308,2308,0,e426a6e434b7c1f6,00,0707070707070707,ff +2309,2309,0,9fb6c7e3a3506c14,00,0707070707070707,ff +2310,2310,0,e2d31e192b15a986,00,0707070707070707,ff +2311,2311,0,4920981b73b0639c,00,0707070707070707,ff +2312,2312,0,ddc6864dc3cb79f7,00,0707070707070707,ff +2313,2313,0,ea7686215a69619e,00,0707070707070707,ff +2314,2314,0,6d88cd54a12c2ee9,00,0707070707070707,ff +2315,2315,0,bf41230c779bab7d,00,0707070707070707,ff +2316,2316,0,6d40e94d1e500334,00,0707070707070707,ff +2317,2317,0,018f598d6a721049,00,0707070707070707,ff +2318,2318,0,a3129d0dcb126ea2,00,0707070707070707,ff +2319,2319,0,9635157f3ad47f49,00,0707070707070707,ff +2320,2320,0,cb4bcde1a4786318,00,0707070707070707,ff +2321,2321,0,7cc3b50588b833e7,00,0707070707070707,ff +2322,2322,0,5c0e0dd15b8e2440,00,0707070707070707,ff +2323,2323,0,2e96fdee67b15b32,00,0707070707070707,ff +2324,2324,0,50d0b604d8ffabbb,00,0707070707070707,ff +2325,2325,0,31a47582a3e7d705,00,0707070707070707,ff +2326,2326,0,f2fb24cab4e38271,00,0707070707070707,ff +2327,2327,0,e6d92da0767c2510,00,0707070707070707,ff +2328,2328,0,dd22ddf31c75a616,00,0707070707070707,ff +2329,2329,0,dcca5d4ae8efd4e6,00,0707070707070707,ff +2330,2330,0,032e8ccc242ee7e7,00,0707070707070707,ff +2331,2331,0,373bfac6bdf1162e,00,0707070707070707,ff +2332,2332,0,75da7a9187a6aded,00,0707070707070707,ff +2333,2333,0,65ef350572568ff1,00,0707070707070707,ff +2334,2334,0,a8ed76c511da59c6,00,0707070707070707,ff +2335,2335,0,400813c757e8adfc,00,0707070707070707,ff +2336,2336,0,45b720376f590ccd,00,0707070707070707,ff +2337,2337,0,f7dbc0e17fd474af,00,0707070707070707,ff +2338,2338,0,690402a335782cea,00,0707070707070707,ff +2339,2339,0,1355ba68abaaee61,00,0707070707070707,ff +2340,2340,0,c6847ec7f635279f,00,0707070707070707,ff +2341,2341,0,5eff9fef988f83ec,00,0707070707070707,ff +2342,2342,0,2b2b35c8c98f093f,00,0707070707070707,ff +2343,2343,0,26609a5c4d9a45f4,00,0707070707070707,ff +2344,2344,0,18769054e915483c,00,0707070707070707,ff +2345,2345,0,7ac812c580408be6,00,0707070707070707,ff +2346,2346,0,ccd0beb53db88a4a,00,0707070707070707,ff +2347,2347,0,f741d1c8bc3fd69f,00,0707070707070707,ff +2348,2348,0,29229757cebf808c,00,0707070707070707,ff +2349,2349,0,4af01e90665c25fd,00,0707070707070707,ff +2350,2350,0,ef3fc2f24d300a9a,00,0707070707070707,ff +2351,2351,0,75511c0fcfb2019b,00,0707070707070707,ff +2352,2352,0,54fc6df5a5898790,00,0707070707070707,ff +2353,2353,0,2b765437844f02af,00,0707070707070707,ff +2354,2354,0,bc30f54a2def3a53,00,0707070707070707,ff +2355,2355,0,3234a07ccf3941a7,00,0707070707070707,ff +2356,2356,0,c7db132263f54dc8,00,0707070707070707,ff +2357,2357,0,407dcfef1a57cdda,00,0707070707070707,ff +2358,2358,0,a4a94d89753a45c3,00,0707070707070707,ff +2359,2359,0,40d8cde8109d9ff8,00,0707070707070707,ff +2360,2360,0,63fd0676c0ff2fa4,00,0707070707070707,ff +2361,2361,0,347128d2f3e52802,00,0707070707070707,ff +2362,2362,0,a19098b7c01c2ce1,00,0707070707070707,ff +2363,2363,0,8f0ab63283300f02,00,0707070707070707,ff +2364,2364,0,ac589e44912dc581,00,0707070707070707,ff +2365,2365,0,2984420104edf7ae,00,0707070707070707,ff +2366,2366,0,50395954b8d07ea3,00,0707070707070707,ff +2367,2367,0,0891949d346f4c06,00,0707070707070707,ff +2368,2368,0,9dc3aa670d132b0c,00,0707070707070707,ff +2369,2369,0,709f14997095c8fc,00,0707070707070707,ff +2370,2370,0,bdb7e89df50684b1,00,0707070707070707,ff +2371,2371,0,a7fb9addd4944195,00,0707070707070707,ff +2372,2372,0,66a309fcbfe64773,00,0707070707070707,ff +2373,2373,0,6216f59c7db49555,00,0707070707070707,ff +2374,2374,0,0163576a77d3d0c7,00,0707070707070707,ff +2375,2375,0,516816b2976ed1e2,00,0707070707070707,ff +2376,2376,0,0aa645cd02280da7,00,0707070707070707,ff +2377,2377,0,d09372731ac51372,00,0707070707070707,ff +2378,2378,0,c10cbf35c7e2aa99,00,0707070707070707,ff +2379,2379,0,d96b201438a1f77e,00,0707070707070707,ff +2380,2380,0,c7c0a11b61dd0ae0,00,0707070707070707,ff +2381,2381,0,9e99974669ea8060,00,0707070707070707,ff +2382,2382,0,8aca6479fb43c3e3,00,0707070707070707,ff +2383,2383,0,72e6a7a131b17825,00,0707070707070707,ff +2384,2384,0,b591e52f4a9c2ef7,00,0707070707070707,ff +2385,2385,0,76d45afdb3a1b976,00,0707070707070707,ff +2386,2386,0,cd46b6817010d8f4,00,0707070707070707,ff +2387,2387,0,f7f20914f1589b88,00,0707070707070707,ff +2388,2388,0,b4ebfb93ff6f80fa,00,0707070707070707,ff +2389,2389,0,7e25ea1ae7c53c12,00,0707070707070707,ff +2390,2390,0,d7630b1b7edffd31,00,0707070707070707,ff +2391,2391,0,4407a888df4dc8d4,00,0707070707070707,ff +2392,2392,0,f4f3f2bd4233bc94,00,0707070707070707,ff +2393,2393,0,ee430eb10c6df77e,00,0707070707070707,ff +2394,2394,0,67d747f426cb6934,00,0707070707070707,ff +2395,2395,0,14248708c39b2e93,00,0707070707070707,ff +2396,2396,0,ae8ce5fe6877e9f8,00,0707070707070707,ff +2397,2397,0,7e705d52ff6f07c8,00,0707070707070707,ff +2398,2398,0,1726b33fbb6978e5,00,0707070707070707,ff +2399,2399,0,7885cebca2d6b3e6,00,0707070707070707,ff +2400,2400,0,40c6a85334bbf457,00,0707070707070707,ff +2401,2401,0,43e9cb663a4100ae,00,0707070707070707,ff +2402,2402,0,b1c84deb78666a28,00,0707070707070707,ff +2403,2403,0,3ae0e5ec2535791f,00,0707070707070707,ff +2404,2404,0,769a6d6058715eb1,00,0707070707070707,ff +2405,2405,0,45566122daea2ed2,00,0707070707070707,ff +2406,2406,0,97a57e9e4363d762,00,0707070707070707,ff +2407,2407,0,6bd612c7109d67b6,00,0707070707070707,ff +2408,2408,0,b5b0847dee1298cf,00,0707070707070707,ff +2409,2409,0,d6ca2a78587ebec1,00,0707070707070707,ff +2410,2410,0,375814b1a0a0eda6,00,0707070707070707,ff +2411,2411,0,3e22f4eb38ef6b19,00,0707070707070707,ff +2412,2412,0,59fc761876ef062d,00,0707070707070707,ff +2413,2413,0,5dc989b3bd86c735,00,0707070707070707,ff +2414,2414,0,452a5327250c4140,00,0707070707070707,ff +2415,2415,0,9c4e13379baf290a,00,0707070707070707,ff +2416,2416,0,b944020b646f9cb0,00,0707070707070707,ff +2417,2417,0,2577eb5c91d80b30,00,0707070707070707,ff +2418,2418,0,393d54733a4f9115,00,0707070707070707,ff +2419,2419,0,7654b84cc8850aa0,00,0707070707070707,ff +2420,2420,0,a20fd5960720ee8a,00,0707070707070707,ff +2421,2421,0,ab095e9e25f6d3ed,00,0707070707070707,ff +2422,2422,0,8b5b247d492fb29f,00,0707070707070707,ff +2423,2423,0,e1b51a83a0ca6f61,00,0707070707070707,ff +2424,2424,0,25548ba6e85e4ddd,00,0707070707070707,ff +2425,2425,0,75c4e8e312693b93,00,0707070707070707,ff +2426,2426,0,2f604a2a011d56a5,00,0707070707070707,ff +2427,2427,0,08eb71e46d0d04cb,00,0707070707070707,ff +2428,2428,0,abc33365017cc8f2,00,0707070707070707,ff +2429,2429,0,528a331892ad67f2,00,0707070707070707,ff +2430,2430,0,60b3edde9d44f3f3,00,0707070707070707,ff +2431,2431,0,8fdfeb272e9ef39e,00,0707070707070707,ff +2432,2432,0,ca6bffed3f07e8ab,00,0707070707070707,ff +2433,2433,0,370ffbbad93143d1,00,0707070707070707,ff +2434,2434,0,2698de4a7218e647,00,0707070707070707,ff +2435,2435,0,fb62d72bb15de518,00,0707070707070707,ff +2436,2436,0,5e8e8aaa516f8fd8,00,0707070707070707,ff +2437,2437,0,75c57c5338c73d18,00,0707070707070707,ff +2438,2438,0,0a84674c6cf5c7c4,00,0707070707070707,ff +2439,2439,0,69253f228fbabe2e,00,0707070707070707,ff +2440,2440,0,2fc005bee66e79a6,00,0707070707070707,ff +2441,2441,0,b835f33bbec31c1d,00,0707070707070707,ff +2442,2442,0,98da43f8581b2b7e,00,0707070707070707,ff +2443,2443,0,4f0e0c8936b87ef9,00,0707070707070707,ff +2444,2444,0,1c4ad1aed5a15d76,00,0707070707070707,ff +2445,2445,0,475fb5b0e36d01d1,00,0707070707070707,ff +2446,2446,0,f30389946e8602f6,00,0707070707070707,ff +2447,2447,0,65cccec8de29ca80,00,0707070707070707,ff +2448,2448,0,9de114066a35391b,00,0707070707070707,ff +2449,2449,0,430f26eab4052263,00,0707070707070707,ff +2450,2450,0,7d66bc2da871dcdc,00,0707070707070707,ff +2451,2451,0,049332c9896575cd,00,0707070707070707,ff +2452,2452,0,f31477ec3b54a5e4,00,0707070707070707,ff +2453,2453,0,cf4ff23232dd13b2,00,0707070707070707,ff +2454,2454,0,3577661e8a6f8a60,00,0707070707070707,ff +2455,2455,0,edefecfe0cdb5b89,00,0707070707070707,ff +2456,2456,0,9d115faa4049ea74,00,0707070707070707,ff +2457,2457,0,7d0ea910e0e317a7,00,0707070707070707,ff +2458,2458,0,4481c4348d57b266,00,0707070707070707,ff +2459,2459,0,a6f0f1ebf4b41bf3,00,0707070707070707,ff +2460,2460,0,07fd3755b7a9a66d,c0,0707070707070707,ff +2461,2461,0,0707070707070707,ff,0707070707070707,ff +2462,2462,0,555555fb07070707,1f,0707070707070707,ff +2463,2463,0,2aede000d5555555,00,0707070707070707,ff +2464,2464,0,af2644be5e242e6f,00,0707070707070707,ff +2465,2465,0,170adc0500450008,00,0707070707070707,ff +2466,2466,0,a8c0b1a106400040,00,0707070707070707,ff +2467,2467,0,3ecc0104a8c00204,00,0707070707070707,ff +2468,2468,0,37e0ca79e7ac5114,00,0707070707070707,ff +2469,2469,0,8a40f6011080e7c4,00,0707070707070707,ff +2470,2470,0,35f60a0801010000,00,0707070707070707,ff +2471,2471,0,254b341facc68277,00,0707070707070707,ff +2472,2472,0,64e0663b1906214a,00,0707070707070707,ff +2473,2473,0,66717265c0878025,00,0707070707070707,ff +2474,2474,0,2c331189be39fed7,00,0707070707070707,ff +2475,2475,0,cc4df5c02e61f825,00,0707070707070707,ff +2476,2476,0,070abbdecf5e792a,00,0707070707070707,ff +2477,2477,0,1b83c8cd1d2cffcf,00,0707070707070707,ff +2478,2478,0,517031598ecbbf22,00,0707070707070707,ff +2479,2479,0,fde2924e00a7a5ae,00,0707070707070707,ff +2480,2480,0,100f64b3c8d76ee6,00,0707070707070707,ff +2481,2481,0,9b9337ae8dd7ad80,00,0707070707070707,ff +2482,2482,0,1ab1f9e005adda41,00,0707070707070707,ff +2483,2483,0,857c867bd615a80f,00,0707070707070707,ff +2484,2484,0,5f072839508ea172,00,0707070707070707,ff +2485,2485,0,57c991d5c88d4ff7,00,0707070707070707,ff +2486,2486,0,5f359ffd83cb8fd5,00,0707070707070707,ff +2487,2487,0,dd15b5c239a00422,00,0707070707070707,ff +2488,2488,0,a31acfa88d96bc1c,00,0707070707070707,ff +2489,2489,0,de9334c1a5918f36,00,0707070707070707,ff +2490,2490,0,6be56fcb2ab6e80b,00,0707070707070707,ff +2491,2491,0,1ffbe80b5fe5f3c3,00,0707070707070707,ff +2492,2492,0,8a131f7cd87a4992,00,0707070707070707,ff +2493,2493,0,4f2316d42675115d,00,0707070707070707,ff +2494,2494,0,6a195823e1b4f0ba,00,0707070707070707,ff +2495,2495,0,f5495682066f7494,00,0707070707070707,ff +2496,2496,0,9f82dbf66fd0e2f8,00,0707070707070707,ff +2497,2497,0,e76fb837ec183f88,00,0707070707070707,ff +2498,2498,0,a0dd6c80a3b288b9,00,0707070707070707,ff +2499,2499,0,6b3d21378b95c9bc,00,0707070707070707,ff +2500,2500,0,12e9d10cc3da9524,00,0707070707070707,ff +2501,2501,0,73b497324001cfaf,00,0707070707070707,ff +2502,2502,0,017b2b8b793e13b2,00,0707070707070707,ff +2503,2503,0,7c56d31376f2859f,00,0707070707070707,ff +2504,2504,0,d235606aa68e7f13,00,0707070707070707,ff +2505,2505,0,9289ab66fcfc699e,00,0707070707070707,ff +2506,2506,0,f32c54295fd3ab77,00,0707070707070707,ff +2507,2507,0,5dedcd7ac357bf57,00,0707070707070707,ff +2508,2508,0,a474503a1878a883,00,0707070707070707,ff +2509,2509,0,1a2a0e9f31356424,00,0707070707070707,ff +2510,2510,0,13529dbc75d0c7b5,00,0707070707070707,ff +2511,2511,0,698f5946f840bdfa,00,0707070707070707,ff +2512,2512,0,472e285067efc834,00,0707070707070707,ff +2513,2513,0,320bf2863bc41d03,00,0707070707070707,ff +2514,2514,0,49de5e568af57d99,00,0707070707070707,ff +2515,2515,0,dec5ae34709ab1d8,00,0707070707070707,ff +2516,2516,0,f065cd18cba3397c,00,0707070707070707,ff +2517,2517,0,2bf30a072cc6f6d5,00,0707070707070707,ff +2518,2518,0,c7b8535640575bfc,00,0707070707070707,ff +2519,2519,0,f4f48e64d678cbeb,00,0707070707070707,ff +2520,2520,0,f9a78c46fc35cea2,00,0707070707070707,ff +2521,2521,0,ecfdf10506d9b0f9,00,0707070707070707,ff +2522,2522,0,5a19fb1a910f6133,00,0707070707070707,ff +2523,2523,0,dc15ac2703a342c4,00,0707070707070707,ff +2524,2524,0,5337f00f66ec9242,00,0707070707070707,ff +2525,2525,0,46c94276764cb2c5,00,0707070707070707,ff +2526,2526,0,6240f17e9bb0599e,00,0707070707070707,ff +2527,2527,0,0893a192f66d13f2,00,0707070707070707,ff +2528,2528,0,6828c8dda9a574f1,00,0707070707070707,ff +2529,2529,0,1e4e45ec675d4e76,00,0707070707070707,ff +2530,2530,0,61d8376baf502c6b,00,0707070707070707,ff +2531,2531,0,f735688e132f0b83,00,0707070707070707,ff +2532,2532,0,c122eb9db01b6d1a,00,0707070707070707,ff +2533,2533,0,4c2159ad85fa7f35,00,0707070707070707,ff +2534,2534,0,5908320a86b1dca2,00,0707070707070707,ff +2535,2535,0,dedcc0ffe5eb77c0,00,0707070707070707,ff +2536,2536,0,f2afdc8aa50d0c5e,00,0707070707070707,ff +2537,2537,0,eca7f72a8c261e7a,00,0707070707070707,ff +2538,2538,0,68773db402ecde75,00,0707070707070707,ff +2539,2539,0,d0c8ae0b6359d1b9,00,0707070707070707,ff +2540,2540,0,004bd4107d822cab,00,0707070707070707,ff +2541,2541,0,08d9dbe51e566485,00,0707070707070707,ff +2542,2542,0,436e9020247a2a03,00,0707070707070707,ff +2543,2543,0,8ddc480593946454,00,0707070707070707,ff +2544,2544,0,163aafc0f216899e,00,0707070707070707,ff +2545,2545,0,450f6eec9e8409ea,00,0707070707070707,ff +2546,2546,0,c8d21e836a7fab55,00,0707070707070707,ff +2547,2547,0,4908beb4acefb95b,00,0707070707070707,ff +2548,2548,0,5aa9d298c30efa16,00,0707070707070707,ff +2549,2549,0,476b5f713f9e2f77,00,0707070707070707,ff +2550,2550,0,caf72d695ae1ac22,00,0707070707070707,ff +2551,2551,0,d14f78888bcb0c60,00,0707070707070707,ff +2552,2552,0,7e55d76c81d8ff06,00,0707070707070707,ff +2553,2553,0,121a23d7dfbe8fd2,00,0707070707070707,ff +2554,2554,0,41fcba7aa06b54ba,00,0707070707070707,ff +2555,2555,0,33e6e4b14d7b416e,00,0707070707070707,ff +2556,2556,0,359b495562884e71,00,0707070707070707,ff +2557,2557,0,acbfc9ba5706bdef,00,0707070707070707,ff +2558,2558,0,9843cd4f50199903,00,0707070707070707,ff +2559,2559,0,466489b5eb2f36b8,00,0707070707070707,ff +2560,2560,0,99fc8d91efda3fd4,00,0707070707070707,ff +2561,2561,0,212f626beee4823c,00,0707070707070707,ff +2562,2562,0,f4f73b9d23435712,00,0707070707070707,ff +2563,2563,0,f00a689966f7b19d,00,0707070707070707,ff +2564,2564,0,a22275c2571db9d5,00,0707070707070707,ff +2565,2565,0,06aefc4c36d5e1a2,00,0707070707070707,ff +2566,2566,0,242bacf2ae6da9d8,00,0707070707070707,ff +2567,2567,0,d50d3e4e5a2f7902,00,0707070707070707,ff +2568,2568,0,915963d5a1d16d17,00,0707070707070707,ff +2569,2569,0,22d6f0225f90df34,00,0707070707070707,ff +2570,2570,0,aaa4912b6cd9a838,00,0707070707070707,ff +2571,2571,0,139d8ec0497e759a,00,0707070707070707,ff +2572,2572,0,0332aa775031dcbd,00,0707070707070707,ff +2573,2573,0,49b5ec329e37ef98,00,0707070707070707,ff +2574,2574,0,9de0e8040e47aec6,00,0707070707070707,ff +2575,2575,0,863a6402253f7618,00,0707070707070707,ff +2576,2576,0,4c4cdb50562641a3,00,0707070707070707,ff +2577,2577,0,972ecf00ad5d4b3a,00,0707070707070707,ff +2578,2578,0,2add20397c9e3b80,00,0707070707070707,ff +2579,2579,0,0c51f118c3eda274,00,0707070707070707,ff +2580,2580,0,25b70ade6aedc03f,00,0707070707070707,ff +2581,2581,0,0e59a2c79ad7a91b,00,0707070707070707,ff +2582,2582,0,cb7e03c364d2185e,00,0707070707070707,ff +2583,2583,0,ed456af1f051c060,00,0707070707070707,ff +2584,2584,0,ef848cbc8c7ad559,00,0707070707070707,ff +2585,2585,0,5a9ee4f684930b96,00,0707070707070707,ff +2586,2586,0,5d0b7bc092b39be3,00,0707070707070707,ff +2587,2587,0,8dfab8c37f326eb1,00,0707070707070707,ff +2588,2588,0,4289864ceeb4d2f0,00,0707070707070707,ff +2589,2589,0,94c3c8b08ed2d5cf,00,0707070707070707,ff +2590,2590,0,2e8282f23e06bcf4,00,0707070707070707,ff +2591,2591,0,73e71540fcde4ec7,00,0707070707070707,ff +2592,2592,0,82a559aa05fd9009,00,0707070707070707,ff +2593,2593,0,2102ab86ae371cf8,00,0707070707070707,ff +2594,2594,0,2ef459d91d3a6a5c,00,0707070707070707,ff +2595,2595,0,fa911e3751515dd0,00,0707070707070707,ff +2596,2596,0,0754a00cb944eb95,00,0707070707070707,ff +2597,2597,0,e186afb39e4102a2,00,0707070707070707,ff +2598,2598,0,bdb6b52963e5be7f,00,0707070707070707,ff +2599,2599,0,82624874577670b4,00,0707070707070707,ff +2600,2600,0,df9af9f42fb81874,00,0707070707070707,ff +2601,2601,0,ea890770ecff0da6,00,0707070707070707,ff +2602,2602,0,6a90e0082484dbb0,00,0707070707070707,ff +2603,2603,0,7f6c3b9630c6c9a2,00,0707070707070707,ff +2604,2604,0,29171cfc88a44c17,00,0707070707070707,ff +2605,2605,0,72ab55418dc9174b,00,0707070707070707,ff +2606,2606,0,648d45e30a46460f,00,0707070707070707,ff +2607,2607,0,838021df040cab21,00,0707070707070707,ff +2608,2608,0,fd8f4aedc0bf5c35,00,0707070707070707,ff +2609,2609,0,e63b876a422cb7ee,00,0707070707070707,ff +2610,2610,0,2fe097d622b2d3c2,00,0707070707070707,ff +2611,2611,0,da8b91ff600bf8de,00,0707070707070707,ff +2612,2612,0,6d9257421b46bde2,00,0707070707070707,ff +2613,2613,0,63650192ea78f981,00,0707070707070707,ff +2614,2614,0,20ed2b30615c1d1e,00,0707070707070707,ff +2615,2615,0,5bf9ff3f05d74764,00,0707070707070707,ff +2616,2616,0,972d7713bde085c8,00,0707070707070707,ff +2617,2617,0,b051bcce895e43d1,00,0707070707070707,ff +2618,2618,0,f1adb330d07f0cb1,00,0707070707070707,ff +2619,2619,0,675a1d5fd6535be9,00,0707070707070707,ff +2620,2620,0,5ab898713d11b76d,00,0707070707070707,ff +2621,2621,0,4170385d75dd01d4,00,0707070707070707,ff +2622,2622,0,1a84256d45701013,00,0707070707070707,ff +2623,2623,0,29be36075d74de30,00,0707070707070707,ff +2624,2624,0,dfa3b86c236c4935,00,0707070707070707,ff +2625,2625,0,d4a1c0cf1baaf47f,00,0707070707070707,ff +2626,2626,0,eb638806661465d6,00,0707070707070707,ff +2627,2627,0,89eb6d9843dc49af,00,0707070707070707,ff +2628,2628,0,c20b2b2f901986c2,00,0707070707070707,ff +2629,2629,0,b5493d6fba4c1c31,00,0707070707070707,ff +2630,2630,0,b35f6372e91d29fb,00,0707070707070707,ff +2631,2631,0,167d1fc51ef0b862,00,0707070707070707,ff +2632,2632,0,5024f787c3848b84,00,0707070707070707,ff +2633,2633,0,c215fdb9f9eccdee,00,0707070707070707,ff +2634,2634,0,1b6bebb045b32141,00,0707070707070707,ff +2635,2635,0,ea4cc122ac39b344,00,0707070707070707,ff +2636,2636,0,a61987c2bc5922b4,00,0707070707070707,ff +2637,2637,0,a8663a65b4da5228,00,0707070707070707,ff +2638,2638,0,d522abbcfedb1db9,00,0707070707070707,ff +2639,2639,0,fa77d4cc4cafd89c,00,0707070707070707,ff +2640,2640,0,8965a31b13cf0eb6,00,0707070707070707,ff +2641,2641,0,b809821e8fe254d5,00,0707070707070707,ff +2642,2642,0,eac89006bbc99cdd,00,0707070707070707,ff +2643,2643,0,ef23ba631def59f1,00,0707070707070707,ff +2644,2644,0,0d06a7d9dd7cf420,00,0707070707070707,ff +2645,2645,0,9f875627bdb29a78,00,0707070707070707,ff +2646,2646,0,b1226c90c0db32c1,00,0707070707070707,ff +2647,2647,0,06528a2ef20da777,00,0707070707070707,ff +2648,2648,0,494656ea2eaa5877,00,0707070707070707,ff +2649,2649,0,7865a5673c11456d,00,0707070707070707,ff +2650,2650,0,a110f0a211b8ccd6,00,0707070707070707,ff +2651,2651,0,e738736d53f822f8,00,0707070707070707,ff +2652,2652,0,cbbf879d466264f3,00,0707070707070707,ff +2653,2653,0,0707070707fdc1b4,fc,0707070707070707,ff +2654,2654,0,555555fb07070707,1f,0707070707070707,ff +2655,2655,0,2aede000d5555555,00,0707070707070707,ff +2656,2656,0,af2644be5e242e6f,00,0707070707070707,ff +2657,2657,0,180adc0500450008,00,0707070707070707,ff +2658,2658,0,a8c0b0a106400040,00,0707070707070707,ff +2659,2659,0,3ecc0104a8c00204,00,0707070707070707,ff +2660,2660,0,37e0727fe7ac5114,00,0707070707070707,ff +2661,2661,0,0870f6011080e7c4,00,0707070707070707,ff +2662,2662,0,35f60a0801010000,00,0707070707070707,ff +2663,2663,0,2db1341facc68277,00,0707070707070707,ff +2664,2664,0,0f1d03cb8c937cad,00,0707070707070707,ff +2665,2665,0,2a6249fa96c7bb91,00,0707070707070707,ff +2666,2666,0,604b25510e36455e,00,0707070707070707,ff +2667,2667,0,698a0af7e1767ff6,00,0707070707070707,ff +2668,2668,0,3fa20d8157567cb5,00,0707070707070707,ff +2669,2669,0,c39d4957ff72ced0,00,0707070707070707,ff +2670,2670,0,4d95b552e15dd695,00,0707070707070707,ff +2671,2671,0,0b8aba84373d4fdf,00,0707070707070707,ff +2672,2672,0,c609c7f41fc8d12f,00,0707070707070707,ff +2673,2673,0,f9936f342887dce2,00,0707070707070707,ff +2674,2674,0,7e511e5d1247f860,00,0707070707070707,ff +2675,2675,0,9c8fa9e0f752b579,00,0707070707070707,ff +2676,2676,0,0ea6975028d1b92e,00,0707070707070707,ff +2677,2677,0,4cc8bff1f7a1bbdb,00,0707070707070707,ff +2678,2678,0,eda09bc9a9c3dd6d,00,0707070707070707,ff +2679,2679,0,1336f12380530762,00,0707070707070707,ff +2680,2680,0,51ebacfe42e5b831,00,0707070707070707,ff +2681,2681,0,9523534984994439,00,0707070707070707,ff +2682,2682,0,22e98695d1d03d95,00,0707070707070707,ff +2683,2683,0,30ca77529b280f24,00,0707070707070707,ff +2684,2684,0,3409480cffaf749d,00,0707070707070707,ff +2685,2685,0,c2f8bd7836090aeb,00,0707070707070707,ff +2686,2686,0,3fbfa587d59ea64f,00,0707070707070707,ff +2687,2687,0,7985a8a3c5613e34,00,0707070707070707,ff +2688,2688,0,d8ddde2fbe96efef,00,0707070707070707,ff +2689,2689,0,d8e3f7a4ea1566f7,00,0707070707070707,ff +2690,2690,0,f7ae3b389895efbf,00,0707070707070707,ff +2691,2691,0,96ceb3cfdb530859,00,0707070707070707,ff +2692,2692,0,2670efd6fcbe4249,00,0707070707070707,ff +2693,2693,0,8b5d0b107378c26d,00,0707070707070707,ff +2694,2694,0,5658aa880d85a6c2,00,0707070707070707,ff +2695,2695,0,a2c6240f6196aaa7,00,0707070707070707,ff +2696,2696,0,bcb17c40b54eb018,00,0707070707070707,ff +2697,2697,0,3f819359e4a8fbfd,00,0707070707070707,ff +2698,2698,0,6b1fd311f1e8a6a6,00,0707070707070707,ff +2699,2699,0,11b882ec6a335e9b,00,0707070707070707,ff +2700,2700,0,e5ebabb2585fd547,00,0707070707070707,ff +2701,2701,0,1b066a04ed247ad4,00,0707070707070707,ff +2702,2702,0,663abbd78004174c,00,0707070707070707,ff +2703,2703,0,f7318839c3b6ca2e,00,0707070707070707,ff +2704,2704,0,c1377d3aebea052b,00,0707070707070707,ff +2705,2705,0,3da58dd50c674884,00,0707070707070707,ff +2706,2706,0,457bb603532b47dc,00,0707070707070707,ff +2707,2707,0,39ce1ed4511afb34,00,0707070707070707,ff +2708,2708,0,42b8946b3faea86b,00,0707070707070707,ff +2709,2709,0,f92914ea675445da,00,0707070707070707,ff +2710,2710,0,74f4bf105c78f370,00,0707070707070707,ff +2711,2711,0,a0e84226a15d16b5,00,0707070707070707,ff +2712,2712,0,6b4ef6a5edda0a50,00,0707070707070707,ff +2713,2713,0,66b815ab3b847dc9,00,0707070707070707,ff +2714,2714,0,eb8dbe53a19adbde,00,0707070707070707,ff +2715,2715,0,09b66281ca865622,00,0707070707070707,ff +2716,2716,0,942b413c3e2d2171,00,0707070707070707,ff +2717,2717,0,f12d6160094181ae,00,0707070707070707,ff +2718,2718,0,54514bd32d50ccdc,00,0707070707070707,ff +2719,2719,0,e038e8aa2a5daecf,00,0707070707070707,ff +2720,2720,0,6d498c0e1862a294,00,0707070707070707,ff +2721,2721,0,fdd8d69ff588a48d,00,0707070707070707,ff +2722,2722,0,a59c0a47436c6354,00,0707070707070707,ff +2723,2723,0,2b531c2228f5ebe8,00,0707070707070707,ff +2724,2724,0,1b988c8db26b488a,00,0707070707070707,ff +2725,2725,0,9eeb9354affa7671,00,0707070707070707,ff +2726,2726,0,2aed76405220770c,00,0707070707070707,ff +2727,2727,0,36a4243bbf4fbedc,00,0707070707070707,ff +2728,2728,0,f800441e65fa39fb,00,0707070707070707,ff +2729,2729,0,75ba03e5e34c3abe,00,0707070707070707,ff +2730,2730,0,75b41756ee6565d2,00,0707070707070707,ff +2731,2731,0,43c93162f9d14ad5,00,0707070707070707,ff +2732,2732,0,0ba33f9a324737b1,00,0707070707070707,ff +2733,2733,0,62c690788c2f604a,00,0707070707070707,ff +2734,2734,0,b1b7ded959e980a4,00,0707070707070707,ff +2735,2735,0,dbc72560a0929227,00,0707070707070707,ff +2736,2736,0,67d03174e6672046,00,0707070707070707,ff +2737,2737,0,b44173a835f4ab88,00,0707070707070707,ff +2738,2738,0,99e195be186a4ddb,00,0707070707070707,ff +2739,2739,0,6d58cdbc50d9fe28,00,0707070707070707,ff +2740,2740,0,51783e029dbe4eec,00,0707070707070707,ff +2741,2741,0,421994b225399c8a,00,0707070707070707,ff +2742,2742,0,f4f5d8922045fbb9,00,0707070707070707,ff +2743,2743,0,f857d8bb2e5586e5,00,0707070707070707,ff +2744,2744,0,877a478d62ae83c9,00,0707070707070707,ff +2745,2745,0,f7e879fcaa5367b9,00,0707070707070707,ff +2746,2746,0,811a354114eda6fe,00,0707070707070707,ff +2747,2747,0,673b85e5932bec9f,00,0707070707070707,ff +2748,2748,0,627b8d52689a385a,00,0707070707070707,ff +2749,2749,0,8c96786aa7308561,00,0707070707070707,ff +2750,2750,0,2f9a444829eebe9f,00,0707070707070707,ff +2751,2751,0,d08dedf889a842ec,00,0707070707070707,ff +2752,2752,0,5e5c94d885db6d0d,00,0707070707070707,ff +2753,2753,0,48da8992459405ad,00,0707070707070707,ff +2754,2754,0,f8b23bad9ac7e1af,00,0707070707070707,ff +2755,2755,0,9a04c01ea168ce7f,00,0707070707070707,ff +2756,2756,0,308eaeedda402429,00,0707070707070707,ff +2757,2757,0,ff0c213aa947c95d,00,0707070707070707,ff +2758,2758,0,75640d09c3dd98dc,00,0707070707070707,ff +2759,2759,0,184aff953984d444,00,0707070707070707,ff +2760,2760,0,e77eb2243afa6543,00,0707070707070707,ff +2761,2761,0,dbc38b18261528e0,00,0707070707070707,ff +2762,2762,0,1a127da3f064c6cb,00,0707070707070707,ff +2763,2763,0,eaaccf97c9766ef8,00,0707070707070707,ff +2764,2764,0,f783feeb21932279,00,0707070707070707,ff +2765,2765,0,028c0d82750beb94,00,0707070707070707,ff +2766,2766,0,347278c3708eac4c,00,0707070707070707,ff +2767,2767,0,bda675831d78ebc8,00,0707070707070707,ff +2768,2768,0,9f99148a121dfc5b,00,0707070707070707,ff +2769,2769,0,a63c37ee8aed6823,00,0707070707070707,ff +2770,2770,0,8f179983c61bed6f,00,0707070707070707,ff +2771,2771,0,9c1388858725fa71,00,0707070707070707,ff +2772,2772,0,7ac579ef7b57da12,00,0707070707070707,ff +2773,2773,0,5df9ee6100c2cd09,00,0707070707070707,ff +2774,2774,0,04f82cc530e7c77c,00,0707070707070707,ff +2775,2775,0,10b286161dab4773,00,0707070707070707,ff +2776,2776,0,0de22a38054782a8,00,0707070707070707,ff +2777,2777,0,1112e3bef5ba8240,00,0707070707070707,ff +2778,2778,0,ffaac72342567bba,00,0707070707070707,ff +2779,2779,0,c29f0c0c3e0ec418,00,0707070707070707,ff +2780,2780,0,5f7079a2c2cb4b4d,00,0707070707070707,ff +2781,2781,0,fa6235b01217ff2c,00,0707070707070707,ff +2782,2782,0,4dd57be6c2846a31,00,0707070707070707,ff +2783,2783,0,8679fbad9102d57d,00,0707070707070707,ff +2784,2784,0,3ac2e0a8c362cbed,00,0707070707070707,ff +2785,2785,0,5736fe9ee1781eca,00,0707070707070707,ff +2786,2786,0,825613f552ef2bc7,00,0707070707070707,ff +2787,2787,0,8504018b36dbbd91,00,0707070707070707,ff +2788,2788,0,f9470e314d3e7be9,00,0707070707070707,ff +2789,2789,0,c9c6c0ee6c13cbf3,00,0707070707070707,ff +2790,2790,0,6fd180421d5b2738,00,0707070707070707,ff +2791,2791,0,ab9fcfae4e927224,00,0707070707070707,ff +2792,2792,0,72d73530f8db7338,00,0707070707070707,ff +2793,2793,0,d329c8694cc05ce0,00,0707070707070707,ff +2794,2794,0,6e2fd6b82cb8a5ca,00,0707070707070707,ff +2795,2795,0,b6363f7cde522ecd,00,0707070707070707,ff +2796,2796,0,aa53769bc720e8b0,00,0707070707070707,ff +2797,2797,0,c3ef2ee1e1979c8f,00,0707070707070707,ff +2798,2798,0,779921b3aa90092c,00,0707070707070707,ff +2799,2799,0,fa2c10bd205f3170,00,0707070707070707,ff +2800,2800,0,f5243429cebe5581,00,0707070707070707,ff +2801,2801,0,15ed030c6c657bec,00,0707070707070707,ff +2802,2802,0,0377ce8e95c44360,00,0707070707070707,ff +2803,2803,0,c5108ba01a081398,00,0707070707070707,ff +2804,2804,0,ef9448988161a953,00,0707070707070707,ff +2805,2805,0,3216a8a84e170711,00,0707070707070707,ff +2806,2806,0,4f54b7a2dbcc269c,00,0707070707070707,ff +2807,2807,0,719164562f5c4010,00,0707070707070707,ff +2808,2808,0,42600b34f51fd1a6,00,0707070707070707,ff +2809,2809,0,5f9ba90faef502a8,00,0707070707070707,ff +2810,2810,0,20dad3d8e810a182,00,0707070707070707,ff +2811,2811,0,01bf5b587e2d2ad3,00,0707070707070707,ff +2812,2812,0,21621c4d16ae887b,00,0707070707070707,ff +2813,2813,0,216eb7cebd4ebc89,00,0707070707070707,ff +2814,2814,0,72e25e7cd688f420,00,0707070707070707,ff +2815,2815,0,b62ce9779f895d1e,00,0707070707070707,ff +2816,2816,0,cdb6948e95e45142,00,0707070707070707,ff +2817,2817,0,87b6160345782adc,00,0707070707070707,ff +2818,2818,0,8bc3febd6dad076c,00,0707070707070707,ff +2819,2819,0,24f95b3b129d6369,00,0707070707070707,ff +2820,2820,0,21ee116b344eafec,00,0707070707070707,ff +2821,2821,0,4fd6b0b222e970e5,00,0707070707070707,ff +2822,2822,0,968facee261f3df7,00,0707070707070707,ff +2823,2823,0,af4b21f156c3af50,00,0707070707070707,ff +2824,2824,0,7eec9c722a3cf1f0,00,0707070707070707,ff +2825,2825,0,7cd5caa751edc906,00,0707070707070707,ff +2826,2826,0,8da27cc4104163ea,00,0707070707070707,ff +2827,2827,0,a08adb90d3b8b278,00,0707070707070707,ff +2828,2828,0,87a7c498c80f9f97,00,0707070707070707,ff +2829,2829,0,2bccf605582142be,00,0707070707070707,ff +2830,2830,0,0eae6da19e06e44d,00,0707070707070707,ff +2831,2831,0,0b0968e616d65333,00,0707070707070707,ff +2832,2832,0,89855befe10e0f82,00,0707070707070707,ff +2833,2833,0,0f0c53fdf770b5d7,00,0707070707070707,ff +2834,2834,0,946efe6106c4bb52,00,0707070707070707,ff +2835,2835,0,9ef81558a946aecf,00,0707070707070707,ff +2836,2836,0,7f6d15bb0705412c,00,0707070707070707,ff +2837,2837,0,f85d9b611b77999a,00,0707070707070707,ff +2838,2838,0,c2d1a4580c9dab91,00,0707070707070707,ff +2839,2839,0,0619bb690b079eb3,00,0707070707070707,ff +2840,2840,0,4a0548dce6b3abc7,00,0707070707070707,ff +2841,2841,0,1bf0ffa7813fb565,00,0707070707070707,ff +2842,2842,0,2d8e989afc0eafef,00,0707070707070707,ff +2843,2843,0,fa89c390ea07d835,00,0707070707070707,ff +2844,2844,0,8046f525f5eb93fe,00,0707070707070707,ff +2845,2845,0,0707070707fd0bda,fc,0707070707070707,ff +2846,2846,0,0707070707070707,ff,0707070707070707,ff +2847,2847,0,d5555555555555fb,01,0707070707070707,ff +2848,2848,0,5e242e6f2aede000,00,0707070707070707,ff +2849,2849,0,00450008af2644be,00,0707070707070707,ff +2850,2850,0,06400040190adc05,00,0707070707070707,ff diff --git a/test/test_stream.py b/test/test_stream.py index eeec46c..a1a2f51 100644 --- a/test/test_stream.py +++ b/test/test_stream.py @@ -187,6 +187,7 @@ def stream_collector( source, dest=[], expect_npackets=None, + stop_cond=None, seed=42, ready_rand=50, debug_print=False): @@ -194,6 +195,10 @@ def stream_collector( `source`. If `source` has a `last_be` signal, that is respected properly. + `stop_cond` can be passed a function which is invoked whenever the + collector has a chance to cease operations (when a packet has been + fully read). If when invoked it returns true, this function will + exit. """ prng = random.Random(seed) @@ -219,6 +224,10 @@ def stream_collector( # Loop for collecting individual packets, separated by source.last while expect_npackets == None or len(dest) < expect_npackets: + if stop_cond is not None: + if stop_cond(): + break + # Buffer for the current packet collected_bytes = [] param_signal_states = {} diff --git a/test/test_xgmii_phy.py b/test/test_xgmii_phy.py new file mode 100644 index 0000000..c5f52f3 --- /dev/null +++ b/test/test_xgmii_phy.py @@ -0,0 +1,572 @@ +# +# This file is part of LiteEth. +# +# Copyright (c) 2021 Leon Schuermann +# SPDX-License-Identifier: BSD-2-Clause + +import unittest +import random +import csv +from pathlib import Path + +from migen import * + +from litex.soc.interconnect.stream import * +from liteeth.phy.xgmii import LiteEthPHYXGMII, LiteEthPHYXGMIIRX + +from .test_stream import StreamPacket, stream_inserter, stream_collector, \ + compare_packets + +def mask_last_be(dw, data, last_be): + """Mark some data by a last_be data qualifier. The rest of the data + passed in will be zeroed. + """ + masked_data = 0 + + for byte in range(dw // 8): + if 2**byte > last_be: + break + masked_data |= data & (0xFF << (byte * 8)) + + return masked_data + +class XGMIICollector: + def __init__(self, min_interframegap=12, tolerate_dic=True, + debug_print=False): + # Minimum IFG legal to be accepted on the XGMII interface (excluding + # DIC, if tolerated). On the receiving send, when accounting for + # potential IFG shrinkage and allowing the minimum receive IFG as + # mandated by IEEE 802.3 (e.g. `min_interframegap` = 5 bytes IFG for + # 10Gbit/s Ethernet), tolerate_dic should thus be disabled. + self.min_interframegap = min_interframegap + + # Whether the collector should spit out debug information about received + # signal states. Will always print error conditions. + self.debug_print = debug_print + + # Whether the deficit idle count mechanism should be tolerated. This + # will allow the receiver to temporarily accept IFGs < 12 bytes, as long + # as an average inter-frame gap of >= 12 is maintained. This must be + # implemented as a 2-bit counter, as per IEEE 802.3-2018, section four, + # 46.3.1.4 Start control character alignment. + self.tolerate_dic = tolerate_dic + + # Proper deficit idle count, implemented as a two bit counter using the + # algorithm described by Eric Lynskey of the UNH InterOperability + # Lab[1]: + # + # | current | | | | | + # | count | 0 | 1 | 2 | 3 | + # |---------+-----+-------+-----+-------+-----+-------+-----+-------| + # | | | new | | new | | new | | new | + # | pkt % 4 | IFG | count | IFG | count | IFG | count | IFG | count | + # |---------+-----+-------+-----+-------+-----+-------+-----+-------| + # | 0 | 12 | 0 | 12 | 1 | 12 | 2 | 12 | 3 | + # | 1 | 11 | 1 | 11 | 2 | 11 | 3 | 15 | 0 | + # | 2 | 10 | 2 | 10 | 3 | 14 | 0 | 14 | 1 | + # | 3 | 9 | 3 | 13 | 0 | 13 | 1 | 13 | 2 | + # + # [1]: https://www.iol.unh.edu/sites/default/files/knowledgebase/10gec/10GbE_DIC.pdf + self.dic = 0 + + # How many additional IDLE characters we've seen. We are faithful that + # the device is complying and initialize this to the mandated IFG byte + # count + 3 bytes extra IDLE characters inserted through DIC, in case we + # listen in to a captured stream and a new packet starts immediately. + self.interframegap = 15 + + # Received packets, array of arrays of bytes. + self.packets = [] + + # Packet currently being received. Array of bytes. + self.current_packet = None + + # History of observed inter-frame gaps for debugging purposes. + self.interframegaps = [] + + # Whether the collector is currently collecting data or done. This can + # be very useful information for designing composite test systems and + # running until all data has been gathered. + self.collecting = False + + def inject_32b_bus_word(self, ctl_word, data_word): + for i in range(4): + ctl = (ctl_word >> i) & 1 + data = (data_word >> (i * 8)) & 0xFF + + if ctl == 0 and self.current_packet is not None: + # Data byte _and_ currently reading a packet, all fine! + self.current_packet += [data] + + elif ctl == 1 and data == 0xFB: + # XGMII start of frame control character + if self.current_packet is not None: + raise ValueError("Got start of frame control character " + + "while reading packet") + + if i != 0: + raise ValueError("Got start of frame control character on " + + "lane {}".format(i)) + + # Check and validate the observed IFG + if self.tolerate_dic: + if self.interframegap < self.min_interframegap: + # Produced some deficit, check if it's legal + self.dic += self.min_interframegap - self.interframegap + if self.dic > 3: + raise ValueError("DIC bounds exceeded. Observed {} " + + "bytes IFG, but DIC would have " + + "allowed {}.".format( + self.interfamegap, + 3 - self.dic)) + + elif self.interframegap > self.min_interframegap: + # Inserted some extra IDLE, subtract from the deficit + self.dic = min(0, self.dic - ( + self.interframegap - self.min_interframegap + )) + + elif self.interframegap < self.min_interframegap: + # DIC is disabled + raise ValueError("IFG violated. Oberserved {} bytes, which " + + "is less than the minimum of {}".format( + self.interframegap, + self.min_interframegap + )) + + # Store the observed IFG for debugging purposes and reset it + self.interframegaps += [self.interframegap] + self.interframegap = 0 + + # Start a new packet. The XGMII start of frame character + # replaces the first preamble octet, so store that as the first + # byte. + self.current_packet = [0x55] + + elif ctl == 1 and data == 0xFD: + # XGMII end of frame control character + + if self.current_packet is None: + if len(self.packets) == 0 and self.debug_print: + print("INFO: got end of frame control character while " + + "not reading a packet. This can be valid for " + + "the first partial packet in the capture, but " + + "not afterwards.") + elif len(self.packets) != 0: + raise ValueError("Got end of frame control character " + + "while not reading a packet.") + else: + if self.debug_print: + print("Received XGMII packet {}.".format( + len(self.packets) + )) + + # Transmission ended, store the packet and reset the current + # packet. + self.packets += [self.current_packet] + self.current_packet = None + + # The XGMII end of frame control character does count + # towards the IFG + self.interframegap = 1 + + # All following bytes MUST be XGMII IDLE control + # characters. We will want to verify that and + # count the number of bytes until i % 4 == 0 + # towards the DIC counter. + end_of_frame = True + + elif ctl == 1 and data == 0x07: + # XGMII idle control character + + if self.current_packet is not None: + raise ValueError("Got idle control character in the middle " + + "of a packet") + + self.interframegap += 1 + + elif ctl == 1: + # Unrecognized XGMII control character + + raise ValueError("Invalid XGMII control character {:02x}" + .format(data)) + + def inject_bus_word(self, dw, ctl_word, data_word): + if dw == 32: + self.inject_32b_bus_word(ctl_word, data_word) + elif dw == 64: + self.inject_32b_bus_word( + ctl_word & 0xF, + data_word & 0xFFFFFFFF + ) + self.inject_32b_bus_word( + (ctl_word >> 4) & 0xF, + (data_word >> 32) & 0xFFFFFFFF, + ) + else: + raise ValueError("Unknown data width: {} bits".format(dw)) + + + def collect(self, xgmii_interface, tap_signals="tx", stop_cond=None): + self.collecting = True + + # Which signals to attach to in the passed XGMII interface + assert tap_signals in ["tx", "rx"] + + if stop_cond is None: + stop_cond = lambda: False + + while not stop_cond(): + if tap_signals == "tx": + ctl_word = yield xgmii_interface.tx_ctl + data_word = yield xgmii_interface.tx_data + dw = len(xgmii_interface.tx_data) + elif tap_signals == "rx": + ctl_word = yield xgmii_interface.rx_ctl + data_word = yield xgmii_interface.rx_data + dw = len(xgmii_interface.rx_data) + self.inject_bus_word(dw, ctl_word, data_word) + yield + + self.collecting = False + +class XGMII64bCSVReader: + def __init__(self, filename, extract_signals_pattern="rx", + complete_trailing_transaction=True): + # Whether we should attempt to complete a trailing XGMII transaction by + # inserting an XGMII end control character. + self.complete_trailing_transaction = complete_trailing_transaction + + # Store filename for reference + self.filename = filename + + # Open the CSV file and create a CSV reader over it + self.filehandle = open(filename, 'r') + self.reader = csv.reader( + # Support comments in the CSV file + filter(lambda line: not line.startswith("#"), self.filehandle), + delimiter=',' + ) + + # Extract the headers and correlate them with the required signal + # pattern to find out the matching columns + self.column_headers = next(self.reader, None) + assert self.column_headers is not None, \ + "Failed to load column header row from CSV" + + self.rx_ctl_col = None + self.rx_data_col = None + for i, header in enumerate(self.column_headers): + if "{}_ctl".format(extract_signals_pattern) in header: + self.rx_ctl_col = i + elif "{}_data".format(extract_signals_pattern) in header: + self.rx_data_col = i + + assert self.rx_ctl_col is not None, \ + "Failed to find RX CTL signal column in CSV" + assert self.rx_data_col is not None, \ + "Failed to find RX DATA signal column in CSV" + + self.datatype_headers = next(self.reader, None) + assert self.datatype_headers is not None, \ + "Failed to load data type header row from CSV" + assert self.datatype_headers[self.rx_ctl_col] == "HEX", \ + "XGMII CTL signal is not hex-encoded" + assert self.datatype_headers[self.rx_data_col] == "HEX", \ + "XGMII DATA signal is not hex-encoded" + + # Whether the inserter is currently in the middle of a packet + self.currently_in_packet = False + + # Hack around Python not having a peekable iterator by always taking the + # next element at the end of a function. + self.next_row = next(self.reader, None) + + # Upper XGMII bus word, for when 32 bit words are accessed + self.upper_ctl = None + self.upper_data = None + + def __del__(self): + self.filehandle.close() + + def get_64b_bus_word(self): + if self.next_row is None: + return None + + ctl_word = int(self.next_row[self.rx_ctl_col], 16) + data_word = int(self.next_row[self.rx_data_col], 16) + + new_packet = False + + # Detect whether this is just starting a new packet + for i in range(8): + ctl = (ctl_word >> i) & 1 + data = (data_word >> (i * 8)) & 0xFF + + if ctl == 1 and data == 0xFB: + new_packet = True + self.currently_in_packet = True + + if ctl == 1 and data == 0xFD: + self.currently_in_packet = False + + # Store for below + prev_row = self.next_row + self.next_row = next(self.reader, None) + + # Let's make sure we have now half / dangling packet at the end. If this + # was the last column and we're currently receiving one, make sure we + # end it properly. This might go terribly wrong if this is condition + # aries at the start of a packet though, in this case just throw an + # error. + if self.next_row is None and self.currently_in_packet \ + and self.complete_trailing_transaction: + + if new_packet: + raise ValueError("CSV ends just at the start of a new packet, " + + "we can't handle that!") + + self.next_row = prev_row + self.next_row[self.rx_ctl_col] = "ff" + self.next_row[self.rx_data_col] = "07070707070707fd" + + return (ctl_word, data_word) + + def get_bus_word(self, dw=64): + if dw == 64: + assert self.upper_data is None and self.upper_ctl is None, \ + "Cannot query 32bit and 64bit bus words interchangeably" + + return self.get_64b_bus_word() + elif dw == 64: + if self.upper_data is not None: + assert self.upper_ctl is not None + + return (self.upper_ctl, self.upper_data) + else: + xgmii_64b = self.get_64b_bus_word() + + self.upper_ctl = (xgmii_64b[0] >> 4) & 0xF + self.upper_data = (xgmii_64b[1] >> 32) & 0xFFFFFFFF + + return ( + xgmii_64b[0] & 0xF, + xgmii_64b[1] & 0xFFFFFFFF, + ) + else: + raise ValueError("Unknown dw {}!".format(dw)) + + def done(self): + return self.next_row is None + + def inject(self, xgmii_interface, stop_cond=None): + proper_stop_cond = True + + if stop_cond is None: + proper_stop_cond = False + stop_cond = lambda: False + + while not self.done(): + if stop_cond(): + return + + (ctl, data) = self.get_bus_word(len(xgmii_interface.rx_data)) + yield xgmii_interface.rx_ctl.eq(ctl) + yield xgmii_interface.rx_data.eq(data) + yield + + while self.done() and proper_stop_cond and not stop_cond(): + yield xgmii_interface.rx_ctl.eq(0xFF) + yield xgmii_interface.rx_data.eq(0x0707070707070707) + yield + + +class TestXGMIIPHY(unittest.TestCase): + def test_xgmii_rx(self): + # Read XGMII data from the CSV file + csv_file = Path(__file__).parent / "assets" / "xgmii_bus_capture.csv" + xgmii_injector = XGMII64bCSVReader( + csv_file.resolve(), + complete_trailing_transaction=True + ) + + # Collect the XGMII transactions from the reader with a minimum + # inter-frame gap of 5 (accounted for potential IFG shrinkage). + xgmii_collector = XGMIICollector( + min_interframegap=5, + tolerate_dic=False, + debug_print=True, + ) + + # XGMII interface + xgmii_interface = Record([ + ("rx_ctl", 8), + ("rx_data", 64), + ("tx_ctl", 8), + ("tx_data", 64), + ]) + + # We simply test the receiver component (XGMII -> stream) here. + dut = LiteEthPHYXGMIIRX( + xgmii_interface, + 64, + ) + + recvd_packets = [] + run_simulation( + dut, + [ + xgmii_injector.inject( + xgmii_interface, + ), + xgmii_collector.collect( + xgmii_interface, + tap_signals="rx", + stop_cond=lambda: xgmii_injector.done() \ + and xgmii_collector.current_packet is None, + ), + stream_collector( + dut.source, + dest=recvd_packets, + stop_cond=xgmii_injector.done, + seed=42, + debug_print=True, + # The XGMII PHY RX part deliberately does not support a + # deasserted ready signal. The sink is assumed to be always + # ready. + ready_rand=0, + ), + ], + ) + + self.assertTrue( + len(recvd_packets) == len(xgmii_collector.packets), + "Different number of received and sent packets: {} vs. {}!" + .format(len(recvd_packets), len(xgmii_collector.packets)) + ) + for p, (recvd, sent) in enumerate( + zip(recvd_packets, xgmii_collector.packets)): + self.assertTrue( + len(recvd.data) == len(sent), + ("Packet sent and received with different length: {} vs. {} " + + "at packet {}!" + ).format(len(recvd.data), len(sent), p) + ) + for i, (a, b) in enumerate(zip(recvd.data, sent)): + self.assertTrue( + a == b, + ("Byte sent and received differ: {} vs. {} at {} byte of " + + "packet {}" + ).format(a, b, i, p) + ) + + def test_xgmii_stream_loopback(self): + # Read XGMII data from the CSV file + csv_file = Path(__file__).parent / "assets" / "xgmii_bus_capture.csv" + xgmii_injector = XGMII64bCSVReader( + csv_file.resolve(), + complete_trailing_transaction=True + ) + + # Collect the XGMII transactions from the CSV reader with a minimum + # inter-frame gap of 5 (accounted for potential IFG shrinkage). + xgmii_rx_collector = XGMIICollector( + min_interframegap=5, + tolerate_dic=False, + + debug_print=True + ) + + # Collect the XGMII transactions from the TX PHY with a minimum + # inter-frame gap of 5. As a dumb loopback (akin to the behavior of a + # repeater) this is the smallest IPG value which may be put on the wire + # again. + xgmii_tx_collector = XGMIICollector( + min_interframegap=12, + tolerate_dic=True, + debug_print=True + ) + + class DUT(Module): + def __init__(self): + # XGMII signals + self.xgmii_interface = Record([ + ("rx_ctl", 8), + ("rx_data", 64), + ("tx_ctl", 8), + ("tx_data", 64), + ]) + + # PHY with TX and RX side + self.submodules.ethphy = ClockDomainsRenamer({ + "eth_tx": "sys", + "eth_rx": "sys", + })(LiteEthPHYXGMII( + Record([("rx", 1), ("tx", 1)]), + self.xgmii_interface, + model=True, + )) + + # Insert a synchronous FIFO to allow some variability of the + # inter-frame gap. If it overflows we know that we're not + # processing data at line rate, thus we must make sure that we + # detect such a case. + self.submodules.loopback_fifo = SyncFIFO( + self.ethphy.source.payload.layout, + 4, + True, + ) + + self.comb += [ + self.ethphy.source.connect(self.loopback_fifo.sink), + self.loopback_fifo.source.connect(self.ethphy.sink), + ] + + dut = DUT() + run_simulation( + dut, + [ + xgmii_rx_collector.collect( + dut.xgmii_interface, + tap_signals="rx", + stop_cond=lambda: xgmii_injector.done() \ + and xgmii_rx_collector.current_packet is None, + ), + xgmii_tx_collector.collect( + dut.xgmii_interface, + tap_signals="tx", + stop_cond=lambda: xgmii_injector.done() \ + and xgmii_tx_collector.current_packet is None \ + and len(xgmii_tx_collector.packets) \ + >= len(xgmii_rx_collector.packets), + ), + xgmii_injector.inject( + dut.xgmii_interface, + stop_cond=lambda: not xgmii_rx_collector.collecting \ + and not xgmii_tx_collector.collecting, + ), + ], + vcd_name="xgmii_fuuuuuck.vcd", + ) + + self.assertTrue( + len(xgmii_rx_collector.packets) == len(xgmii_tx_collector.packets), + "Different number of sent and received packets: {} vs. {}!" + .format(len(xgmii_rx_collector.packets), + len(xgmii_tx_collector.packets)) + ) + for p, (recvd, sent) in enumerate( + zip(xgmii_tx_collector.packets, xgmii_rx_collector.packets)): + self.assertTrue( + len(recvd) == len(sent), + ("Packet sent and received with different length: {} vs. {} at " + + "packet {}!" + ).format(len(recvd), len(sent), p) + ) + for i, (a, b) in enumerate(zip(recvd, sent)): + self.assertTrue( + a == b, + ("Byte sent and received differ: {} vs. {} at {} byte of " + + "packet {}" + ).format(a, b, i, p) + )