[
  {
    "path": ".gitignore",
    "content": ".idea\n*.pyc\n*.log\n*~\n__pycache__\nout_test/\n"
  },
  {
    "path": ".vscode/settings.json",
    "content": "{\n    \"python.linting.pylintEnabled\": false,\n    \"python.linting.enabled\": true,\n    \"python.testing.unittestArgs\": [\n        \"-v\",\n        \"-s\",\n        \"./dashlivesim\",\n        \"-p\",\n        \"test_*.py\"\n    ],\n    \"python.testing.pytestEnabled\": false,\n    \"python.testing.nosetestsEnabled\": false,\n    \"python.testing.unittestEnabled\": true,\n    \"python.testing.autoTestDiscoverOnSaveEnabled\": true,\n    \"python.linting.flake8Enabled\": true,\n    \"python.linting.flake8Args\": [\"--max-line-length=120\"]\n}"
  },
  {
    "path": "AUTHORS.md",
    "content": "# dash-live-source-simulator Authors List\n#####Please add entries to the bottom of the list in the following format\n* @GitHub UserName (Required) [Name and/or Organization] (Optional)\n\n#Authors\n* @TobbeEdgeware [Torbjörn Einarsson, Edgeware]\n* @TobbeMobiTV [Torbjörn Einarsson, MobiTV]\n* @KenthMobiTV [Kenth Andersson, MobiTV]\n* @Yi [Yi Lee, Nomor]\n* @AdithyanIlangovan [Adithyan Ilangovan, Nomor]\n* @zangue [Armand Zangue]\n* @PaulRutland [Paul Rutland]\n"
  },
  {
    "path": "LICENSE.md",
    "content": "# live-source-simulator BSD License Agreement\n\nThe copyright in this software is being made available under the BSD License, included below. This software may be subject to other third party and contributor rights, including patent rights, and no such rights are granted under this license.\n\n**Copyright (c) 2015-2018, Dash Industry Forum.\n**All rights reserved.**\n\n* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the  documentation and/or other materials provided with the distribution.\n* Neither the name of the Dash Industry Forum nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n\n**THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.**\n"
  },
  {
    "path": "README.md",
    "content": "# Time to move to livesim2!\n\nThis project is no longer maintained and new efforts are done in the <a href=\"https://github.com/Dash-Industry-Forum/livesim2\">livesim2</a>\nproject instead.\n\nThe online service https://livesim.dashif.org on AWS is being stopped beginning of October 2023, and the DNS instead pointed to\nthe new livesim2 service on Linode at https://livesim2.dashif.org. All old URLs should work, due to all paths `/livesim/*`,\nbeing redirected to `/livesim2/*`, but the response may differ a bit compared to old livesim. For example, `publishTime` is now\nmore accurate in that it only changes when the MPD changes, and is not just simply the request time as in the first version of livesim.//\n\nPlease look at the new project and the links provided by it. You can either use your own content, or download and use the livesim\ncontent from <a href=\"https://github.com/Dash-Industry-Forum/livesim-content\">livesim-content</a> to set\nup your own test service.\n\n# DASH-IF DASH Live Source Simulator\n\nThis software is intended as a reference that can be customized to provide a reference\nfor several use cases for live DASH distribution.\n\nIt uses VoD content in live profile as a start, and modifies the MPD and the media\nsegments to provide a live source. All modifications are made on the fly, which allows\nfor many different options as well as accurate timing testing.\n\nThe tool is written in Python3 and runs using using wsgi. There is a reference instance running\non AWS at https://livesim.dashif.org, but you can also run it on your own server.\n\nLow-delay DASH is also supported.\n"
  },
  {
    "path": "dashlivesim/__init__.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015-2020, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nSERVER_VERSION = \"2.0.2+dev\"\nSERVER_AGENT = \"DASH-IF live DASH simulator %s\" % SERVER_VERSION\n"
  },
  {
    "path": "dashlivesim/cc_inserter/__init__.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "dashlivesim/cc_inserter/cc_inserter.py",
    "content": "\"\"\"Analyze DASH content in live profile and insert cc.\n\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport sys\nimport os\nimport time\nimport re\nimport struct\nimport argparse\n\nfrom dashlivesim.dashlib import initsegmentfilter, mediasegmentfilter\nfrom dashlivesim.dashlib.mp4filter import MP4Filter\nfrom dashlivesim.dashlib.structops import uint32_to_str, str_to_uint32\nfrom dashlivesim.cc_inserter.mpdprocessor import MpdProcessor\n\nDEFAULT_DASH_NAMESPACE = \"urn:mpeg:dash:schema:mpd:2011\"\nMUX_TYPE_NONE = 0\nMUX_TYPE_FRAGMENT = 1\nMUX_TYPE_SAMPLES = 2\n\n\ndef generate_data(scc_data, field=1):\n    \"\"\"Generate SEI CEA-608 NAL units prepended with size fields.\n\n    Specified in ANSI_SCTE 128.\"\"\"\n    output = b\"\"\n\n    for data in scc_data:\n        cea608_bytes = data['cea608']\n        payload_size = (1 + 2 + 4 + 1) + (1 + 1 + (len(cea608_bytes) * 3) + 1)\n        nal_unit = [0x66,  # NAL Header\n                    0x04,  # SEI type 4\n                    payload_size,  # SEI payload length (< 255)\n                    0xb5,  # Country code\n                    0x00, 0x31,  # Provider code\n                    0x47, 0x41, 0x39, 0x34,  # UserIdentifier\n                    0x03,  # UserDataTypeCode\n                    0xc0 + len(cea608_bytes),  # 5-bit ccCount\n                    0xff  # reserved byte\n                    ]\n\n        # print(len(cea608_bytes), payload_size)\n\n        for i in cea608_bytes:\n            cc_byte1 = (int(i, 16) & 0xff00) >> 8\n            cc_byte2 = (int(i, 16) & 0xff)\n\n            # TODO: Set field 1 or 2 via parameter\n            if field == 1:\n                nal_unit.append(0xfc)\n            elif field == 2:\n                nal_unit.append(0xfd)  # ccValid + ccType\n            else:\n                raise ValueError(f\"field value {field} not supported\")\n            nal_unit.append(cc_byte1)\n            nal_unit.append(cc_byte2)\n\n        nal_unit.append(0xff)  # marker_bits\n        nal_unit.append(0x80)  # rbsp_trailing_bits\n\n        output += struct.pack('>I', len(nal_unit))\n        output += bytes(nal_unit)\n\n    return output\n\n\nclass CCInsertFilter(MP4Filter):\n    \"\"\"CC Insert filter\"\"\"\n    def __init__(self, segmentFile, scc_data, time_scale, tfdt, field):\n        MP4Filter.__init__(self, segmentFile)\n        self.top_level_boxes_to_parse = [b\"styp\", b\"sidx\", b\"moof\", b\"mdat\"]\n        self.composite_boxes_to_parse = [b\"moof\", b\"traf\"]\n        self.scc_data = scc_data\n        self.time_scale = time_scale\n        self.tfdt = tfdt\n        self.field = field\n        self.trun_offset = 0\n        self.scc_map = []\n\n    def process_trun(self, data):\n        \"\"\"Process trun box.\"\"\"\n        # pylint: disable=too-many-locals,too-many-branches,too-many-statements\n        output = data[:16]\n\n        flags = str_to_uint32(data[8:12]) & 0xffffff\n        sample_count = str_to_uint32(data[12:16])\n        pos = 16\n        # data_offset_present = False\n\n        if flags & 0x1:  # Data offset present\n            # data_offset_present = True\n            self.trun_offset = str_to_uint32(data[16:20])\n            output += uint32_to_str(self.trun_offset)\n            pos += 4\n        if flags & 0x4:\n            pos += 4  # First sample flags present\n\n        sample_duration_present = flags & 0x100\n        sample_size_present = flags & 0x200\n        sample_flags_present = flags & 0x400\n        sample_comp_time_present = flags & 0x800\n        sample_time_tfdt = self.tfdt\n\n        orig_sample_pos = 0\n\n        for i in range(sample_count):\n            duration = 0\n            size = 0\n            flags = 0\n            comp_time = 0\n\n            if sample_duration_present:\n                duration = str_to_uint32(data[pos:pos+4])\n                pos += 4\n            if sample_size_present:\n                size = str_to_uint32(data[pos:pos+4])\n                pos += 4\n            if sample_flags_present:\n                flags = str_to_uint32(data[pos:pos+4])\n                pos += 4\n            if sample_comp_time_present:\n                comp_time = str_to_uint32(data[pos:pos+4])\n                pos += 4\n\n            start_time = 0\n            if i == 0:\n                start_time = (sample_time_tfdt) / float(self.time_scale)\n            else:\n                start_time = (sample_time_tfdt + comp_time) / float(self.time_scale)\n\n            end_time = (sample_time_tfdt + comp_time + duration) / float(self.time_scale)\n            start_time = (sample_time_tfdt) / float(self.time_scale)\n            end_time = (sample_time_tfdt + duration) / float(self.time_scale)\n\n            # print(f\"startTime: {start_time}, endTime: {end_time}\")\n\n            scc_samples = self.get_scc_data(start_time, end_time)\n            output_size = size\n            if len(scc_samples):\n                # print(\" \", i, \"SampleTime: \" + str((sample_time_tfdt) / float(self.time_scale)),\n                #      \"num SCC samples to add: \", len(scc_samples))\n                scc_generated_data = generate_data(scc_samples, self.field)\n                self.scc_map.append(\n                    {'pos': orig_sample_pos,\n                     'size': size,\n                     'scc_nalu': scc_generated_data})\n                output_size += len(scc_generated_data)\n            if sample_duration_present:\n                output += uint32_to_str(duration)\n            if sample_size_present:\n                output += uint32_to_str(output_size)\n            if sample_flags_present:\n                output += uint32_to_str(flags)\n            if sample_comp_time_present:\n                output += uint32_to_str(comp_time)\n            sample_time_tfdt += duration\n            orig_sample_pos += size\n        return output\n\n    def process_mdat(self, data):\n        \"\"\"Process mdat box and insert cea608 data before the video nal units.\"\"\"\n        pos = 0\n        offset = self.trun_offset - (self.mdat_start - self.moof_start)\n        mdat_end = len(data)\n        new_mdat_size = len(data)\n        for scc_data in self.scc_map:\n            new_mdat_size += len(scc_data['scc_nalu'])\n        output = struct.pack(\">I\", new_mdat_size)\n        pos = 4\n        output += data[pos:offset]\n        data_offset = offset\n        # scc_map positions are inside mdat\n        for scc_data in self.scc_map:\n            scc_pos = scc_data['pos'] + data_offset\n            if scc_pos > offset:\n                output += data[offset:scc_pos]\n                offset = scc_pos\n            size = scc_data['size']\n            scc_data = scc_data['scc_nalu']\n            pos = offset\n            end = offset + size\n            while pos < end:\n                nalu_size = struct.unpack(\">I\", data[pos:pos+4])[0]\n                nalu_type = data[pos+4] & 0x1f\n                if nalu_type < 6:  # video\n                    break\n                pos += nalu_size+4\n            if pos > offset:\n                output += data[offset:pos]\n                offset = pos\n            # output CEA-608 NALU\n            output += scc_data\n            output += data[offset:end]\n            offset = end\n        if offset < mdat_end:\n            output += data[offset:]\n        return output\n\n    def get_scc_data(self, start_time, end_time):\n        \"\"\"Return scc data for a specified time period\"\"\"\n        result = []\n        for i in self.scc_data:\n            if start_time <= i['start_time'] < end_time:\n                result.append(i)\n        return result\n\n\n# Utility functions\ndef make_time_stamp(tim):\n    \"\"\"Make timestamp in ISO format from UTC time in seconds.\"\"\"\n    return time.strftime(\"%Y-%m-%dT%H:%M:%SZ\", time.gmtime(tim))\n\n\ndef make_duration_from_seconds(nr_seconds):\n    \"\"\"Create ISO duration as PTxS string from seconds.\"\"\"\n    return \"PT%dS\" % nr_seconds\n\n\ndef transform_time(tim):\n    \"\"\"Transform from hh:mm:ss:fn or pts to hh:mm:ss:ms.\"\"\"\n    try:\n        parts = tim.split(\":\")\n        frame_nr = int(parts[-1])\n        milis = min(int(frame_nr*1000/29.97), 999)\n        newtime = \"%s.%03d\" % (\":\".join(parts[:-1]), milis)\n    except AttributeError:  # pts time\n        seconds = tim//90000\n        milis = int((tim % 90000)/90.0)\n        hours = seconds//3600\n        minutes = seconds//60\n        seconds -= hours*3600 + minutes*60\n        newtime = \"%02d:%02d:%02d.%03d\" % (hours, minutes, seconds, milis)\n    return newtime\n\n\ndef transform_time_to_ms(tim):\n    \"\"\"Transform from hh:mm:ss.ms to sss.sss\"\"\"\n    newtime = 0\n    timems = tim.split(\".\")\n    parts = timems[0].split(\":\")\n\n    newtime += int(parts[0]) * 3600000\n    newtime += int(parts[1]) * 60000\n    newtime += int(parts[2]) * 1000\n    newtime += int(timems[1])\n    return newtime\n\n\ndef convert_time(tim):\n    \"\"\"Convert time (in format hh:mm:ss:fn or hh:mm:ss:ms) into seconds\"\"\"\n    return transform_time_to_ms(transform_time(tim)) / 1000.0\n\n\ndef chunks(data, num):\n    \"\"\"Yield successive n-sized chunks from l.\"\"\"\n    for i in range(0, len(data), num):\n        yield data[i:i+num]\n\n\nclass CCInserterError(Exception):\n    \"Error in CCInserter.\"\n\n\n# Search the directory for a representation\ndef get_segment_range(rep_data):\n    \"Search the directory for the first and last segment and set firstNumber and lastNumber for this MediaType.\"\n    rep_id = rep_data['id']\n    media_dir, media_name = os.path.split(rep_data['absMediaPath'])\n    media_regexp = media_name.replace(\"%d\", r\"(\\d+)\").replace(\".\", r\"\\.\")\n    media_reg = re.compile(media_regexp)\n    files = os.listdir(media_dir)\n    numbers = []\n    for fil in files:\n        match_obj = media_reg.match(fil)\n        if match_obj:\n            number = int(match_obj.groups(1)[0])\n            numbers.append(number)\n    numbers.sort()\n    for i in range(1, len(numbers)):\n        if numbers[i] != numbers[i-1] + 1:\n            raise CCInserterError(\"%s segment missing between %d and %d\" % rep_id, numbers[i], numbers[i-1])\n    print(\"Found %s segments %d - %d\" % (rep_id, numbers[0], numbers[-1]))\n    rep_data['firstNumber'] = numbers[0]\n    rep_data['lastNumber'] = numbers[-1]\n\n\n# CC Inserter class, does all the heavy lifting\nclass CCInserter(object):\n    \"\"\"This class does all the work, it takes an mpd-file, an scc-file and an output\n        path, an processes the segments pointed to by the mpd.\"\"\"\n    # pylint: disable=too-many-instance-attributes\n\n    def __init__(self, mpd_filepath, scc_filepath, out_path, max_nr_segments, field, verbose=1):\n        self.mpd_filepath = mpd_filepath\n        self.scc_filepath = scc_filepath\n        self.out_path = out_path\n        self.max_nr_segments = max_nr_segments\n        self.field = field\n        path_parts = mpd_filepath.split('/')\n        if len(path_parts) >= 2:\n            self.config_filename = '%s.cfg' % path_parts[-2]\n        else:\n            self.config_filename = 'content.cfg'\n        self.base_path = os.path.split(mpd_filepath)[0]\n        self.verbose = verbose\n        self.as_data = {}  # List of adaptation sets (one for each media)\n        self.muxed_rep = None\n        self.muxed_paths = {}\n        self.mpd_seg_start_nr = -1\n        self.scc_data = None\n        self.seg_duration = None\n        self.first_segment_in_loop = -1\n        self.last_segment_in_loop = -1\n        self.nr_segments_in_loop = -1\n        self.mpd_processor = MpdProcessor(self.mpd_filepath)\n        self.loop_time = self.mpd_processor.media_presentation_duration_in_s\n\n    def analyze(self):\n        \"\"\"Main function to call, this analyzes the input and creates a output\"\"\"\n        self.init_media()\n\n        self.check_and_update_media_data()\n\n    def init_media(self):\n        \"Init media by analyzing the MPD and the media files.\"\n        for adaptation_set in self.mpd_processor.get_adaptation_sets():\n            content_type = adaptation_set.content_type\n            if content_type is None:\n                print(\"No contentType for adaptation set\")\n                sys.exit(1)\n            if content_type in self.as_data:\n                raise CCInserterError(\"Multiple adaptation sets for contentType \" + content_type)\n            as_data = {'as': adaptation_set, 'reps': []}\n            as_data['presentationDurationInS'] = self.mpd_processor.media_presentation_duration_in_s\n            self.as_data[content_type] = as_data\n            for rep in adaptation_set.representations:\n                rep_data = {'representation': rep, 'id': rep.rep_id}\n                as_data['reps'].append(rep_data)\n                init_path = rep.initialization_path\n                rep_data['relInitPath'] = init_path\n                rep_data['absInitPath'] = os.path.join(self.base_path, init_path)\n                init_filter = initsegmentfilter.InitFilter(rep_data['absInitPath'])\n                init_filter.filter()\n                rep_data['trackID'] = init_filter.track_id\n                print(\"%s trackID = %d\" % (content_type, rep_data['trackID']))\n                rep_data['relMediaPath'] = rep.get_media_path()\n                rep_data['absMediaPath'] = os.path.join(self.base_path, rep.get_media_path())\n\n                get_segment_range(rep_data)\n                track_timescale = init_filter.track_timescale\n                if 'track_timescale' not in as_data:\n                    as_data['track_timescale'] = track_timescale\n                elif track_timescale != as_data['track_timescale']:\n                    raise CCInserterError(\"Timescales not consistent between %s tracks\" % content_type)\n                if self.verbose:\n                    print(\"%s data: \" % content_type)\n                    for (k, v) in rep_data.items():\n                        print(\"  %s=%s\" % (k, v))\n\n    def get_scc_data(self, start_time, end_time):\n        \"\"\"This fuction takes the sccdata and returns only the parts between start_time and end_time\"\"\"\n        result = []\n        for i in self.scc_data:\n            if i['start_time'] >= start_time and i['start_time'] < end_time:\n                result.append(i)\n        return result\n\n    def check_and_update_media_data(self):\n        \"\"\"Check all segments for good values and return startTimes and total duration.\"\"\"\n        # pylint: disable=too-many-locals,too-many-branches,too-many-statements\n        # lastGoodSegments = []\n        seg_duration = None\n        if self.verbose:\n            print(\"Checking all the media segment durations for deviations.\")\n\n        for content_type in self.as_data.keys():\n            if content_type == \"video\":\n                as_data = self.as_data[content_type]\n                adaptation_set = as_data['as']\n                print(\"Checking %s with timescale %d\" % (content_type, as_data['track_timescale']))\n                if self.seg_duration is None:\n                    seg_duration = adaptation_set.duration\n                    self.seg_duration = seg_duration\n                else:\n                    assert self.seg_duration == adaptation_set.duration\n\n                track_timescale = as_data['track_timescale']\n\n                # Parse SCC file\n                scc_parser = SCCParser(self.scc_filepath, track_timescale)\n                scc_parser.parse()\n                self.scc_data = scc_parser.result\n\n                for rep_data in as_data['reps']:\n                    rep_id = rep_data['id']\n                    rep_data['endNr'] = None\n                    rep_data['startTick'] = None\n                    rep_data['endTick'] = None\n                    if self.first_segment_in_loop >= 0:\n                        assert rep_data['firstNumber'] == self.first_segment_in_loop\n                    else:\n                        self.first_segment_in_loop = rep_data['firstNumber']\n                    if self.mpd_seg_start_nr >= 0:\n                        assert adaptation_set.start_number == self.mpd_seg_start_nr\n                    else:\n                        self.mpd_seg_start_nr = adaptation_set.start_number\n                    seg_ticks = self.seg_duration*track_timescale\n                    max_diff_in_ticks = int(track_timescale*0.1)  # Max 100ms\n                    seg_nr = rep_data['firstNumber']\n                    while True:\n                        segment_path = rep_data['absMediaPath'] % seg_nr\n                        if not os.path.exists(segment_path):\n                            if self.verbose:\n                                print(\"\\nLast good %s segment is %d, endTime=%.3fs, totalTime=%.3fs\" % (\n                                      rep_id, rep_data['endNr'], rep_data['endTime'],\n                                      rep_data['endTime']-rep_data['startTime']))\n                            break\n                        # print \"Parsing segment: \" + segment_path\n                        msf = mediasegmentfilter.MediaSegmentFilter(segment_path)\n                        msf.filter()\n                        tfdt = msf.get_tfdt_value()\n                        duration = msf.get_duration()\n\n                        start_time = tfdt / float(track_timescale)\n                        end_time = start_time + (duration / float(track_timescale))\n                        scc_data_for_segment = self.get_scc_data(start_time, end_time)\n                        if len(scc_data_for_segment):\n                            # Insert cc data into segment\n                            cc_filter = CCInsertFilter(segment_path, scc_data_for_segment, track_timescale,\n                                                       tfdt, self.field)\n                            output = cc_filter.filter()\n\n                            print(os.path.join(self.out_path, \"%d.m4s\" % seg_nr))\n                            with open(os.path.join(self.out_path, \"%d.m4s\" % seg_nr), \"wb\") as fil:\n                                fil.write(output)\n                                fil.close()\n\n                        if rep_data['startTick'] is None:\n                            rep_data['startTick'] = tfdt\n                            rep_data['startTime'] = rep_data['startTick']/float(track_timescale)\n                            # print \"First %s segment is %d starting at time %.3fs\" % (rep_id, seg_nr,\n                            #                                                         rep_data['startTime'])\n                        # Check that there is not too much drift. We want to end with at most max_diff_in_ticks\n                        end_tick = tfdt + duration\n                        ideal_ticks = (seg_nr - rep_data['firstNumber'] + 1)*seg_ticks + rep_data['startTick']\n                        abs_diff_in_ticks = abs(ideal_ticks - end_tick)\n                        if abs_diff_in_ticks < max_diff_in_ticks:\n                            # This is a good wrap point\n                            rep_data['endTick'] = tfdt + duration\n                            rep_data['endTime'] = rep_data['endTick']/float(track_timescale)\n                            rep_data['endNr'] = seg_nr\n\n                        seg_nr += 1\n                        if self.verbose:\n                            sys.stdout.write(\".\")\n                        if seg_nr - rep_data['firstNumber'] > self.max_nr_segments > 0:\n                            print(\"Reached max nr segments\")\n                            break\n\n\nclass SCCParser(object):\n    \"\"\"Parser for scc files, that returns an array with time and scc data objects\"\"\"\n    # pylint: disable=too-few-public-methods\n    def __init__(self, scc_path, timescale):\n        self.scc_path = scc_path\n        self.timescale = timescale\n        self.result = []\n\n    def parse(self):\n        \"\"\"Returns an array of time and scc data objects\"\"\"\n        with open(self.scc_path, 'r') as fil:\n            lines = fil.readlines()\n            start_time = 0\n            for line in lines:\n                line = line.rstrip()\n                if len(line) > 0 and line.find(':') > 0:\n                    parts = line.split(' ')\n                    start_time = convert_time(parts[0])\n                    chunked_data = list(chunks(parts[1:], 31))\n                    for cun in chunked_data:\n                        data = {'start_time': start_time, 'cea608': cun}\n                        self.result.append(data)\n\n\ndef main():\n    parser = argparse.ArgumentParser(\"cc_inserter\")\n    parser.add_argument(\"-v\", \"--verbose\", dest=\"verbose\", action=\"count\", default=0)\n    parser.add_argument(\"-m\", \"--max\", type=int, dest=\"max_nr_segments\", action=\"store\", default=-1)\n    parser.add_argument(\"-f\", \"--field\",  type=int, dest=\"field\", action=\"store\", default=1)\n    parser.add_argument(\"mpd_path\")\n    parser.add_argument(\"scc_file\")\n    parser.add_argument(\"out_path\")\n\n    args = parser.parse_args()\n\n    cc_inserter = CCInserter(args.mpd_path, args.scc_file, args.out_path,\n                             args.max_nr_segments, args.field, args.verbose)\n    cc_inserter.analyze()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "dashlivesim/cc_inserter/hour_eng.scc",
    "content": "Scenarist_SCC V1.0\n\n00:00:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab0 b0ba b0b0 bab0 b080 942c 942f\n\n00:00:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab0 b0ba b031 bab0 b080 942c 942f\n\n00:00:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab0 b0ba b032 bab0 b080 942c 942f\n\n00:00:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab0 b0ba b0b3 bab0 b080 942c 942f\n\n00:00:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab0 b0ba b034 bab0 b080 942c 942f\n\n00:00:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab0 b0ba b0b5 bab0 b080 942c 942f\n\n00:00:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab0 b0ba b0b6 bab0 b080 942c 942f\n\n00:00:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab0 b0ba b037 bab0 b080 942c 942f\n\n00:00:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab0 b0ba b038 bab0 b080 942c 942f\n\n00:00:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab0 b0ba b0b9 bab0 b080 942c 942f\n\n00:00:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab0 b0ba 31b0 bab0 b080 942c 942f\n\n00:00:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab0 b0ba 3131 bab0 b080 942c 942f\n\n00:00:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab0 b0ba 3132 bab0 b080 942c 942f\n\n00:00:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab0 b0ba 31b3 bab0 b080 942c 942f\n\n00:00:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab0 b0ba 3134 bab0 b080 942c 942f\n\n00:00:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab0 b0ba 31b5 bab0 b080 942c 942f\n\n00:00:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab0 b0ba 31b6 bab0 b080 942c 942f\n\n00:00:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab0 b0ba 3137 bab0 b080 942c 942f\n\n00:00:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab0 b0ba 3138 bab0 b080 942c 942f\n\n00:00:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab0 b0ba 31b9 bab0 b080 942c 942f\n\n00:00:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab0 b0ba 32b0 bab0 b080 942c 942f\n\n00:00:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab0 b0ba 3231 bab0 b080 942c 942f\n\n00:00:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab0 b0ba 3232 bab0 b080 942c 942f\n\n00:00:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab0 b0ba 32b3 bab0 b080 942c 942f\n\n00:00:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab0 b0ba 3234 bab0 b080 942c 942f\n\n00:00:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab0 b0ba 32b5 bab0 b080 942c 942f\n\n00:00:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab0 b0ba 32b6 bab0 b080 942c 942f\n\n00:00:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab0 b0ba 3237 bab0 b080 942c 942f\n\n00:00:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab0 b0ba 3238 bab0 b080 942c 942f\n\n00:00:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab0 b0ba 32b9 bab0 b080 942c 942f\n\n00:00:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab0 b0ba b3b0 bab0 b080 942c 942f\n\n00:00:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab0 b0ba b331 bab0 b080 942c 942f\n\n00:00:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab0 b0ba b332 bab0 b080 942c 942f\n\n00:00:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab0 b0ba b3b3 bab0 b080 942c 942f\n\n00:00:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab0 b0ba b334 bab0 b080 942c 942f\n\n00:00:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab0 b0ba b3b5 bab0 b080 942c 942f\n\n00:00:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab0 b0ba b3b6 bab0 b080 942c 942f\n\n00:00:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab0 b0ba b337 bab0 b080 942c 942f\n\n00:00:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab0 b0ba b338 bab0 b080 942c 942f\n\n00:00:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab0 b0ba b3b9 bab0 b080 942c 942f\n\n00:00:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab0 b0ba 34b0 bab0 b080 942c 942f\n\n00:00:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab0 b0ba 3431 bab0 b080 942c 942f\n\n00:00:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab0 b0ba 3432 bab0 b080 942c 942f\n\n00:00:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab0 b0ba 34b3 bab0 b080 942c 942f\n\n00:00:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab0 b0ba 3434 bab0 b080 942c 942f\n\n00:00:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab0 b0ba 34b5 bab0 b080 942c 942f\n\n00:00:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab0 b0ba 34b6 bab0 b080 942c 942f\n\n00:00:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab0 b0ba 3437 bab0 b080 942c 942f\n\n00:00:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab0 b0ba 3438 bab0 b080 942c 942f\n\n00:00:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab0 b0ba 34b9 bab0 b080 942c 942f\n\n00:00:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab0 b0ba b5b0 bab0 b080 942c 942f\n\n00:00:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab0 b0ba b531 bab0 b080 942c 942f\n\n00:00:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab0 b0ba b532 bab0 b080 942c 942f\n\n00:00:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab0 b0ba b5b3 bab0 b080 942c 942f\n\n00:00:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab0 b0ba b534 bab0 b080 942c 942f\n\n00:00:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab0 b0ba b5b5 bab0 b080 942c 942f\n\n00:00:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab0 b0ba b5b6 bab0 b080 942c 942f\n\n00:00:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab0 b0ba b537 bab0 b080 942c 942f\n\n00:00:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab0 b0ba b538 bab0 b080 942c 942f\n\n00:00:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab0 b0ba b5b9 bab0 b080 942c 942f\n\n00:01:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab0 31ba b0b0 bab0 b080 942c 942f\n\n00:01:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab0 31ba b031 bab0 b080 942c 942f\n\n00:01:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab0 31ba b032 bab0 b080 942c 942f\n\n00:01:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab0 31ba b0b3 bab0 b080 942c 942f\n\n00:01:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab0 31ba b034 bab0 b080 942c 942f\n\n00:01:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab0 31ba b0b5 bab0 b080 942c 942f\n\n00:01:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab0 31ba b0b6 bab0 b080 942c 942f\n\n00:01:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab0 31ba b037 bab0 b080 942c 942f\n\n00:01:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab0 31ba b038 bab0 b080 942c 942f\n\n00:01:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab0 31ba b0b9 bab0 b080 942c 942f\n\n00:01:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab0 31ba 31b0 bab0 b080 942c 942f\n\n00:01:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab0 31ba 3131 bab0 b080 942c 942f\n\n00:01:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab0 31ba 3132 bab0 b080 942c 942f\n\n00:01:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab0 31ba 31b3 bab0 b080 942c 942f\n\n00:01:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab0 31ba 3134 bab0 b080 942c 942f\n\n00:01:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab0 31ba 31b5 bab0 b080 942c 942f\n\n00:01:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab0 31ba 31b6 bab0 b080 942c 942f\n\n00:01:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab0 31ba 3137 bab0 b080 942c 942f\n\n00:01:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab0 31ba 3138 bab0 b080 942c 942f\n\n00:01:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab0 31ba 31b9 bab0 b080 942c 942f\n\n00:01:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab0 31ba 32b0 bab0 b080 942c 942f\n\n00:01:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab0 31ba 3231 bab0 b080 942c 942f\n\n00:01:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab0 31ba 3232 bab0 b080 942c 942f\n\n00:01:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab0 31ba 32b3 bab0 b080 942c 942f\n\n00:01:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab0 31ba 3234 bab0 b080 942c 942f\n\n00:01:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab0 31ba 32b5 bab0 b080 942c 942f\n\n00:01:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab0 31ba 32b6 bab0 b080 942c 942f\n\n00:01:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab0 31ba 3237 bab0 b080 942c 942f\n\n00:01:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab0 31ba 3238 bab0 b080 942c 942f\n\n00:01:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab0 31ba 32b9 bab0 b080 942c 942f\n\n00:01:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab0 31ba b3b0 bab0 b080 942c 942f\n\n00:01:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab0 31ba b331 bab0 b080 942c 942f\n\n00:01:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab0 31ba b332 bab0 b080 942c 942f\n\n00:01:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab0 31ba b3b3 bab0 b080 942c 942f\n\n00:01:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab0 31ba b334 bab0 b080 942c 942f\n\n00:01:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab0 31ba b3b5 bab0 b080 942c 942f\n\n00:01:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab0 31ba b3b6 bab0 b080 942c 942f\n\n00:01:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab0 31ba b337 bab0 b080 942c 942f\n\n00:01:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab0 31ba b338 bab0 b080 942c 942f\n\n00:01:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab0 31ba b3b9 bab0 b080 942c 942f\n\n00:01:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab0 31ba 34b0 bab0 b080 942c 942f\n\n00:01:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab0 31ba 3431 bab0 b080 942c 942f\n\n00:01:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab0 31ba 3432 bab0 b080 942c 942f\n\n00:01:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab0 31ba 34b3 bab0 b080 942c 942f\n\n00:01:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab0 31ba 3434 bab0 b080 942c 942f\n\n00:01:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab0 31ba 34b5 bab0 b080 942c 942f\n\n00:01:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab0 31ba 34b6 bab0 b080 942c 942f\n\n00:01:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab0 31ba 3437 bab0 b080 942c 942f\n\n00:01:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab0 31ba 3438 bab0 b080 942c 942f\n\n00:01:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab0 31ba 34b9 bab0 b080 942c 942f\n\n00:01:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab0 31ba b5b0 bab0 b080 942c 942f\n\n00:01:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab0 31ba b531 bab0 b080 942c 942f\n\n00:01:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab0 31ba b532 bab0 b080 942c 942f\n\n00:01:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab0 31ba b5b3 bab0 b080 942c 942f\n\n00:01:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab0 31ba b534 bab0 b080 942c 942f\n\n00:01:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab0 31ba b5b5 bab0 b080 942c 942f\n\n00:01:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab0 31ba b5b6 bab0 b080 942c 942f\n\n00:01:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab0 31ba b537 bab0 b080 942c 942f\n\n00:01:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab0 31ba b538 bab0 b080 942c 942f\n\n00:01:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab0 31ba b5b9 bab0 b080 942c 942f\n\n00:02:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab0 32ba b0b0 bab0 b080 942c 942f\n\n00:02:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab0 32ba b031 bab0 b080 942c 942f\n\n00:02:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab0 32ba b032 bab0 b080 942c 942f\n\n00:02:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab0 32ba b0b3 bab0 b080 942c 942f\n\n00:02:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab0 32ba b034 bab0 b080 942c 942f\n\n00:02:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab0 32ba b0b5 bab0 b080 942c 942f\n\n00:02:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab0 32ba b0b6 bab0 b080 942c 942f\n\n00:02:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab0 32ba b037 bab0 b080 942c 942f\n\n00:02:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab0 32ba b038 bab0 b080 942c 942f\n\n00:02:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab0 32ba b0b9 bab0 b080 942c 942f\n\n00:02:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab0 32ba 31b0 bab0 b080 942c 942f\n\n00:02:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab0 32ba 3131 bab0 b080 942c 942f\n\n00:02:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab0 32ba 3132 bab0 b080 942c 942f\n\n00:02:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab0 32ba 31b3 bab0 b080 942c 942f\n\n00:02:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab0 32ba 3134 bab0 b080 942c 942f\n\n00:02:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab0 32ba 31b5 bab0 b080 942c 942f\n\n00:02:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab0 32ba 31b6 bab0 b080 942c 942f\n\n00:02:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab0 32ba 3137 bab0 b080 942c 942f\n\n00:02:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab0 32ba 3138 bab0 b080 942c 942f\n\n00:02:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab0 32ba 31b9 bab0 b080 942c 942f\n\n00:02:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab0 32ba 32b0 bab0 b080 942c 942f\n\n00:02:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab0 32ba 3231 bab0 b080 942c 942f\n\n00:02:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab0 32ba 3232 bab0 b080 942c 942f\n\n00:02:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab0 32ba 32b3 bab0 b080 942c 942f\n\n00:02:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab0 32ba 3234 bab0 b080 942c 942f\n\n00:02:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab0 32ba 32b5 bab0 b080 942c 942f\n\n00:02:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab0 32ba 32b6 bab0 b080 942c 942f\n\n00:02:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab0 32ba 3237 bab0 b080 942c 942f\n\n00:02:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab0 32ba 3238 bab0 b080 942c 942f\n\n00:02:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab0 32ba 32b9 bab0 b080 942c 942f\n\n00:02:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab0 32ba b3b0 bab0 b080 942c 942f\n\n00:02:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab0 32ba b331 bab0 b080 942c 942f\n\n00:02:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab0 32ba b332 bab0 b080 942c 942f\n\n00:02:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab0 32ba b3b3 bab0 b080 942c 942f\n\n00:02:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab0 32ba b334 bab0 b080 942c 942f\n\n00:02:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab0 32ba b3b5 bab0 b080 942c 942f\n\n00:02:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab0 32ba b3b6 bab0 b080 942c 942f\n\n00:02:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab0 32ba b337 bab0 b080 942c 942f\n\n00:02:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab0 32ba b338 bab0 b080 942c 942f\n\n00:02:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab0 32ba b3b9 bab0 b080 942c 942f\n\n00:02:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab0 32ba 34b0 bab0 b080 942c 942f\n\n00:02:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab0 32ba 3431 bab0 b080 942c 942f\n\n00:02:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab0 32ba 3432 bab0 b080 942c 942f\n\n00:02:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab0 32ba 34b3 bab0 b080 942c 942f\n\n00:02:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab0 32ba 3434 bab0 b080 942c 942f\n\n00:02:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab0 32ba 34b5 bab0 b080 942c 942f\n\n00:02:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab0 32ba 34b6 bab0 b080 942c 942f\n\n00:02:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab0 32ba 3437 bab0 b080 942c 942f\n\n00:02:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab0 32ba 3438 bab0 b080 942c 942f\n\n00:02:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab0 32ba 34b9 bab0 b080 942c 942f\n\n00:02:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab0 32ba b5b0 bab0 b080 942c 942f\n\n00:02:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab0 32ba b531 bab0 b080 942c 942f\n\n00:02:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab0 32ba b532 bab0 b080 942c 942f\n\n00:02:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab0 32ba b5b3 bab0 b080 942c 942f\n\n00:02:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab0 32ba b534 bab0 b080 942c 942f\n\n00:02:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab0 32ba b5b5 bab0 b080 942c 942f\n\n00:02:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab0 32ba b5b6 bab0 b080 942c 942f\n\n00:02:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab0 32ba b537 bab0 b080 942c 942f\n\n00:02:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab0 32ba b538 bab0 b080 942c 942f\n\n00:02:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab0 32ba b5b9 bab0 b080 942c 942f\n\n00:03:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab0 b3ba b0b0 bab0 b080 942c 942f\n\n00:03:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab0 b3ba b031 bab0 b080 942c 942f\n\n00:03:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab0 b3ba b032 bab0 b080 942c 942f\n\n00:03:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab0 b3ba b0b3 bab0 b080 942c 942f\n\n00:03:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab0 b3ba b034 bab0 b080 942c 942f\n\n00:03:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab0 b3ba b0b5 bab0 b080 942c 942f\n\n00:03:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab0 b3ba b0b6 bab0 b080 942c 942f\n\n00:03:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab0 b3ba b037 bab0 b080 942c 942f\n\n00:03:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab0 b3ba b038 bab0 b080 942c 942f\n\n00:03:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab0 b3ba b0b9 bab0 b080 942c 942f\n\n00:03:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab0 b3ba 31b0 bab0 b080 942c 942f\n\n00:03:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab0 b3ba 3131 bab0 b080 942c 942f\n\n00:03:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab0 b3ba 3132 bab0 b080 942c 942f\n\n00:03:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab0 b3ba 31b3 bab0 b080 942c 942f\n\n00:03:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab0 b3ba 3134 bab0 b080 942c 942f\n\n00:03:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab0 b3ba 31b5 bab0 b080 942c 942f\n\n00:03:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab0 b3ba 31b6 bab0 b080 942c 942f\n\n00:03:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab0 b3ba 3137 bab0 b080 942c 942f\n\n00:03:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab0 b3ba 3138 bab0 b080 942c 942f\n\n00:03:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab0 b3ba 31b9 bab0 b080 942c 942f\n\n00:03:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab0 b3ba 32b0 bab0 b080 942c 942f\n\n00:03:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab0 b3ba 3231 bab0 b080 942c 942f\n\n00:03:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab0 b3ba 3232 bab0 b080 942c 942f\n\n00:03:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab0 b3ba 32b3 bab0 b080 942c 942f\n\n00:03:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab0 b3ba 3234 bab0 b080 942c 942f\n\n00:03:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab0 b3ba 32b5 bab0 b080 942c 942f\n\n00:03:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab0 b3ba 32b6 bab0 b080 942c 942f\n\n00:03:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab0 b3ba 3237 bab0 b080 942c 942f\n\n00:03:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab0 b3ba 3238 bab0 b080 942c 942f\n\n00:03:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab0 b3ba 32b9 bab0 b080 942c 942f\n\n00:03:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab0 b3ba b3b0 bab0 b080 942c 942f\n\n00:03:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab0 b3ba b331 bab0 b080 942c 942f\n\n00:03:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab0 b3ba b332 bab0 b080 942c 942f\n\n00:03:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab0 b3ba b3b3 bab0 b080 942c 942f\n\n00:03:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab0 b3ba b334 bab0 b080 942c 942f\n\n00:03:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab0 b3ba b3b5 bab0 b080 942c 942f\n\n00:03:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab0 b3ba b3b6 bab0 b080 942c 942f\n\n00:03:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab0 b3ba b337 bab0 b080 942c 942f\n\n00:03:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab0 b3ba b338 bab0 b080 942c 942f\n\n00:03:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab0 b3ba b3b9 bab0 b080 942c 942f\n\n00:03:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab0 b3ba 34b0 bab0 b080 942c 942f\n\n00:03:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab0 b3ba 3431 bab0 b080 942c 942f\n\n00:03:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab0 b3ba 3432 bab0 b080 942c 942f\n\n00:03:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab0 b3ba 34b3 bab0 b080 942c 942f\n\n00:03:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab0 b3ba 3434 bab0 b080 942c 942f\n\n00:03:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab0 b3ba 34b5 bab0 b080 942c 942f\n\n00:03:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab0 b3ba 34b6 bab0 b080 942c 942f\n\n00:03:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab0 b3ba 3437 bab0 b080 942c 942f\n\n00:03:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab0 b3ba 3438 bab0 b080 942c 942f\n\n00:03:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab0 b3ba 34b9 bab0 b080 942c 942f\n\n00:03:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab0 b3ba b5b0 bab0 b080 942c 942f\n\n00:03:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab0 b3ba b531 bab0 b080 942c 942f\n\n00:03:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab0 b3ba b532 bab0 b080 942c 942f\n\n00:03:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab0 b3ba b5b3 bab0 b080 942c 942f\n\n00:03:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab0 b3ba b534 bab0 b080 942c 942f\n\n00:03:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab0 b3ba b5b5 bab0 b080 942c 942f\n\n00:03:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab0 b3ba b5b6 bab0 b080 942c 942f\n\n00:03:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab0 b3ba b537 bab0 b080 942c 942f\n\n00:03:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab0 b3ba b538 bab0 b080 942c 942f\n\n00:03:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab0 b3ba b5b9 bab0 b080 942c 942f\n\n00:04:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab0 34ba b0b0 bab0 b080 942c 942f\n\n00:04:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab0 34ba b031 bab0 b080 942c 942f\n\n00:04:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab0 34ba b032 bab0 b080 942c 942f\n\n00:04:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab0 34ba b0b3 bab0 b080 942c 942f\n\n00:04:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab0 34ba b034 bab0 b080 942c 942f\n\n00:04:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab0 34ba b0b5 bab0 b080 942c 942f\n\n00:04:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab0 34ba b0b6 bab0 b080 942c 942f\n\n00:04:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab0 34ba b037 bab0 b080 942c 942f\n\n00:04:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab0 34ba b038 bab0 b080 942c 942f\n\n00:04:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab0 34ba b0b9 bab0 b080 942c 942f\n\n00:04:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab0 34ba 31b0 bab0 b080 942c 942f\n\n00:04:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab0 34ba 3131 bab0 b080 942c 942f\n\n00:04:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab0 34ba 3132 bab0 b080 942c 942f\n\n00:04:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab0 34ba 31b3 bab0 b080 942c 942f\n\n00:04:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab0 34ba 3134 bab0 b080 942c 942f\n\n00:04:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab0 34ba 31b5 bab0 b080 942c 942f\n\n00:04:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab0 34ba 31b6 bab0 b080 942c 942f\n\n00:04:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab0 34ba 3137 bab0 b080 942c 942f\n\n00:04:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab0 34ba 3138 bab0 b080 942c 942f\n\n00:04:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab0 34ba 31b9 bab0 b080 942c 942f\n\n00:04:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab0 34ba 32b0 bab0 b080 942c 942f\n\n00:04:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab0 34ba 3231 bab0 b080 942c 942f\n\n00:04:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab0 34ba 3232 bab0 b080 942c 942f\n\n00:04:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab0 34ba 32b3 bab0 b080 942c 942f\n\n00:04:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab0 34ba 3234 bab0 b080 942c 942f\n\n00:04:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab0 34ba 32b5 bab0 b080 942c 942f\n\n00:04:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab0 34ba 32b6 bab0 b080 942c 942f\n\n00:04:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab0 34ba 3237 bab0 b080 942c 942f\n\n00:04:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab0 34ba 3238 bab0 b080 942c 942f\n\n00:04:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab0 34ba 32b9 bab0 b080 942c 942f\n\n00:04:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab0 34ba b3b0 bab0 b080 942c 942f\n\n00:04:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab0 34ba b331 bab0 b080 942c 942f\n\n00:04:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab0 34ba b332 bab0 b080 942c 942f\n\n00:04:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab0 34ba b3b3 bab0 b080 942c 942f\n\n00:04:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab0 34ba b334 bab0 b080 942c 942f\n\n00:04:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab0 34ba b3b5 bab0 b080 942c 942f\n\n00:04:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab0 34ba b3b6 bab0 b080 942c 942f\n\n00:04:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab0 34ba b337 bab0 b080 942c 942f\n\n00:04:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab0 34ba b338 bab0 b080 942c 942f\n\n00:04:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab0 34ba b3b9 bab0 b080 942c 942f\n\n00:04:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab0 34ba 34b0 bab0 b080 942c 942f\n\n00:04:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab0 34ba 3431 bab0 b080 942c 942f\n\n00:04:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab0 34ba 3432 bab0 b080 942c 942f\n\n00:04:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab0 34ba 34b3 bab0 b080 942c 942f\n\n00:04:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab0 34ba 3434 bab0 b080 942c 942f\n\n00:04:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab0 34ba 34b5 bab0 b080 942c 942f\n\n00:04:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab0 34ba 34b6 bab0 b080 942c 942f\n\n00:04:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab0 34ba 3437 bab0 b080 942c 942f\n\n00:04:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab0 34ba 3438 bab0 b080 942c 942f\n\n00:04:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab0 34ba 34b9 bab0 b080 942c 942f\n\n00:04:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab0 34ba b5b0 bab0 b080 942c 942f\n\n00:04:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab0 34ba b531 bab0 b080 942c 942f\n\n00:04:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab0 34ba b532 bab0 b080 942c 942f\n\n00:04:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab0 34ba b5b3 bab0 b080 942c 942f\n\n00:04:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab0 34ba b534 bab0 b080 942c 942f\n\n00:04:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab0 34ba b5b5 bab0 b080 942c 942f\n\n00:04:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab0 34ba b5b6 bab0 b080 942c 942f\n\n00:04:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab0 34ba b537 bab0 b080 942c 942f\n\n00:04:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab0 34ba b538 bab0 b080 942c 942f\n\n00:04:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab0 34ba b5b9 bab0 b080 942c 942f\n\n00:05:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab0 b5ba b0b0 bab0 b080 942c 942f\n\n00:05:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab0 b5ba b031 bab0 b080 942c 942f\n\n00:05:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab0 b5ba b032 bab0 b080 942c 942f\n\n00:05:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab0 b5ba b0b3 bab0 b080 942c 942f\n\n00:05:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab0 b5ba b034 bab0 b080 942c 942f\n\n00:05:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab0 b5ba b0b5 bab0 b080 942c 942f\n\n00:05:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab0 b5ba b0b6 bab0 b080 942c 942f\n\n00:05:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab0 b5ba b037 bab0 b080 942c 942f\n\n00:05:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab0 b5ba b038 bab0 b080 942c 942f\n\n00:05:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab0 b5ba b0b9 bab0 b080 942c 942f\n\n00:05:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab0 b5ba 31b0 bab0 b080 942c 942f\n\n00:05:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab0 b5ba 3131 bab0 b080 942c 942f\n\n00:05:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab0 b5ba 3132 bab0 b080 942c 942f\n\n00:05:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab0 b5ba 31b3 bab0 b080 942c 942f\n\n00:05:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab0 b5ba 3134 bab0 b080 942c 942f\n\n00:05:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab0 b5ba 31b5 bab0 b080 942c 942f\n\n00:05:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab0 b5ba 31b6 bab0 b080 942c 942f\n\n00:05:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab0 b5ba 3137 bab0 b080 942c 942f\n\n00:05:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab0 b5ba 3138 bab0 b080 942c 942f\n\n00:05:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab0 b5ba 31b9 bab0 b080 942c 942f\n\n00:05:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab0 b5ba 32b0 bab0 b080 942c 942f\n\n00:05:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab0 b5ba 3231 bab0 b080 942c 942f\n\n00:05:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab0 b5ba 3232 bab0 b080 942c 942f\n\n00:05:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab0 b5ba 32b3 bab0 b080 942c 942f\n\n00:05:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab0 b5ba 3234 bab0 b080 942c 942f\n\n00:05:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab0 b5ba 32b5 bab0 b080 942c 942f\n\n00:05:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab0 b5ba 32b6 bab0 b080 942c 942f\n\n00:05:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab0 b5ba 3237 bab0 b080 942c 942f\n\n00:05:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab0 b5ba 3238 bab0 b080 942c 942f\n\n00:05:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab0 b5ba 32b9 bab0 b080 942c 942f\n\n00:05:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab0 b5ba b3b0 bab0 b080 942c 942f\n\n00:05:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab0 b5ba b331 bab0 b080 942c 942f\n\n00:05:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab0 b5ba b332 bab0 b080 942c 942f\n\n00:05:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab0 b5ba b3b3 bab0 b080 942c 942f\n\n00:05:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab0 b5ba b334 bab0 b080 942c 942f\n\n00:05:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab0 b5ba b3b5 bab0 b080 942c 942f\n\n00:05:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab0 b5ba b3b6 bab0 b080 942c 942f\n\n00:05:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab0 b5ba b337 bab0 b080 942c 942f\n\n00:05:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab0 b5ba b338 bab0 b080 942c 942f\n\n00:05:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab0 b5ba b3b9 bab0 b080 942c 942f\n\n00:05:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab0 b5ba 34b0 bab0 b080 942c 942f\n\n00:05:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab0 b5ba 3431 bab0 b080 942c 942f\n\n00:05:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab0 b5ba 3432 bab0 b080 942c 942f\n\n00:05:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab0 b5ba 34b3 bab0 b080 942c 942f\n\n00:05:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab0 b5ba 3434 bab0 b080 942c 942f\n\n00:05:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab0 b5ba 34b5 bab0 b080 942c 942f\n\n00:05:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab0 b5ba 34b6 bab0 b080 942c 942f\n\n00:05:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab0 b5ba 3437 bab0 b080 942c 942f\n\n00:05:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab0 b5ba 3438 bab0 b080 942c 942f\n\n00:05:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab0 b5ba 34b9 bab0 b080 942c 942f\n\n00:05:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab0 b5ba b5b0 bab0 b080 942c 942f\n\n00:05:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab0 b5ba b531 bab0 b080 942c 942f\n\n00:05:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab0 b5ba b532 bab0 b080 942c 942f\n\n00:05:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab0 b5ba b5b3 bab0 b080 942c 942f\n\n00:05:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab0 b5ba b534 bab0 b080 942c 942f\n\n00:05:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab0 b5ba b5b5 bab0 b080 942c 942f\n\n00:05:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab0 b5ba b5b6 bab0 b080 942c 942f\n\n00:05:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab0 b5ba b537 bab0 b080 942c 942f\n\n00:05:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab0 b5ba b538 bab0 b080 942c 942f\n\n00:05:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab0 b5ba b5b9 bab0 b080 942c 942f\n\n00:06:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab0 b6ba b0b0 bab0 b080 942c 942f\n\n00:06:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab0 b6ba b031 bab0 b080 942c 942f\n\n00:06:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab0 b6ba b032 bab0 b080 942c 942f\n\n00:06:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab0 b6ba b0b3 bab0 b080 942c 942f\n\n00:06:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab0 b6ba b034 bab0 b080 942c 942f\n\n00:06:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab0 b6ba b0b5 bab0 b080 942c 942f\n\n00:06:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab0 b6ba b0b6 bab0 b080 942c 942f\n\n00:06:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab0 b6ba b037 bab0 b080 942c 942f\n\n00:06:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab0 b6ba b038 bab0 b080 942c 942f\n\n00:06:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab0 b6ba b0b9 bab0 b080 942c 942f\n\n00:06:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab0 b6ba 31b0 bab0 b080 942c 942f\n\n00:06:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab0 b6ba 3131 bab0 b080 942c 942f\n\n00:06:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab0 b6ba 3132 bab0 b080 942c 942f\n\n00:06:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab0 b6ba 31b3 bab0 b080 942c 942f\n\n00:06:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab0 b6ba 3134 bab0 b080 942c 942f\n\n00:06:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab0 b6ba 31b5 bab0 b080 942c 942f\n\n00:06:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab0 b6ba 31b6 bab0 b080 942c 942f\n\n00:06:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab0 b6ba 3137 bab0 b080 942c 942f\n\n00:06:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab0 b6ba 3138 bab0 b080 942c 942f\n\n00:06:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab0 b6ba 31b9 bab0 b080 942c 942f\n\n00:06:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab0 b6ba 32b0 bab0 b080 942c 942f\n\n00:06:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab0 b6ba 3231 bab0 b080 942c 942f\n\n00:06:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab0 b6ba 3232 bab0 b080 942c 942f\n\n00:06:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab0 b6ba 32b3 bab0 b080 942c 942f\n\n00:06:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab0 b6ba 3234 bab0 b080 942c 942f\n\n00:06:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab0 b6ba 32b5 bab0 b080 942c 942f\n\n00:06:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab0 b6ba 32b6 bab0 b080 942c 942f\n\n00:06:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab0 b6ba 3237 bab0 b080 942c 942f\n\n00:06:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab0 b6ba 3238 bab0 b080 942c 942f\n\n00:06:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab0 b6ba 32b9 bab0 b080 942c 942f\n\n00:06:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab0 b6ba b3b0 bab0 b080 942c 942f\n\n00:06:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab0 b6ba b331 bab0 b080 942c 942f\n\n00:06:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab0 b6ba b332 bab0 b080 942c 942f\n\n00:06:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab0 b6ba b3b3 bab0 b080 942c 942f\n\n00:06:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab0 b6ba b334 bab0 b080 942c 942f\n\n00:06:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab0 b6ba b3b5 bab0 b080 942c 942f\n\n00:06:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab0 b6ba b3b6 bab0 b080 942c 942f\n\n00:06:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab0 b6ba b337 bab0 b080 942c 942f\n\n00:06:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab0 b6ba b338 bab0 b080 942c 942f\n\n00:06:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab0 b6ba b3b9 bab0 b080 942c 942f\n\n00:06:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab0 b6ba 34b0 bab0 b080 942c 942f\n\n00:06:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab0 b6ba 3431 bab0 b080 942c 942f\n\n00:06:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab0 b6ba 3432 bab0 b080 942c 942f\n\n00:06:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab0 b6ba 34b3 bab0 b080 942c 942f\n\n00:06:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab0 b6ba 3434 bab0 b080 942c 942f\n\n00:06:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab0 b6ba 34b5 bab0 b080 942c 942f\n\n00:06:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab0 b6ba 34b6 bab0 b080 942c 942f\n\n00:06:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab0 b6ba 3437 bab0 b080 942c 942f\n\n00:06:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab0 b6ba 3438 bab0 b080 942c 942f\n\n00:06:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab0 b6ba 34b9 bab0 b080 942c 942f\n\n00:06:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab0 b6ba b5b0 bab0 b080 942c 942f\n\n00:06:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab0 b6ba b531 bab0 b080 942c 942f\n\n00:06:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab0 b6ba b532 bab0 b080 942c 942f\n\n00:06:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab0 b6ba b5b3 bab0 b080 942c 942f\n\n00:06:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab0 b6ba b534 bab0 b080 942c 942f\n\n00:06:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab0 b6ba b5b5 bab0 b080 942c 942f\n\n00:06:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab0 b6ba b5b6 bab0 b080 942c 942f\n\n00:06:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab0 b6ba b537 bab0 b080 942c 942f\n\n00:06:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab0 b6ba b538 bab0 b080 942c 942f\n\n00:06:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab0 b6ba b5b9 bab0 b080 942c 942f\n\n00:07:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab0 37ba b0b0 bab0 b080 942c 942f\n\n00:07:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab0 37ba b031 bab0 b080 942c 942f\n\n00:07:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab0 37ba b032 bab0 b080 942c 942f\n\n00:07:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab0 37ba b0b3 bab0 b080 942c 942f\n\n00:07:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab0 37ba b034 bab0 b080 942c 942f\n\n00:07:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab0 37ba b0b5 bab0 b080 942c 942f\n\n00:07:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab0 37ba b0b6 bab0 b080 942c 942f\n\n00:07:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab0 37ba b037 bab0 b080 942c 942f\n\n00:07:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab0 37ba b038 bab0 b080 942c 942f\n\n00:07:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab0 37ba b0b9 bab0 b080 942c 942f\n\n00:07:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab0 37ba 31b0 bab0 b080 942c 942f\n\n00:07:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab0 37ba 3131 bab0 b080 942c 942f\n\n00:07:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab0 37ba 3132 bab0 b080 942c 942f\n\n00:07:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab0 37ba 31b3 bab0 b080 942c 942f\n\n00:07:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab0 37ba 3134 bab0 b080 942c 942f\n\n00:07:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab0 37ba 31b5 bab0 b080 942c 942f\n\n00:07:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab0 37ba 31b6 bab0 b080 942c 942f\n\n00:07:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab0 37ba 3137 bab0 b080 942c 942f\n\n00:07:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab0 37ba 3138 bab0 b080 942c 942f\n\n00:07:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab0 37ba 31b9 bab0 b080 942c 942f\n\n00:07:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab0 37ba 32b0 bab0 b080 942c 942f\n\n00:07:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab0 37ba 3231 bab0 b080 942c 942f\n\n00:07:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab0 37ba 3232 bab0 b080 942c 942f\n\n00:07:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab0 37ba 32b3 bab0 b080 942c 942f\n\n00:07:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab0 37ba 3234 bab0 b080 942c 942f\n\n00:07:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab0 37ba 32b5 bab0 b080 942c 942f\n\n00:07:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab0 37ba 32b6 bab0 b080 942c 942f\n\n00:07:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab0 37ba 3237 bab0 b080 942c 942f\n\n00:07:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab0 37ba 3238 bab0 b080 942c 942f\n\n00:07:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab0 37ba 32b9 bab0 b080 942c 942f\n\n00:07:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab0 37ba b3b0 bab0 b080 942c 942f\n\n00:07:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab0 37ba b331 bab0 b080 942c 942f\n\n00:07:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab0 37ba b332 bab0 b080 942c 942f\n\n00:07:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab0 37ba b3b3 bab0 b080 942c 942f\n\n00:07:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab0 37ba b334 bab0 b080 942c 942f\n\n00:07:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab0 37ba b3b5 bab0 b080 942c 942f\n\n00:07:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab0 37ba b3b6 bab0 b080 942c 942f\n\n00:07:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab0 37ba b337 bab0 b080 942c 942f\n\n00:07:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab0 37ba b338 bab0 b080 942c 942f\n\n00:07:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab0 37ba b3b9 bab0 b080 942c 942f\n\n00:07:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab0 37ba 34b0 bab0 b080 942c 942f\n\n00:07:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab0 37ba 3431 bab0 b080 942c 942f\n\n00:07:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab0 37ba 3432 bab0 b080 942c 942f\n\n00:07:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab0 37ba 34b3 bab0 b080 942c 942f\n\n00:07:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab0 37ba 3434 bab0 b080 942c 942f\n\n00:07:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab0 37ba 34b5 bab0 b080 942c 942f\n\n00:07:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab0 37ba 34b6 bab0 b080 942c 942f\n\n00:07:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab0 37ba 3437 bab0 b080 942c 942f\n\n00:07:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab0 37ba 3438 bab0 b080 942c 942f\n\n00:07:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab0 37ba 34b9 bab0 b080 942c 942f\n\n00:07:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab0 37ba b5b0 bab0 b080 942c 942f\n\n00:07:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab0 37ba b531 bab0 b080 942c 942f\n\n00:07:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab0 37ba b532 bab0 b080 942c 942f\n\n00:07:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab0 37ba b5b3 bab0 b080 942c 942f\n\n00:07:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab0 37ba b534 bab0 b080 942c 942f\n\n00:07:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab0 37ba b5b5 bab0 b080 942c 942f\n\n00:07:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab0 37ba b5b6 bab0 b080 942c 942f\n\n00:07:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab0 37ba b537 bab0 b080 942c 942f\n\n00:07:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab0 37ba b538 bab0 b080 942c 942f\n\n00:07:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab0 37ba b5b9 bab0 b080 942c 942f\n\n00:08:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab0 38ba b0b0 bab0 b080 942c 942f\n\n00:08:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab0 38ba b031 bab0 b080 942c 942f\n\n00:08:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab0 38ba b032 bab0 b080 942c 942f\n\n00:08:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab0 38ba b0b3 bab0 b080 942c 942f\n\n00:08:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab0 38ba b034 bab0 b080 942c 942f\n\n00:08:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab0 38ba b0b5 bab0 b080 942c 942f\n\n00:08:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab0 38ba b0b6 bab0 b080 942c 942f\n\n00:08:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab0 38ba b037 bab0 b080 942c 942f\n\n00:08:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab0 38ba b038 bab0 b080 942c 942f\n\n00:08:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab0 38ba b0b9 bab0 b080 942c 942f\n\n00:08:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab0 38ba 31b0 bab0 b080 942c 942f\n\n00:08:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab0 38ba 3131 bab0 b080 942c 942f\n\n00:08:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab0 38ba 3132 bab0 b080 942c 942f\n\n00:08:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab0 38ba 31b3 bab0 b080 942c 942f\n\n00:08:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab0 38ba 3134 bab0 b080 942c 942f\n\n00:08:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab0 38ba 31b5 bab0 b080 942c 942f\n\n00:08:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab0 38ba 31b6 bab0 b080 942c 942f\n\n00:08:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab0 38ba 3137 bab0 b080 942c 942f\n\n00:08:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab0 38ba 3138 bab0 b080 942c 942f\n\n00:08:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab0 38ba 31b9 bab0 b080 942c 942f\n\n00:08:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab0 38ba 32b0 bab0 b080 942c 942f\n\n00:08:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab0 38ba 3231 bab0 b080 942c 942f\n\n00:08:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab0 38ba 3232 bab0 b080 942c 942f\n\n00:08:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab0 38ba 32b3 bab0 b080 942c 942f\n\n00:08:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab0 38ba 3234 bab0 b080 942c 942f\n\n00:08:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab0 38ba 32b5 bab0 b080 942c 942f\n\n00:08:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab0 38ba 32b6 bab0 b080 942c 942f\n\n00:08:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab0 38ba 3237 bab0 b080 942c 942f\n\n00:08:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab0 38ba 3238 bab0 b080 942c 942f\n\n00:08:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab0 38ba 32b9 bab0 b080 942c 942f\n\n00:08:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab0 38ba b3b0 bab0 b080 942c 942f\n\n00:08:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab0 38ba b331 bab0 b080 942c 942f\n\n00:08:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab0 38ba b332 bab0 b080 942c 942f\n\n00:08:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab0 38ba b3b3 bab0 b080 942c 942f\n\n00:08:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab0 38ba b334 bab0 b080 942c 942f\n\n00:08:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab0 38ba b3b5 bab0 b080 942c 942f\n\n00:08:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab0 38ba b3b6 bab0 b080 942c 942f\n\n00:08:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab0 38ba b337 bab0 b080 942c 942f\n\n00:08:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab0 38ba b338 bab0 b080 942c 942f\n\n00:08:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab0 38ba b3b9 bab0 b080 942c 942f\n\n00:08:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab0 38ba 34b0 bab0 b080 942c 942f\n\n00:08:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab0 38ba 3431 bab0 b080 942c 942f\n\n00:08:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab0 38ba 3432 bab0 b080 942c 942f\n\n00:08:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab0 38ba 34b3 bab0 b080 942c 942f\n\n00:08:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab0 38ba 3434 bab0 b080 942c 942f\n\n00:08:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab0 38ba 34b5 bab0 b080 942c 942f\n\n00:08:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab0 38ba 34b6 bab0 b080 942c 942f\n\n00:08:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab0 38ba 3437 bab0 b080 942c 942f\n\n00:08:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab0 38ba 3438 bab0 b080 942c 942f\n\n00:08:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab0 38ba 34b9 bab0 b080 942c 942f\n\n00:08:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab0 38ba b5b0 bab0 b080 942c 942f\n\n00:08:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab0 38ba b531 bab0 b080 942c 942f\n\n00:08:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab0 38ba b532 bab0 b080 942c 942f\n\n00:08:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab0 38ba b5b3 bab0 b080 942c 942f\n\n00:08:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab0 38ba b534 bab0 b080 942c 942f\n\n00:08:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab0 38ba b5b5 bab0 b080 942c 942f\n\n00:08:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab0 38ba b5b6 bab0 b080 942c 942f\n\n00:08:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab0 38ba b537 bab0 b080 942c 942f\n\n00:08:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab0 38ba b538 bab0 b080 942c 942f\n\n00:08:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab0 38ba b5b9 bab0 b080 942c 942f\n\n00:09:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab0 b9ba b0b0 bab0 b080 942c 942f\n\n00:09:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab0 b9ba b031 bab0 b080 942c 942f\n\n00:09:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab0 b9ba b032 bab0 b080 942c 942f\n\n00:09:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab0 b9ba b0b3 bab0 b080 942c 942f\n\n00:09:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab0 b9ba b034 bab0 b080 942c 942f\n\n00:09:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab0 b9ba b0b5 bab0 b080 942c 942f\n\n00:09:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab0 b9ba b0b6 bab0 b080 942c 942f\n\n00:09:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab0 b9ba b037 bab0 b080 942c 942f\n\n00:09:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab0 b9ba b038 bab0 b080 942c 942f\n\n00:09:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab0 b9ba b0b9 bab0 b080 942c 942f\n\n00:09:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab0 b9ba 31b0 bab0 b080 942c 942f\n\n00:09:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab0 b9ba 3131 bab0 b080 942c 942f\n\n00:09:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab0 b9ba 3132 bab0 b080 942c 942f\n\n00:09:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab0 b9ba 31b3 bab0 b080 942c 942f\n\n00:09:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab0 b9ba 3134 bab0 b080 942c 942f\n\n00:09:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab0 b9ba 31b5 bab0 b080 942c 942f\n\n00:09:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab0 b9ba 31b6 bab0 b080 942c 942f\n\n00:09:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab0 b9ba 3137 bab0 b080 942c 942f\n\n00:09:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab0 b9ba 3138 bab0 b080 942c 942f\n\n00:09:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab0 b9ba 31b9 bab0 b080 942c 942f\n\n00:09:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab0 b9ba 32b0 bab0 b080 942c 942f\n\n00:09:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab0 b9ba 3231 bab0 b080 942c 942f\n\n00:09:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab0 b9ba 3232 bab0 b080 942c 942f\n\n00:09:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab0 b9ba 32b3 bab0 b080 942c 942f\n\n00:09:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab0 b9ba 3234 bab0 b080 942c 942f\n\n00:09:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab0 b9ba 32b5 bab0 b080 942c 942f\n\n00:09:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab0 b9ba 32b6 bab0 b080 942c 942f\n\n00:09:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab0 b9ba 3237 bab0 b080 942c 942f\n\n00:09:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab0 b9ba 3238 bab0 b080 942c 942f\n\n00:09:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab0 b9ba 32b9 bab0 b080 942c 942f\n\n00:09:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab0 b9ba b3b0 bab0 b080 942c 942f\n\n00:09:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab0 b9ba b331 bab0 b080 942c 942f\n\n00:09:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab0 b9ba b332 bab0 b080 942c 942f\n\n00:09:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab0 b9ba b3b3 bab0 b080 942c 942f\n\n00:09:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab0 b9ba b334 bab0 b080 942c 942f\n\n00:09:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab0 b9ba b3b5 bab0 b080 942c 942f\n\n00:09:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab0 b9ba b3b6 bab0 b080 942c 942f\n\n00:09:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab0 b9ba b337 bab0 b080 942c 942f\n\n00:09:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab0 b9ba b338 bab0 b080 942c 942f\n\n00:09:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab0 b9ba b3b9 bab0 b080 942c 942f\n\n00:09:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab0 b9ba 34b0 bab0 b080 942c 942f\n\n00:09:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab0 b9ba 3431 bab0 b080 942c 942f\n\n00:09:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab0 b9ba 3432 bab0 b080 942c 942f\n\n00:09:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab0 b9ba 34b3 bab0 b080 942c 942f\n\n00:09:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab0 b9ba 3434 bab0 b080 942c 942f\n\n00:09:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab0 b9ba 34b5 bab0 b080 942c 942f\n\n00:09:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab0 b9ba 34b6 bab0 b080 942c 942f\n\n00:09:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab0 b9ba 3437 bab0 b080 942c 942f\n\n00:09:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab0 b9ba 3438 bab0 b080 942c 942f\n\n00:09:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab0 b9ba 34b9 bab0 b080 942c 942f\n\n00:09:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab0 b9ba b5b0 bab0 b080 942c 942f\n\n00:09:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab0 b9ba b531 bab0 b080 942c 942f\n\n00:09:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab0 b9ba b532 bab0 b080 942c 942f\n\n00:09:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab0 b9ba b5b3 bab0 b080 942c 942f\n\n00:09:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab0 b9ba b534 bab0 b080 942c 942f\n\n00:09:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab0 b9ba b5b5 bab0 b080 942c 942f\n\n00:09:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab0 b9ba b5b6 bab0 b080 942c 942f\n\n00:09:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab0 b9ba b537 bab0 b080 942c 942f\n\n00:09:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab0 b9ba b538 bab0 b080 942c 942f\n\n00:09:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab0 b9ba b5b9 bab0 b080 942c 942f\n\n00:10:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba31 b0ba b0b0 bab0 b080 942c 942f\n\n00:10:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba31 b0ba b031 bab0 b080 942c 942f\n\n00:10:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba31 b0ba b032 bab0 b080 942c 942f\n\n00:10:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba31 b0ba b0b3 bab0 b080 942c 942f\n\n00:10:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba31 b0ba b034 bab0 b080 942c 942f\n\n00:10:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba31 b0ba b0b5 bab0 b080 942c 942f\n\n00:10:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba31 b0ba b0b6 bab0 b080 942c 942f\n\n00:10:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba31 b0ba b037 bab0 b080 942c 942f\n\n00:10:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba31 b0ba b038 bab0 b080 942c 942f\n\n00:10:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba31 b0ba b0b9 bab0 b080 942c 942f\n\n00:10:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba31 b0ba 31b0 bab0 b080 942c 942f\n\n00:10:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba31 b0ba 3131 bab0 b080 942c 942f\n\n00:10:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba31 b0ba 3132 bab0 b080 942c 942f\n\n00:10:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba31 b0ba 31b3 bab0 b080 942c 942f\n\n00:10:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba31 b0ba 3134 bab0 b080 942c 942f\n\n00:10:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba31 b0ba 31b5 bab0 b080 942c 942f\n\n00:10:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba31 b0ba 31b6 bab0 b080 942c 942f\n\n00:10:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba31 b0ba 3137 bab0 b080 942c 942f\n\n00:10:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba31 b0ba 3138 bab0 b080 942c 942f\n\n00:10:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba31 b0ba 31b9 bab0 b080 942c 942f\n\n00:10:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba31 b0ba 32b0 bab0 b080 942c 942f\n\n00:10:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba31 b0ba 3231 bab0 b080 942c 942f\n\n00:10:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba31 b0ba 3232 bab0 b080 942c 942f\n\n00:10:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba31 b0ba 32b3 bab0 b080 942c 942f\n\n00:10:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba31 b0ba 3234 bab0 b080 942c 942f\n\n00:10:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba31 b0ba 32b5 bab0 b080 942c 942f\n\n00:10:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba31 b0ba 32b6 bab0 b080 942c 942f\n\n00:10:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba31 b0ba 3237 bab0 b080 942c 942f\n\n00:10:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba31 b0ba 3238 bab0 b080 942c 942f\n\n00:10:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba31 b0ba 32b9 bab0 b080 942c 942f\n\n00:10:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba31 b0ba b3b0 bab0 b080 942c 942f\n\n00:10:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba31 b0ba b331 bab0 b080 942c 942f\n\n00:10:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba31 b0ba b332 bab0 b080 942c 942f\n\n00:10:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba31 b0ba b3b3 bab0 b080 942c 942f\n\n00:10:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba31 b0ba b334 bab0 b080 942c 942f\n\n00:10:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba31 b0ba b3b5 bab0 b080 942c 942f\n\n00:10:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba31 b0ba b3b6 bab0 b080 942c 942f\n\n00:10:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba31 b0ba b337 bab0 b080 942c 942f\n\n00:10:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba31 b0ba b338 bab0 b080 942c 942f\n\n00:10:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba31 b0ba b3b9 bab0 b080 942c 942f\n\n00:10:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba31 b0ba 34b0 bab0 b080 942c 942f\n\n00:10:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba31 b0ba 3431 bab0 b080 942c 942f\n\n00:10:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba31 b0ba 3432 bab0 b080 942c 942f\n\n00:10:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba31 b0ba 34b3 bab0 b080 942c 942f\n\n00:10:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba31 b0ba 3434 bab0 b080 942c 942f\n\n00:10:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba31 b0ba 34b5 bab0 b080 942c 942f\n\n00:10:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba31 b0ba 34b6 bab0 b080 942c 942f\n\n00:10:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba31 b0ba 3437 bab0 b080 942c 942f\n\n00:10:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba31 b0ba 3438 bab0 b080 942c 942f\n\n00:10:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba31 b0ba 34b9 bab0 b080 942c 942f\n\n00:10:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba31 b0ba b5b0 bab0 b080 942c 942f\n\n00:10:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba31 b0ba b531 bab0 b080 942c 942f\n\n00:10:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba31 b0ba b532 bab0 b080 942c 942f\n\n00:10:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba31 b0ba b5b3 bab0 b080 942c 942f\n\n00:10:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba31 b0ba b534 bab0 b080 942c 942f\n\n00:10:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba31 b0ba b5b5 bab0 b080 942c 942f\n\n00:10:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba31 b0ba b5b6 bab0 b080 942c 942f\n\n00:10:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba31 b0ba b537 bab0 b080 942c 942f\n\n00:10:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba31 b0ba b538 bab0 b080 942c 942f\n\n00:10:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba31 b0ba b5b9 bab0 b080 942c 942f\n\n00:11:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba31 31ba b0b0 bab0 b080 942c 942f\n\n00:11:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba31 31ba b031 bab0 b080 942c 942f\n\n00:11:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba31 31ba b032 bab0 b080 942c 942f\n\n00:11:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba31 31ba b0b3 bab0 b080 942c 942f\n\n00:11:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba31 31ba b034 bab0 b080 942c 942f\n\n00:11:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba31 31ba b0b5 bab0 b080 942c 942f\n\n00:11:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba31 31ba b0b6 bab0 b080 942c 942f\n\n00:11:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba31 31ba b037 bab0 b080 942c 942f\n\n00:11:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba31 31ba b038 bab0 b080 942c 942f\n\n00:11:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba31 31ba b0b9 bab0 b080 942c 942f\n\n00:11:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba31 31ba 31b0 bab0 b080 942c 942f\n\n00:11:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba31 31ba 3131 bab0 b080 942c 942f\n\n00:11:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba31 31ba 3132 bab0 b080 942c 942f\n\n00:11:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba31 31ba 31b3 bab0 b080 942c 942f\n\n00:11:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba31 31ba 3134 bab0 b080 942c 942f\n\n00:11:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba31 31ba 31b5 bab0 b080 942c 942f\n\n00:11:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba31 31ba 31b6 bab0 b080 942c 942f\n\n00:11:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba31 31ba 3137 bab0 b080 942c 942f\n\n00:11:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba31 31ba 3138 bab0 b080 942c 942f\n\n00:11:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba31 31ba 31b9 bab0 b080 942c 942f\n\n00:11:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba31 31ba 32b0 bab0 b080 942c 942f\n\n00:11:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba31 31ba 3231 bab0 b080 942c 942f\n\n00:11:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba31 31ba 3232 bab0 b080 942c 942f\n\n00:11:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba31 31ba 32b3 bab0 b080 942c 942f\n\n00:11:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba31 31ba 3234 bab0 b080 942c 942f\n\n00:11:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba31 31ba 32b5 bab0 b080 942c 942f\n\n00:11:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba31 31ba 32b6 bab0 b080 942c 942f\n\n00:11:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba31 31ba 3237 bab0 b080 942c 942f\n\n00:11:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba31 31ba 3238 bab0 b080 942c 942f\n\n00:11:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba31 31ba 32b9 bab0 b080 942c 942f\n\n00:11:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba31 31ba b3b0 bab0 b080 942c 942f\n\n00:11:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba31 31ba b331 bab0 b080 942c 942f\n\n00:11:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba31 31ba b332 bab0 b080 942c 942f\n\n00:11:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba31 31ba b3b3 bab0 b080 942c 942f\n\n00:11:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba31 31ba b334 bab0 b080 942c 942f\n\n00:11:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba31 31ba b3b5 bab0 b080 942c 942f\n\n00:11:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba31 31ba b3b6 bab0 b080 942c 942f\n\n00:11:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba31 31ba b337 bab0 b080 942c 942f\n\n00:11:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba31 31ba b338 bab0 b080 942c 942f\n\n00:11:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba31 31ba b3b9 bab0 b080 942c 942f\n\n00:11:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba31 31ba 34b0 bab0 b080 942c 942f\n\n00:11:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba31 31ba 3431 bab0 b080 942c 942f\n\n00:11:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba31 31ba 3432 bab0 b080 942c 942f\n\n00:11:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba31 31ba 34b3 bab0 b080 942c 942f\n\n00:11:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba31 31ba 3434 bab0 b080 942c 942f\n\n00:11:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba31 31ba 34b5 bab0 b080 942c 942f\n\n00:11:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba31 31ba 34b6 bab0 b080 942c 942f\n\n00:11:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba31 31ba 3437 bab0 b080 942c 942f\n\n00:11:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba31 31ba 3438 bab0 b080 942c 942f\n\n00:11:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba31 31ba 34b9 bab0 b080 942c 942f\n\n00:11:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba31 31ba b5b0 bab0 b080 942c 942f\n\n00:11:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba31 31ba b531 bab0 b080 942c 942f\n\n00:11:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba31 31ba b532 bab0 b080 942c 942f\n\n00:11:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba31 31ba b5b3 bab0 b080 942c 942f\n\n00:11:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba31 31ba b534 bab0 b080 942c 942f\n\n00:11:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba31 31ba b5b5 bab0 b080 942c 942f\n\n00:11:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba31 31ba b5b6 bab0 b080 942c 942f\n\n00:11:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba31 31ba b537 bab0 b080 942c 942f\n\n00:11:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba31 31ba b538 bab0 b080 942c 942f\n\n00:11:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba31 31ba b5b9 bab0 b080 942c 942f\n\n00:12:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba31 32ba b0b0 bab0 b080 942c 942f\n\n00:12:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba31 32ba b031 bab0 b080 942c 942f\n\n00:12:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba31 32ba b032 bab0 b080 942c 942f\n\n00:12:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba31 32ba b0b3 bab0 b080 942c 942f\n\n00:12:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba31 32ba b034 bab0 b080 942c 942f\n\n00:12:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba31 32ba b0b5 bab0 b080 942c 942f\n\n00:12:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba31 32ba b0b6 bab0 b080 942c 942f\n\n00:12:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba31 32ba b037 bab0 b080 942c 942f\n\n00:12:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba31 32ba b038 bab0 b080 942c 942f\n\n00:12:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba31 32ba b0b9 bab0 b080 942c 942f\n\n00:12:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba31 32ba 31b0 bab0 b080 942c 942f\n\n00:12:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba31 32ba 3131 bab0 b080 942c 942f\n\n00:12:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba31 32ba 3132 bab0 b080 942c 942f\n\n00:12:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba31 32ba 31b3 bab0 b080 942c 942f\n\n00:12:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba31 32ba 3134 bab0 b080 942c 942f\n\n00:12:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba31 32ba 31b5 bab0 b080 942c 942f\n\n00:12:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba31 32ba 31b6 bab0 b080 942c 942f\n\n00:12:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba31 32ba 3137 bab0 b080 942c 942f\n\n00:12:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba31 32ba 3138 bab0 b080 942c 942f\n\n00:12:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba31 32ba 31b9 bab0 b080 942c 942f\n\n00:12:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba31 32ba 32b0 bab0 b080 942c 942f\n\n00:12:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba31 32ba 3231 bab0 b080 942c 942f\n\n00:12:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba31 32ba 3232 bab0 b080 942c 942f\n\n00:12:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba31 32ba 32b3 bab0 b080 942c 942f\n\n00:12:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba31 32ba 3234 bab0 b080 942c 942f\n\n00:12:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba31 32ba 32b5 bab0 b080 942c 942f\n\n00:12:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba31 32ba 32b6 bab0 b080 942c 942f\n\n00:12:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba31 32ba 3237 bab0 b080 942c 942f\n\n00:12:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba31 32ba 3238 bab0 b080 942c 942f\n\n00:12:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba31 32ba 32b9 bab0 b080 942c 942f\n\n00:12:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba31 32ba b3b0 bab0 b080 942c 942f\n\n00:12:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba31 32ba b331 bab0 b080 942c 942f\n\n00:12:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba31 32ba b332 bab0 b080 942c 942f\n\n00:12:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba31 32ba b3b3 bab0 b080 942c 942f\n\n00:12:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba31 32ba b334 bab0 b080 942c 942f\n\n00:12:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba31 32ba b3b5 bab0 b080 942c 942f\n\n00:12:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba31 32ba b3b6 bab0 b080 942c 942f\n\n00:12:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba31 32ba b337 bab0 b080 942c 942f\n\n00:12:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba31 32ba b338 bab0 b080 942c 942f\n\n00:12:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba31 32ba b3b9 bab0 b080 942c 942f\n\n00:12:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba31 32ba 34b0 bab0 b080 942c 942f\n\n00:12:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba31 32ba 3431 bab0 b080 942c 942f\n\n00:12:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba31 32ba 3432 bab0 b080 942c 942f\n\n00:12:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba31 32ba 34b3 bab0 b080 942c 942f\n\n00:12:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba31 32ba 3434 bab0 b080 942c 942f\n\n00:12:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba31 32ba 34b5 bab0 b080 942c 942f\n\n00:12:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba31 32ba 34b6 bab0 b080 942c 942f\n\n00:12:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba31 32ba 3437 bab0 b080 942c 942f\n\n00:12:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba31 32ba 3438 bab0 b080 942c 942f\n\n00:12:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba31 32ba 34b9 bab0 b080 942c 942f\n\n00:12:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba31 32ba b5b0 bab0 b080 942c 942f\n\n00:12:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba31 32ba b531 bab0 b080 942c 942f\n\n00:12:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba31 32ba b532 bab0 b080 942c 942f\n\n00:12:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba31 32ba b5b3 bab0 b080 942c 942f\n\n00:12:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba31 32ba b534 bab0 b080 942c 942f\n\n00:12:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba31 32ba b5b5 bab0 b080 942c 942f\n\n00:12:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba31 32ba b5b6 bab0 b080 942c 942f\n\n00:12:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba31 32ba b537 bab0 b080 942c 942f\n\n00:12:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba31 32ba b538 bab0 b080 942c 942f\n\n00:12:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba31 32ba b5b9 bab0 b080 942c 942f\n\n00:13:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba31 b3ba b0b0 bab0 b080 942c 942f\n\n00:13:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba31 b3ba b031 bab0 b080 942c 942f\n\n00:13:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba31 b3ba b032 bab0 b080 942c 942f\n\n00:13:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba31 b3ba b0b3 bab0 b080 942c 942f\n\n00:13:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba31 b3ba b034 bab0 b080 942c 942f\n\n00:13:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba31 b3ba b0b5 bab0 b080 942c 942f\n\n00:13:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba31 b3ba b0b6 bab0 b080 942c 942f\n\n00:13:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba31 b3ba b037 bab0 b080 942c 942f\n\n00:13:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba31 b3ba b038 bab0 b080 942c 942f\n\n00:13:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba31 b3ba b0b9 bab0 b080 942c 942f\n\n00:13:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba31 b3ba 31b0 bab0 b080 942c 942f\n\n00:13:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba31 b3ba 3131 bab0 b080 942c 942f\n\n00:13:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba31 b3ba 3132 bab0 b080 942c 942f\n\n00:13:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba31 b3ba 31b3 bab0 b080 942c 942f\n\n00:13:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba31 b3ba 3134 bab0 b080 942c 942f\n\n00:13:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba31 b3ba 31b5 bab0 b080 942c 942f\n\n00:13:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba31 b3ba 31b6 bab0 b080 942c 942f\n\n00:13:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba31 b3ba 3137 bab0 b080 942c 942f\n\n00:13:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba31 b3ba 3138 bab0 b080 942c 942f\n\n00:13:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba31 b3ba 31b9 bab0 b080 942c 942f\n\n00:13:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba31 b3ba 32b0 bab0 b080 942c 942f\n\n00:13:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba31 b3ba 3231 bab0 b080 942c 942f\n\n00:13:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba31 b3ba 3232 bab0 b080 942c 942f\n\n00:13:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba31 b3ba 32b3 bab0 b080 942c 942f\n\n00:13:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba31 b3ba 3234 bab0 b080 942c 942f\n\n00:13:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba31 b3ba 32b5 bab0 b080 942c 942f\n\n00:13:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba31 b3ba 32b6 bab0 b080 942c 942f\n\n00:13:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba31 b3ba 3237 bab0 b080 942c 942f\n\n00:13:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba31 b3ba 3238 bab0 b080 942c 942f\n\n00:13:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba31 b3ba 32b9 bab0 b080 942c 942f\n\n00:13:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba31 b3ba b3b0 bab0 b080 942c 942f\n\n00:13:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba31 b3ba b331 bab0 b080 942c 942f\n\n00:13:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba31 b3ba b332 bab0 b080 942c 942f\n\n00:13:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba31 b3ba b3b3 bab0 b080 942c 942f\n\n00:13:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba31 b3ba b334 bab0 b080 942c 942f\n\n00:13:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba31 b3ba b3b5 bab0 b080 942c 942f\n\n00:13:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba31 b3ba b3b6 bab0 b080 942c 942f\n\n00:13:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba31 b3ba b337 bab0 b080 942c 942f\n\n00:13:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba31 b3ba b338 bab0 b080 942c 942f\n\n00:13:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba31 b3ba b3b9 bab0 b080 942c 942f\n\n00:13:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba31 b3ba 34b0 bab0 b080 942c 942f\n\n00:13:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba31 b3ba 3431 bab0 b080 942c 942f\n\n00:13:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba31 b3ba 3432 bab0 b080 942c 942f\n\n00:13:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba31 b3ba 34b3 bab0 b080 942c 942f\n\n00:13:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba31 b3ba 3434 bab0 b080 942c 942f\n\n00:13:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba31 b3ba 34b5 bab0 b080 942c 942f\n\n00:13:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba31 b3ba 34b6 bab0 b080 942c 942f\n\n00:13:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba31 b3ba 3437 bab0 b080 942c 942f\n\n00:13:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba31 b3ba 3438 bab0 b080 942c 942f\n\n00:13:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba31 b3ba 34b9 bab0 b080 942c 942f\n\n00:13:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba31 b3ba b5b0 bab0 b080 942c 942f\n\n00:13:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba31 b3ba b531 bab0 b080 942c 942f\n\n00:13:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba31 b3ba b532 bab0 b080 942c 942f\n\n00:13:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba31 b3ba b5b3 bab0 b080 942c 942f\n\n00:13:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba31 b3ba b534 bab0 b080 942c 942f\n\n00:13:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba31 b3ba b5b5 bab0 b080 942c 942f\n\n00:13:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba31 b3ba b5b6 bab0 b080 942c 942f\n\n00:13:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba31 b3ba b537 bab0 b080 942c 942f\n\n00:13:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba31 b3ba b538 bab0 b080 942c 942f\n\n00:13:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba31 b3ba b5b9 bab0 b080 942c 942f\n\n00:14:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba31 34ba b0b0 bab0 b080 942c 942f\n\n00:14:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba31 34ba b031 bab0 b080 942c 942f\n\n00:14:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba31 34ba b032 bab0 b080 942c 942f\n\n00:14:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba31 34ba b0b3 bab0 b080 942c 942f\n\n00:14:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba31 34ba b034 bab0 b080 942c 942f\n\n00:14:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba31 34ba b0b5 bab0 b080 942c 942f\n\n00:14:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba31 34ba b0b6 bab0 b080 942c 942f\n\n00:14:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba31 34ba b037 bab0 b080 942c 942f\n\n00:14:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba31 34ba b038 bab0 b080 942c 942f\n\n00:14:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba31 34ba b0b9 bab0 b080 942c 942f\n\n00:14:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba31 34ba 31b0 bab0 b080 942c 942f\n\n00:14:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba31 34ba 3131 bab0 b080 942c 942f\n\n00:14:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba31 34ba 3132 bab0 b080 942c 942f\n\n00:14:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba31 34ba 31b3 bab0 b080 942c 942f\n\n00:14:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba31 34ba 3134 bab0 b080 942c 942f\n\n00:14:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba31 34ba 31b5 bab0 b080 942c 942f\n\n00:14:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba31 34ba 31b6 bab0 b080 942c 942f\n\n00:14:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba31 34ba 3137 bab0 b080 942c 942f\n\n00:14:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba31 34ba 3138 bab0 b080 942c 942f\n\n00:14:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba31 34ba 31b9 bab0 b080 942c 942f\n\n00:14:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba31 34ba 32b0 bab0 b080 942c 942f\n\n00:14:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba31 34ba 3231 bab0 b080 942c 942f\n\n00:14:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba31 34ba 3232 bab0 b080 942c 942f\n\n00:14:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba31 34ba 32b3 bab0 b080 942c 942f\n\n00:14:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba31 34ba 3234 bab0 b080 942c 942f\n\n00:14:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba31 34ba 32b5 bab0 b080 942c 942f\n\n00:14:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba31 34ba 32b6 bab0 b080 942c 942f\n\n00:14:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba31 34ba 3237 bab0 b080 942c 942f\n\n00:14:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba31 34ba 3238 bab0 b080 942c 942f\n\n00:14:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba31 34ba 32b9 bab0 b080 942c 942f\n\n00:14:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba31 34ba b3b0 bab0 b080 942c 942f\n\n00:14:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba31 34ba b331 bab0 b080 942c 942f\n\n00:14:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba31 34ba b332 bab0 b080 942c 942f\n\n00:14:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba31 34ba b3b3 bab0 b080 942c 942f\n\n00:14:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba31 34ba b334 bab0 b080 942c 942f\n\n00:14:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba31 34ba b3b5 bab0 b080 942c 942f\n\n00:14:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba31 34ba b3b6 bab0 b080 942c 942f\n\n00:14:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba31 34ba b337 bab0 b080 942c 942f\n\n00:14:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba31 34ba b338 bab0 b080 942c 942f\n\n00:14:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba31 34ba b3b9 bab0 b080 942c 942f\n\n00:14:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba31 34ba 34b0 bab0 b080 942c 942f\n\n00:14:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba31 34ba 3431 bab0 b080 942c 942f\n\n00:14:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba31 34ba 3432 bab0 b080 942c 942f\n\n00:14:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba31 34ba 34b3 bab0 b080 942c 942f\n\n00:14:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba31 34ba 3434 bab0 b080 942c 942f\n\n00:14:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba31 34ba 34b5 bab0 b080 942c 942f\n\n00:14:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba31 34ba 34b6 bab0 b080 942c 942f\n\n00:14:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba31 34ba 3437 bab0 b080 942c 942f\n\n00:14:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba31 34ba 3438 bab0 b080 942c 942f\n\n00:14:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba31 34ba 34b9 bab0 b080 942c 942f\n\n00:14:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba31 34ba b5b0 bab0 b080 942c 942f\n\n00:14:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba31 34ba b531 bab0 b080 942c 942f\n\n00:14:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba31 34ba b532 bab0 b080 942c 942f\n\n00:14:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba31 34ba b5b3 bab0 b080 942c 942f\n\n00:14:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba31 34ba b534 bab0 b080 942c 942f\n\n00:14:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba31 34ba b5b5 bab0 b080 942c 942f\n\n00:14:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba31 34ba b5b6 bab0 b080 942c 942f\n\n00:14:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba31 34ba b537 bab0 b080 942c 942f\n\n00:14:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba31 34ba b538 bab0 b080 942c 942f\n\n00:14:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba31 34ba b5b9 bab0 b080 942c 942f\n\n00:15:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba31 b5ba b0b0 bab0 b080 942c 942f\n\n00:15:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba31 b5ba b031 bab0 b080 942c 942f\n\n00:15:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba31 b5ba b032 bab0 b080 942c 942f\n\n00:15:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba31 b5ba b0b3 bab0 b080 942c 942f\n\n00:15:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba31 b5ba b034 bab0 b080 942c 942f\n\n00:15:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba31 b5ba b0b5 bab0 b080 942c 942f\n\n00:15:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba31 b5ba b0b6 bab0 b080 942c 942f\n\n00:15:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba31 b5ba b037 bab0 b080 942c 942f\n\n00:15:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba31 b5ba b038 bab0 b080 942c 942f\n\n00:15:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba31 b5ba b0b9 bab0 b080 942c 942f\n\n00:15:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba31 b5ba 31b0 bab0 b080 942c 942f\n\n00:15:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba31 b5ba 3131 bab0 b080 942c 942f\n\n00:15:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba31 b5ba 3132 bab0 b080 942c 942f\n\n00:15:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba31 b5ba 31b3 bab0 b080 942c 942f\n\n00:15:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba31 b5ba 3134 bab0 b080 942c 942f\n\n00:15:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba31 b5ba 31b5 bab0 b080 942c 942f\n\n00:15:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba31 b5ba 31b6 bab0 b080 942c 942f\n\n00:15:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba31 b5ba 3137 bab0 b080 942c 942f\n\n00:15:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba31 b5ba 3138 bab0 b080 942c 942f\n\n00:15:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba31 b5ba 31b9 bab0 b080 942c 942f\n\n00:15:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba31 b5ba 32b0 bab0 b080 942c 942f\n\n00:15:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba31 b5ba 3231 bab0 b080 942c 942f\n\n00:15:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba31 b5ba 3232 bab0 b080 942c 942f\n\n00:15:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba31 b5ba 32b3 bab0 b080 942c 942f\n\n00:15:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba31 b5ba 3234 bab0 b080 942c 942f\n\n00:15:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba31 b5ba 32b5 bab0 b080 942c 942f\n\n00:15:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba31 b5ba 32b6 bab0 b080 942c 942f\n\n00:15:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba31 b5ba 3237 bab0 b080 942c 942f\n\n00:15:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba31 b5ba 3238 bab0 b080 942c 942f\n\n00:15:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba31 b5ba 32b9 bab0 b080 942c 942f\n\n00:15:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba31 b5ba b3b0 bab0 b080 942c 942f\n\n00:15:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba31 b5ba b331 bab0 b080 942c 942f\n\n00:15:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba31 b5ba b332 bab0 b080 942c 942f\n\n00:15:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba31 b5ba b3b3 bab0 b080 942c 942f\n\n00:15:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba31 b5ba b334 bab0 b080 942c 942f\n\n00:15:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba31 b5ba b3b5 bab0 b080 942c 942f\n\n00:15:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba31 b5ba b3b6 bab0 b080 942c 942f\n\n00:15:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba31 b5ba b337 bab0 b080 942c 942f\n\n00:15:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba31 b5ba b338 bab0 b080 942c 942f\n\n00:15:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba31 b5ba b3b9 bab0 b080 942c 942f\n\n00:15:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba31 b5ba 34b0 bab0 b080 942c 942f\n\n00:15:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba31 b5ba 3431 bab0 b080 942c 942f\n\n00:15:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba31 b5ba 3432 bab0 b080 942c 942f\n\n00:15:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba31 b5ba 34b3 bab0 b080 942c 942f\n\n00:15:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba31 b5ba 3434 bab0 b080 942c 942f\n\n00:15:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba31 b5ba 34b5 bab0 b080 942c 942f\n\n00:15:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba31 b5ba 34b6 bab0 b080 942c 942f\n\n00:15:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba31 b5ba 3437 bab0 b080 942c 942f\n\n00:15:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba31 b5ba 3438 bab0 b080 942c 942f\n\n00:15:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba31 b5ba 34b9 bab0 b080 942c 942f\n\n00:15:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba31 b5ba b5b0 bab0 b080 942c 942f\n\n00:15:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba31 b5ba b531 bab0 b080 942c 942f\n\n00:15:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba31 b5ba b532 bab0 b080 942c 942f\n\n00:15:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba31 b5ba b5b3 bab0 b080 942c 942f\n\n00:15:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba31 b5ba b534 bab0 b080 942c 942f\n\n00:15:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba31 b5ba b5b5 bab0 b080 942c 942f\n\n00:15:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba31 b5ba b5b6 bab0 b080 942c 942f\n\n00:15:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba31 b5ba b537 bab0 b080 942c 942f\n\n00:15:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba31 b5ba b538 bab0 b080 942c 942f\n\n00:15:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba31 b5ba b5b9 bab0 b080 942c 942f\n\n00:16:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba31 b6ba b0b0 bab0 b080 942c 942f\n\n00:16:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba31 b6ba b031 bab0 b080 942c 942f\n\n00:16:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba31 b6ba b032 bab0 b080 942c 942f\n\n00:16:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba31 b6ba b0b3 bab0 b080 942c 942f\n\n00:16:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba31 b6ba b034 bab0 b080 942c 942f\n\n00:16:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba31 b6ba b0b5 bab0 b080 942c 942f\n\n00:16:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba31 b6ba b0b6 bab0 b080 942c 942f\n\n00:16:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba31 b6ba b037 bab0 b080 942c 942f\n\n00:16:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba31 b6ba b038 bab0 b080 942c 942f\n\n00:16:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba31 b6ba b0b9 bab0 b080 942c 942f\n\n00:16:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba31 b6ba 31b0 bab0 b080 942c 942f\n\n00:16:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba31 b6ba 3131 bab0 b080 942c 942f\n\n00:16:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba31 b6ba 3132 bab0 b080 942c 942f\n\n00:16:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba31 b6ba 31b3 bab0 b080 942c 942f\n\n00:16:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba31 b6ba 3134 bab0 b080 942c 942f\n\n00:16:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba31 b6ba 31b5 bab0 b080 942c 942f\n\n00:16:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba31 b6ba 31b6 bab0 b080 942c 942f\n\n00:16:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba31 b6ba 3137 bab0 b080 942c 942f\n\n00:16:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba31 b6ba 3138 bab0 b080 942c 942f\n\n00:16:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba31 b6ba 31b9 bab0 b080 942c 942f\n\n00:16:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba31 b6ba 32b0 bab0 b080 942c 942f\n\n00:16:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba31 b6ba 3231 bab0 b080 942c 942f\n\n00:16:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba31 b6ba 3232 bab0 b080 942c 942f\n\n00:16:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba31 b6ba 32b3 bab0 b080 942c 942f\n\n00:16:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba31 b6ba 3234 bab0 b080 942c 942f\n\n00:16:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba31 b6ba 32b5 bab0 b080 942c 942f\n\n00:16:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba31 b6ba 32b6 bab0 b080 942c 942f\n\n00:16:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba31 b6ba 3237 bab0 b080 942c 942f\n\n00:16:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba31 b6ba 3238 bab0 b080 942c 942f\n\n00:16:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba31 b6ba 32b9 bab0 b080 942c 942f\n\n00:16:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba31 b6ba b3b0 bab0 b080 942c 942f\n\n00:16:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba31 b6ba b331 bab0 b080 942c 942f\n\n00:16:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba31 b6ba b332 bab0 b080 942c 942f\n\n00:16:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba31 b6ba b3b3 bab0 b080 942c 942f\n\n00:16:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba31 b6ba b334 bab0 b080 942c 942f\n\n00:16:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba31 b6ba b3b5 bab0 b080 942c 942f\n\n00:16:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba31 b6ba b3b6 bab0 b080 942c 942f\n\n00:16:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba31 b6ba b337 bab0 b080 942c 942f\n\n00:16:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba31 b6ba b338 bab0 b080 942c 942f\n\n00:16:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba31 b6ba b3b9 bab0 b080 942c 942f\n\n00:16:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba31 b6ba 34b0 bab0 b080 942c 942f\n\n00:16:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba31 b6ba 3431 bab0 b080 942c 942f\n\n00:16:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba31 b6ba 3432 bab0 b080 942c 942f\n\n00:16:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba31 b6ba 34b3 bab0 b080 942c 942f\n\n00:16:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba31 b6ba 3434 bab0 b080 942c 942f\n\n00:16:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba31 b6ba 34b5 bab0 b080 942c 942f\n\n00:16:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba31 b6ba 34b6 bab0 b080 942c 942f\n\n00:16:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba31 b6ba 3437 bab0 b080 942c 942f\n\n00:16:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba31 b6ba 3438 bab0 b080 942c 942f\n\n00:16:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba31 b6ba 34b9 bab0 b080 942c 942f\n\n00:16:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba31 b6ba b5b0 bab0 b080 942c 942f\n\n00:16:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba31 b6ba b531 bab0 b080 942c 942f\n\n00:16:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba31 b6ba b532 bab0 b080 942c 942f\n\n00:16:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba31 b6ba b5b3 bab0 b080 942c 942f\n\n00:16:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba31 b6ba b534 bab0 b080 942c 942f\n\n00:16:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba31 b6ba b5b5 bab0 b080 942c 942f\n\n00:16:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba31 b6ba b5b6 bab0 b080 942c 942f\n\n00:16:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba31 b6ba b537 bab0 b080 942c 942f\n\n00:16:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba31 b6ba b538 bab0 b080 942c 942f\n\n00:16:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba31 b6ba b5b9 bab0 b080 942c 942f\n\n00:17:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba31 37ba b0b0 bab0 b080 942c 942f\n\n00:17:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba31 37ba b031 bab0 b080 942c 942f\n\n00:17:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba31 37ba b032 bab0 b080 942c 942f\n\n00:17:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba31 37ba b0b3 bab0 b080 942c 942f\n\n00:17:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba31 37ba b034 bab0 b080 942c 942f\n\n00:17:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba31 37ba b0b5 bab0 b080 942c 942f\n\n00:17:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba31 37ba b0b6 bab0 b080 942c 942f\n\n00:17:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba31 37ba b037 bab0 b080 942c 942f\n\n00:17:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba31 37ba b038 bab0 b080 942c 942f\n\n00:17:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba31 37ba b0b9 bab0 b080 942c 942f\n\n00:17:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba31 37ba 31b0 bab0 b080 942c 942f\n\n00:17:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba31 37ba 3131 bab0 b080 942c 942f\n\n00:17:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba31 37ba 3132 bab0 b080 942c 942f\n\n00:17:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba31 37ba 31b3 bab0 b080 942c 942f\n\n00:17:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba31 37ba 3134 bab0 b080 942c 942f\n\n00:17:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba31 37ba 31b5 bab0 b080 942c 942f\n\n00:17:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba31 37ba 31b6 bab0 b080 942c 942f\n\n00:17:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba31 37ba 3137 bab0 b080 942c 942f\n\n00:17:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba31 37ba 3138 bab0 b080 942c 942f\n\n00:17:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba31 37ba 31b9 bab0 b080 942c 942f\n\n00:17:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba31 37ba 32b0 bab0 b080 942c 942f\n\n00:17:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba31 37ba 3231 bab0 b080 942c 942f\n\n00:17:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba31 37ba 3232 bab0 b080 942c 942f\n\n00:17:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba31 37ba 32b3 bab0 b080 942c 942f\n\n00:17:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba31 37ba 3234 bab0 b080 942c 942f\n\n00:17:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba31 37ba 32b5 bab0 b080 942c 942f\n\n00:17:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba31 37ba 32b6 bab0 b080 942c 942f\n\n00:17:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba31 37ba 3237 bab0 b080 942c 942f\n\n00:17:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba31 37ba 3238 bab0 b080 942c 942f\n\n00:17:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba31 37ba 32b9 bab0 b080 942c 942f\n\n00:17:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba31 37ba b3b0 bab0 b080 942c 942f\n\n00:17:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba31 37ba b331 bab0 b080 942c 942f\n\n00:17:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba31 37ba b332 bab0 b080 942c 942f\n\n00:17:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba31 37ba b3b3 bab0 b080 942c 942f\n\n00:17:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba31 37ba b334 bab0 b080 942c 942f\n\n00:17:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba31 37ba b3b5 bab0 b080 942c 942f\n\n00:17:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba31 37ba b3b6 bab0 b080 942c 942f\n\n00:17:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba31 37ba b337 bab0 b080 942c 942f\n\n00:17:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba31 37ba b338 bab0 b080 942c 942f\n\n00:17:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba31 37ba b3b9 bab0 b080 942c 942f\n\n00:17:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba31 37ba 34b0 bab0 b080 942c 942f\n\n00:17:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba31 37ba 3431 bab0 b080 942c 942f\n\n00:17:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba31 37ba 3432 bab0 b080 942c 942f\n\n00:17:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba31 37ba 34b3 bab0 b080 942c 942f\n\n00:17:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba31 37ba 3434 bab0 b080 942c 942f\n\n00:17:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba31 37ba 34b5 bab0 b080 942c 942f\n\n00:17:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba31 37ba 34b6 bab0 b080 942c 942f\n\n00:17:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba31 37ba 3437 bab0 b080 942c 942f\n\n00:17:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba31 37ba 3438 bab0 b080 942c 942f\n\n00:17:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba31 37ba 34b9 bab0 b080 942c 942f\n\n00:17:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba31 37ba b5b0 bab0 b080 942c 942f\n\n00:17:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba31 37ba b531 bab0 b080 942c 942f\n\n00:17:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba31 37ba b532 bab0 b080 942c 942f\n\n00:17:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba31 37ba b5b3 bab0 b080 942c 942f\n\n00:17:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba31 37ba b534 bab0 b080 942c 942f\n\n00:17:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba31 37ba b5b5 bab0 b080 942c 942f\n\n00:17:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba31 37ba b5b6 bab0 b080 942c 942f\n\n00:17:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba31 37ba b537 bab0 b080 942c 942f\n\n00:17:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba31 37ba b538 bab0 b080 942c 942f\n\n00:17:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba31 37ba b5b9 bab0 b080 942c 942f\n\n00:18:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba31 38ba b0b0 bab0 b080 942c 942f\n\n00:18:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba31 38ba b031 bab0 b080 942c 942f\n\n00:18:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba31 38ba b032 bab0 b080 942c 942f\n\n00:18:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba31 38ba b0b3 bab0 b080 942c 942f\n\n00:18:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba31 38ba b034 bab0 b080 942c 942f\n\n00:18:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba31 38ba b0b5 bab0 b080 942c 942f\n\n00:18:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba31 38ba b0b6 bab0 b080 942c 942f\n\n00:18:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba31 38ba b037 bab0 b080 942c 942f\n\n00:18:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba31 38ba b038 bab0 b080 942c 942f\n\n00:18:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba31 38ba b0b9 bab0 b080 942c 942f\n\n00:18:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba31 38ba 31b0 bab0 b080 942c 942f\n\n00:18:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba31 38ba 3131 bab0 b080 942c 942f\n\n00:18:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba31 38ba 3132 bab0 b080 942c 942f\n\n00:18:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba31 38ba 31b3 bab0 b080 942c 942f\n\n00:18:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba31 38ba 3134 bab0 b080 942c 942f\n\n00:18:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba31 38ba 31b5 bab0 b080 942c 942f\n\n00:18:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba31 38ba 31b6 bab0 b080 942c 942f\n\n00:18:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba31 38ba 3137 bab0 b080 942c 942f\n\n00:18:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba31 38ba 3138 bab0 b080 942c 942f\n\n00:18:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba31 38ba 31b9 bab0 b080 942c 942f\n\n00:18:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba31 38ba 32b0 bab0 b080 942c 942f\n\n00:18:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba31 38ba 3231 bab0 b080 942c 942f\n\n00:18:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba31 38ba 3232 bab0 b080 942c 942f\n\n00:18:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba31 38ba 32b3 bab0 b080 942c 942f\n\n00:18:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba31 38ba 3234 bab0 b080 942c 942f\n\n00:18:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba31 38ba 32b5 bab0 b080 942c 942f\n\n00:18:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba31 38ba 32b6 bab0 b080 942c 942f\n\n00:18:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba31 38ba 3237 bab0 b080 942c 942f\n\n00:18:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba31 38ba 3238 bab0 b080 942c 942f\n\n00:18:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba31 38ba 32b9 bab0 b080 942c 942f\n\n00:18:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba31 38ba b3b0 bab0 b080 942c 942f\n\n00:18:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba31 38ba b331 bab0 b080 942c 942f\n\n00:18:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba31 38ba b332 bab0 b080 942c 942f\n\n00:18:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba31 38ba b3b3 bab0 b080 942c 942f\n\n00:18:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba31 38ba b334 bab0 b080 942c 942f\n\n00:18:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba31 38ba b3b5 bab0 b080 942c 942f\n\n00:18:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba31 38ba b3b6 bab0 b080 942c 942f\n\n00:18:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba31 38ba b337 bab0 b080 942c 942f\n\n00:18:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba31 38ba b338 bab0 b080 942c 942f\n\n00:18:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba31 38ba b3b9 bab0 b080 942c 942f\n\n00:18:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba31 38ba 34b0 bab0 b080 942c 942f\n\n00:18:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba31 38ba 3431 bab0 b080 942c 942f\n\n00:18:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba31 38ba 3432 bab0 b080 942c 942f\n\n00:18:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba31 38ba 34b3 bab0 b080 942c 942f\n\n00:18:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba31 38ba 3434 bab0 b080 942c 942f\n\n00:18:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba31 38ba 34b5 bab0 b080 942c 942f\n\n00:18:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba31 38ba 34b6 bab0 b080 942c 942f\n\n00:18:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba31 38ba 3437 bab0 b080 942c 942f\n\n00:18:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba31 38ba 3438 bab0 b080 942c 942f\n\n00:18:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba31 38ba 34b9 bab0 b080 942c 942f\n\n00:18:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba31 38ba b5b0 bab0 b080 942c 942f\n\n00:18:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba31 38ba b531 bab0 b080 942c 942f\n\n00:18:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba31 38ba b532 bab0 b080 942c 942f\n\n00:18:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba31 38ba b5b3 bab0 b080 942c 942f\n\n00:18:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba31 38ba b534 bab0 b080 942c 942f\n\n00:18:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba31 38ba b5b5 bab0 b080 942c 942f\n\n00:18:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba31 38ba b5b6 bab0 b080 942c 942f\n\n00:18:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba31 38ba b537 bab0 b080 942c 942f\n\n00:18:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba31 38ba b538 bab0 b080 942c 942f\n\n00:18:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba31 38ba b5b9 bab0 b080 942c 942f\n\n00:19:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba31 b9ba b0b0 bab0 b080 942c 942f\n\n00:19:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba31 b9ba b031 bab0 b080 942c 942f\n\n00:19:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba31 b9ba b032 bab0 b080 942c 942f\n\n00:19:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba31 b9ba b0b3 bab0 b080 942c 942f\n\n00:19:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba31 b9ba b034 bab0 b080 942c 942f\n\n00:19:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba31 b9ba b0b5 bab0 b080 942c 942f\n\n00:19:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba31 b9ba b0b6 bab0 b080 942c 942f\n\n00:19:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba31 b9ba b037 bab0 b080 942c 942f\n\n00:19:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba31 b9ba b038 bab0 b080 942c 942f\n\n00:19:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba31 b9ba b0b9 bab0 b080 942c 942f\n\n00:19:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba31 b9ba 31b0 bab0 b080 942c 942f\n\n00:19:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba31 b9ba 3131 bab0 b080 942c 942f\n\n00:19:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba31 b9ba 3132 bab0 b080 942c 942f\n\n00:19:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba31 b9ba 31b3 bab0 b080 942c 942f\n\n00:19:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba31 b9ba 3134 bab0 b080 942c 942f\n\n00:19:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba31 b9ba 31b5 bab0 b080 942c 942f\n\n00:19:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba31 b9ba 31b6 bab0 b080 942c 942f\n\n00:19:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba31 b9ba 3137 bab0 b080 942c 942f\n\n00:19:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba31 b9ba 3138 bab0 b080 942c 942f\n\n00:19:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba31 b9ba 31b9 bab0 b080 942c 942f\n\n00:19:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba31 b9ba 32b0 bab0 b080 942c 942f\n\n00:19:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba31 b9ba 3231 bab0 b080 942c 942f\n\n00:19:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba31 b9ba 3232 bab0 b080 942c 942f\n\n00:19:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba31 b9ba 32b3 bab0 b080 942c 942f\n\n00:19:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba31 b9ba 3234 bab0 b080 942c 942f\n\n00:19:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba31 b9ba 32b5 bab0 b080 942c 942f\n\n00:19:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba31 b9ba 32b6 bab0 b080 942c 942f\n\n00:19:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba31 b9ba 3237 bab0 b080 942c 942f\n\n00:19:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba31 b9ba 3238 bab0 b080 942c 942f\n\n00:19:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba31 b9ba 32b9 bab0 b080 942c 942f\n\n00:19:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba31 b9ba b3b0 bab0 b080 942c 942f\n\n00:19:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba31 b9ba b331 bab0 b080 942c 942f\n\n00:19:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba31 b9ba b332 bab0 b080 942c 942f\n\n00:19:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba31 b9ba b3b3 bab0 b080 942c 942f\n\n00:19:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba31 b9ba b334 bab0 b080 942c 942f\n\n00:19:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba31 b9ba b3b5 bab0 b080 942c 942f\n\n00:19:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba31 b9ba b3b6 bab0 b080 942c 942f\n\n00:19:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba31 b9ba b337 bab0 b080 942c 942f\n\n00:19:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba31 b9ba b338 bab0 b080 942c 942f\n\n00:19:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba31 b9ba b3b9 bab0 b080 942c 942f\n\n00:19:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba31 b9ba 34b0 bab0 b080 942c 942f\n\n00:19:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba31 b9ba 3431 bab0 b080 942c 942f\n\n00:19:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba31 b9ba 3432 bab0 b080 942c 942f\n\n00:19:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba31 b9ba 34b3 bab0 b080 942c 942f\n\n00:19:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba31 b9ba 3434 bab0 b080 942c 942f\n\n00:19:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba31 b9ba 34b5 bab0 b080 942c 942f\n\n00:19:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba31 b9ba 34b6 bab0 b080 942c 942f\n\n00:19:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba31 b9ba 3437 bab0 b080 942c 942f\n\n00:19:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba31 b9ba 3438 bab0 b080 942c 942f\n\n00:19:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba31 b9ba 34b9 bab0 b080 942c 942f\n\n00:19:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba31 b9ba b5b0 bab0 b080 942c 942f\n\n00:19:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba31 b9ba b531 bab0 b080 942c 942f\n\n00:19:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba31 b9ba b532 bab0 b080 942c 942f\n\n00:19:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba31 b9ba b5b3 bab0 b080 942c 942f\n\n00:19:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba31 b9ba b534 bab0 b080 942c 942f\n\n00:19:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba31 b9ba b5b5 bab0 b080 942c 942f\n\n00:19:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba31 b9ba b5b6 bab0 b080 942c 942f\n\n00:19:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba31 b9ba b537 bab0 b080 942c 942f\n\n00:19:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba31 b9ba b538 bab0 b080 942c 942f\n\n00:19:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba31 b9ba b5b9 bab0 b080 942c 942f\n\n00:20:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba32 b0ba b0b0 bab0 b080 942c 942f\n\n00:20:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba32 b0ba b031 bab0 b080 942c 942f\n\n00:20:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba32 b0ba b032 bab0 b080 942c 942f\n\n00:20:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba32 b0ba b0b3 bab0 b080 942c 942f\n\n00:20:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba32 b0ba b034 bab0 b080 942c 942f\n\n00:20:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba32 b0ba b0b5 bab0 b080 942c 942f\n\n00:20:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba32 b0ba b0b6 bab0 b080 942c 942f\n\n00:20:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba32 b0ba b037 bab0 b080 942c 942f\n\n00:20:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba32 b0ba b038 bab0 b080 942c 942f\n\n00:20:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba32 b0ba b0b9 bab0 b080 942c 942f\n\n00:20:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba32 b0ba 31b0 bab0 b080 942c 942f\n\n00:20:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba32 b0ba 3131 bab0 b080 942c 942f\n\n00:20:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba32 b0ba 3132 bab0 b080 942c 942f\n\n00:20:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba32 b0ba 31b3 bab0 b080 942c 942f\n\n00:20:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba32 b0ba 3134 bab0 b080 942c 942f\n\n00:20:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba32 b0ba 31b5 bab0 b080 942c 942f\n\n00:20:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba32 b0ba 31b6 bab0 b080 942c 942f\n\n00:20:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba32 b0ba 3137 bab0 b080 942c 942f\n\n00:20:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba32 b0ba 3138 bab0 b080 942c 942f\n\n00:20:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba32 b0ba 31b9 bab0 b080 942c 942f\n\n00:20:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba32 b0ba 32b0 bab0 b080 942c 942f\n\n00:20:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba32 b0ba 3231 bab0 b080 942c 942f\n\n00:20:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba32 b0ba 3232 bab0 b080 942c 942f\n\n00:20:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba32 b0ba 32b3 bab0 b080 942c 942f\n\n00:20:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba32 b0ba 3234 bab0 b080 942c 942f\n\n00:20:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba32 b0ba 32b5 bab0 b080 942c 942f\n\n00:20:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba32 b0ba 32b6 bab0 b080 942c 942f\n\n00:20:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba32 b0ba 3237 bab0 b080 942c 942f\n\n00:20:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba32 b0ba 3238 bab0 b080 942c 942f\n\n00:20:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba32 b0ba 32b9 bab0 b080 942c 942f\n\n00:20:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba32 b0ba b3b0 bab0 b080 942c 942f\n\n00:20:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba32 b0ba b331 bab0 b080 942c 942f\n\n00:20:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba32 b0ba b332 bab0 b080 942c 942f\n\n00:20:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba32 b0ba b3b3 bab0 b080 942c 942f\n\n00:20:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba32 b0ba b334 bab0 b080 942c 942f\n\n00:20:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba32 b0ba b3b5 bab0 b080 942c 942f\n\n00:20:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba32 b0ba b3b6 bab0 b080 942c 942f\n\n00:20:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba32 b0ba b337 bab0 b080 942c 942f\n\n00:20:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba32 b0ba b338 bab0 b080 942c 942f\n\n00:20:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba32 b0ba b3b9 bab0 b080 942c 942f\n\n00:20:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba32 b0ba 34b0 bab0 b080 942c 942f\n\n00:20:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba32 b0ba 3431 bab0 b080 942c 942f\n\n00:20:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba32 b0ba 3432 bab0 b080 942c 942f\n\n00:20:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba32 b0ba 34b3 bab0 b080 942c 942f\n\n00:20:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba32 b0ba 3434 bab0 b080 942c 942f\n\n00:20:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba32 b0ba 34b5 bab0 b080 942c 942f\n\n00:20:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba32 b0ba 34b6 bab0 b080 942c 942f\n\n00:20:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba32 b0ba 3437 bab0 b080 942c 942f\n\n00:20:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba32 b0ba 3438 bab0 b080 942c 942f\n\n00:20:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba32 b0ba 34b9 bab0 b080 942c 942f\n\n00:20:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba32 b0ba b5b0 bab0 b080 942c 942f\n\n00:20:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba32 b0ba b531 bab0 b080 942c 942f\n\n00:20:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba32 b0ba b532 bab0 b080 942c 942f\n\n00:20:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba32 b0ba b5b3 bab0 b080 942c 942f\n\n00:20:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba32 b0ba b534 bab0 b080 942c 942f\n\n00:20:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba32 b0ba b5b5 bab0 b080 942c 942f\n\n00:20:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba32 b0ba b5b6 bab0 b080 942c 942f\n\n00:20:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba32 b0ba b537 bab0 b080 942c 942f\n\n00:20:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba32 b0ba b538 bab0 b080 942c 942f\n\n00:20:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba32 b0ba b5b9 bab0 b080 942c 942f\n\n00:21:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba32 31ba b0b0 bab0 b080 942c 942f\n\n00:21:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba32 31ba b031 bab0 b080 942c 942f\n\n00:21:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba32 31ba b032 bab0 b080 942c 942f\n\n00:21:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba32 31ba b0b3 bab0 b080 942c 942f\n\n00:21:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba32 31ba b034 bab0 b080 942c 942f\n\n00:21:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba32 31ba b0b5 bab0 b080 942c 942f\n\n00:21:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba32 31ba b0b6 bab0 b080 942c 942f\n\n00:21:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba32 31ba b037 bab0 b080 942c 942f\n\n00:21:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba32 31ba b038 bab0 b080 942c 942f\n\n00:21:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba32 31ba b0b9 bab0 b080 942c 942f\n\n00:21:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba32 31ba 31b0 bab0 b080 942c 942f\n\n00:21:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba32 31ba 3131 bab0 b080 942c 942f\n\n00:21:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba32 31ba 3132 bab0 b080 942c 942f\n\n00:21:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba32 31ba 31b3 bab0 b080 942c 942f\n\n00:21:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba32 31ba 3134 bab0 b080 942c 942f\n\n00:21:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba32 31ba 31b5 bab0 b080 942c 942f\n\n00:21:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba32 31ba 31b6 bab0 b080 942c 942f\n\n00:21:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba32 31ba 3137 bab0 b080 942c 942f\n\n00:21:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba32 31ba 3138 bab0 b080 942c 942f\n\n00:21:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba32 31ba 31b9 bab0 b080 942c 942f\n\n00:21:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba32 31ba 32b0 bab0 b080 942c 942f\n\n00:21:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba32 31ba 3231 bab0 b080 942c 942f\n\n00:21:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba32 31ba 3232 bab0 b080 942c 942f\n\n00:21:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba32 31ba 32b3 bab0 b080 942c 942f\n\n00:21:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba32 31ba 3234 bab0 b080 942c 942f\n\n00:21:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba32 31ba 32b5 bab0 b080 942c 942f\n\n00:21:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba32 31ba 32b6 bab0 b080 942c 942f\n\n00:21:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba32 31ba 3237 bab0 b080 942c 942f\n\n00:21:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba32 31ba 3238 bab0 b080 942c 942f\n\n00:21:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba32 31ba 32b9 bab0 b080 942c 942f\n\n00:21:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba32 31ba b3b0 bab0 b080 942c 942f\n\n00:21:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba32 31ba b331 bab0 b080 942c 942f\n\n00:21:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba32 31ba b332 bab0 b080 942c 942f\n\n00:21:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba32 31ba b3b3 bab0 b080 942c 942f\n\n00:21:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba32 31ba b334 bab0 b080 942c 942f\n\n00:21:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba32 31ba b3b5 bab0 b080 942c 942f\n\n00:21:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba32 31ba b3b6 bab0 b080 942c 942f\n\n00:21:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba32 31ba b337 bab0 b080 942c 942f\n\n00:21:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba32 31ba b338 bab0 b080 942c 942f\n\n00:21:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba32 31ba b3b9 bab0 b080 942c 942f\n\n00:21:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba32 31ba 34b0 bab0 b080 942c 942f\n\n00:21:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba32 31ba 3431 bab0 b080 942c 942f\n\n00:21:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba32 31ba 3432 bab0 b080 942c 942f\n\n00:21:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba32 31ba 34b3 bab0 b080 942c 942f\n\n00:21:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba32 31ba 3434 bab0 b080 942c 942f\n\n00:21:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba32 31ba 34b5 bab0 b080 942c 942f\n\n00:21:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba32 31ba 34b6 bab0 b080 942c 942f\n\n00:21:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba32 31ba 3437 bab0 b080 942c 942f\n\n00:21:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba32 31ba 3438 bab0 b080 942c 942f\n\n00:21:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba32 31ba 34b9 bab0 b080 942c 942f\n\n00:21:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba32 31ba b5b0 bab0 b080 942c 942f\n\n00:21:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba32 31ba b531 bab0 b080 942c 942f\n\n00:21:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba32 31ba b532 bab0 b080 942c 942f\n\n00:21:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba32 31ba b5b3 bab0 b080 942c 942f\n\n00:21:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba32 31ba b534 bab0 b080 942c 942f\n\n00:21:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba32 31ba b5b5 bab0 b080 942c 942f\n\n00:21:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba32 31ba b5b6 bab0 b080 942c 942f\n\n00:21:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba32 31ba b537 bab0 b080 942c 942f\n\n00:21:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba32 31ba b538 bab0 b080 942c 942f\n\n00:21:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba32 31ba b5b9 bab0 b080 942c 942f\n\n00:22:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba32 32ba b0b0 bab0 b080 942c 942f\n\n00:22:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba32 32ba b031 bab0 b080 942c 942f\n\n00:22:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba32 32ba b032 bab0 b080 942c 942f\n\n00:22:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba32 32ba b0b3 bab0 b080 942c 942f\n\n00:22:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba32 32ba b034 bab0 b080 942c 942f\n\n00:22:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba32 32ba b0b5 bab0 b080 942c 942f\n\n00:22:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba32 32ba b0b6 bab0 b080 942c 942f\n\n00:22:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba32 32ba b037 bab0 b080 942c 942f\n\n00:22:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba32 32ba b038 bab0 b080 942c 942f\n\n00:22:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba32 32ba b0b9 bab0 b080 942c 942f\n\n00:22:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba32 32ba 31b0 bab0 b080 942c 942f\n\n00:22:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba32 32ba 3131 bab0 b080 942c 942f\n\n00:22:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba32 32ba 3132 bab0 b080 942c 942f\n\n00:22:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba32 32ba 31b3 bab0 b080 942c 942f\n\n00:22:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba32 32ba 3134 bab0 b080 942c 942f\n\n00:22:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba32 32ba 31b5 bab0 b080 942c 942f\n\n00:22:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba32 32ba 31b6 bab0 b080 942c 942f\n\n00:22:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba32 32ba 3137 bab0 b080 942c 942f\n\n00:22:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba32 32ba 3138 bab0 b080 942c 942f\n\n00:22:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba32 32ba 31b9 bab0 b080 942c 942f\n\n00:22:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba32 32ba 32b0 bab0 b080 942c 942f\n\n00:22:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba32 32ba 3231 bab0 b080 942c 942f\n\n00:22:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba32 32ba 3232 bab0 b080 942c 942f\n\n00:22:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba32 32ba 32b3 bab0 b080 942c 942f\n\n00:22:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba32 32ba 3234 bab0 b080 942c 942f\n\n00:22:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba32 32ba 32b5 bab0 b080 942c 942f\n\n00:22:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba32 32ba 32b6 bab0 b080 942c 942f\n\n00:22:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba32 32ba 3237 bab0 b080 942c 942f\n\n00:22:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba32 32ba 3238 bab0 b080 942c 942f\n\n00:22:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba32 32ba 32b9 bab0 b080 942c 942f\n\n00:22:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba32 32ba b3b0 bab0 b080 942c 942f\n\n00:22:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba32 32ba b331 bab0 b080 942c 942f\n\n00:22:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba32 32ba b332 bab0 b080 942c 942f\n\n00:22:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba32 32ba b3b3 bab0 b080 942c 942f\n\n00:22:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba32 32ba b334 bab0 b080 942c 942f\n\n00:22:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba32 32ba b3b5 bab0 b080 942c 942f\n\n00:22:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba32 32ba b3b6 bab0 b080 942c 942f\n\n00:22:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba32 32ba b337 bab0 b080 942c 942f\n\n00:22:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba32 32ba b338 bab0 b080 942c 942f\n\n00:22:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba32 32ba b3b9 bab0 b080 942c 942f\n\n00:22:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba32 32ba 34b0 bab0 b080 942c 942f\n\n00:22:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba32 32ba 3431 bab0 b080 942c 942f\n\n00:22:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba32 32ba 3432 bab0 b080 942c 942f\n\n00:22:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba32 32ba 34b3 bab0 b080 942c 942f\n\n00:22:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba32 32ba 3434 bab0 b080 942c 942f\n\n00:22:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba32 32ba 34b5 bab0 b080 942c 942f\n\n00:22:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba32 32ba 34b6 bab0 b080 942c 942f\n\n00:22:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba32 32ba 3437 bab0 b080 942c 942f\n\n00:22:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba32 32ba 3438 bab0 b080 942c 942f\n\n00:22:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba32 32ba 34b9 bab0 b080 942c 942f\n\n00:22:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba32 32ba b5b0 bab0 b080 942c 942f\n\n00:22:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba32 32ba b531 bab0 b080 942c 942f\n\n00:22:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba32 32ba b532 bab0 b080 942c 942f\n\n00:22:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba32 32ba b5b3 bab0 b080 942c 942f\n\n00:22:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba32 32ba b534 bab0 b080 942c 942f\n\n00:22:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba32 32ba b5b5 bab0 b080 942c 942f\n\n00:22:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba32 32ba b5b6 bab0 b080 942c 942f\n\n00:22:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba32 32ba b537 bab0 b080 942c 942f\n\n00:22:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba32 32ba b538 bab0 b080 942c 942f\n\n00:22:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba32 32ba b5b9 bab0 b080 942c 942f\n\n00:23:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba32 b3ba b0b0 bab0 b080 942c 942f\n\n00:23:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba32 b3ba b031 bab0 b080 942c 942f\n\n00:23:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba32 b3ba b032 bab0 b080 942c 942f\n\n00:23:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba32 b3ba b0b3 bab0 b080 942c 942f\n\n00:23:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba32 b3ba b034 bab0 b080 942c 942f\n\n00:23:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba32 b3ba b0b5 bab0 b080 942c 942f\n\n00:23:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba32 b3ba b0b6 bab0 b080 942c 942f\n\n00:23:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba32 b3ba b037 bab0 b080 942c 942f\n\n00:23:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba32 b3ba b038 bab0 b080 942c 942f\n\n00:23:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba32 b3ba b0b9 bab0 b080 942c 942f\n\n00:23:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba32 b3ba 31b0 bab0 b080 942c 942f\n\n00:23:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba32 b3ba 3131 bab0 b080 942c 942f\n\n00:23:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba32 b3ba 3132 bab0 b080 942c 942f\n\n00:23:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba32 b3ba 31b3 bab0 b080 942c 942f\n\n00:23:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba32 b3ba 3134 bab0 b080 942c 942f\n\n00:23:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba32 b3ba 31b5 bab0 b080 942c 942f\n\n00:23:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba32 b3ba 31b6 bab0 b080 942c 942f\n\n00:23:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba32 b3ba 3137 bab0 b080 942c 942f\n\n00:23:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba32 b3ba 3138 bab0 b080 942c 942f\n\n00:23:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba32 b3ba 31b9 bab0 b080 942c 942f\n\n00:23:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba32 b3ba 32b0 bab0 b080 942c 942f\n\n00:23:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba32 b3ba 3231 bab0 b080 942c 942f\n\n00:23:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba32 b3ba 3232 bab0 b080 942c 942f\n\n00:23:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba32 b3ba 32b3 bab0 b080 942c 942f\n\n00:23:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba32 b3ba 3234 bab0 b080 942c 942f\n\n00:23:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba32 b3ba 32b5 bab0 b080 942c 942f\n\n00:23:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba32 b3ba 32b6 bab0 b080 942c 942f\n\n00:23:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba32 b3ba 3237 bab0 b080 942c 942f\n\n00:23:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba32 b3ba 3238 bab0 b080 942c 942f\n\n00:23:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba32 b3ba 32b9 bab0 b080 942c 942f\n\n00:23:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba32 b3ba b3b0 bab0 b080 942c 942f\n\n00:23:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba32 b3ba b331 bab0 b080 942c 942f\n\n00:23:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba32 b3ba b332 bab0 b080 942c 942f\n\n00:23:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba32 b3ba b3b3 bab0 b080 942c 942f\n\n00:23:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba32 b3ba b334 bab0 b080 942c 942f\n\n00:23:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba32 b3ba b3b5 bab0 b080 942c 942f\n\n00:23:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba32 b3ba b3b6 bab0 b080 942c 942f\n\n00:23:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba32 b3ba b337 bab0 b080 942c 942f\n\n00:23:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba32 b3ba b338 bab0 b080 942c 942f\n\n00:23:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba32 b3ba b3b9 bab0 b080 942c 942f\n\n00:23:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba32 b3ba 34b0 bab0 b080 942c 942f\n\n00:23:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba32 b3ba 3431 bab0 b080 942c 942f\n\n00:23:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba32 b3ba 3432 bab0 b080 942c 942f\n\n00:23:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba32 b3ba 34b3 bab0 b080 942c 942f\n\n00:23:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba32 b3ba 3434 bab0 b080 942c 942f\n\n00:23:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba32 b3ba 34b5 bab0 b080 942c 942f\n\n00:23:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba32 b3ba 34b6 bab0 b080 942c 942f\n\n00:23:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba32 b3ba 3437 bab0 b080 942c 942f\n\n00:23:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba32 b3ba 3438 bab0 b080 942c 942f\n\n00:23:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba32 b3ba 34b9 bab0 b080 942c 942f\n\n00:23:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba32 b3ba b5b0 bab0 b080 942c 942f\n\n00:23:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba32 b3ba b531 bab0 b080 942c 942f\n\n00:23:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba32 b3ba b532 bab0 b080 942c 942f\n\n00:23:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba32 b3ba b5b3 bab0 b080 942c 942f\n\n00:23:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba32 b3ba b534 bab0 b080 942c 942f\n\n00:23:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba32 b3ba b5b5 bab0 b080 942c 942f\n\n00:23:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba32 b3ba b5b6 bab0 b080 942c 942f\n\n00:23:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba32 b3ba b537 bab0 b080 942c 942f\n\n00:23:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba32 b3ba b538 bab0 b080 942c 942f\n\n00:23:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba32 b3ba b5b9 bab0 b080 942c 942f\n\n00:24:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba32 34ba b0b0 bab0 b080 942c 942f\n\n00:24:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba32 34ba b031 bab0 b080 942c 942f\n\n00:24:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba32 34ba b032 bab0 b080 942c 942f\n\n00:24:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba32 34ba b0b3 bab0 b080 942c 942f\n\n00:24:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba32 34ba b034 bab0 b080 942c 942f\n\n00:24:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba32 34ba b0b5 bab0 b080 942c 942f\n\n00:24:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba32 34ba b0b6 bab0 b080 942c 942f\n\n00:24:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba32 34ba b037 bab0 b080 942c 942f\n\n00:24:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba32 34ba b038 bab0 b080 942c 942f\n\n00:24:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba32 34ba b0b9 bab0 b080 942c 942f\n\n00:24:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba32 34ba 31b0 bab0 b080 942c 942f\n\n00:24:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba32 34ba 3131 bab0 b080 942c 942f\n\n00:24:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba32 34ba 3132 bab0 b080 942c 942f\n\n00:24:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba32 34ba 31b3 bab0 b080 942c 942f\n\n00:24:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba32 34ba 3134 bab0 b080 942c 942f\n\n00:24:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba32 34ba 31b5 bab0 b080 942c 942f\n\n00:24:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba32 34ba 31b6 bab0 b080 942c 942f\n\n00:24:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba32 34ba 3137 bab0 b080 942c 942f\n\n00:24:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba32 34ba 3138 bab0 b080 942c 942f\n\n00:24:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba32 34ba 31b9 bab0 b080 942c 942f\n\n00:24:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba32 34ba 32b0 bab0 b080 942c 942f\n\n00:24:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba32 34ba 3231 bab0 b080 942c 942f\n\n00:24:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba32 34ba 3232 bab0 b080 942c 942f\n\n00:24:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba32 34ba 32b3 bab0 b080 942c 942f\n\n00:24:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba32 34ba 3234 bab0 b080 942c 942f\n\n00:24:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba32 34ba 32b5 bab0 b080 942c 942f\n\n00:24:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba32 34ba 32b6 bab0 b080 942c 942f\n\n00:24:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba32 34ba 3237 bab0 b080 942c 942f\n\n00:24:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba32 34ba 3238 bab0 b080 942c 942f\n\n00:24:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba32 34ba 32b9 bab0 b080 942c 942f\n\n00:24:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba32 34ba b3b0 bab0 b080 942c 942f\n\n00:24:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba32 34ba b331 bab0 b080 942c 942f\n\n00:24:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba32 34ba b332 bab0 b080 942c 942f\n\n00:24:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba32 34ba b3b3 bab0 b080 942c 942f\n\n00:24:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba32 34ba b334 bab0 b080 942c 942f\n\n00:24:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba32 34ba b3b5 bab0 b080 942c 942f\n\n00:24:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba32 34ba b3b6 bab0 b080 942c 942f\n\n00:24:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba32 34ba b337 bab0 b080 942c 942f\n\n00:24:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba32 34ba b338 bab0 b080 942c 942f\n\n00:24:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba32 34ba b3b9 bab0 b080 942c 942f\n\n00:24:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba32 34ba 34b0 bab0 b080 942c 942f\n\n00:24:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba32 34ba 3431 bab0 b080 942c 942f\n\n00:24:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba32 34ba 3432 bab0 b080 942c 942f\n\n00:24:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba32 34ba 34b3 bab0 b080 942c 942f\n\n00:24:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba32 34ba 3434 bab0 b080 942c 942f\n\n00:24:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba32 34ba 34b5 bab0 b080 942c 942f\n\n00:24:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba32 34ba 34b6 bab0 b080 942c 942f\n\n00:24:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba32 34ba 3437 bab0 b080 942c 942f\n\n00:24:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba32 34ba 3438 bab0 b080 942c 942f\n\n00:24:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba32 34ba 34b9 bab0 b080 942c 942f\n\n00:24:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba32 34ba b5b0 bab0 b080 942c 942f\n\n00:24:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba32 34ba b531 bab0 b080 942c 942f\n\n00:24:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba32 34ba b532 bab0 b080 942c 942f\n\n00:24:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba32 34ba b5b3 bab0 b080 942c 942f\n\n00:24:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba32 34ba b534 bab0 b080 942c 942f\n\n00:24:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba32 34ba b5b5 bab0 b080 942c 942f\n\n00:24:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba32 34ba b5b6 bab0 b080 942c 942f\n\n00:24:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba32 34ba b537 bab0 b080 942c 942f\n\n00:24:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba32 34ba b538 bab0 b080 942c 942f\n\n00:24:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba32 34ba b5b9 bab0 b080 942c 942f\n\n00:25:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba32 b5ba b0b0 bab0 b080 942c 942f\n\n00:25:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba32 b5ba b031 bab0 b080 942c 942f\n\n00:25:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba32 b5ba b032 bab0 b080 942c 942f\n\n00:25:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba32 b5ba b0b3 bab0 b080 942c 942f\n\n00:25:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba32 b5ba b034 bab0 b080 942c 942f\n\n00:25:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba32 b5ba b0b5 bab0 b080 942c 942f\n\n00:25:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba32 b5ba b0b6 bab0 b080 942c 942f\n\n00:25:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba32 b5ba b037 bab0 b080 942c 942f\n\n00:25:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba32 b5ba b038 bab0 b080 942c 942f\n\n00:25:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba32 b5ba b0b9 bab0 b080 942c 942f\n\n00:25:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba32 b5ba 31b0 bab0 b080 942c 942f\n\n00:25:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba32 b5ba 3131 bab0 b080 942c 942f\n\n00:25:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba32 b5ba 3132 bab0 b080 942c 942f\n\n00:25:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba32 b5ba 31b3 bab0 b080 942c 942f\n\n00:25:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba32 b5ba 3134 bab0 b080 942c 942f\n\n00:25:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba32 b5ba 31b5 bab0 b080 942c 942f\n\n00:25:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba32 b5ba 31b6 bab0 b080 942c 942f\n\n00:25:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba32 b5ba 3137 bab0 b080 942c 942f\n\n00:25:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba32 b5ba 3138 bab0 b080 942c 942f\n\n00:25:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba32 b5ba 31b9 bab0 b080 942c 942f\n\n00:25:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba32 b5ba 32b0 bab0 b080 942c 942f\n\n00:25:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba32 b5ba 3231 bab0 b080 942c 942f\n\n00:25:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba32 b5ba 3232 bab0 b080 942c 942f\n\n00:25:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba32 b5ba 32b3 bab0 b080 942c 942f\n\n00:25:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba32 b5ba 3234 bab0 b080 942c 942f\n\n00:25:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba32 b5ba 32b5 bab0 b080 942c 942f\n\n00:25:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba32 b5ba 32b6 bab0 b080 942c 942f\n\n00:25:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba32 b5ba 3237 bab0 b080 942c 942f\n\n00:25:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba32 b5ba 3238 bab0 b080 942c 942f\n\n00:25:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba32 b5ba 32b9 bab0 b080 942c 942f\n\n00:25:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba32 b5ba b3b0 bab0 b080 942c 942f\n\n00:25:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba32 b5ba b331 bab0 b080 942c 942f\n\n00:25:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba32 b5ba b332 bab0 b080 942c 942f\n\n00:25:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba32 b5ba b3b3 bab0 b080 942c 942f\n\n00:25:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba32 b5ba b334 bab0 b080 942c 942f\n\n00:25:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba32 b5ba b3b5 bab0 b080 942c 942f\n\n00:25:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba32 b5ba b3b6 bab0 b080 942c 942f\n\n00:25:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba32 b5ba b337 bab0 b080 942c 942f\n\n00:25:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba32 b5ba b338 bab0 b080 942c 942f\n\n00:25:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba32 b5ba b3b9 bab0 b080 942c 942f\n\n00:25:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba32 b5ba 34b0 bab0 b080 942c 942f\n\n00:25:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba32 b5ba 3431 bab0 b080 942c 942f\n\n00:25:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba32 b5ba 3432 bab0 b080 942c 942f\n\n00:25:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba32 b5ba 34b3 bab0 b080 942c 942f\n\n00:25:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba32 b5ba 3434 bab0 b080 942c 942f\n\n00:25:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba32 b5ba 34b5 bab0 b080 942c 942f\n\n00:25:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba32 b5ba 34b6 bab0 b080 942c 942f\n\n00:25:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba32 b5ba 3437 bab0 b080 942c 942f\n\n00:25:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba32 b5ba 3438 bab0 b080 942c 942f\n\n00:25:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba32 b5ba 34b9 bab0 b080 942c 942f\n\n00:25:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba32 b5ba b5b0 bab0 b080 942c 942f\n\n00:25:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba32 b5ba b531 bab0 b080 942c 942f\n\n00:25:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba32 b5ba b532 bab0 b080 942c 942f\n\n00:25:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba32 b5ba b5b3 bab0 b080 942c 942f\n\n00:25:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba32 b5ba b534 bab0 b080 942c 942f\n\n00:25:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba32 b5ba b5b5 bab0 b080 942c 942f\n\n00:25:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba32 b5ba b5b6 bab0 b080 942c 942f\n\n00:25:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba32 b5ba b537 bab0 b080 942c 942f\n\n00:25:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba32 b5ba b538 bab0 b080 942c 942f\n\n00:25:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba32 b5ba b5b9 bab0 b080 942c 942f\n\n00:26:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba32 b6ba b0b0 bab0 b080 942c 942f\n\n00:26:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba32 b6ba b031 bab0 b080 942c 942f\n\n00:26:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba32 b6ba b032 bab0 b080 942c 942f\n\n00:26:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba32 b6ba b0b3 bab0 b080 942c 942f\n\n00:26:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba32 b6ba b034 bab0 b080 942c 942f\n\n00:26:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba32 b6ba b0b5 bab0 b080 942c 942f\n\n00:26:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba32 b6ba b0b6 bab0 b080 942c 942f\n\n00:26:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba32 b6ba b037 bab0 b080 942c 942f\n\n00:26:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba32 b6ba b038 bab0 b080 942c 942f\n\n00:26:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba32 b6ba b0b9 bab0 b080 942c 942f\n\n00:26:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba32 b6ba 31b0 bab0 b080 942c 942f\n\n00:26:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba32 b6ba 3131 bab0 b080 942c 942f\n\n00:26:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba32 b6ba 3132 bab0 b080 942c 942f\n\n00:26:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba32 b6ba 31b3 bab0 b080 942c 942f\n\n00:26:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba32 b6ba 3134 bab0 b080 942c 942f\n\n00:26:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba32 b6ba 31b5 bab0 b080 942c 942f\n\n00:26:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba32 b6ba 31b6 bab0 b080 942c 942f\n\n00:26:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba32 b6ba 3137 bab0 b080 942c 942f\n\n00:26:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba32 b6ba 3138 bab0 b080 942c 942f\n\n00:26:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba32 b6ba 31b9 bab0 b080 942c 942f\n\n00:26:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba32 b6ba 32b0 bab0 b080 942c 942f\n\n00:26:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba32 b6ba 3231 bab0 b080 942c 942f\n\n00:26:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba32 b6ba 3232 bab0 b080 942c 942f\n\n00:26:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba32 b6ba 32b3 bab0 b080 942c 942f\n\n00:26:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba32 b6ba 3234 bab0 b080 942c 942f\n\n00:26:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba32 b6ba 32b5 bab0 b080 942c 942f\n\n00:26:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba32 b6ba 32b6 bab0 b080 942c 942f\n\n00:26:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba32 b6ba 3237 bab0 b080 942c 942f\n\n00:26:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba32 b6ba 3238 bab0 b080 942c 942f\n\n00:26:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba32 b6ba 32b9 bab0 b080 942c 942f\n\n00:26:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba32 b6ba b3b0 bab0 b080 942c 942f\n\n00:26:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba32 b6ba b331 bab0 b080 942c 942f\n\n00:26:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba32 b6ba b332 bab0 b080 942c 942f\n\n00:26:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba32 b6ba b3b3 bab0 b080 942c 942f\n\n00:26:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba32 b6ba b334 bab0 b080 942c 942f\n\n00:26:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba32 b6ba b3b5 bab0 b080 942c 942f\n\n00:26:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba32 b6ba b3b6 bab0 b080 942c 942f\n\n00:26:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba32 b6ba b337 bab0 b080 942c 942f\n\n00:26:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba32 b6ba b338 bab0 b080 942c 942f\n\n00:26:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba32 b6ba b3b9 bab0 b080 942c 942f\n\n00:26:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba32 b6ba 34b0 bab0 b080 942c 942f\n\n00:26:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba32 b6ba 3431 bab0 b080 942c 942f\n\n00:26:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba32 b6ba 3432 bab0 b080 942c 942f\n\n00:26:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba32 b6ba 34b3 bab0 b080 942c 942f\n\n00:26:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba32 b6ba 3434 bab0 b080 942c 942f\n\n00:26:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba32 b6ba 34b5 bab0 b080 942c 942f\n\n00:26:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba32 b6ba 34b6 bab0 b080 942c 942f\n\n00:26:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba32 b6ba 3437 bab0 b080 942c 942f\n\n00:26:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba32 b6ba 3438 bab0 b080 942c 942f\n\n00:26:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba32 b6ba 34b9 bab0 b080 942c 942f\n\n00:26:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba32 b6ba b5b0 bab0 b080 942c 942f\n\n00:26:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba32 b6ba b531 bab0 b080 942c 942f\n\n00:26:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba32 b6ba b532 bab0 b080 942c 942f\n\n00:26:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba32 b6ba b5b3 bab0 b080 942c 942f\n\n00:26:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba32 b6ba b534 bab0 b080 942c 942f\n\n00:26:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba32 b6ba b5b5 bab0 b080 942c 942f\n\n00:26:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba32 b6ba b5b6 bab0 b080 942c 942f\n\n00:26:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba32 b6ba b537 bab0 b080 942c 942f\n\n00:26:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba32 b6ba b538 bab0 b080 942c 942f\n\n00:26:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba32 b6ba b5b9 bab0 b080 942c 942f\n\n00:27:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba32 37ba b0b0 bab0 b080 942c 942f\n\n00:27:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba32 37ba b031 bab0 b080 942c 942f\n\n00:27:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba32 37ba b032 bab0 b080 942c 942f\n\n00:27:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba32 37ba b0b3 bab0 b080 942c 942f\n\n00:27:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba32 37ba b034 bab0 b080 942c 942f\n\n00:27:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba32 37ba b0b5 bab0 b080 942c 942f\n\n00:27:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba32 37ba b0b6 bab0 b080 942c 942f\n\n00:27:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba32 37ba b037 bab0 b080 942c 942f\n\n00:27:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba32 37ba b038 bab0 b080 942c 942f\n\n00:27:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba32 37ba b0b9 bab0 b080 942c 942f\n\n00:27:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba32 37ba 31b0 bab0 b080 942c 942f\n\n00:27:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba32 37ba 3131 bab0 b080 942c 942f\n\n00:27:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba32 37ba 3132 bab0 b080 942c 942f\n\n00:27:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba32 37ba 31b3 bab0 b080 942c 942f\n\n00:27:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba32 37ba 3134 bab0 b080 942c 942f\n\n00:27:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba32 37ba 31b5 bab0 b080 942c 942f\n\n00:27:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba32 37ba 31b6 bab0 b080 942c 942f\n\n00:27:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba32 37ba 3137 bab0 b080 942c 942f\n\n00:27:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba32 37ba 3138 bab0 b080 942c 942f\n\n00:27:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba32 37ba 31b9 bab0 b080 942c 942f\n\n00:27:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba32 37ba 32b0 bab0 b080 942c 942f\n\n00:27:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba32 37ba 3231 bab0 b080 942c 942f\n\n00:27:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba32 37ba 3232 bab0 b080 942c 942f\n\n00:27:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba32 37ba 32b3 bab0 b080 942c 942f\n\n00:27:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba32 37ba 3234 bab0 b080 942c 942f\n\n00:27:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba32 37ba 32b5 bab0 b080 942c 942f\n\n00:27:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba32 37ba 32b6 bab0 b080 942c 942f\n\n00:27:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba32 37ba 3237 bab0 b080 942c 942f\n\n00:27:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba32 37ba 3238 bab0 b080 942c 942f\n\n00:27:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba32 37ba 32b9 bab0 b080 942c 942f\n\n00:27:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba32 37ba b3b0 bab0 b080 942c 942f\n\n00:27:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba32 37ba b331 bab0 b080 942c 942f\n\n00:27:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba32 37ba b332 bab0 b080 942c 942f\n\n00:27:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba32 37ba b3b3 bab0 b080 942c 942f\n\n00:27:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba32 37ba b334 bab0 b080 942c 942f\n\n00:27:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba32 37ba b3b5 bab0 b080 942c 942f\n\n00:27:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba32 37ba b3b6 bab0 b080 942c 942f\n\n00:27:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba32 37ba b337 bab0 b080 942c 942f\n\n00:27:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba32 37ba b338 bab0 b080 942c 942f\n\n00:27:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba32 37ba b3b9 bab0 b080 942c 942f\n\n00:27:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba32 37ba 34b0 bab0 b080 942c 942f\n\n00:27:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba32 37ba 3431 bab0 b080 942c 942f\n\n00:27:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba32 37ba 3432 bab0 b080 942c 942f\n\n00:27:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba32 37ba 34b3 bab0 b080 942c 942f\n\n00:27:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba32 37ba 3434 bab0 b080 942c 942f\n\n00:27:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba32 37ba 34b5 bab0 b080 942c 942f\n\n00:27:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba32 37ba 34b6 bab0 b080 942c 942f\n\n00:27:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba32 37ba 3437 bab0 b080 942c 942f\n\n00:27:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba32 37ba 3438 bab0 b080 942c 942f\n\n00:27:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba32 37ba 34b9 bab0 b080 942c 942f\n\n00:27:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba32 37ba b5b0 bab0 b080 942c 942f\n\n00:27:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba32 37ba b531 bab0 b080 942c 942f\n\n00:27:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba32 37ba b532 bab0 b080 942c 942f\n\n00:27:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba32 37ba b5b3 bab0 b080 942c 942f\n\n00:27:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba32 37ba b534 bab0 b080 942c 942f\n\n00:27:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba32 37ba b5b5 bab0 b080 942c 942f\n\n00:27:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba32 37ba b5b6 bab0 b080 942c 942f\n\n00:27:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba32 37ba b537 bab0 b080 942c 942f\n\n00:27:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba32 37ba b538 bab0 b080 942c 942f\n\n00:27:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba32 37ba b5b9 bab0 b080 942c 942f\n\n00:28:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba32 38ba b0b0 bab0 b080 942c 942f\n\n00:28:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba32 38ba b031 bab0 b080 942c 942f\n\n00:28:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba32 38ba b032 bab0 b080 942c 942f\n\n00:28:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba32 38ba b0b3 bab0 b080 942c 942f\n\n00:28:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba32 38ba b034 bab0 b080 942c 942f\n\n00:28:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba32 38ba b0b5 bab0 b080 942c 942f\n\n00:28:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba32 38ba b0b6 bab0 b080 942c 942f\n\n00:28:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba32 38ba b037 bab0 b080 942c 942f\n\n00:28:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba32 38ba b038 bab0 b080 942c 942f\n\n00:28:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba32 38ba b0b9 bab0 b080 942c 942f\n\n00:28:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba32 38ba 31b0 bab0 b080 942c 942f\n\n00:28:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba32 38ba 3131 bab0 b080 942c 942f\n\n00:28:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba32 38ba 3132 bab0 b080 942c 942f\n\n00:28:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba32 38ba 31b3 bab0 b080 942c 942f\n\n00:28:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba32 38ba 3134 bab0 b080 942c 942f\n\n00:28:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba32 38ba 31b5 bab0 b080 942c 942f\n\n00:28:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba32 38ba 31b6 bab0 b080 942c 942f\n\n00:28:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba32 38ba 3137 bab0 b080 942c 942f\n\n00:28:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba32 38ba 3138 bab0 b080 942c 942f\n\n00:28:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba32 38ba 31b9 bab0 b080 942c 942f\n\n00:28:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba32 38ba 32b0 bab0 b080 942c 942f\n\n00:28:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba32 38ba 3231 bab0 b080 942c 942f\n\n00:28:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba32 38ba 3232 bab0 b080 942c 942f\n\n00:28:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba32 38ba 32b3 bab0 b080 942c 942f\n\n00:28:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba32 38ba 3234 bab0 b080 942c 942f\n\n00:28:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba32 38ba 32b5 bab0 b080 942c 942f\n\n00:28:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba32 38ba 32b6 bab0 b080 942c 942f\n\n00:28:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba32 38ba 3237 bab0 b080 942c 942f\n\n00:28:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba32 38ba 3238 bab0 b080 942c 942f\n\n00:28:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba32 38ba 32b9 bab0 b080 942c 942f\n\n00:28:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba32 38ba b3b0 bab0 b080 942c 942f\n\n00:28:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba32 38ba b331 bab0 b080 942c 942f\n\n00:28:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba32 38ba b332 bab0 b080 942c 942f\n\n00:28:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba32 38ba b3b3 bab0 b080 942c 942f\n\n00:28:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba32 38ba b334 bab0 b080 942c 942f\n\n00:28:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba32 38ba b3b5 bab0 b080 942c 942f\n\n00:28:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba32 38ba b3b6 bab0 b080 942c 942f\n\n00:28:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba32 38ba b337 bab0 b080 942c 942f\n\n00:28:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba32 38ba b338 bab0 b080 942c 942f\n\n00:28:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba32 38ba b3b9 bab0 b080 942c 942f\n\n00:28:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba32 38ba 34b0 bab0 b080 942c 942f\n\n00:28:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba32 38ba 3431 bab0 b080 942c 942f\n\n00:28:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba32 38ba 3432 bab0 b080 942c 942f\n\n00:28:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba32 38ba 34b3 bab0 b080 942c 942f\n\n00:28:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba32 38ba 3434 bab0 b080 942c 942f\n\n00:28:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba32 38ba 34b5 bab0 b080 942c 942f\n\n00:28:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba32 38ba 34b6 bab0 b080 942c 942f\n\n00:28:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba32 38ba 3437 bab0 b080 942c 942f\n\n00:28:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba32 38ba 3438 bab0 b080 942c 942f\n\n00:28:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba32 38ba 34b9 bab0 b080 942c 942f\n\n00:28:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba32 38ba b5b0 bab0 b080 942c 942f\n\n00:28:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba32 38ba b531 bab0 b080 942c 942f\n\n00:28:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba32 38ba b532 bab0 b080 942c 942f\n\n00:28:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba32 38ba b5b3 bab0 b080 942c 942f\n\n00:28:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba32 38ba b534 bab0 b080 942c 942f\n\n00:28:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba32 38ba b5b5 bab0 b080 942c 942f\n\n00:28:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba32 38ba b5b6 bab0 b080 942c 942f\n\n00:28:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba32 38ba b537 bab0 b080 942c 942f\n\n00:28:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba32 38ba b538 bab0 b080 942c 942f\n\n00:28:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba32 38ba b5b9 bab0 b080 942c 942f\n\n00:29:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba32 b9ba b0b0 bab0 b080 942c 942f\n\n00:29:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba32 b9ba b031 bab0 b080 942c 942f\n\n00:29:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba32 b9ba b032 bab0 b080 942c 942f\n\n00:29:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba32 b9ba b0b3 bab0 b080 942c 942f\n\n00:29:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba32 b9ba b034 bab0 b080 942c 942f\n\n00:29:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba32 b9ba b0b5 bab0 b080 942c 942f\n\n00:29:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba32 b9ba b0b6 bab0 b080 942c 942f\n\n00:29:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba32 b9ba b037 bab0 b080 942c 942f\n\n00:29:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba32 b9ba b038 bab0 b080 942c 942f\n\n00:29:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba32 b9ba b0b9 bab0 b080 942c 942f\n\n00:29:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba32 b9ba 31b0 bab0 b080 942c 942f\n\n00:29:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba32 b9ba 3131 bab0 b080 942c 942f\n\n00:29:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba32 b9ba 3132 bab0 b080 942c 942f\n\n00:29:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba32 b9ba 31b3 bab0 b080 942c 942f\n\n00:29:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba32 b9ba 3134 bab0 b080 942c 942f\n\n00:29:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba32 b9ba 31b5 bab0 b080 942c 942f\n\n00:29:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba32 b9ba 31b6 bab0 b080 942c 942f\n\n00:29:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba32 b9ba 3137 bab0 b080 942c 942f\n\n00:29:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba32 b9ba 3138 bab0 b080 942c 942f\n\n00:29:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba32 b9ba 31b9 bab0 b080 942c 942f\n\n00:29:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba32 b9ba 32b0 bab0 b080 942c 942f\n\n00:29:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba32 b9ba 3231 bab0 b080 942c 942f\n\n00:29:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba32 b9ba 3232 bab0 b080 942c 942f\n\n00:29:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba32 b9ba 32b3 bab0 b080 942c 942f\n\n00:29:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba32 b9ba 3234 bab0 b080 942c 942f\n\n00:29:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba32 b9ba 32b5 bab0 b080 942c 942f\n\n00:29:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba32 b9ba 32b6 bab0 b080 942c 942f\n\n00:29:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba32 b9ba 3237 bab0 b080 942c 942f\n\n00:29:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba32 b9ba 3238 bab0 b080 942c 942f\n\n00:29:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba32 b9ba 32b9 bab0 b080 942c 942f\n\n00:29:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba32 b9ba b3b0 bab0 b080 942c 942f\n\n00:29:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba32 b9ba b331 bab0 b080 942c 942f\n\n00:29:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba32 b9ba b332 bab0 b080 942c 942f\n\n00:29:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba32 b9ba b3b3 bab0 b080 942c 942f\n\n00:29:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba32 b9ba b334 bab0 b080 942c 942f\n\n00:29:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba32 b9ba b3b5 bab0 b080 942c 942f\n\n00:29:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba32 b9ba b3b6 bab0 b080 942c 942f\n\n00:29:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba32 b9ba b337 bab0 b080 942c 942f\n\n00:29:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba32 b9ba b338 bab0 b080 942c 942f\n\n00:29:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba32 b9ba b3b9 bab0 b080 942c 942f\n\n00:29:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba32 b9ba 34b0 bab0 b080 942c 942f\n\n00:29:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba32 b9ba 3431 bab0 b080 942c 942f\n\n00:29:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba32 b9ba 3432 bab0 b080 942c 942f\n\n00:29:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba32 b9ba 34b3 bab0 b080 942c 942f\n\n00:29:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba32 b9ba 3434 bab0 b080 942c 942f\n\n00:29:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba32 b9ba 34b5 bab0 b080 942c 942f\n\n00:29:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba32 b9ba 34b6 bab0 b080 942c 942f\n\n00:29:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba32 b9ba 3437 bab0 b080 942c 942f\n\n00:29:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba32 b9ba 3438 bab0 b080 942c 942f\n\n00:29:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba32 b9ba 34b9 bab0 b080 942c 942f\n\n00:29:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba32 b9ba b5b0 bab0 b080 942c 942f\n\n00:29:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba32 b9ba b531 bab0 b080 942c 942f\n\n00:29:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba32 b9ba b532 bab0 b080 942c 942f\n\n00:29:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba32 b9ba b5b3 bab0 b080 942c 942f\n\n00:29:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba32 b9ba b534 bab0 b080 942c 942f\n\n00:29:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba32 b9ba b5b5 bab0 b080 942c 942f\n\n00:29:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba32 b9ba b5b6 bab0 b080 942c 942f\n\n00:29:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba32 b9ba b537 bab0 b080 942c 942f\n\n00:29:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba32 b9ba b538 bab0 b080 942c 942f\n\n00:29:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba32 b9ba b5b9 bab0 b080 942c 942f\n\n00:30:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab3 b0ba b0b0 bab0 b080 942c 942f\n\n00:30:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab3 b0ba b031 bab0 b080 942c 942f\n\n00:30:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab3 b0ba b032 bab0 b080 942c 942f\n\n00:30:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab3 b0ba b0b3 bab0 b080 942c 942f\n\n00:30:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab3 b0ba b034 bab0 b080 942c 942f\n\n00:30:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab3 b0ba b0b5 bab0 b080 942c 942f\n\n00:30:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab3 b0ba b0b6 bab0 b080 942c 942f\n\n00:30:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab3 b0ba b037 bab0 b080 942c 942f\n\n00:30:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab3 b0ba b038 bab0 b080 942c 942f\n\n00:30:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab3 b0ba b0b9 bab0 b080 942c 942f\n\n00:30:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab3 b0ba 31b0 bab0 b080 942c 942f\n\n00:30:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab3 b0ba 3131 bab0 b080 942c 942f\n\n00:30:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab3 b0ba 3132 bab0 b080 942c 942f\n\n00:30:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab3 b0ba 31b3 bab0 b080 942c 942f\n\n00:30:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab3 b0ba 3134 bab0 b080 942c 942f\n\n00:30:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab3 b0ba 31b5 bab0 b080 942c 942f\n\n00:30:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab3 b0ba 31b6 bab0 b080 942c 942f\n\n00:30:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab3 b0ba 3137 bab0 b080 942c 942f\n\n00:30:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab3 b0ba 3138 bab0 b080 942c 942f\n\n00:30:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab3 b0ba 31b9 bab0 b080 942c 942f\n\n00:30:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab3 b0ba 32b0 bab0 b080 942c 942f\n\n00:30:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab3 b0ba 3231 bab0 b080 942c 942f\n\n00:30:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab3 b0ba 3232 bab0 b080 942c 942f\n\n00:30:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab3 b0ba 32b3 bab0 b080 942c 942f\n\n00:30:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab3 b0ba 3234 bab0 b080 942c 942f\n\n00:30:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab3 b0ba 32b5 bab0 b080 942c 942f\n\n00:30:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab3 b0ba 32b6 bab0 b080 942c 942f\n\n00:30:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab3 b0ba 3237 bab0 b080 942c 942f\n\n00:30:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab3 b0ba 3238 bab0 b080 942c 942f\n\n00:30:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab3 b0ba 32b9 bab0 b080 942c 942f\n\n00:30:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab3 b0ba b3b0 bab0 b080 942c 942f\n\n00:30:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab3 b0ba b331 bab0 b080 942c 942f\n\n00:30:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab3 b0ba b332 bab0 b080 942c 942f\n\n00:30:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab3 b0ba b3b3 bab0 b080 942c 942f\n\n00:30:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab3 b0ba b334 bab0 b080 942c 942f\n\n00:30:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab3 b0ba b3b5 bab0 b080 942c 942f\n\n00:30:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab3 b0ba b3b6 bab0 b080 942c 942f\n\n00:30:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab3 b0ba b337 bab0 b080 942c 942f\n\n00:30:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab3 b0ba b338 bab0 b080 942c 942f\n\n00:30:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab3 b0ba b3b9 bab0 b080 942c 942f\n\n00:30:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab3 b0ba 34b0 bab0 b080 942c 942f\n\n00:30:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab3 b0ba 3431 bab0 b080 942c 942f\n\n00:30:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab3 b0ba 3432 bab0 b080 942c 942f\n\n00:30:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab3 b0ba 34b3 bab0 b080 942c 942f\n\n00:30:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab3 b0ba 3434 bab0 b080 942c 942f\n\n00:30:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab3 b0ba 34b5 bab0 b080 942c 942f\n\n00:30:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab3 b0ba 34b6 bab0 b080 942c 942f\n\n00:30:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab3 b0ba 3437 bab0 b080 942c 942f\n\n00:30:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab3 b0ba 3438 bab0 b080 942c 942f\n\n00:30:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab3 b0ba 34b9 bab0 b080 942c 942f\n\n00:30:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab3 b0ba b5b0 bab0 b080 942c 942f\n\n00:30:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab3 b0ba b531 bab0 b080 942c 942f\n\n00:30:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab3 b0ba b532 bab0 b080 942c 942f\n\n00:30:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab3 b0ba b5b3 bab0 b080 942c 942f\n\n00:30:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab3 b0ba b534 bab0 b080 942c 942f\n\n00:30:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab3 b0ba b5b5 bab0 b080 942c 942f\n\n00:30:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab3 b0ba b5b6 bab0 b080 942c 942f\n\n00:30:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab3 b0ba b537 bab0 b080 942c 942f\n\n00:30:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab3 b0ba b538 bab0 b080 942c 942f\n\n00:30:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab3 b0ba b5b9 bab0 b080 942c 942f\n\n00:31:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab3 31ba b0b0 bab0 b080 942c 942f\n\n00:31:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab3 31ba b031 bab0 b080 942c 942f\n\n00:31:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab3 31ba b032 bab0 b080 942c 942f\n\n00:31:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab3 31ba b0b3 bab0 b080 942c 942f\n\n00:31:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab3 31ba b034 bab0 b080 942c 942f\n\n00:31:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab3 31ba b0b5 bab0 b080 942c 942f\n\n00:31:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab3 31ba b0b6 bab0 b080 942c 942f\n\n00:31:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab3 31ba b037 bab0 b080 942c 942f\n\n00:31:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab3 31ba b038 bab0 b080 942c 942f\n\n00:31:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab3 31ba b0b9 bab0 b080 942c 942f\n\n00:31:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab3 31ba 31b0 bab0 b080 942c 942f\n\n00:31:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab3 31ba 3131 bab0 b080 942c 942f\n\n00:31:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab3 31ba 3132 bab0 b080 942c 942f\n\n00:31:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab3 31ba 31b3 bab0 b080 942c 942f\n\n00:31:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab3 31ba 3134 bab0 b080 942c 942f\n\n00:31:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab3 31ba 31b5 bab0 b080 942c 942f\n\n00:31:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab3 31ba 31b6 bab0 b080 942c 942f\n\n00:31:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab3 31ba 3137 bab0 b080 942c 942f\n\n00:31:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab3 31ba 3138 bab0 b080 942c 942f\n\n00:31:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab3 31ba 31b9 bab0 b080 942c 942f\n\n00:31:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab3 31ba 32b0 bab0 b080 942c 942f\n\n00:31:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab3 31ba 3231 bab0 b080 942c 942f\n\n00:31:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab3 31ba 3232 bab0 b080 942c 942f\n\n00:31:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab3 31ba 32b3 bab0 b080 942c 942f\n\n00:31:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab3 31ba 3234 bab0 b080 942c 942f\n\n00:31:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab3 31ba 32b5 bab0 b080 942c 942f\n\n00:31:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab3 31ba 32b6 bab0 b080 942c 942f\n\n00:31:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab3 31ba 3237 bab0 b080 942c 942f\n\n00:31:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab3 31ba 3238 bab0 b080 942c 942f\n\n00:31:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab3 31ba 32b9 bab0 b080 942c 942f\n\n00:31:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab3 31ba b3b0 bab0 b080 942c 942f\n\n00:31:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab3 31ba b331 bab0 b080 942c 942f\n\n00:31:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab3 31ba b332 bab0 b080 942c 942f\n\n00:31:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab3 31ba b3b3 bab0 b080 942c 942f\n\n00:31:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab3 31ba b334 bab0 b080 942c 942f\n\n00:31:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab3 31ba b3b5 bab0 b080 942c 942f\n\n00:31:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab3 31ba b3b6 bab0 b080 942c 942f\n\n00:31:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab3 31ba b337 bab0 b080 942c 942f\n\n00:31:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab3 31ba b338 bab0 b080 942c 942f\n\n00:31:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab3 31ba b3b9 bab0 b080 942c 942f\n\n00:31:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab3 31ba 34b0 bab0 b080 942c 942f\n\n00:31:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab3 31ba 3431 bab0 b080 942c 942f\n\n00:31:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab3 31ba 3432 bab0 b080 942c 942f\n\n00:31:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab3 31ba 34b3 bab0 b080 942c 942f\n\n00:31:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab3 31ba 3434 bab0 b080 942c 942f\n\n00:31:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab3 31ba 34b5 bab0 b080 942c 942f\n\n00:31:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab3 31ba 34b6 bab0 b080 942c 942f\n\n00:31:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab3 31ba 3437 bab0 b080 942c 942f\n\n00:31:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab3 31ba 3438 bab0 b080 942c 942f\n\n00:31:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab3 31ba 34b9 bab0 b080 942c 942f\n\n00:31:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab3 31ba b5b0 bab0 b080 942c 942f\n\n00:31:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab3 31ba b531 bab0 b080 942c 942f\n\n00:31:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab3 31ba b532 bab0 b080 942c 942f\n\n00:31:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab3 31ba b5b3 bab0 b080 942c 942f\n\n00:31:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab3 31ba b534 bab0 b080 942c 942f\n\n00:31:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab3 31ba b5b5 bab0 b080 942c 942f\n\n00:31:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab3 31ba b5b6 bab0 b080 942c 942f\n\n00:31:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab3 31ba b537 bab0 b080 942c 942f\n\n00:31:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab3 31ba b538 bab0 b080 942c 942f\n\n00:31:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab3 31ba b5b9 bab0 b080 942c 942f\n\n00:32:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab3 32ba b0b0 bab0 b080 942c 942f\n\n00:32:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab3 32ba b031 bab0 b080 942c 942f\n\n00:32:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab3 32ba b032 bab0 b080 942c 942f\n\n00:32:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab3 32ba b0b3 bab0 b080 942c 942f\n\n00:32:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab3 32ba b034 bab0 b080 942c 942f\n\n00:32:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab3 32ba b0b5 bab0 b080 942c 942f\n\n00:32:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab3 32ba b0b6 bab0 b080 942c 942f\n\n00:32:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab3 32ba b037 bab0 b080 942c 942f\n\n00:32:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab3 32ba b038 bab0 b080 942c 942f\n\n00:32:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab3 32ba b0b9 bab0 b080 942c 942f\n\n00:32:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab3 32ba 31b0 bab0 b080 942c 942f\n\n00:32:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab3 32ba 3131 bab0 b080 942c 942f\n\n00:32:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab3 32ba 3132 bab0 b080 942c 942f\n\n00:32:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab3 32ba 31b3 bab0 b080 942c 942f\n\n00:32:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab3 32ba 3134 bab0 b080 942c 942f\n\n00:32:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab3 32ba 31b5 bab0 b080 942c 942f\n\n00:32:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab3 32ba 31b6 bab0 b080 942c 942f\n\n00:32:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab3 32ba 3137 bab0 b080 942c 942f\n\n00:32:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab3 32ba 3138 bab0 b080 942c 942f\n\n00:32:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab3 32ba 31b9 bab0 b080 942c 942f\n\n00:32:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab3 32ba 32b0 bab0 b080 942c 942f\n\n00:32:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab3 32ba 3231 bab0 b080 942c 942f\n\n00:32:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab3 32ba 3232 bab0 b080 942c 942f\n\n00:32:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab3 32ba 32b3 bab0 b080 942c 942f\n\n00:32:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab3 32ba 3234 bab0 b080 942c 942f\n\n00:32:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab3 32ba 32b5 bab0 b080 942c 942f\n\n00:32:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab3 32ba 32b6 bab0 b080 942c 942f\n\n00:32:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab3 32ba 3237 bab0 b080 942c 942f\n\n00:32:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab3 32ba 3238 bab0 b080 942c 942f\n\n00:32:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab3 32ba 32b9 bab0 b080 942c 942f\n\n00:32:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab3 32ba b3b0 bab0 b080 942c 942f\n\n00:32:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab3 32ba b331 bab0 b080 942c 942f\n\n00:32:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab3 32ba b332 bab0 b080 942c 942f\n\n00:32:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab3 32ba b3b3 bab0 b080 942c 942f\n\n00:32:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab3 32ba b334 bab0 b080 942c 942f\n\n00:32:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab3 32ba b3b5 bab0 b080 942c 942f\n\n00:32:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab3 32ba b3b6 bab0 b080 942c 942f\n\n00:32:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab3 32ba b337 bab0 b080 942c 942f\n\n00:32:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab3 32ba b338 bab0 b080 942c 942f\n\n00:32:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab3 32ba b3b9 bab0 b080 942c 942f\n\n00:32:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab3 32ba 34b0 bab0 b080 942c 942f\n\n00:32:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab3 32ba 3431 bab0 b080 942c 942f\n\n00:32:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab3 32ba 3432 bab0 b080 942c 942f\n\n00:32:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab3 32ba 34b3 bab0 b080 942c 942f\n\n00:32:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab3 32ba 3434 bab0 b080 942c 942f\n\n00:32:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab3 32ba 34b5 bab0 b080 942c 942f\n\n00:32:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab3 32ba 34b6 bab0 b080 942c 942f\n\n00:32:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab3 32ba 3437 bab0 b080 942c 942f\n\n00:32:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab3 32ba 3438 bab0 b080 942c 942f\n\n00:32:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab3 32ba 34b9 bab0 b080 942c 942f\n\n00:32:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab3 32ba b5b0 bab0 b080 942c 942f\n\n00:32:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab3 32ba b531 bab0 b080 942c 942f\n\n00:32:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab3 32ba b532 bab0 b080 942c 942f\n\n00:32:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab3 32ba b5b3 bab0 b080 942c 942f\n\n00:32:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab3 32ba b534 bab0 b080 942c 942f\n\n00:32:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab3 32ba b5b5 bab0 b080 942c 942f\n\n00:32:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab3 32ba b5b6 bab0 b080 942c 942f\n\n00:32:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab3 32ba b537 bab0 b080 942c 942f\n\n00:32:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab3 32ba b538 bab0 b080 942c 942f\n\n00:32:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab3 32ba b5b9 bab0 b080 942c 942f\n\n00:33:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab3 b3ba b0b0 bab0 b080 942c 942f\n\n00:33:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab3 b3ba b031 bab0 b080 942c 942f\n\n00:33:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab3 b3ba b032 bab0 b080 942c 942f\n\n00:33:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab3 b3ba b0b3 bab0 b080 942c 942f\n\n00:33:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab3 b3ba b034 bab0 b080 942c 942f\n\n00:33:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab3 b3ba b0b5 bab0 b080 942c 942f\n\n00:33:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab3 b3ba b0b6 bab0 b080 942c 942f\n\n00:33:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab3 b3ba b037 bab0 b080 942c 942f\n\n00:33:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab3 b3ba b038 bab0 b080 942c 942f\n\n00:33:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab3 b3ba b0b9 bab0 b080 942c 942f\n\n00:33:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab3 b3ba 31b0 bab0 b080 942c 942f\n\n00:33:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab3 b3ba 3131 bab0 b080 942c 942f\n\n00:33:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab3 b3ba 3132 bab0 b080 942c 942f\n\n00:33:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab3 b3ba 31b3 bab0 b080 942c 942f\n\n00:33:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab3 b3ba 3134 bab0 b080 942c 942f\n\n00:33:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab3 b3ba 31b5 bab0 b080 942c 942f\n\n00:33:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab3 b3ba 31b6 bab0 b080 942c 942f\n\n00:33:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab3 b3ba 3137 bab0 b080 942c 942f\n\n00:33:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab3 b3ba 3138 bab0 b080 942c 942f\n\n00:33:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab3 b3ba 31b9 bab0 b080 942c 942f\n\n00:33:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab3 b3ba 32b0 bab0 b080 942c 942f\n\n00:33:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab3 b3ba 3231 bab0 b080 942c 942f\n\n00:33:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab3 b3ba 3232 bab0 b080 942c 942f\n\n00:33:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab3 b3ba 32b3 bab0 b080 942c 942f\n\n00:33:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab3 b3ba 3234 bab0 b080 942c 942f\n\n00:33:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab3 b3ba 32b5 bab0 b080 942c 942f\n\n00:33:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab3 b3ba 32b6 bab0 b080 942c 942f\n\n00:33:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab3 b3ba 3237 bab0 b080 942c 942f\n\n00:33:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab3 b3ba 3238 bab0 b080 942c 942f\n\n00:33:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab3 b3ba 32b9 bab0 b080 942c 942f\n\n00:33:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab3 b3ba b3b0 bab0 b080 942c 942f\n\n00:33:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab3 b3ba b331 bab0 b080 942c 942f\n\n00:33:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab3 b3ba b332 bab0 b080 942c 942f\n\n00:33:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab3 b3ba b3b3 bab0 b080 942c 942f\n\n00:33:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab3 b3ba b334 bab0 b080 942c 942f\n\n00:33:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab3 b3ba b3b5 bab0 b080 942c 942f\n\n00:33:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab3 b3ba b3b6 bab0 b080 942c 942f\n\n00:33:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab3 b3ba b337 bab0 b080 942c 942f\n\n00:33:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab3 b3ba b338 bab0 b080 942c 942f\n\n00:33:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab3 b3ba b3b9 bab0 b080 942c 942f\n\n00:33:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab3 b3ba 34b0 bab0 b080 942c 942f\n\n00:33:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab3 b3ba 3431 bab0 b080 942c 942f\n\n00:33:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab3 b3ba 3432 bab0 b080 942c 942f\n\n00:33:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab3 b3ba 34b3 bab0 b080 942c 942f\n\n00:33:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab3 b3ba 3434 bab0 b080 942c 942f\n\n00:33:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab3 b3ba 34b5 bab0 b080 942c 942f\n\n00:33:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab3 b3ba 34b6 bab0 b080 942c 942f\n\n00:33:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab3 b3ba 3437 bab0 b080 942c 942f\n\n00:33:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab3 b3ba 3438 bab0 b080 942c 942f\n\n00:33:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab3 b3ba 34b9 bab0 b080 942c 942f\n\n00:33:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab3 b3ba b5b0 bab0 b080 942c 942f\n\n00:33:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab3 b3ba b531 bab0 b080 942c 942f\n\n00:33:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab3 b3ba b532 bab0 b080 942c 942f\n\n00:33:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab3 b3ba b5b3 bab0 b080 942c 942f\n\n00:33:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab3 b3ba b534 bab0 b080 942c 942f\n\n00:33:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab3 b3ba b5b5 bab0 b080 942c 942f\n\n00:33:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab3 b3ba b5b6 bab0 b080 942c 942f\n\n00:33:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab3 b3ba b537 bab0 b080 942c 942f\n\n00:33:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab3 b3ba b538 bab0 b080 942c 942f\n\n00:33:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab3 b3ba b5b9 bab0 b080 942c 942f\n\n00:34:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab3 34ba b0b0 bab0 b080 942c 942f\n\n00:34:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab3 34ba b031 bab0 b080 942c 942f\n\n00:34:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab3 34ba b032 bab0 b080 942c 942f\n\n00:34:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab3 34ba b0b3 bab0 b080 942c 942f\n\n00:34:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab3 34ba b034 bab0 b080 942c 942f\n\n00:34:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab3 34ba b0b5 bab0 b080 942c 942f\n\n00:34:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab3 34ba b0b6 bab0 b080 942c 942f\n\n00:34:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab3 34ba b037 bab0 b080 942c 942f\n\n00:34:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab3 34ba b038 bab0 b080 942c 942f\n\n00:34:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab3 34ba b0b9 bab0 b080 942c 942f\n\n00:34:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab3 34ba 31b0 bab0 b080 942c 942f\n\n00:34:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab3 34ba 3131 bab0 b080 942c 942f\n\n00:34:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab3 34ba 3132 bab0 b080 942c 942f\n\n00:34:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab3 34ba 31b3 bab0 b080 942c 942f\n\n00:34:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab3 34ba 3134 bab0 b080 942c 942f\n\n00:34:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab3 34ba 31b5 bab0 b080 942c 942f\n\n00:34:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab3 34ba 31b6 bab0 b080 942c 942f\n\n00:34:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab3 34ba 3137 bab0 b080 942c 942f\n\n00:34:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab3 34ba 3138 bab0 b080 942c 942f\n\n00:34:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab3 34ba 31b9 bab0 b080 942c 942f\n\n00:34:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab3 34ba 32b0 bab0 b080 942c 942f\n\n00:34:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab3 34ba 3231 bab0 b080 942c 942f\n\n00:34:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab3 34ba 3232 bab0 b080 942c 942f\n\n00:34:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab3 34ba 32b3 bab0 b080 942c 942f\n\n00:34:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab3 34ba 3234 bab0 b080 942c 942f\n\n00:34:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab3 34ba 32b5 bab0 b080 942c 942f\n\n00:34:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab3 34ba 32b6 bab0 b080 942c 942f\n\n00:34:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab3 34ba 3237 bab0 b080 942c 942f\n\n00:34:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab3 34ba 3238 bab0 b080 942c 942f\n\n00:34:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab3 34ba 32b9 bab0 b080 942c 942f\n\n00:34:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab3 34ba b3b0 bab0 b080 942c 942f\n\n00:34:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab3 34ba b331 bab0 b080 942c 942f\n\n00:34:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab3 34ba b332 bab0 b080 942c 942f\n\n00:34:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab3 34ba b3b3 bab0 b080 942c 942f\n\n00:34:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab3 34ba b334 bab0 b080 942c 942f\n\n00:34:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab3 34ba b3b5 bab0 b080 942c 942f\n\n00:34:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab3 34ba b3b6 bab0 b080 942c 942f\n\n00:34:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab3 34ba b337 bab0 b080 942c 942f\n\n00:34:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab3 34ba b338 bab0 b080 942c 942f\n\n00:34:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab3 34ba b3b9 bab0 b080 942c 942f\n\n00:34:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab3 34ba 34b0 bab0 b080 942c 942f\n\n00:34:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab3 34ba 3431 bab0 b080 942c 942f\n\n00:34:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab3 34ba 3432 bab0 b080 942c 942f\n\n00:34:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab3 34ba 34b3 bab0 b080 942c 942f\n\n00:34:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab3 34ba 3434 bab0 b080 942c 942f\n\n00:34:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab3 34ba 34b5 bab0 b080 942c 942f\n\n00:34:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab3 34ba 34b6 bab0 b080 942c 942f\n\n00:34:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab3 34ba 3437 bab0 b080 942c 942f\n\n00:34:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab3 34ba 3438 bab0 b080 942c 942f\n\n00:34:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab3 34ba 34b9 bab0 b080 942c 942f\n\n00:34:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab3 34ba b5b0 bab0 b080 942c 942f\n\n00:34:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab3 34ba b531 bab0 b080 942c 942f\n\n00:34:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab3 34ba b532 bab0 b080 942c 942f\n\n00:34:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab3 34ba b5b3 bab0 b080 942c 942f\n\n00:34:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab3 34ba b534 bab0 b080 942c 942f\n\n00:34:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab3 34ba b5b5 bab0 b080 942c 942f\n\n00:34:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab3 34ba b5b6 bab0 b080 942c 942f\n\n00:34:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab3 34ba b537 bab0 b080 942c 942f\n\n00:34:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab3 34ba b538 bab0 b080 942c 942f\n\n00:34:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab3 34ba b5b9 bab0 b080 942c 942f\n\n00:35:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab3 b5ba b0b0 bab0 b080 942c 942f\n\n00:35:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab3 b5ba b031 bab0 b080 942c 942f\n\n00:35:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab3 b5ba b032 bab0 b080 942c 942f\n\n00:35:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab3 b5ba b0b3 bab0 b080 942c 942f\n\n00:35:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab3 b5ba b034 bab0 b080 942c 942f\n\n00:35:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab3 b5ba b0b5 bab0 b080 942c 942f\n\n00:35:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab3 b5ba b0b6 bab0 b080 942c 942f\n\n00:35:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab3 b5ba b037 bab0 b080 942c 942f\n\n00:35:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab3 b5ba b038 bab0 b080 942c 942f\n\n00:35:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab3 b5ba b0b9 bab0 b080 942c 942f\n\n00:35:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab3 b5ba 31b0 bab0 b080 942c 942f\n\n00:35:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab3 b5ba 3131 bab0 b080 942c 942f\n\n00:35:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab3 b5ba 3132 bab0 b080 942c 942f\n\n00:35:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab3 b5ba 31b3 bab0 b080 942c 942f\n\n00:35:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab3 b5ba 3134 bab0 b080 942c 942f\n\n00:35:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab3 b5ba 31b5 bab0 b080 942c 942f\n\n00:35:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab3 b5ba 31b6 bab0 b080 942c 942f\n\n00:35:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab3 b5ba 3137 bab0 b080 942c 942f\n\n00:35:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab3 b5ba 3138 bab0 b080 942c 942f\n\n00:35:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab3 b5ba 31b9 bab0 b080 942c 942f\n\n00:35:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab3 b5ba 32b0 bab0 b080 942c 942f\n\n00:35:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab3 b5ba 3231 bab0 b080 942c 942f\n\n00:35:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab3 b5ba 3232 bab0 b080 942c 942f\n\n00:35:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab3 b5ba 32b3 bab0 b080 942c 942f\n\n00:35:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab3 b5ba 3234 bab0 b080 942c 942f\n\n00:35:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab3 b5ba 32b5 bab0 b080 942c 942f\n\n00:35:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab3 b5ba 32b6 bab0 b080 942c 942f\n\n00:35:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab3 b5ba 3237 bab0 b080 942c 942f\n\n00:35:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab3 b5ba 3238 bab0 b080 942c 942f\n\n00:35:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab3 b5ba 32b9 bab0 b080 942c 942f\n\n00:35:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab3 b5ba b3b0 bab0 b080 942c 942f\n\n00:35:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab3 b5ba b331 bab0 b080 942c 942f\n\n00:35:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab3 b5ba b332 bab0 b080 942c 942f\n\n00:35:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab3 b5ba b3b3 bab0 b080 942c 942f\n\n00:35:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab3 b5ba b334 bab0 b080 942c 942f\n\n00:35:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab3 b5ba b3b5 bab0 b080 942c 942f\n\n00:35:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab3 b5ba b3b6 bab0 b080 942c 942f\n\n00:35:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab3 b5ba b337 bab0 b080 942c 942f\n\n00:35:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab3 b5ba b338 bab0 b080 942c 942f\n\n00:35:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab3 b5ba b3b9 bab0 b080 942c 942f\n\n00:35:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab3 b5ba 34b0 bab0 b080 942c 942f\n\n00:35:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab3 b5ba 3431 bab0 b080 942c 942f\n\n00:35:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab3 b5ba 3432 bab0 b080 942c 942f\n\n00:35:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab3 b5ba 34b3 bab0 b080 942c 942f\n\n00:35:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab3 b5ba 3434 bab0 b080 942c 942f\n\n00:35:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab3 b5ba 34b5 bab0 b080 942c 942f\n\n00:35:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab3 b5ba 34b6 bab0 b080 942c 942f\n\n00:35:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab3 b5ba 3437 bab0 b080 942c 942f\n\n00:35:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab3 b5ba 3438 bab0 b080 942c 942f\n\n00:35:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab3 b5ba 34b9 bab0 b080 942c 942f\n\n00:35:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab3 b5ba b5b0 bab0 b080 942c 942f\n\n00:35:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab3 b5ba b531 bab0 b080 942c 942f\n\n00:35:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab3 b5ba b532 bab0 b080 942c 942f\n\n00:35:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab3 b5ba b5b3 bab0 b080 942c 942f\n\n00:35:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab3 b5ba b534 bab0 b080 942c 942f\n\n00:35:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab3 b5ba b5b5 bab0 b080 942c 942f\n\n00:35:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab3 b5ba b5b6 bab0 b080 942c 942f\n\n00:35:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab3 b5ba b537 bab0 b080 942c 942f\n\n00:35:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab3 b5ba b538 bab0 b080 942c 942f\n\n00:35:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab3 b5ba b5b9 bab0 b080 942c 942f\n\n00:36:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab3 b6ba b0b0 bab0 b080 942c 942f\n\n00:36:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab3 b6ba b031 bab0 b080 942c 942f\n\n00:36:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab3 b6ba b032 bab0 b080 942c 942f\n\n00:36:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab3 b6ba b0b3 bab0 b080 942c 942f\n\n00:36:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab3 b6ba b034 bab0 b080 942c 942f\n\n00:36:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab3 b6ba b0b5 bab0 b080 942c 942f\n\n00:36:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab3 b6ba b0b6 bab0 b080 942c 942f\n\n00:36:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab3 b6ba b037 bab0 b080 942c 942f\n\n00:36:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab3 b6ba b038 bab0 b080 942c 942f\n\n00:36:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab3 b6ba b0b9 bab0 b080 942c 942f\n\n00:36:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab3 b6ba 31b0 bab0 b080 942c 942f\n\n00:36:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab3 b6ba 3131 bab0 b080 942c 942f\n\n00:36:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab3 b6ba 3132 bab0 b080 942c 942f\n\n00:36:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab3 b6ba 31b3 bab0 b080 942c 942f\n\n00:36:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab3 b6ba 3134 bab0 b080 942c 942f\n\n00:36:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab3 b6ba 31b5 bab0 b080 942c 942f\n\n00:36:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab3 b6ba 31b6 bab0 b080 942c 942f\n\n00:36:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab3 b6ba 3137 bab0 b080 942c 942f\n\n00:36:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab3 b6ba 3138 bab0 b080 942c 942f\n\n00:36:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab3 b6ba 31b9 bab0 b080 942c 942f\n\n00:36:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab3 b6ba 32b0 bab0 b080 942c 942f\n\n00:36:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab3 b6ba 3231 bab0 b080 942c 942f\n\n00:36:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab3 b6ba 3232 bab0 b080 942c 942f\n\n00:36:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab3 b6ba 32b3 bab0 b080 942c 942f\n\n00:36:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab3 b6ba 3234 bab0 b080 942c 942f\n\n00:36:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab3 b6ba 32b5 bab0 b080 942c 942f\n\n00:36:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab3 b6ba 32b6 bab0 b080 942c 942f\n\n00:36:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab3 b6ba 3237 bab0 b080 942c 942f\n\n00:36:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab3 b6ba 3238 bab0 b080 942c 942f\n\n00:36:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab3 b6ba 32b9 bab0 b080 942c 942f\n\n00:36:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab3 b6ba b3b0 bab0 b080 942c 942f\n\n00:36:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab3 b6ba b331 bab0 b080 942c 942f\n\n00:36:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab3 b6ba b332 bab0 b080 942c 942f\n\n00:36:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab3 b6ba b3b3 bab0 b080 942c 942f\n\n00:36:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab3 b6ba b334 bab0 b080 942c 942f\n\n00:36:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab3 b6ba b3b5 bab0 b080 942c 942f\n\n00:36:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab3 b6ba b3b6 bab0 b080 942c 942f\n\n00:36:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab3 b6ba b337 bab0 b080 942c 942f\n\n00:36:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab3 b6ba b338 bab0 b080 942c 942f\n\n00:36:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab3 b6ba b3b9 bab0 b080 942c 942f\n\n00:36:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab3 b6ba 34b0 bab0 b080 942c 942f\n\n00:36:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab3 b6ba 3431 bab0 b080 942c 942f\n\n00:36:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab3 b6ba 3432 bab0 b080 942c 942f\n\n00:36:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab3 b6ba 34b3 bab0 b080 942c 942f\n\n00:36:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab3 b6ba 3434 bab0 b080 942c 942f\n\n00:36:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab3 b6ba 34b5 bab0 b080 942c 942f\n\n00:36:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab3 b6ba 34b6 bab0 b080 942c 942f\n\n00:36:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab3 b6ba 3437 bab0 b080 942c 942f\n\n00:36:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab3 b6ba 3438 bab0 b080 942c 942f\n\n00:36:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab3 b6ba 34b9 bab0 b080 942c 942f\n\n00:36:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab3 b6ba b5b0 bab0 b080 942c 942f\n\n00:36:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab3 b6ba b531 bab0 b080 942c 942f\n\n00:36:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab3 b6ba b532 bab0 b080 942c 942f\n\n00:36:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab3 b6ba b5b3 bab0 b080 942c 942f\n\n00:36:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab3 b6ba b534 bab0 b080 942c 942f\n\n00:36:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab3 b6ba b5b5 bab0 b080 942c 942f\n\n00:36:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab3 b6ba b5b6 bab0 b080 942c 942f\n\n00:36:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab3 b6ba b537 bab0 b080 942c 942f\n\n00:36:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab3 b6ba b538 bab0 b080 942c 942f\n\n00:36:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab3 b6ba b5b9 bab0 b080 942c 942f\n\n00:37:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab3 37ba b0b0 bab0 b080 942c 942f\n\n00:37:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab3 37ba b031 bab0 b080 942c 942f\n\n00:37:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab3 37ba b032 bab0 b080 942c 942f\n\n00:37:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab3 37ba b0b3 bab0 b080 942c 942f\n\n00:37:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab3 37ba b034 bab0 b080 942c 942f\n\n00:37:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab3 37ba b0b5 bab0 b080 942c 942f\n\n00:37:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab3 37ba b0b6 bab0 b080 942c 942f\n\n00:37:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab3 37ba b037 bab0 b080 942c 942f\n\n00:37:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab3 37ba b038 bab0 b080 942c 942f\n\n00:37:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab3 37ba b0b9 bab0 b080 942c 942f\n\n00:37:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab3 37ba 31b0 bab0 b080 942c 942f\n\n00:37:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab3 37ba 3131 bab0 b080 942c 942f\n\n00:37:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab3 37ba 3132 bab0 b080 942c 942f\n\n00:37:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab3 37ba 31b3 bab0 b080 942c 942f\n\n00:37:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab3 37ba 3134 bab0 b080 942c 942f\n\n00:37:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab3 37ba 31b5 bab0 b080 942c 942f\n\n00:37:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab3 37ba 31b6 bab0 b080 942c 942f\n\n00:37:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab3 37ba 3137 bab0 b080 942c 942f\n\n00:37:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab3 37ba 3138 bab0 b080 942c 942f\n\n00:37:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab3 37ba 31b9 bab0 b080 942c 942f\n\n00:37:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab3 37ba 32b0 bab0 b080 942c 942f\n\n00:37:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab3 37ba 3231 bab0 b080 942c 942f\n\n00:37:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab3 37ba 3232 bab0 b080 942c 942f\n\n00:37:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab3 37ba 32b3 bab0 b080 942c 942f\n\n00:37:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab3 37ba 3234 bab0 b080 942c 942f\n\n00:37:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab3 37ba 32b5 bab0 b080 942c 942f\n\n00:37:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab3 37ba 32b6 bab0 b080 942c 942f\n\n00:37:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab3 37ba 3237 bab0 b080 942c 942f\n\n00:37:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab3 37ba 3238 bab0 b080 942c 942f\n\n00:37:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab3 37ba 32b9 bab0 b080 942c 942f\n\n00:37:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab3 37ba b3b0 bab0 b080 942c 942f\n\n00:37:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab3 37ba b331 bab0 b080 942c 942f\n\n00:37:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab3 37ba b332 bab0 b080 942c 942f\n\n00:37:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab3 37ba b3b3 bab0 b080 942c 942f\n\n00:37:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab3 37ba b334 bab0 b080 942c 942f\n\n00:37:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab3 37ba b3b5 bab0 b080 942c 942f\n\n00:37:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab3 37ba b3b6 bab0 b080 942c 942f\n\n00:37:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab3 37ba b337 bab0 b080 942c 942f\n\n00:37:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab3 37ba b338 bab0 b080 942c 942f\n\n00:37:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab3 37ba b3b9 bab0 b080 942c 942f\n\n00:37:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab3 37ba 34b0 bab0 b080 942c 942f\n\n00:37:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab3 37ba 3431 bab0 b080 942c 942f\n\n00:37:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab3 37ba 3432 bab0 b080 942c 942f\n\n00:37:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab3 37ba 34b3 bab0 b080 942c 942f\n\n00:37:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab3 37ba 3434 bab0 b080 942c 942f\n\n00:37:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab3 37ba 34b5 bab0 b080 942c 942f\n\n00:37:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab3 37ba 34b6 bab0 b080 942c 942f\n\n00:37:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab3 37ba 3437 bab0 b080 942c 942f\n\n00:37:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab3 37ba 3438 bab0 b080 942c 942f\n\n00:37:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab3 37ba 34b9 bab0 b080 942c 942f\n\n00:37:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab3 37ba b5b0 bab0 b080 942c 942f\n\n00:37:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab3 37ba b531 bab0 b080 942c 942f\n\n00:37:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab3 37ba b532 bab0 b080 942c 942f\n\n00:37:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab3 37ba b5b3 bab0 b080 942c 942f\n\n00:37:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab3 37ba b534 bab0 b080 942c 942f\n\n00:37:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab3 37ba b5b5 bab0 b080 942c 942f\n\n00:37:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab3 37ba b5b6 bab0 b080 942c 942f\n\n00:37:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab3 37ba b537 bab0 b080 942c 942f\n\n00:37:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab3 37ba b538 bab0 b080 942c 942f\n\n00:37:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab3 37ba b5b9 bab0 b080 942c 942f\n\n00:38:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab3 38ba b0b0 bab0 b080 942c 942f\n\n00:38:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab3 38ba b031 bab0 b080 942c 942f\n\n00:38:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab3 38ba b032 bab0 b080 942c 942f\n\n00:38:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab3 38ba b0b3 bab0 b080 942c 942f\n\n00:38:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab3 38ba b034 bab0 b080 942c 942f\n\n00:38:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab3 38ba b0b5 bab0 b080 942c 942f\n\n00:38:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab3 38ba b0b6 bab0 b080 942c 942f\n\n00:38:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab3 38ba b037 bab0 b080 942c 942f\n\n00:38:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab3 38ba b038 bab0 b080 942c 942f\n\n00:38:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab3 38ba b0b9 bab0 b080 942c 942f\n\n00:38:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab3 38ba 31b0 bab0 b080 942c 942f\n\n00:38:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab3 38ba 3131 bab0 b080 942c 942f\n\n00:38:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab3 38ba 3132 bab0 b080 942c 942f\n\n00:38:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab3 38ba 31b3 bab0 b080 942c 942f\n\n00:38:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab3 38ba 3134 bab0 b080 942c 942f\n\n00:38:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab3 38ba 31b5 bab0 b080 942c 942f\n\n00:38:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab3 38ba 31b6 bab0 b080 942c 942f\n\n00:38:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab3 38ba 3137 bab0 b080 942c 942f\n\n00:38:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab3 38ba 3138 bab0 b080 942c 942f\n\n00:38:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab3 38ba 31b9 bab0 b080 942c 942f\n\n00:38:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab3 38ba 32b0 bab0 b080 942c 942f\n\n00:38:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab3 38ba 3231 bab0 b080 942c 942f\n\n00:38:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab3 38ba 3232 bab0 b080 942c 942f\n\n00:38:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab3 38ba 32b3 bab0 b080 942c 942f\n\n00:38:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab3 38ba 3234 bab0 b080 942c 942f\n\n00:38:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab3 38ba 32b5 bab0 b080 942c 942f\n\n00:38:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab3 38ba 32b6 bab0 b080 942c 942f\n\n00:38:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab3 38ba 3237 bab0 b080 942c 942f\n\n00:38:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab3 38ba 3238 bab0 b080 942c 942f\n\n00:38:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab3 38ba 32b9 bab0 b080 942c 942f\n\n00:38:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab3 38ba b3b0 bab0 b080 942c 942f\n\n00:38:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab3 38ba b331 bab0 b080 942c 942f\n\n00:38:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab3 38ba b332 bab0 b080 942c 942f\n\n00:38:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab3 38ba b3b3 bab0 b080 942c 942f\n\n00:38:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab3 38ba b334 bab0 b080 942c 942f\n\n00:38:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab3 38ba b3b5 bab0 b080 942c 942f\n\n00:38:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab3 38ba b3b6 bab0 b080 942c 942f\n\n00:38:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab3 38ba b337 bab0 b080 942c 942f\n\n00:38:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab3 38ba b338 bab0 b080 942c 942f\n\n00:38:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab3 38ba b3b9 bab0 b080 942c 942f\n\n00:38:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab3 38ba 34b0 bab0 b080 942c 942f\n\n00:38:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab3 38ba 3431 bab0 b080 942c 942f\n\n00:38:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab3 38ba 3432 bab0 b080 942c 942f\n\n00:38:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab3 38ba 34b3 bab0 b080 942c 942f\n\n00:38:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab3 38ba 3434 bab0 b080 942c 942f\n\n00:38:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab3 38ba 34b5 bab0 b080 942c 942f\n\n00:38:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab3 38ba 34b6 bab0 b080 942c 942f\n\n00:38:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab3 38ba 3437 bab0 b080 942c 942f\n\n00:38:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab3 38ba 3438 bab0 b080 942c 942f\n\n00:38:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab3 38ba 34b9 bab0 b080 942c 942f\n\n00:38:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab3 38ba b5b0 bab0 b080 942c 942f\n\n00:38:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab3 38ba b531 bab0 b080 942c 942f\n\n00:38:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab3 38ba b532 bab0 b080 942c 942f\n\n00:38:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab3 38ba b5b3 bab0 b080 942c 942f\n\n00:38:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab3 38ba b534 bab0 b080 942c 942f\n\n00:38:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab3 38ba b5b5 bab0 b080 942c 942f\n\n00:38:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab3 38ba b5b6 bab0 b080 942c 942f\n\n00:38:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab3 38ba b537 bab0 b080 942c 942f\n\n00:38:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab3 38ba b538 bab0 b080 942c 942f\n\n00:38:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab3 38ba b5b9 bab0 b080 942c 942f\n\n00:39:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab3 b9ba b0b0 bab0 b080 942c 942f\n\n00:39:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab3 b9ba b031 bab0 b080 942c 942f\n\n00:39:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab3 b9ba b032 bab0 b080 942c 942f\n\n00:39:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab3 b9ba b0b3 bab0 b080 942c 942f\n\n00:39:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab3 b9ba b034 bab0 b080 942c 942f\n\n00:39:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab3 b9ba b0b5 bab0 b080 942c 942f\n\n00:39:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab3 b9ba b0b6 bab0 b080 942c 942f\n\n00:39:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab3 b9ba b037 bab0 b080 942c 942f\n\n00:39:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab3 b9ba b038 bab0 b080 942c 942f\n\n00:39:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab3 b9ba b0b9 bab0 b080 942c 942f\n\n00:39:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab3 b9ba 31b0 bab0 b080 942c 942f\n\n00:39:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab3 b9ba 3131 bab0 b080 942c 942f\n\n00:39:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab3 b9ba 3132 bab0 b080 942c 942f\n\n00:39:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab3 b9ba 31b3 bab0 b080 942c 942f\n\n00:39:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab3 b9ba 3134 bab0 b080 942c 942f\n\n00:39:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab3 b9ba 31b5 bab0 b080 942c 942f\n\n00:39:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab3 b9ba 31b6 bab0 b080 942c 942f\n\n00:39:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab3 b9ba 3137 bab0 b080 942c 942f\n\n00:39:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab3 b9ba 3138 bab0 b080 942c 942f\n\n00:39:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab3 b9ba 31b9 bab0 b080 942c 942f\n\n00:39:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab3 b9ba 32b0 bab0 b080 942c 942f\n\n00:39:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab3 b9ba 3231 bab0 b080 942c 942f\n\n00:39:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab3 b9ba 3232 bab0 b080 942c 942f\n\n00:39:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab3 b9ba 32b3 bab0 b080 942c 942f\n\n00:39:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab3 b9ba 3234 bab0 b080 942c 942f\n\n00:39:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab3 b9ba 32b5 bab0 b080 942c 942f\n\n00:39:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab3 b9ba 32b6 bab0 b080 942c 942f\n\n00:39:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab3 b9ba 3237 bab0 b080 942c 942f\n\n00:39:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab3 b9ba 3238 bab0 b080 942c 942f\n\n00:39:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab3 b9ba 32b9 bab0 b080 942c 942f\n\n00:39:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab3 b9ba b3b0 bab0 b080 942c 942f\n\n00:39:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab3 b9ba b331 bab0 b080 942c 942f\n\n00:39:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab3 b9ba b332 bab0 b080 942c 942f\n\n00:39:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab3 b9ba b3b3 bab0 b080 942c 942f\n\n00:39:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab3 b9ba b334 bab0 b080 942c 942f\n\n00:39:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab3 b9ba b3b5 bab0 b080 942c 942f\n\n00:39:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab3 b9ba b3b6 bab0 b080 942c 942f\n\n00:39:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab3 b9ba b337 bab0 b080 942c 942f\n\n00:39:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab3 b9ba b338 bab0 b080 942c 942f\n\n00:39:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab3 b9ba b3b9 bab0 b080 942c 942f\n\n00:39:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab3 b9ba 34b0 bab0 b080 942c 942f\n\n00:39:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab3 b9ba 3431 bab0 b080 942c 942f\n\n00:39:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab3 b9ba 3432 bab0 b080 942c 942f\n\n00:39:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab3 b9ba 34b3 bab0 b080 942c 942f\n\n00:39:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab3 b9ba 3434 bab0 b080 942c 942f\n\n00:39:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab3 b9ba 34b5 bab0 b080 942c 942f\n\n00:39:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab3 b9ba 34b6 bab0 b080 942c 942f\n\n00:39:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab3 b9ba 3437 bab0 b080 942c 942f\n\n00:39:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab3 b9ba 3438 bab0 b080 942c 942f\n\n00:39:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab3 b9ba 34b9 bab0 b080 942c 942f\n\n00:39:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab3 b9ba b5b0 bab0 b080 942c 942f\n\n00:39:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab3 b9ba b531 bab0 b080 942c 942f\n\n00:39:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab3 b9ba b532 bab0 b080 942c 942f\n\n00:39:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab3 b9ba b5b3 bab0 b080 942c 942f\n\n00:39:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab3 b9ba b534 bab0 b080 942c 942f\n\n00:39:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab3 b9ba b5b5 bab0 b080 942c 942f\n\n00:39:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab3 b9ba b5b6 bab0 b080 942c 942f\n\n00:39:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab3 b9ba b537 bab0 b080 942c 942f\n\n00:39:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab3 b9ba b538 bab0 b080 942c 942f\n\n00:39:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab3 b9ba b5b9 bab0 b080 942c 942f\n\n00:40:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba34 b0ba b0b0 bab0 b080 942c 942f\n\n00:40:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba34 b0ba b031 bab0 b080 942c 942f\n\n00:40:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba34 b0ba b032 bab0 b080 942c 942f\n\n00:40:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba34 b0ba b0b3 bab0 b080 942c 942f\n\n00:40:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba34 b0ba b034 bab0 b080 942c 942f\n\n00:40:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba34 b0ba b0b5 bab0 b080 942c 942f\n\n00:40:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba34 b0ba b0b6 bab0 b080 942c 942f\n\n00:40:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba34 b0ba b037 bab0 b080 942c 942f\n\n00:40:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba34 b0ba b038 bab0 b080 942c 942f\n\n00:40:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba34 b0ba b0b9 bab0 b080 942c 942f\n\n00:40:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba34 b0ba 31b0 bab0 b080 942c 942f\n\n00:40:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba34 b0ba 3131 bab0 b080 942c 942f\n\n00:40:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba34 b0ba 3132 bab0 b080 942c 942f\n\n00:40:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba34 b0ba 31b3 bab0 b080 942c 942f\n\n00:40:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba34 b0ba 3134 bab0 b080 942c 942f\n\n00:40:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba34 b0ba 31b5 bab0 b080 942c 942f\n\n00:40:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba34 b0ba 31b6 bab0 b080 942c 942f\n\n00:40:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba34 b0ba 3137 bab0 b080 942c 942f\n\n00:40:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba34 b0ba 3138 bab0 b080 942c 942f\n\n00:40:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba34 b0ba 31b9 bab0 b080 942c 942f\n\n00:40:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba34 b0ba 32b0 bab0 b080 942c 942f\n\n00:40:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba34 b0ba 3231 bab0 b080 942c 942f\n\n00:40:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba34 b0ba 3232 bab0 b080 942c 942f\n\n00:40:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba34 b0ba 32b3 bab0 b080 942c 942f\n\n00:40:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba34 b0ba 3234 bab0 b080 942c 942f\n\n00:40:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba34 b0ba 32b5 bab0 b080 942c 942f\n\n00:40:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba34 b0ba 32b6 bab0 b080 942c 942f\n\n00:40:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba34 b0ba 3237 bab0 b080 942c 942f\n\n00:40:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba34 b0ba 3238 bab0 b080 942c 942f\n\n00:40:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba34 b0ba 32b9 bab0 b080 942c 942f\n\n00:40:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba34 b0ba b3b0 bab0 b080 942c 942f\n\n00:40:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba34 b0ba b331 bab0 b080 942c 942f\n\n00:40:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba34 b0ba b332 bab0 b080 942c 942f\n\n00:40:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba34 b0ba b3b3 bab0 b080 942c 942f\n\n00:40:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba34 b0ba b334 bab0 b080 942c 942f\n\n00:40:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba34 b0ba b3b5 bab0 b080 942c 942f\n\n00:40:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba34 b0ba b3b6 bab0 b080 942c 942f\n\n00:40:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba34 b0ba b337 bab0 b080 942c 942f\n\n00:40:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba34 b0ba b338 bab0 b080 942c 942f\n\n00:40:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba34 b0ba b3b9 bab0 b080 942c 942f\n\n00:40:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba34 b0ba 34b0 bab0 b080 942c 942f\n\n00:40:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba34 b0ba 3431 bab0 b080 942c 942f\n\n00:40:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba34 b0ba 3432 bab0 b080 942c 942f\n\n00:40:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba34 b0ba 34b3 bab0 b080 942c 942f\n\n00:40:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba34 b0ba 3434 bab0 b080 942c 942f\n\n00:40:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba34 b0ba 34b5 bab0 b080 942c 942f\n\n00:40:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba34 b0ba 34b6 bab0 b080 942c 942f\n\n00:40:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba34 b0ba 3437 bab0 b080 942c 942f\n\n00:40:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba34 b0ba 3438 bab0 b080 942c 942f\n\n00:40:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba34 b0ba 34b9 bab0 b080 942c 942f\n\n00:40:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba34 b0ba b5b0 bab0 b080 942c 942f\n\n00:40:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba34 b0ba b531 bab0 b080 942c 942f\n\n00:40:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba34 b0ba b532 bab0 b080 942c 942f\n\n00:40:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba34 b0ba b5b3 bab0 b080 942c 942f\n\n00:40:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba34 b0ba b534 bab0 b080 942c 942f\n\n00:40:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba34 b0ba b5b5 bab0 b080 942c 942f\n\n00:40:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba34 b0ba b5b6 bab0 b080 942c 942f\n\n00:40:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba34 b0ba b537 bab0 b080 942c 942f\n\n00:40:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba34 b0ba b538 bab0 b080 942c 942f\n\n00:40:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba34 b0ba b5b9 bab0 b080 942c 942f\n\n00:41:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba34 31ba b0b0 bab0 b080 942c 942f\n\n00:41:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba34 31ba b031 bab0 b080 942c 942f\n\n00:41:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba34 31ba b032 bab0 b080 942c 942f\n\n00:41:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba34 31ba b0b3 bab0 b080 942c 942f\n\n00:41:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba34 31ba b034 bab0 b080 942c 942f\n\n00:41:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba34 31ba b0b5 bab0 b080 942c 942f\n\n00:41:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba34 31ba b0b6 bab0 b080 942c 942f\n\n00:41:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba34 31ba b037 bab0 b080 942c 942f\n\n00:41:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba34 31ba b038 bab0 b080 942c 942f\n\n00:41:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba34 31ba b0b9 bab0 b080 942c 942f\n\n00:41:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba34 31ba 31b0 bab0 b080 942c 942f\n\n00:41:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba34 31ba 3131 bab0 b080 942c 942f\n\n00:41:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba34 31ba 3132 bab0 b080 942c 942f\n\n00:41:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba34 31ba 31b3 bab0 b080 942c 942f\n\n00:41:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba34 31ba 3134 bab0 b080 942c 942f\n\n00:41:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba34 31ba 31b5 bab0 b080 942c 942f\n\n00:41:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba34 31ba 31b6 bab0 b080 942c 942f\n\n00:41:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba34 31ba 3137 bab0 b080 942c 942f\n\n00:41:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba34 31ba 3138 bab0 b080 942c 942f\n\n00:41:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba34 31ba 31b9 bab0 b080 942c 942f\n\n00:41:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba34 31ba 32b0 bab0 b080 942c 942f\n\n00:41:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba34 31ba 3231 bab0 b080 942c 942f\n\n00:41:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba34 31ba 3232 bab0 b080 942c 942f\n\n00:41:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba34 31ba 32b3 bab0 b080 942c 942f\n\n00:41:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba34 31ba 3234 bab0 b080 942c 942f\n\n00:41:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba34 31ba 32b5 bab0 b080 942c 942f\n\n00:41:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba34 31ba 32b6 bab0 b080 942c 942f\n\n00:41:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba34 31ba 3237 bab0 b080 942c 942f\n\n00:41:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba34 31ba 3238 bab0 b080 942c 942f\n\n00:41:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba34 31ba 32b9 bab0 b080 942c 942f\n\n00:41:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba34 31ba b3b0 bab0 b080 942c 942f\n\n00:41:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba34 31ba b331 bab0 b080 942c 942f\n\n00:41:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba34 31ba b332 bab0 b080 942c 942f\n\n00:41:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba34 31ba b3b3 bab0 b080 942c 942f\n\n00:41:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba34 31ba b334 bab0 b080 942c 942f\n\n00:41:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba34 31ba b3b5 bab0 b080 942c 942f\n\n00:41:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba34 31ba b3b6 bab0 b080 942c 942f\n\n00:41:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba34 31ba b337 bab0 b080 942c 942f\n\n00:41:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba34 31ba b338 bab0 b080 942c 942f\n\n00:41:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba34 31ba b3b9 bab0 b080 942c 942f\n\n00:41:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba34 31ba 34b0 bab0 b080 942c 942f\n\n00:41:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba34 31ba 3431 bab0 b080 942c 942f\n\n00:41:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba34 31ba 3432 bab0 b080 942c 942f\n\n00:41:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba34 31ba 34b3 bab0 b080 942c 942f\n\n00:41:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba34 31ba 3434 bab0 b080 942c 942f\n\n00:41:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba34 31ba 34b5 bab0 b080 942c 942f\n\n00:41:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba34 31ba 34b6 bab0 b080 942c 942f\n\n00:41:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba34 31ba 3437 bab0 b080 942c 942f\n\n00:41:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba34 31ba 3438 bab0 b080 942c 942f\n\n00:41:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba34 31ba 34b9 bab0 b080 942c 942f\n\n00:41:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba34 31ba b5b0 bab0 b080 942c 942f\n\n00:41:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba34 31ba b531 bab0 b080 942c 942f\n\n00:41:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba34 31ba b532 bab0 b080 942c 942f\n\n00:41:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba34 31ba b5b3 bab0 b080 942c 942f\n\n00:41:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba34 31ba b534 bab0 b080 942c 942f\n\n00:41:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba34 31ba b5b5 bab0 b080 942c 942f\n\n00:41:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba34 31ba b5b6 bab0 b080 942c 942f\n\n00:41:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba34 31ba b537 bab0 b080 942c 942f\n\n00:41:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba34 31ba b538 bab0 b080 942c 942f\n\n00:41:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba34 31ba b5b9 bab0 b080 942c 942f\n\n00:42:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba34 32ba b0b0 bab0 b080 942c 942f\n\n00:42:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba34 32ba b031 bab0 b080 942c 942f\n\n00:42:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba34 32ba b032 bab0 b080 942c 942f\n\n00:42:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba34 32ba b0b3 bab0 b080 942c 942f\n\n00:42:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba34 32ba b034 bab0 b080 942c 942f\n\n00:42:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba34 32ba b0b5 bab0 b080 942c 942f\n\n00:42:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba34 32ba b0b6 bab0 b080 942c 942f\n\n00:42:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba34 32ba b037 bab0 b080 942c 942f\n\n00:42:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba34 32ba b038 bab0 b080 942c 942f\n\n00:42:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba34 32ba b0b9 bab0 b080 942c 942f\n\n00:42:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba34 32ba 31b0 bab0 b080 942c 942f\n\n00:42:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba34 32ba 3131 bab0 b080 942c 942f\n\n00:42:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba34 32ba 3132 bab0 b080 942c 942f\n\n00:42:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba34 32ba 31b3 bab0 b080 942c 942f\n\n00:42:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba34 32ba 3134 bab0 b080 942c 942f\n\n00:42:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba34 32ba 31b5 bab0 b080 942c 942f\n\n00:42:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba34 32ba 31b6 bab0 b080 942c 942f\n\n00:42:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba34 32ba 3137 bab0 b080 942c 942f\n\n00:42:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba34 32ba 3138 bab0 b080 942c 942f\n\n00:42:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba34 32ba 31b9 bab0 b080 942c 942f\n\n00:42:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba34 32ba 32b0 bab0 b080 942c 942f\n\n00:42:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba34 32ba 3231 bab0 b080 942c 942f\n\n00:42:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba34 32ba 3232 bab0 b080 942c 942f\n\n00:42:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba34 32ba 32b3 bab0 b080 942c 942f\n\n00:42:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba34 32ba 3234 bab0 b080 942c 942f\n\n00:42:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba34 32ba 32b5 bab0 b080 942c 942f\n\n00:42:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba34 32ba 32b6 bab0 b080 942c 942f\n\n00:42:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba34 32ba 3237 bab0 b080 942c 942f\n\n00:42:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba34 32ba 3238 bab0 b080 942c 942f\n\n00:42:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba34 32ba 32b9 bab0 b080 942c 942f\n\n00:42:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba34 32ba b3b0 bab0 b080 942c 942f\n\n00:42:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba34 32ba b331 bab0 b080 942c 942f\n\n00:42:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba34 32ba b332 bab0 b080 942c 942f\n\n00:42:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba34 32ba b3b3 bab0 b080 942c 942f\n\n00:42:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba34 32ba b334 bab0 b080 942c 942f\n\n00:42:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba34 32ba b3b5 bab0 b080 942c 942f\n\n00:42:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba34 32ba b3b6 bab0 b080 942c 942f\n\n00:42:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba34 32ba b337 bab0 b080 942c 942f\n\n00:42:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba34 32ba b338 bab0 b080 942c 942f\n\n00:42:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba34 32ba b3b9 bab0 b080 942c 942f\n\n00:42:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba34 32ba 34b0 bab0 b080 942c 942f\n\n00:42:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba34 32ba 3431 bab0 b080 942c 942f\n\n00:42:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba34 32ba 3432 bab0 b080 942c 942f\n\n00:42:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba34 32ba 34b3 bab0 b080 942c 942f\n\n00:42:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba34 32ba 3434 bab0 b080 942c 942f\n\n00:42:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba34 32ba 34b5 bab0 b080 942c 942f\n\n00:42:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba34 32ba 34b6 bab0 b080 942c 942f\n\n00:42:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba34 32ba 3437 bab0 b080 942c 942f\n\n00:42:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba34 32ba 3438 bab0 b080 942c 942f\n\n00:42:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba34 32ba 34b9 bab0 b080 942c 942f\n\n00:42:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba34 32ba b5b0 bab0 b080 942c 942f\n\n00:42:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba34 32ba b531 bab0 b080 942c 942f\n\n00:42:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba34 32ba b532 bab0 b080 942c 942f\n\n00:42:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba34 32ba b5b3 bab0 b080 942c 942f\n\n00:42:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba34 32ba b534 bab0 b080 942c 942f\n\n00:42:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba34 32ba b5b5 bab0 b080 942c 942f\n\n00:42:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba34 32ba b5b6 bab0 b080 942c 942f\n\n00:42:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba34 32ba b537 bab0 b080 942c 942f\n\n00:42:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba34 32ba b538 bab0 b080 942c 942f\n\n00:42:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba34 32ba b5b9 bab0 b080 942c 942f\n\n00:43:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba34 b3ba b0b0 bab0 b080 942c 942f\n\n00:43:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba34 b3ba b031 bab0 b080 942c 942f\n\n00:43:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba34 b3ba b032 bab0 b080 942c 942f\n\n00:43:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba34 b3ba b0b3 bab0 b080 942c 942f\n\n00:43:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba34 b3ba b034 bab0 b080 942c 942f\n\n00:43:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba34 b3ba b0b5 bab0 b080 942c 942f\n\n00:43:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba34 b3ba b0b6 bab0 b080 942c 942f\n\n00:43:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba34 b3ba b037 bab0 b080 942c 942f\n\n00:43:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba34 b3ba b038 bab0 b080 942c 942f\n\n00:43:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba34 b3ba b0b9 bab0 b080 942c 942f\n\n00:43:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba34 b3ba 31b0 bab0 b080 942c 942f\n\n00:43:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba34 b3ba 3131 bab0 b080 942c 942f\n\n00:43:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba34 b3ba 3132 bab0 b080 942c 942f\n\n00:43:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba34 b3ba 31b3 bab0 b080 942c 942f\n\n00:43:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba34 b3ba 3134 bab0 b080 942c 942f\n\n00:43:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba34 b3ba 31b5 bab0 b080 942c 942f\n\n00:43:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba34 b3ba 31b6 bab0 b080 942c 942f\n\n00:43:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba34 b3ba 3137 bab0 b080 942c 942f\n\n00:43:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba34 b3ba 3138 bab0 b080 942c 942f\n\n00:43:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba34 b3ba 31b9 bab0 b080 942c 942f\n\n00:43:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba34 b3ba 32b0 bab0 b080 942c 942f\n\n00:43:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba34 b3ba 3231 bab0 b080 942c 942f\n\n00:43:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba34 b3ba 3232 bab0 b080 942c 942f\n\n00:43:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba34 b3ba 32b3 bab0 b080 942c 942f\n\n00:43:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba34 b3ba 3234 bab0 b080 942c 942f\n\n00:43:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba34 b3ba 32b5 bab0 b080 942c 942f\n\n00:43:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba34 b3ba 32b6 bab0 b080 942c 942f\n\n00:43:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba34 b3ba 3237 bab0 b080 942c 942f\n\n00:43:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba34 b3ba 3238 bab0 b080 942c 942f\n\n00:43:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba34 b3ba 32b9 bab0 b080 942c 942f\n\n00:43:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba34 b3ba b3b0 bab0 b080 942c 942f\n\n00:43:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba34 b3ba b331 bab0 b080 942c 942f\n\n00:43:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba34 b3ba b332 bab0 b080 942c 942f\n\n00:43:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba34 b3ba b3b3 bab0 b080 942c 942f\n\n00:43:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba34 b3ba b334 bab0 b080 942c 942f\n\n00:43:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba34 b3ba b3b5 bab0 b080 942c 942f\n\n00:43:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba34 b3ba b3b6 bab0 b080 942c 942f\n\n00:43:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba34 b3ba b337 bab0 b080 942c 942f\n\n00:43:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba34 b3ba b338 bab0 b080 942c 942f\n\n00:43:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba34 b3ba b3b9 bab0 b080 942c 942f\n\n00:43:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba34 b3ba 34b0 bab0 b080 942c 942f\n\n00:43:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba34 b3ba 3431 bab0 b080 942c 942f\n\n00:43:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba34 b3ba 3432 bab0 b080 942c 942f\n\n00:43:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba34 b3ba 34b3 bab0 b080 942c 942f\n\n00:43:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba34 b3ba 3434 bab0 b080 942c 942f\n\n00:43:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba34 b3ba 34b5 bab0 b080 942c 942f\n\n00:43:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba34 b3ba 34b6 bab0 b080 942c 942f\n\n00:43:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba34 b3ba 3437 bab0 b080 942c 942f\n\n00:43:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba34 b3ba 3438 bab0 b080 942c 942f\n\n00:43:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba34 b3ba 34b9 bab0 b080 942c 942f\n\n00:43:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba34 b3ba b5b0 bab0 b080 942c 942f\n\n00:43:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba34 b3ba b531 bab0 b080 942c 942f\n\n00:43:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba34 b3ba b532 bab0 b080 942c 942f\n\n00:43:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba34 b3ba b5b3 bab0 b080 942c 942f\n\n00:43:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba34 b3ba b534 bab0 b080 942c 942f\n\n00:43:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba34 b3ba b5b5 bab0 b080 942c 942f\n\n00:43:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba34 b3ba b5b6 bab0 b080 942c 942f\n\n00:43:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba34 b3ba b537 bab0 b080 942c 942f\n\n00:43:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba34 b3ba b538 bab0 b080 942c 942f\n\n00:43:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba34 b3ba b5b9 bab0 b080 942c 942f\n\n00:44:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba34 34ba b0b0 bab0 b080 942c 942f\n\n00:44:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba34 34ba b031 bab0 b080 942c 942f\n\n00:44:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba34 34ba b032 bab0 b080 942c 942f\n\n00:44:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba34 34ba b0b3 bab0 b080 942c 942f\n\n00:44:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba34 34ba b034 bab0 b080 942c 942f\n\n00:44:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba34 34ba b0b5 bab0 b080 942c 942f\n\n00:44:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba34 34ba b0b6 bab0 b080 942c 942f\n\n00:44:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba34 34ba b037 bab0 b080 942c 942f\n\n00:44:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba34 34ba b038 bab0 b080 942c 942f\n\n00:44:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba34 34ba b0b9 bab0 b080 942c 942f\n\n00:44:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba34 34ba 31b0 bab0 b080 942c 942f\n\n00:44:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba34 34ba 3131 bab0 b080 942c 942f\n\n00:44:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba34 34ba 3132 bab0 b080 942c 942f\n\n00:44:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba34 34ba 31b3 bab0 b080 942c 942f\n\n00:44:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba34 34ba 3134 bab0 b080 942c 942f\n\n00:44:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba34 34ba 31b5 bab0 b080 942c 942f\n\n00:44:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba34 34ba 31b6 bab0 b080 942c 942f\n\n00:44:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba34 34ba 3137 bab0 b080 942c 942f\n\n00:44:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba34 34ba 3138 bab0 b080 942c 942f\n\n00:44:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba34 34ba 31b9 bab0 b080 942c 942f\n\n00:44:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba34 34ba 32b0 bab0 b080 942c 942f\n\n00:44:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba34 34ba 3231 bab0 b080 942c 942f\n\n00:44:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba34 34ba 3232 bab0 b080 942c 942f\n\n00:44:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba34 34ba 32b3 bab0 b080 942c 942f\n\n00:44:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba34 34ba 3234 bab0 b080 942c 942f\n\n00:44:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba34 34ba 32b5 bab0 b080 942c 942f\n\n00:44:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba34 34ba 32b6 bab0 b080 942c 942f\n\n00:44:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba34 34ba 3237 bab0 b080 942c 942f\n\n00:44:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba34 34ba 3238 bab0 b080 942c 942f\n\n00:44:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba34 34ba 32b9 bab0 b080 942c 942f\n\n00:44:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba34 34ba b3b0 bab0 b080 942c 942f\n\n00:44:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba34 34ba b331 bab0 b080 942c 942f\n\n00:44:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba34 34ba b332 bab0 b080 942c 942f\n\n00:44:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba34 34ba b3b3 bab0 b080 942c 942f\n\n00:44:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba34 34ba b334 bab0 b080 942c 942f\n\n00:44:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba34 34ba b3b5 bab0 b080 942c 942f\n\n00:44:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba34 34ba b3b6 bab0 b080 942c 942f\n\n00:44:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba34 34ba b337 bab0 b080 942c 942f\n\n00:44:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba34 34ba b338 bab0 b080 942c 942f\n\n00:44:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba34 34ba b3b9 bab0 b080 942c 942f\n\n00:44:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba34 34ba 34b0 bab0 b080 942c 942f\n\n00:44:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba34 34ba 3431 bab0 b080 942c 942f\n\n00:44:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba34 34ba 3432 bab0 b080 942c 942f\n\n00:44:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba34 34ba 34b3 bab0 b080 942c 942f\n\n00:44:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba34 34ba 3434 bab0 b080 942c 942f\n\n00:44:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba34 34ba 34b5 bab0 b080 942c 942f\n\n00:44:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba34 34ba 34b6 bab0 b080 942c 942f\n\n00:44:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba34 34ba 3437 bab0 b080 942c 942f\n\n00:44:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba34 34ba 3438 bab0 b080 942c 942f\n\n00:44:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba34 34ba 34b9 bab0 b080 942c 942f\n\n00:44:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba34 34ba b5b0 bab0 b080 942c 942f\n\n00:44:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba34 34ba b531 bab0 b080 942c 942f\n\n00:44:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba34 34ba b532 bab0 b080 942c 942f\n\n00:44:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba34 34ba b5b3 bab0 b080 942c 942f\n\n00:44:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba34 34ba b534 bab0 b080 942c 942f\n\n00:44:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba34 34ba b5b5 bab0 b080 942c 942f\n\n00:44:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba34 34ba b5b6 bab0 b080 942c 942f\n\n00:44:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba34 34ba b537 bab0 b080 942c 942f\n\n00:44:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba34 34ba b538 bab0 b080 942c 942f\n\n00:44:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba34 34ba b5b9 bab0 b080 942c 942f\n\n00:45:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba34 b5ba b0b0 bab0 b080 942c 942f\n\n00:45:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba34 b5ba b031 bab0 b080 942c 942f\n\n00:45:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba34 b5ba b032 bab0 b080 942c 942f\n\n00:45:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba34 b5ba b0b3 bab0 b080 942c 942f\n\n00:45:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba34 b5ba b034 bab0 b080 942c 942f\n\n00:45:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba34 b5ba b0b5 bab0 b080 942c 942f\n\n00:45:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba34 b5ba b0b6 bab0 b080 942c 942f\n\n00:45:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba34 b5ba b037 bab0 b080 942c 942f\n\n00:45:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba34 b5ba b038 bab0 b080 942c 942f\n\n00:45:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba34 b5ba b0b9 bab0 b080 942c 942f\n\n00:45:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba34 b5ba 31b0 bab0 b080 942c 942f\n\n00:45:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba34 b5ba 3131 bab0 b080 942c 942f\n\n00:45:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba34 b5ba 3132 bab0 b080 942c 942f\n\n00:45:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba34 b5ba 31b3 bab0 b080 942c 942f\n\n00:45:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba34 b5ba 3134 bab0 b080 942c 942f\n\n00:45:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba34 b5ba 31b5 bab0 b080 942c 942f\n\n00:45:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba34 b5ba 31b6 bab0 b080 942c 942f\n\n00:45:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba34 b5ba 3137 bab0 b080 942c 942f\n\n00:45:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba34 b5ba 3138 bab0 b080 942c 942f\n\n00:45:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba34 b5ba 31b9 bab0 b080 942c 942f\n\n00:45:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba34 b5ba 32b0 bab0 b080 942c 942f\n\n00:45:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba34 b5ba 3231 bab0 b080 942c 942f\n\n00:45:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba34 b5ba 3232 bab0 b080 942c 942f\n\n00:45:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba34 b5ba 32b3 bab0 b080 942c 942f\n\n00:45:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba34 b5ba 3234 bab0 b080 942c 942f\n\n00:45:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba34 b5ba 32b5 bab0 b080 942c 942f\n\n00:45:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba34 b5ba 32b6 bab0 b080 942c 942f\n\n00:45:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba34 b5ba 3237 bab0 b080 942c 942f\n\n00:45:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba34 b5ba 3238 bab0 b080 942c 942f\n\n00:45:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba34 b5ba 32b9 bab0 b080 942c 942f\n\n00:45:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba34 b5ba b3b0 bab0 b080 942c 942f\n\n00:45:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba34 b5ba b331 bab0 b080 942c 942f\n\n00:45:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba34 b5ba b332 bab0 b080 942c 942f\n\n00:45:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba34 b5ba b3b3 bab0 b080 942c 942f\n\n00:45:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba34 b5ba b334 bab0 b080 942c 942f\n\n00:45:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba34 b5ba b3b5 bab0 b080 942c 942f\n\n00:45:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba34 b5ba b3b6 bab0 b080 942c 942f\n\n00:45:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba34 b5ba b337 bab0 b080 942c 942f\n\n00:45:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba34 b5ba b338 bab0 b080 942c 942f\n\n00:45:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba34 b5ba b3b9 bab0 b080 942c 942f\n\n00:45:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba34 b5ba 34b0 bab0 b080 942c 942f\n\n00:45:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba34 b5ba 3431 bab0 b080 942c 942f\n\n00:45:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba34 b5ba 3432 bab0 b080 942c 942f\n\n00:45:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba34 b5ba 34b3 bab0 b080 942c 942f\n\n00:45:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba34 b5ba 3434 bab0 b080 942c 942f\n\n00:45:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba34 b5ba 34b5 bab0 b080 942c 942f\n\n00:45:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba34 b5ba 34b6 bab0 b080 942c 942f\n\n00:45:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba34 b5ba 3437 bab0 b080 942c 942f\n\n00:45:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba34 b5ba 3438 bab0 b080 942c 942f\n\n00:45:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba34 b5ba 34b9 bab0 b080 942c 942f\n\n00:45:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba34 b5ba b5b0 bab0 b080 942c 942f\n\n00:45:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba34 b5ba b531 bab0 b080 942c 942f\n\n00:45:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba34 b5ba b532 bab0 b080 942c 942f\n\n00:45:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba34 b5ba b5b3 bab0 b080 942c 942f\n\n00:45:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba34 b5ba b534 bab0 b080 942c 942f\n\n00:45:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba34 b5ba b5b5 bab0 b080 942c 942f\n\n00:45:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba34 b5ba b5b6 bab0 b080 942c 942f\n\n00:45:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba34 b5ba b537 bab0 b080 942c 942f\n\n00:45:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba34 b5ba b538 bab0 b080 942c 942f\n\n00:45:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba34 b5ba b5b9 bab0 b080 942c 942f\n\n00:46:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba34 b6ba b0b0 bab0 b080 942c 942f\n\n00:46:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba34 b6ba b031 bab0 b080 942c 942f\n\n00:46:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba34 b6ba b032 bab0 b080 942c 942f\n\n00:46:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba34 b6ba b0b3 bab0 b080 942c 942f\n\n00:46:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba34 b6ba b034 bab0 b080 942c 942f\n\n00:46:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba34 b6ba b0b5 bab0 b080 942c 942f\n\n00:46:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba34 b6ba b0b6 bab0 b080 942c 942f\n\n00:46:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba34 b6ba b037 bab0 b080 942c 942f\n\n00:46:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba34 b6ba b038 bab0 b080 942c 942f\n\n00:46:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba34 b6ba b0b9 bab0 b080 942c 942f\n\n00:46:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba34 b6ba 31b0 bab0 b080 942c 942f\n\n00:46:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba34 b6ba 3131 bab0 b080 942c 942f\n\n00:46:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba34 b6ba 3132 bab0 b080 942c 942f\n\n00:46:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba34 b6ba 31b3 bab0 b080 942c 942f\n\n00:46:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba34 b6ba 3134 bab0 b080 942c 942f\n\n00:46:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba34 b6ba 31b5 bab0 b080 942c 942f\n\n00:46:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba34 b6ba 31b6 bab0 b080 942c 942f\n\n00:46:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba34 b6ba 3137 bab0 b080 942c 942f\n\n00:46:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba34 b6ba 3138 bab0 b080 942c 942f\n\n00:46:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba34 b6ba 31b9 bab0 b080 942c 942f\n\n00:46:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba34 b6ba 32b0 bab0 b080 942c 942f\n\n00:46:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba34 b6ba 3231 bab0 b080 942c 942f\n\n00:46:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba34 b6ba 3232 bab0 b080 942c 942f\n\n00:46:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba34 b6ba 32b3 bab0 b080 942c 942f\n\n00:46:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba34 b6ba 3234 bab0 b080 942c 942f\n\n00:46:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba34 b6ba 32b5 bab0 b080 942c 942f\n\n00:46:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba34 b6ba 32b6 bab0 b080 942c 942f\n\n00:46:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba34 b6ba 3237 bab0 b080 942c 942f\n\n00:46:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba34 b6ba 3238 bab0 b080 942c 942f\n\n00:46:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba34 b6ba 32b9 bab0 b080 942c 942f\n\n00:46:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba34 b6ba b3b0 bab0 b080 942c 942f\n\n00:46:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba34 b6ba b331 bab0 b080 942c 942f\n\n00:46:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba34 b6ba b332 bab0 b080 942c 942f\n\n00:46:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba34 b6ba b3b3 bab0 b080 942c 942f\n\n00:46:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba34 b6ba b334 bab0 b080 942c 942f\n\n00:46:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba34 b6ba b3b5 bab0 b080 942c 942f\n\n00:46:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba34 b6ba b3b6 bab0 b080 942c 942f\n\n00:46:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba34 b6ba b337 bab0 b080 942c 942f\n\n00:46:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba34 b6ba b338 bab0 b080 942c 942f\n\n00:46:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba34 b6ba b3b9 bab0 b080 942c 942f\n\n00:46:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba34 b6ba 34b0 bab0 b080 942c 942f\n\n00:46:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba34 b6ba 3431 bab0 b080 942c 942f\n\n00:46:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba34 b6ba 3432 bab0 b080 942c 942f\n\n00:46:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba34 b6ba 34b3 bab0 b080 942c 942f\n\n00:46:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba34 b6ba 3434 bab0 b080 942c 942f\n\n00:46:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba34 b6ba 34b5 bab0 b080 942c 942f\n\n00:46:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba34 b6ba 34b6 bab0 b080 942c 942f\n\n00:46:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba34 b6ba 3437 bab0 b080 942c 942f\n\n00:46:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba34 b6ba 3438 bab0 b080 942c 942f\n\n00:46:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba34 b6ba 34b9 bab0 b080 942c 942f\n\n00:46:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba34 b6ba b5b0 bab0 b080 942c 942f\n\n00:46:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba34 b6ba b531 bab0 b080 942c 942f\n\n00:46:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba34 b6ba b532 bab0 b080 942c 942f\n\n00:46:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba34 b6ba b5b3 bab0 b080 942c 942f\n\n00:46:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba34 b6ba b534 bab0 b080 942c 942f\n\n00:46:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba34 b6ba b5b5 bab0 b080 942c 942f\n\n00:46:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba34 b6ba b5b6 bab0 b080 942c 942f\n\n00:46:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba34 b6ba b537 bab0 b080 942c 942f\n\n00:46:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba34 b6ba b538 bab0 b080 942c 942f\n\n00:46:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba34 b6ba b5b9 bab0 b080 942c 942f\n\n00:47:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba34 37ba b0b0 bab0 b080 942c 942f\n\n00:47:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba34 37ba b031 bab0 b080 942c 942f\n\n00:47:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba34 37ba b032 bab0 b080 942c 942f\n\n00:47:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba34 37ba b0b3 bab0 b080 942c 942f\n\n00:47:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba34 37ba b034 bab0 b080 942c 942f\n\n00:47:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba34 37ba b0b5 bab0 b080 942c 942f\n\n00:47:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba34 37ba b0b6 bab0 b080 942c 942f\n\n00:47:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba34 37ba b037 bab0 b080 942c 942f\n\n00:47:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba34 37ba b038 bab0 b080 942c 942f\n\n00:47:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba34 37ba b0b9 bab0 b080 942c 942f\n\n00:47:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba34 37ba 31b0 bab0 b080 942c 942f\n\n00:47:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba34 37ba 3131 bab0 b080 942c 942f\n\n00:47:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba34 37ba 3132 bab0 b080 942c 942f\n\n00:47:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba34 37ba 31b3 bab0 b080 942c 942f\n\n00:47:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba34 37ba 3134 bab0 b080 942c 942f\n\n00:47:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba34 37ba 31b5 bab0 b080 942c 942f\n\n00:47:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba34 37ba 31b6 bab0 b080 942c 942f\n\n00:47:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba34 37ba 3137 bab0 b080 942c 942f\n\n00:47:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba34 37ba 3138 bab0 b080 942c 942f\n\n00:47:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba34 37ba 31b9 bab0 b080 942c 942f\n\n00:47:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba34 37ba 32b0 bab0 b080 942c 942f\n\n00:47:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba34 37ba 3231 bab0 b080 942c 942f\n\n00:47:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba34 37ba 3232 bab0 b080 942c 942f\n\n00:47:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba34 37ba 32b3 bab0 b080 942c 942f\n\n00:47:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba34 37ba 3234 bab0 b080 942c 942f\n\n00:47:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba34 37ba 32b5 bab0 b080 942c 942f\n\n00:47:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba34 37ba 32b6 bab0 b080 942c 942f\n\n00:47:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba34 37ba 3237 bab0 b080 942c 942f\n\n00:47:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba34 37ba 3238 bab0 b080 942c 942f\n\n00:47:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba34 37ba 32b9 bab0 b080 942c 942f\n\n00:47:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba34 37ba b3b0 bab0 b080 942c 942f\n\n00:47:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba34 37ba b331 bab0 b080 942c 942f\n\n00:47:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba34 37ba b332 bab0 b080 942c 942f\n\n00:47:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba34 37ba b3b3 bab0 b080 942c 942f\n\n00:47:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba34 37ba b334 bab0 b080 942c 942f\n\n00:47:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba34 37ba b3b5 bab0 b080 942c 942f\n\n00:47:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba34 37ba b3b6 bab0 b080 942c 942f\n\n00:47:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba34 37ba b337 bab0 b080 942c 942f\n\n00:47:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba34 37ba b338 bab0 b080 942c 942f\n\n00:47:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba34 37ba b3b9 bab0 b080 942c 942f\n\n00:47:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba34 37ba 34b0 bab0 b080 942c 942f\n\n00:47:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba34 37ba 3431 bab0 b080 942c 942f\n\n00:47:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba34 37ba 3432 bab0 b080 942c 942f\n\n00:47:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba34 37ba 34b3 bab0 b080 942c 942f\n\n00:47:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba34 37ba 3434 bab0 b080 942c 942f\n\n00:47:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba34 37ba 34b5 bab0 b080 942c 942f\n\n00:47:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba34 37ba 34b6 bab0 b080 942c 942f\n\n00:47:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba34 37ba 3437 bab0 b080 942c 942f\n\n00:47:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba34 37ba 3438 bab0 b080 942c 942f\n\n00:47:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba34 37ba 34b9 bab0 b080 942c 942f\n\n00:47:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba34 37ba b5b0 bab0 b080 942c 942f\n\n00:47:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba34 37ba b531 bab0 b080 942c 942f\n\n00:47:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba34 37ba b532 bab0 b080 942c 942f\n\n00:47:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba34 37ba b5b3 bab0 b080 942c 942f\n\n00:47:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba34 37ba b534 bab0 b080 942c 942f\n\n00:47:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba34 37ba b5b5 bab0 b080 942c 942f\n\n00:47:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba34 37ba b5b6 bab0 b080 942c 942f\n\n00:47:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba34 37ba b537 bab0 b080 942c 942f\n\n00:47:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba34 37ba b538 bab0 b080 942c 942f\n\n00:47:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba34 37ba b5b9 bab0 b080 942c 942f\n\n00:48:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba34 38ba b0b0 bab0 b080 942c 942f\n\n00:48:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba34 38ba b031 bab0 b080 942c 942f\n\n00:48:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba34 38ba b032 bab0 b080 942c 942f\n\n00:48:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba34 38ba b0b3 bab0 b080 942c 942f\n\n00:48:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba34 38ba b034 bab0 b080 942c 942f\n\n00:48:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba34 38ba b0b5 bab0 b080 942c 942f\n\n00:48:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba34 38ba b0b6 bab0 b080 942c 942f\n\n00:48:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba34 38ba b037 bab0 b080 942c 942f\n\n00:48:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba34 38ba b038 bab0 b080 942c 942f\n\n00:48:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba34 38ba b0b9 bab0 b080 942c 942f\n\n00:48:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba34 38ba 31b0 bab0 b080 942c 942f\n\n00:48:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba34 38ba 3131 bab0 b080 942c 942f\n\n00:48:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba34 38ba 3132 bab0 b080 942c 942f\n\n00:48:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba34 38ba 31b3 bab0 b080 942c 942f\n\n00:48:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba34 38ba 3134 bab0 b080 942c 942f\n\n00:48:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba34 38ba 31b5 bab0 b080 942c 942f\n\n00:48:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba34 38ba 31b6 bab0 b080 942c 942f\n\n00:48:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba34 38ba 3137 bab0 b080 942c 942f\n\n00:48:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba34 38ba 3138 bab0 b080 942c 942f\n\n00:48:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba34 38ba 31b9 bab0 b080 942c 942f\n\n00:48:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba34 38ba 32b0 bab0 b080 942c 942f\n\n00:48:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba34 38ba 3231 bab0 b080 942c 942f\n\n00:48:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba34 38ba 3232 bab0 b080 942c 942f\n\n00:48:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba34 38ba 32b3 bab0 b080 942c 942f\n\n00:48:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba34 38ba 3234 bab0 b080 942c 942f\n\n00:48:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba34 38ba 32b5 bab0 b080 942c 942f\n\n00:48:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba34 38ba 32b6 bab0 b080 942c 942f\n\n00:48:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba34 38ba 3237 bab0 b080 942c 942f\n\n00:48:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba34 38ba 3238 bab0 b080 942c 942f\n\n00:48:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba34 38ba 32b9 bab0 b080 942c 942f\n\n00:48:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba34 38ba b3b0 bab0 b080 942c 942f\n\n00:48:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba34 38ba b331 bab0 b080 942c 942f\n\n00:48:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba34 38ba b332 bab0 b080 942c 942f\n\n00:48:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba34 38ba b3b3 bab0 b080 942c 942f\n\n00:48:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba34 38ba b334 bab0 b080 942c 942f\n\n00:48:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba34 38ba b3b5 bab0 b080 942c 942f\n\n00:48:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba34 38ba b3b6 bab0 b080 942c 942f\n\n00:48:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba34 38ba b337 bab0 b080 942c 942f\n\n00:48:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba34 38ba b338 bab0 b080 942c 942f\n\n00:48:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba34 38ba b3b9 bab0 b080 942c 942f\n\n00:48:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba34 38ba 34b0 bab0 b080 942c 942f\n\n00:48:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba34 38ba 3431 bab0 b080 942c 942f\n\n00:48:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba34 38ba 3432 bab0 b080 942c 942f\n\n00:48:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba34 38ba 34b3 bab0 b080 942c 942f\n\n00:48:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba34 38ba 3434 bab0 b080 942c 942f\n\n00:48:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba34 38ba 34b5 bab0 b080 942c 942f\n\n00:48:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba34 38ba 34b6 bab0 b080 942c 942f\n\n00:48:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba34 38ba 3437 bab0 b080 942c 942f\n\n00:48:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba34 38ba 3438 bab0 b080 942c 942f\n\n00:48:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba34 38ba 34b9 bab0 b080 942c 942f\n\n00:48:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba34 38ba b5b0 bab0 b080 942c 942f\n\n00:48:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba34 38ba b531 bab0 b080 942c 942f\n\n00:48:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba34 38ba b532 bab0 b080 942c 942f\n\n00:48:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba34 38ba b5b3 bab0 b080 942c 942f\n\n00:48:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba34 38ba b534 bab0 b080 942c 942f\n\n00:48:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba34 38ba b5b5 bab0 b080 942c 942f\n\n00:48:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba34 38ba b5b6 bab0 b080 942c 942f\n\n00:48:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba34 38ba b537 bab0 b080 942c 942f\n\n00:48:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba34 38ba b538 bab0 b080 942c 942f\n\n00:48:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba34 38ba b5b9 bab0 b080 942c 942f\n\n00:49:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba34 b9ba b0b0 bab0 b080 942c 942f\n\n00:49:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba34 b9ba b031 bab0 b080 942c 942f\n\n00:49:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba34 b9ba b032 bab0 b080 942c 942f\n\n00:49:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba34 b9ba b0b3 bab0 b080 942c 942f\n\n00:49:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba34 b9ba b034 bab0 b080 942c 942f\n\n00:49:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba34 b9ba b0b5 bab0 b080 942c 942f\n\n00:49:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba34 b9ba b0b6 bab0 b080 942c 942f\n\n00:49:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba34 b9ba b037 bab0 b080 942c 942f\n\n00:49:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba34 b9ba b038 bab0 b080 942c 942f\n\n00:49:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba34 b9ba b0b9 bab0 b080 942c 942f\n\n00:49:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba34 b9ba 31b0 bab0 b080 942c 942f\n\n00:49:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba34 b9ba 3131 bab0 b080 942c 942f\n\n00:49:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba34 b9ba 3132 bab0 b080 942c 942f\n\n00:49:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba34 b9ba 31b3 bab0 b080 942c 942f\n\n00:49:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba34 b9ba 3134 bab0 b080 942c 942f\n\n00:49:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba34 b9ba 31b5 bab0 b080 942c 942f\n\n00:49:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba34 b9ba 31b6 bab0 b080 942c 942f\n\n00:49:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba34 b9ba 3137 bab0 b080 942c 942f\n\n00:49:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba34 b9ba 3138 bab0 b080 942c 942f\n\n00:49:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba34 b9ba 31b9 bab0 b080 942c 942f\n\n00:49:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 ba34 b9ba 32b0 bab0 b080 942c 942f\n\n00:49:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 ba34 b9ba 3231 bab0 b080 942c 942f\n\n00:49:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 ba34 b9ba 3232 bab0 b080 942c 942f\n\n00:49:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 ba34 b9ba 32b3 bab0 b080 942c 942f\n\n00:49:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 ba34 b9ba 3234 bab0 b080 942c 942f\n\n00:49:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 ba34 b9ba 32b5 bab0 b080 942c 942f\n\n00:49:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 ba34 b9ba 32b6 bab0 b080 942c 942f\n\n00:49:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 ba34 b9ba 3237 bab0 b080 942c 942f\n\n00:49:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 ba34 b9ba 3238 bab0 b080 942c 942f\n\n00:49:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 ba34 b9ba 32b9 bab0 b080 942c 942f\n\n00:49:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 ba34 b9ba b3b0 bab0 b080 942c 942f\n\n00:49:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 ba34 b9ba b331 bab0 b080 942c 942f\n\n00:49:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 ba34 b9ba b332 bab0 b080 942c 942f\n\n00:49:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 ba34 b9ba b3b3 bab0 b080 942c 942f\n\n00:49:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 ba34 b9ba b334 bab0 b080 942c 942f\n\n00:49:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 ba34 b9ba b3b5 bab0 b080 942c 942f\n\n00:49:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 ba34 b9ba b3b6 bab0 b080 942c 942f\n\n00:49:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 ba34 b9ba b337 bab0 b080 942c 942f\n\n00:49:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 ba34 b9ba b338 bab0 b080 942c 942f\n\n00:49:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 ba34 b9ba b3b9 bab0 b080 942c 942f\n\n00:49:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 ba34 b9ba 34b0 bab0 b080 942c 942f\n\n00:49:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 ba34 b9ba 3431 bab0 b080 942c 942f\n\n00:49:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 ba34 b9ba 3432 bab0 b080 942c 942f\n\n00:49:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 ba34 b9ba 34b3 bab0 b080 942c 942f\n\n00:49:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 ba34 b9ba 3434 bab0 b080 942c 942f\n\n00:49:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 ba34 b9ba 34b5 bab0 b080 942c 942f\n\n00:49:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 ba34 b9ba 34b6 bab0 b080 942c 942f\n\n00:49:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 ba34 b9ba 3437 bab0 b080 942c 942f\n\n00:49:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 ba34 b9ba 3438 bab0 b080 942c 942f\n\n00:49:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 ba34 b9ba 34b9 bab0 b080 942c 942f\n\n00:49:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 ba34 b9ba b5b0 bab0 b080 942c 942f\n\n00:49:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 ba34 b9ba b531 bab0 b080 942c 942f\n\n00:49:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 ba34 b9ba b532 bab0 b080 942c 942f\n\n00:49:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 ba34 b9ba b5b3 bab0 b080 942c 942f\n\n00:49:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 ba34 b9ba b534 bab0 b080 942c 942f\n\n00:49:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 ba34 b9ba b5b5 bab0 b080 942c 942f\n\n00:49:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 ba34 b9ba b5b6 bab0 b080 942c 942f\n\n00:49:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 ba34 b9ba b537 bab0 b080 942c 942f\n\n00:49:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 ba34 b9ba b538 bab0 b080 942c 942f\n\n00:49:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 ba34 b9ba b5b9 bab0 b080 942c 942f\n\n00:50:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab5 b0ba b0b0 bab0 b080 942c 942f\n\n00:50:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab5 b0ba b031 bab0 b080 942c 942f\n\n00:50:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab5 b0ba b032 bab0 b080 942c 942f\n\n00:50:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab5 b0ba b0b3 bab0 b080 942c 942f\n\n00:50:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab5 b0ba b034 bab0 b080 942c 942f\n\n00:50:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab5 b0ba b0b5 bab0 b080 942c 942f\n\n00:50:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab5 b0ba b0b6 bab0 b080 942c 942f\n\n00:50:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab5 b0ba b037 bab0 b080 942c 942f\n\n00:50:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab5 b0ba b038 bab0 b080 942c 942f\n\n00:50:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab5 b0ba b0b9 bab0 b080 942c 942f\n\n00:50:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab5 b0ba 31b0 bab0 b080 942c 942f\n\n00:50:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab5 b0ba 3131 bab0 b080 942c 942f\n\n00:50:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab5 b0ba 3132 bab0 b080 942c 942f\n\n00:50:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab5 b0ba 31b3 bab0 b080 942c 942f\n\n00:50:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab5 b0ba 3134 bab0 b080 942c 942f\n\n00:50:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab5 b0ba 31b5 bab0 b080 942c 942f\n\n00:50:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab5 b0ba 31b6 bab0 b080 942c 942f\n\n00:50:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab5 b0ba 3137 bab0 b080 942c 942f\n\n00:50:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab5 b0ba 3138 bab0 b080 942c 942f\n\n00:50:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab5 b0ba 31b9 bab0 b080 942c 942f\n\n00:50:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab5 b0ba 32b0 bab0 b080 942c 942f\n\n00:50:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab5 b0ba 3231 bab0 b080 942c 942f\n\n00:50:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab5 b0ba 3232 bab0 b080 942c 942f\n\n00:50:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab5 b0ba 32b3 bab0 b080 942c 942f\n\n00:50:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab5 b0ba 3234 bab0 b080 942c 942f\n\n00:50:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab5 b0ba 32b5 bab0 b080 942c 942f\n\n00:50:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab5 b0ba 32b6 bab0 b080 942c 942f\n\n00:50:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab5 b0ba 3237 bab0 b080 942c 942f\n\n00:50:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab5 b0ba 3238 bab0 b080 942c 942f\n\n00:50:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab5 b0ba 32b9 bab0 b080 942c 942f\n\n00:50:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab5 b0ba b3b0 bab0 b080 942c 942f\n\n00:50:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab5 b0ba b331 bab0 b080 942c 942f\n\n00:50:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab5 b0ba b332 bab0 b080 942c 942f\n\n00:50:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab5 b0ba b3b3 bab0 b080 942c 942f\n\n00:50:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab5 b0ba b334 bab0 b080 942c 942f\n\n00:50:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab5 b0ba b3b5 bab0 b080 942c 942f\n\n00:50:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab5 b0ba b3b6 bab0 b080 942c 942f\n\n00:50:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab5 b0ba b337 bab0 b080 942c 942f\n\n00:50:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab5 b0ba b338 bab0 b080 942c 942f\n\n00:50:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab5 b0ba b3b9 bab0 b080 942c 942f\n\n00:50:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab5 b0ba 34b0 bab0 b080 942c 942f\n\n00:50:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab5 b0ba 3431 bab0 b080 942c 942f\n\n00:50:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab5 b0ba 3432 bab0 b080 942c 942f\n\n00:50:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab5 b0ba 34b3 bab0 b080 942c 942f\n\n00:50:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab5 b0ba 3434 bab0 b080 942c 942f\n\n00:50:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab5 b0ba 34b5 bab0 b080 942c 942f\n\n00:50:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab5 b0ba 34b6 bab0 b080 942c 942f\n\n00:50:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab5 b0ba 3437 bab0 b080 942c 942f\n\n00:50:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab5 b0ba 3438 bab0 b080 942c 942f\n\n00:50:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab5 b0ba 34b9 bab0 b080 942c 942f\n\n00:50:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab5 b0ba b5b0 bab0 b080 942c 942f\n\n00:50:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab5 b0ba b531 bab0 b080 942c 942f\n\n00:50:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab5 b0ba b532 bab0 b080 942c 942f\n\n00:50:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab5 b0ba b5b3 bab0 b080 942c 942f\n\n00:50:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab5 b0ba b534 bab0 b080 942c 942f\n\n00:50:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab5 b0ba b5b5 bab0 b080 942c 942f\n\n00:50:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab5 b0ba b5b6 bab0 b080 942c 942f\n\n00:50:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab5 b0ba b537 bab0 b080 942c 942f\n\n00:50:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab5 b0ba b538 bab0 b080 942c 942f\n\n00:50:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab5 b0ba b5b9 bab0 b080 942c 942f\n\n00:51:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab5 31ba b0b0 bab0 b080 942c 942f\n\n00:51:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab5 31ba b031 bab0 b080 942c 942f\n\n00:51:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab5 31ba b032 bab0 b080 942c 942f\n\n00:51:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab5 31ba b0b3 bab0 b080 942c 942f\n\n00:51:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab5 31ba b034 bab0 b080 942c 942f\n\n00:51:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab5 31ba b0b5 bab0 b080 942c 942f\n\n00:51:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab5 31ba b0b6 bab0 b080 942c 942f\n\n00:51:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab5 31ba b037 bab0 b080 942c 942f\n\n00:51:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab5 31ba b038 bab0 b080 942c 942f\n\n00:51:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab5 31ba b0b9 bab0 b080 942c 942f\n\n00:51:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab5 31ba 31b0 bab0 b080 942c 942f\n\n00:51:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab5 31ba 3131 bab0 b080 942c 942f\n\n00:51:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab5 31ba 3132 bab0 b080 942c 942f\n\n00:51:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab5 31ba 31b3 bab0 b080 942c 942f\n\n00:51:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab5 31ba 3134 bab0 b080 942c 942f\n\n00:51:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab5 31ba 31b5 bab0 b080 942c 942f\n\n00:51:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab5 31ba 31b6 bab0 b080 942c 942f\n\n00:51:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab5 31ba 3137 bab0 b080 942c 942f\n\n00:51:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab5 31ba 3138 bab0 b080 942c 942f\n\n00:51:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab5 31ba 31b9 bab0 b080 942c 942f\n\n00:51:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab5 31ba 32b0 bab0 b080 942c 942f\n\n00:51:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab5 31ba 3231 bab0 b080 942c 942f\n\n00:51:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab5 31ba 3232 bab0 b080 942c 942f\n\n00:51:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab5 31ba 32b3 bab0 b080 942c 942f\n\n00:51:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab5 31ba 3234 bab0 b080 942c 942f\n\n00:51:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab5 31ba 32b5 bab0 b080 942c 942f\n\n00:51:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab5 31ba 32b6 bab0 b080 942c 942f\n\n00:51:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab5 31ba 3237 bab0 b080 942c 942f\n\n00:51:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab5 31ba 3238 bab0 b080 942c 942f\n\n00:51:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab5 31ba 32b9 bab0 b080 942c 942f\n\n00:51:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab5 31ba b3b0 bab0 b080 942c 942f\n\n00:51:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab5 31ba b331 bab0 b080 942c 942f\n\n00:51:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab5 31ba b332 bab0 b080 942c 942f\n\n00:51:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab5 31ba b3b3 bab0 b080 942c 942f\n\n00:51:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab5 31ba b334 bab0 b080 942c 942f\n\n00:51:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab5 31ba b3b5 bab0 b080 942c 942f\n\n00:51:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab5 31ba b3b6 bab0 b080 942c 942f\n\n00:51:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab5 31ba b337 bab0 b080 942c 942f\n\n00:51:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab5 31ba b338 bab0 b080 942c 942f\n\n00:51:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab5 31ba b3b9 bab0 b080 942c 942f\n\n00:51:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab5 31ba 34b0 bab0 b080 942c 942f\n\n00:51:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab5 31ba 3431 bab0 b080 942c 942f\n\n00:51:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab5 31ba 3432 bab0 b080 942c 942f\n\n00:51:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab5 31ba 34b3 bab0 b080 942c 942f\n\n00:51:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab5 31ba 3434 bab0 b080 942c 942f\n\n00:51:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab5 31ba 34b5 bab0 b080 942c 942f\n\n00:51:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab5 31ba 34b6 bab0 b080 942c 942f\n\n00:51:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab5 31ba 3437 bab0 b080 942c 942f\n\n00:51:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab5 31ba 3438 bab0 b080 942c 942f\n\n00:51:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab5 31ba 34b9 bab0 b080 942c 942f\n\n00:51:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab5 31ba b5b0 bab0 b080 942c 942f\n\n00:51:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab5 31ba b531 bab0 b080 942c 942f\n\n00:51:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab5 31ba b532 bab0 b080 942c 942f\n\n00:51:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab5 31ba b5b3 bab0 b080 942c 942f\n\n00:51:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab5 31ba b534 bab0 b080 942c 942f\n\n00:51:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab5 31ba b5b5 bab0 b080 942c 942f\n\n00:51:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab5 31ba b5b6 bab0 b080 942c 942f\n\n00:51:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab5 31ba b537 bab0 b080 942c 942f\n\n00:51:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab5 31ba b538 bab0 b080 942c 942f\n\n00:51:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab5 31ba b5b9 bab0 b080 942c 942f\n\n00:52:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab5 32ba b0b0 bab0 b080 942c 942f\n\n00:52:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab5 32ba b031 bab0 b080 942c 942f\n\n00:52:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab5 32ba b032 bab0 b080 942c 942f\n\n00:52:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab5 32ba b0b3 bab0 b080 942c 942f\n\n00:52:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab5 32ba b034 bab0 b080 942c 942f\n\n00:52:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab5 32ba b0b5 bab0 b080 942c 942f\n\n00:52:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab5 32ba b0b6 bab0 b080 942c 942f\n\n00:52:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab5 32ba b037 bab0 b080 942c 942f\n\n00:52:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab5 32ba b038 bab0 b080 942c 942f\n\n00:52:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab5 32ba b0b9 bab0 b080 942c 942f\n\n00:52:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab5 32ba 31b0 bab0 b080 942c 942f\n\n00:52:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab5 32ba 3131 bab0 b080 942c 942f\n\n00:52:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab5 32ba 3132 bab0 b080 942c 942f\n\n00:52:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab5 32ba 31b3 bab0 b080 942c 942f\n\n00:52:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab5 32ba 3134 bab0 b080 942c 942f\n\n00:52:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab5 32ba 31b5 bab0 b080 942c 942f\n\n00:52:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab5 32ba 31b6 bab0 b080 942c 942f\n\n00:52:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab5 32ba 3137 bab0 b080 942c 942f\n\n00:52:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab5 32ba 3138 bab0 b080 942c 942f\n\n00:52:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab5 32ba 31b9 bab0 b080 942c 942f\n\n00:52:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab5 32ba 32b0 bab0 b080 942c 942f\n\n00:52:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab5 32ba 3231 bab0 b080 942c 942f\n\n00:52:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab5 32ba 3232 bab0 b080 942c 942f\n\n00:52:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab5 32ba 32b3 bab0 b080 942c 942f\n\n00:52:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab5 32ba 3234 bab0 b080 942c 942f\n\n00:52:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab5 32ba 32b5 bab0 b080 942c 942f\n\n00:52:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab5 32ba 32b6 bab0 b080 942c 942f\n\n00:52:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab5 32ba 3237 bab0 b080 942c 942f\n\n00:52:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab5 32ba 3238 bab0 b080 942c 942f\n\n00:52:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab5 32ba 32b9 bab0 b080 942c 942f\n\n00:52:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab5 32ba b3b0 bab0 b080 942c 942f\n\n00:52:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab5 32ba b331 bab0 b080 942c 942f\n\n00:52:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab5 32ba b332 bab0 b080 942c 942f\n\n00:52:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab5 32ba b3b3 bab0 b080 942c 942f\n\n00:52:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab5 32ba b334 bab0 b080 942c 942f\n\n00:52:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab5 32ba b3b5 bab0 b080 942c 942f\n\n00:52:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab5 32ba b3b6 bab0 b080 942c 942f\n\n00:52:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab5 32ba b337 bab0 b080 942c 942f\n\n00:52:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab5 32ba b338 bab0 b080 942c 942f\n\n00:52:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab5 32ba b3b9 bab0 b080 942c 942f\n\n00:52:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab5 32ba 34b0 bab0 b080 942c 942f\n\n00:52:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab5 32ba 3431 bab0 b080 942c 942f\n\n00:52:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab5 32ba 3432 bab0 b080 942c 942f\n\n00:52:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab5 32ba 34b3 bab0 b080 942c 942f\n\n00:52:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab5 32ba 3434 bab0 b080 942c 942f\n\n00:52:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab5 32ba 34b5 bab0 b080 942c 942f\n\n00:52:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab5 32ba 34b6 bab0 b080 942c 942f\n\n00:52:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab5 32ba 3437 bab0 b080 942c 942f\n\n00:52:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab5 32ba 3438 bab0 b080 942c 942f\n\n00:52:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab5 32ba 34b9 bab0 b080 942c 942f\n\n00:52:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab5 32ba b5b0 bab0 b080 942c 942f\n\n00:52:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab5 32ba b531 bab0 b080 942c 942f\n\n00:52:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab5 32ba b532 bab0 b080 942c 942f\n\n00:52:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab5 32ba b5b3 bab0 b080 942c 942f\n\n00:52:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab5 32ba b534 bab0 b080 942c 942f\n\n00:52:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab5 32ba b5b5 bab0 b080 942c 942f\n\n00:52:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab5 32ba b5b6 bab0 b080 942c 942f\n\n00:52:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab5 32ba b537 bab0 b080 942c 942f\n\n00:52:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab5 32ba b538 bab0 b080 942c 942f\n\n00:52:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab5 32ba b5b9 bab0 b080 942c 942f\n\n00:53:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab5 b3ba b0b0 bab0 b080 942c 942f\n\n00:53:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab5 b3ba b031 bab0 b080 942c 942f\n\n00:53:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab5 b3ba b032 bab0 b080 942c 942f\n\n00:53:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab5 b3ba b0b3 bab0 b080 942c 942f\n\n00:53:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab5 b3ba b034 bab0 b080 942c 942f\n\n00:53:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab5 b3ba b0b5 bab0 b080 942c 942f\n\n00:53:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab5 b3ba b0b6 bab0 b080 942c 942f\n\n00:53:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab5 b3ba b037 bab0 b080 942c 942f\n\n00:53:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab5 b3ba b038 bab0 b080 942c 942f\n\n00:53:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab5 b3ba b0b9 bab0 b080 942c 942f\n\n00:53:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab5 b3ba 31b0 bab0 b080 942c 942f\n\n00:53:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab5 b3ba 3131 bab0 b080 942c 942f\n\n00:53:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab5 b3ba 3132 bab0 b080 942c 942f\n\n00:53:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab5 b3ba 31b3 bab0 b080 942c 942f\n\n00:53:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab5 b3ba 3134 bab0 b080 942c 942f\n\n00:53:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab5 b3ba 31b5 bab0 b080 942c 942f\n\n00:53:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab5 b3ba 31b6 bab0 b080 942c 942f\n\n00:53:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab5 b3ba 3137 bab0 b080 942c 942f\n\n00:53:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab5 b3ba 3138 bab0 b080 942c 942f\n\n00:53:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab5 b3ba 31b9 bab0 b080 942c 942f\n\n00:53:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab5 b3ba 32b0 bab0 b080 942c 942f\n\n00:53:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab5 b3ba 3231 bab0 b080 942c 942f\n\n00:53:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab5 b3ba 3232 bab0 b080 942c 942f\n\n00:53:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab5 b3ba 32b3 bab0 b080 942c 942f\n\n00:53:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab5 b3ba 3234 bab0 b080 942c 942f\n\n00:53:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab5 b3ba 32b5 bab0 b080 942c 942f\n\n00:53:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab5 b3ba 32b6 bab0 b080 942c 942f\n\n00:53:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab5 b3ba 3237 bab0 b080 942c 942f\n\n00:53:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab5 b3ba 3238 bab0 b080 942c 942f\n\n00:53:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab5 b3ba 32b9 bab0 b080 942c 942f\n\n00:53:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab5 b3ba b3b0 bab0 b080 942c 942f\n\n00:53:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab5 b3ba b331 bab0 b080 942c 942f\n\n00:53:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab5 b3ba b332 bab0 b080 942c 942f\n\n00:53:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab5 b3ba b3b3 bab0 b080 942c 942f\n\n00:53:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab5 b3ba b334 bab0 b080 942c 942f\n\n00:53:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab5 b3ba b3b5 bab0 b080 942c 942f\n\n00:53:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab5 b3ba b3b6 bab0 b080 942c 942f\n\n00:53:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab5 b3ba b337 bab0 b080 942c 942f\n\n00:53:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab5 b3ba b338 bab0 b080 942c 942f\n\n00:53:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab5 b3ba b3b9 bab0 b080 942c 942f\n\n00:53:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab5 b3ba 34b0 bab0 b080 942c 942f\n\n00:53:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab5 b3ba 3431 bab0 b080 942c 942f\n\n00:53:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab5 b3ba 3432 bab0 b080 942c 942f\n\n00:53:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab5 b3ba 34b3 bab0 b080 942c 942f\n\n00:53:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab5 b3ba 3434 bab0 b080 942c 942f\n\n00:53:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab5 b3ba 34b5 bab0 b080 942c 942f\n\n00:53:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab5 b3ba 34b6 bab0 b080 942c 942f\n\n00:53:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab5 b3ba 3437 bab0 b080 942c 942f\n\n00:53:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab5 b3ba 3438 bab0 b080 942c 942f\n\n00:53:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab5 b3ba 34b9 bab0 b080 942c 942f\n\n00:53:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab5 b3ba b5b0 bab0 b080 942c 942f\n\n00:53:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab5 b3ba b531 bab0 b080 942c 942f\n\n00:53:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab5 b3ba b532 bab0 b080 942c 942f\n\n00:53:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab5 b3ba b5b3 bab0 b080 942c 942f\n\n00:53:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab5 b3ba b534 bab0 b080 942c 942f\n\n00:53:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab5 b3ba b5b5 bab0 b080 942c 942f\n\n00:53:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab5 b3ba b5b6 bab0 b080 942c 942f\n\n00:53:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab5 b3ba b537 bab0 b080 942c 942f\n\n00:53:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab5 b3ba b538 bab0 b080 942c 942f\n\n00:53:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab5 b3ba b5b9 bab0 b080 942c 942f\n\n00:54:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab5 34ba b0b0 bab0 b080 942c 942f\n\n00:54:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab5 34ba b031 bab0 b080 942c 942f\n\n00:54:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab5 34ba b032 bab0 b080 942c 942f\n\n00:54:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab5 34ba b0b3 bab0 b080 942c 942f\n\n00:54:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab5 34ba b034 bab0 b080 942c 942f\n\n00:54:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab5 34ba b0b5 bab0 b080 942c 942f\n\n00:54:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab5 34ba b0b6 bab0 b080 942c 942f\n\n00:54:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab5 34ba b037 bab0 b080 942c 942f\n\n00:54:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab5 34ba b038 bab0 b080 942c 942f\n\n00:54:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab5 34ba b0b9 bab0 b080 942c 942f\n\n00:54:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab5 34ba 31b0 bab0 b080 942c 942f\n\n00:54:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab5 34ba 3131 bab0 b080 942c 942f\n\n00:54:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab5 34ba 3132 bab0 b080 942c 942f\n\n00:54:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab5 34ba 31b3 bab0 b080 942c 942f\n\n00:54:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab5 34ba 3134 bab0 b080 942c 942f\n\n00:54:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab5 34ba 31b5 bab0 b080 942c 942f\n\n00:54:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab5 34ba 31b6 bab0 b080 942c 942f\n\n00:54:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab5 34ba 3137 bab0 b080 942c 942f\n\n00:54:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab5 34ba 3138 bab0 b080 942c 942f\n\n00:54:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab5 34ba 31b9 bab0 b080 942c 942f\n\n00:54:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab5 34ba 32b0 bab0 b080 942c 942f\n\n00:54:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab5 34ba 3231 bab0 b080 942c 942f\n\n00:54:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab5 34ba 3232 bab0 b080 942c 942f\n\n00:54:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab5 34ba 32b3 bab0 b080 942c 942f\n\n00:54:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab5 34ba 3234 bab0 b080 942c 942f\n\n00:54:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab5 34ba 32b5 bab0 b080 942c 942f\n\n00:54:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab5 34ba 32b6 bab0 b080 942c 942f\n\n00:54:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab5 34ba 3237 bab0 b080 942c 942f\n\n00:54:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab5 34ba 3238 bab0 b080 942c 942f\n\n00:54:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab5 34ba 32b9 bab0 b080 942c 942f\n\n00:54:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab5 34ba b3b0 bab0 b080 942c 942f\n\n00:54:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab5 34ba b331 bab0 b080 942c 942f\n\n00:54:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab5 34ba b332 bab0 b080 942c 942f\n\n00:54:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab5 34ba b3b3 bab0 b080 942c 942f\n\n00:54:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab5 34ba b334 bab0 b080 942c 942f\n\n00:54:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab5 34ba b3b5 bab0 b080 942c 942f\n\n00:54:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab5 34ba b3b6 bab0 b080 942c 942f\n\n00:54:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab5 34ba b337 bab0 b080 942c 942f\n\n00:54:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab5 34ba b338 bab0 b080 942c 942f\n\n00:54:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab5 34ba b3b9 bab0 b080 942c 942f\n\n00:54:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab5 34ba 34b0 bab0 b080 942c 942f\n\n00:54:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab5 34ba 3431 bab0 b080 942c 942f\n\n00:54:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab5 34ba 3432 bab0 b080 942c 942f\n\n00:54:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab5 34ba 34b3 bab0 b080 942c 942f\n\n00:54:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab5 34ba 3434 bab0 b080 942c 942f\n\n00:54:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab5 34ba 34b5 bab0 b080 942c 942f\n\n00:54:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab5 34ba 34b6 bab0 b080 942c 942f\n\n00:54:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab5 34ba 3437 bab0 b080 942c 942f\n\n00:54:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab5 34ba 3438 bab0 b080 942c 942f\n\n00:54:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab5 34ba 34b9 bab0 b080 942c 942f\n\n00:54:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab5 34ba b5b0 bab0 b080 942c 942f\n\n00:54:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab5 34ba b531 bab0 b080 942c 942f\n\n00:54:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab5 34ba b532 bab0 b080 942c 942f\n\n00:54:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab5 34ba b5b3 bab0 b080 942c 942f\n\n00:54:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab5 34ba b534 bab0 b080 942c 942f\n\n00:54:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab5 34ba b5b5 bab0 b080 942c 942f\n\n00:54:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab5 34ba b5b6 bab0 b080 942c 942f\n\n00:54:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab5 34ba b537 bab0 b080 942c 942f\n\n00:54:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab5 34ba b538 bab0 b080 942c 942f\n\n00:54:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab5 34ba b5b9 bab0 b080 942c 942f\n\n00:55:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab5 b5ba b0b0 bab0 b080 942c 942f\n\n00:55:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab5 b5ba b031 bab0 b080 942c 942f\n\n00:55:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab5 b5ba b032 bab0 b080 942c 942f\n\n00:55:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab5 b5ba b0b3 bab0 b080 942c 942f\n\n00:55:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab5 b5ba b034 bab0 b080 942c 942f\n\n00:55:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab5 b5ba b0b5 bab0 b080 942c 942f\n\n00:55:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab5 b5ba b0b6 bab0 b080 942c 942f\n\n00:55:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab5 b5ba b037 bab0 b080 942c 942f\n\n00:55:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab5 b5ba b038 bab0 b080 942c 942f\n\n00:55:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab5 b5ba b0b9 bab0 b080 942c 942f\n\n00:55:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab5 b5ba 31b0 bab0 b080 942c 942f\n\n00:55:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab5 b5ba 3131 bab0 b080 942c 942f\n\n00:55:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab5 b5ba 3132 bab0 b080 942c 942f\n\n00:55:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab5 b5ba 31b3 bab0 b080 942c 942f\n\n00:55:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab5 b5ba 3134 bab0 b080 942c 942f\n\n00:55:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab5 b5ba 31b5 bab0 b080 942c 942f\n\n00:55:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab5 b5ba 31b6 bab0 b080 942c 942f\n\n00:55:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab5 b5ba 3137 bab0 b080 942c 942f\n\n00:55:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab5 b5ba 3138 bab0 b080 942c 942f\n\n00:55:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab5 b5ba 31b9 bab0 b080 942c 942f\n\n00:55:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab5 b5ba 32b0 bab0 b080 942c 942f\n\n00:55:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab5 b5ba 3231 bab0 b080 942c 942f\n\n00:55:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab5 b5ba 3232 bab0 b080 942c 942f\n\n00:55:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab5 b5ba 32b3 bab0 b080 942c 942f\n\n00:55:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab5 b5ba 3234 bab0 b080 942c 942f\n\n00:55:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab5 b5ba 32b5 bab0 b080 942c 942f\n\n00:55:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab5 b5ba 32b6 bab0 b080 942c 942f\n\n00:55:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab5 b5ba 3237 bab0 b080 942c 942f\n\n00:55:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab5 b5ba 3238 bab0 b080 942c 942f\n\n00:55:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab5 b5ba 32b9 bab0 b080 942c 942f\n\n00:55:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab5 b5ba b3b0 bab0 b080 942c 942f\n\n00:55:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab5 b5ba b331 bab0 b080 942c 942f\n\n00:55:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab5 b5ba b332 bab0 b080 942c 942f\n\n00:55:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab5 b5ba b3b3 bab0 b080 942c 942f\n\n00:55:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab5 b5ba b334 bab0 b080 942c 942f\n\n00:55:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab5 b5ba b3b5 bab0 b080 942c 942f\n\n00:55:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab5 b5ba b3b6 bab0 b080 942c 942f\n\n00:55:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab5 b5ba b337 bab0 b080 942c 942f\n\n00:55:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab5 b5ba b338 bab0 b080 942c 942f\n\n00:55:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab5 b5ba b3b9 bab0 b080 942c 942f\n\n00:55:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab5 b5ba 34b0 bab0 b080 942c 942f\n\n00:55:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab5 b5ba 3431 bab0 b080 942c 942f\n\n00:55:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab5 b5ba 3432 bab0 b080 942c 942f\n\n00:55:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab5 b5ba 34b3 bab0 b080 942c 942f\n\n00:55:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab5 b5ba 3434 bab0 b080 942c 942f\n\n00:55:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab5 b5ba 34b5 bab0 b080 942c 942f\n\n00:55:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab5 b5ba 34b6 bab0 b080 942c 942f\n\n00:55:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab5 b5ba 3437 bab0 b080 942c 942f\n\n00:55:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab5 b5ba 3438 bab0 b080 942c 942f\n\n00:55:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab5 b5ba 34b9 bab0 b080 942c 942f\n\n00:55:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab5 b5ba b5b0 bab0 b080 942c 942f\n\n00:55:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab5 b5ba b531 bab0 b080 942c 942f\n\n00:55:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab5 b5ba b532 bab0 b080 942c 942f\n\n00:55:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab5 b5ba b5b3 bab0 b080 942c 942f\n\n00:55:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab5 b5ba b534 bab0 b080 942c 942f\n\n00:55:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab5 b5ba b5b5 bab0 b080 942c 942f\n\n00:55:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab5 b5ba b5b6 bab0 b080 942c 942f\n\n00:55:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab5 b5ba b537 bab0 b080 942c 942f\n\n00:55:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab5 b5ba b538 bab0 b080 942c 942f\n\n00:55:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab5 b5ba b5b9 bab0 b080 942c 942f\n\n00:56:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab5 b6ba b0b0 bab0 b080 942c 942f\n\n00:56:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab5 b6ba b031 bab0 b080 942c 942f\n\n00:56:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab5 b6ba b032 bab0 b080 942c 942f\n\n00:56:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab5 b6ba b0b3 bab0 b080 942c 942f\n\n00:56:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab5 b6ba b034 bab0 b080 942c 942f\n\n00:56:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab5 b6ba b0b5 bab0 b080 942c 942f\n\n00:56:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab5 b6ba b0b6 bab0 b080 942c 942f\n\n00:56:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab5 b6ba b037 bab0 b080 942c 942f\n\n00:56:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab5 b6ba b038 bab0 b080 942c 942f\n\n00:56:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab5 b6ba b0b9 bab0 b080 942c 942f\n\n00:56:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab5 b6ba 31b0 bab0 b080 942c 942f\n\n00:56:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab5 b6ba 3131 bab0 b080 942c 942f\n\n00:56:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab5 b6ba 3132 bab0 b080 942c 942f\n\n00:56:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab5 b6ba 31b3 bab0 b080 942c 942f\n\n00:56:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab5 b6ba 3134 bab0 b080 942c 942f\n\n00:56:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab5 b6ba 31b5 bab0 b080 942c 942f\n\n00:56:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab5 b6ba 31b6 bab0 b080 942c 942f\n\n00:56:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab5 b6ba 3137 bab0 b080 942c 942f\n\n00:56:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab5 b6ba 3138 bab0 b080 942c 942f\n\n00:56:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab5 b6ba 31b9 bab0 b080 942c 942f\n\n00:56:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab5 b6ba 32b0 bab0 b080 942c 942f\n\n00:56:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab5 b6ba 3231 bab0 b080 942c 942f\n\n00:56:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab5 b6ba 3232 bab0 b080 942c 942f\n\n00:56:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab5 b6ba 32b3 bab0 b080 942c 942f\n\n00:56:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab5 b6ba 3234 bab0 b080 942c 942f\n\n00:56:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab5 b6ba 32b5 bab0 b080 942c 942f\n\n00:56:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab5 b6ba 32b6 bab0 b080 942c 942f\n\n00:56:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab5 b6ba 3237 bab0 b080 942c 942f\n\n00:56:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab5 b6ba 3238 bab0 b080 942c 942f\n\n00:56:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab5 b6ba 32b9 bab0 b080 942c 942f\n\n00:56:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab5 b6ba b3b0 bab0 b080 942c 942f\n\n00:56:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab5 b6ba b331 bab0 b080 942c 942f\n\n00:56:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab5 b6ba b332 bab0 b080 942c 942f\n\n00:56:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab5 b6ba b3b3 bab0 b080 942c 942f\n\n00:56:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab5 b6ba b334 bab0 b080 942c 942f\n\n00:56:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab5 b6ba b3b5 bab0 b080 942c 942f\n\n00:56:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab5 b6ba b3b6 bab0 b080 942c 942f\n\n00:56:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab5 b6ba b337 bab0 b080 942c 942f\n\n00:56:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab5 b6ba b338 bab0 b080 942c 942f\n\n00:56:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab5 b6ba b3b9 bab0 b080 942c 942f\n\n00:56:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab5 b6ba 34b0 bab0 b080 942c 942f\n\n00:56:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab5 b6ba 3431 bab0 b080 942c 942f\n\n00:56:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab5 b6ba 3432 bab0 b080 942c 942f\n\n00:56:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab5 b6ba 34b3 bab0 b080 942c 942f\n\n00:56:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab5 b6ba 3434 bab0 b080 942c 942f\n\n00:56:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab5 b6ba 34b5 bab0 b080 942c 942f\n\n00:56:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab5 b6ba 34b6 bab0 b080 942c 942f\n\n00:56:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab5 b6ba 3437 bab0 b080 942c 942f\n\n00:56:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab5 b6ba 3438 bab0 b080 942c 942f\n\n00:56:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab5 b6ba 34b9 bab0 b080 942c 942f\n\n00:56:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab5 b6ba b5b0 bab0 b080 942c 942f\n\n00:56:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab5 b6ba b531 bab0 b080 942c 942f\n\n00:56:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab5 b6ba b532 bab0 b080 942c 942f\n\n00:56:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab5 b6ba b5b3 bab0 b080 942c 942f\n\n00:56:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab5 b6ba b534 bab0 b080 942c 942f\n\n00:56:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab5 b6ba b5b5 bab0 b080 942c 942f\n\n00:56:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab5 b6ba b5b6 bab0 b080 942c 942f\n\n00:56:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab5 b6ba b537 bab0 b080 942c 942f\n\n00:56:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab5 b6ba b538 bab0 b080 942c 942f\n\n00:56:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab5 b6ba b5b9 bab0 b080 942c 942f\n\n00:57:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab5 37ba b0b0 bab0 b080 942c 942f\n\n00:57:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab5 37ba b031 bab0 b080 942c 942f\n\n00:57:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab5 37ba b032 bab0 b080 942c 942f\n\n00:57:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab5 37ba b0b3 bab0 b080 942c 942f\n\n00:57:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab5 37ba b034 bab0 b080 942c 942f\n\n00:57:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab5 37ba b0b5 bab0 b080 942c 942f\n\n00:57:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab5 37ba b0b6 bab0 b080 942c 942f\n\n00:57:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab5 37ba b037 bab0 b080 942c 942f\n\n00:57:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab5 37ba b038 bab0 b080 942c 942f\n\n00:57:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab5 37ba b0b9 bab0 b080 942c 942f\n\n00:57:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab5 37ba 31b0 bab0 b080 942c 942f\n\n00:57:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab5 37ba 3131 bab0 b080 942c 942f\n\n00:57:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab5 37ba 3132 bab0 b080 942c 942f\n\n00:57:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab5 37ba 31b3 bab0 b080 942c 942f\n\n00:57:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab5 37ba 3134 bab0 b080 942c 942f\n\n00:57:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab5 37ba 31b5 bab0 b080 942c 942f\n\n00:57:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab5 37ba 31b6 bab0 b080 942c 942f\n\n00:57:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab5 37ba 3137 bab0 b080 942c 942f\n\n00:57:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab5 37ba 3138 bab0 b080 942c 942f\n\n00:57:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab5 37ba 31b9 bab0 b080 942c 942f\n\n00:57:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab5 37ba 32b0 bab0 b080 942c 942f\n\n00:57:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab5 37ba 3231 bab0 b080 942c 942f\n\n00:57:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab5 37ba 3232 bab0 b080 942c 942f\n\n00:57:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab5 37ba 32b3 bab0 b080 942c 942f\n\n00:57:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab5 37ba 3234 bab0 b080 942c 942f\n\n00:57:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab5 37ba 32b5 bab0 b080 942c 942f\n\n00:57:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab5 37ba 32b6 bab0 b080 942c 942f\n\n00:57:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab5 37ba 3237 bab0 b080 942c 942f\n\n00:57:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab5 37ba 3238 bab0 b080 942c 942f\n\n00:57:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab5 37ba 32b9 bab0 b080 942c 942f\n\n00:57:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab5 37ba b3b0 bab0 b080 942c 942f\n\n00:57:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab5 37ba b331 bab0 b080 942c 942f\n\n00:57:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab5 37ba b332 bab0 b080 942c 942f\n\n00:57:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab5 37ba b3b3 bab0 b080 942c 942f\n\n00:57:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab5 37ba b334 bab0 b080 942c 942f\n\n00:57:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab5 37ba b3b5 bab0 b080 942c 942f\n\n00:57:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab5 37ba b3b6 bab0 b080 942c 942f\n\n00:57:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab5 37ba b337 bab0 b080 942c 942f\n\n00:57:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab5 37ba b338 bab0 b080 942c 942f\n\n00:57:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab5 37ba b3b9 bab0 b080 942c 942f\n\n00:57:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab5 37ba 34b0 bab0 b080 942c 942f\n\n00:57:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab5 37ba 3431 bab0 b080 942c 942f\n\n00:57:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab5 37ba 3432 bab0 b080 942c 942f\n\n00:57:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab5 37ba 34b3 bab0 b080 942c 942f\n\n00:57:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab5 37ba 3434 bab0 b080 942c 942f\n\n00:57:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab5 37ba 34b5 bab0 b080 942c 942f\n\n00:57:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab5 37ba 34b6 bab0 b080 942c 942f\n\n00:57:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab5 37ba 3437 bab0 b080 942c 942f\n\n00:57:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab5 37ba 3438 bab0 b080 942c 942f\n\n00:57:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab5 37ba 34b9 bab0 b080 942c 942f\n\n00:57:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab5 37ba b5b0 bab0 b080 942c 942f\n\n00:57:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab5 37ba b531 bab0 b080 942c 942f\n\n00:57:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab5 37ba b532 bab0 b080 942c 942f\n\n00:57:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab5 37ba b5b3 bab0 b080 942c 942f\n\n00:57:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab5 37ba b534 bab0 b080 942c 942f\n\n00:57:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab5 37ba b5b5 bab0 b080 942c 942f\n\n00:57:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab5 37ba b5b6 bab0 b080 942c 942f\n\n00:57:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab5 37ba b537 bab0 b080 942c 942f\n\n00:57:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab5 37ba b538 bab0 b080 942c 942f\n\n00:57:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab5 37ba b5b9 bab0 b080 942c 942f\n\n00:58:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab5 38ba b0b0 bab0 b080 942c 942f\n\n00:58:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab5 38ba b031 bab0 b080 942c 942f\n\n00:58:02:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab5 38ba b032 bab0 b080 942c 942f\n\n00:58:03:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab5 38ba b0b3 bab0 b080 942c 942f\n\n00:58:04:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab5 38ba b034 bab0 b080 942c 942f\n\n00:58:05:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab5 38ba b0b5 bab0 b080 942c 942f\n\n00:58:06:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab5 38ba b0b6 bab0 b080 942c 942f\n\n00:58:07:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab5 38ba b037 bab0 b080 942c 942f\n\n00:58:08:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab5 38ba b038 bab0 b080 942c 942f\n\n00:58:09:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab5 38ba b0b9 bab0 b080 942c 942f\n\n00:58:10:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab5 38ba 31b0 bab0 b080 942c 942f\n\n00:58:11:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab5 38ba 3131 bab0 b080 942c 942f\n\n00:58:12:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab5 38ba 3132 bab0 b080 942c 942f\n\n00:58:13:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab5 38ba 31b3 bab0 b080 942c 942f\n\n00:58:14:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab5 38ba 3134 bab0 b080 942c 942f\n\n00:58:15:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab5 38ba 31b5 bab0 b080 942c 942f\n\n00:58:16:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab5 38ba 31b6 bab0 b080 942c 942f\n\n00:58:17:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab5 38ba 3137 bab0 b080 942c 942f\n\n00:58:18:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab5 38ba 3138 bab0 b080 942c 942f\n\n00:58:19:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab5 38ba 31b9 bab0 b080 942c 942f\n\n00:58:20:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab5 38ba 32b0 bab0 b080 942c 942f\n\n00:58:21:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab5 38ba 3231 bab0 b080 942c 942f\n\n00:58:22:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab5 38ba 3232 bab0 b080 942c 942f\n\n00:58:23:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab5 38ba 32b3 bab0 b080 942c 942f\n\n00:58:24:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab5 38ba 3234 bab0 b080 942c 942f\n\n00:58:25:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab5 38ba 32b5 bab0 b080 942c 942f\n\n00:58:26:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab5 38ba 32b6 bab0 b080 942c 942f\n\n00:58:27:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab5 38ba 3237 bab0 b080 942c 942f\n\n00:58:28:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab5 38ba 3238 bab0 b080 942c 942f\n\n00:58:29:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab5 38ba 32b9 bab0 b080 942c 942f\n\n00:58:30:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab5 38ba b3b0 bab0 b080 942c 942f\n\n00:58:31:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab5 38ba b331 bab0 b080 942c 942f\n\n00:58:32:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab5 38ba b332 bab0 b080 942c 942f\n\n00:58:33:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab5 38ba b3b3 bab0 b080 942c 942f\n\n00:58:34:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab5 38ba b334 bab0 b080 942c 942f\n\n00:58:35:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab5 38ba b3b5 bab0 b080 942c 942f\n\n00:58:36:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab5 38ba b3b6 bab0 b080 942c 942f\n\n00:58:37:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab5 38ba b337 bab0 b080 942c 942f\n\n00:58:38:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab5 38ba b338 bab0 b080 942c 942f\n\n00:58:39:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab5 38ba b3b9 bab0 b080 942c 942f\n\n00:58:40:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab5 38ba 34b0 bab0 b080 942c 942f\n\n00:58:41:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab5 38ba 3431 bab0 b080 942c 942f\n\n00:58:42:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab5 38ba 3432 bab0 b080 942c 942f\n\n00:58:43:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab5 38ba 34b3 bab0 b080 942c 942f\n\n00:58:44:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab5 38ba 3434 bab0 b080 942c 942f\n\n00:58:45:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab5 38ba 34b5 bab0 b080 942c 942f\n\n00:58:46:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab5 38ba 34b6 bab0 b080 942c 942f\n\n00:58:47:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab5 38ba 3437 bab0 b080 942c 942f\n\n00:58:48:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab5 38ba 3438 bab0 b080 942c 942f\n\n00:58:49:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab5 38ba 34b9 bab0 b080 942c 942f\n\n00:58:50:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab5 38ba b5b0 bab0 b080 942c 942f\n\n00:58:51:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab5 38ba b531 bab0 b080 942c 942f\n\n00:58:52:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab5 38ba b532 bab0 b080 942c 942f\n\n00:58:53:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab5 38ba b5b3 bab0 b080 942c 942f\n\n00:58:54:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab5 38ba b534 bab0 b080 942c 942f\n\n00:58:55:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab5 38ba b5b5 bab0 b080 942c 942f\n\n00:58:56:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab5 38ba b5b6 bab0 b080 942c 942f\n\n00:58:57:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab5 38ba b537 bab0 b080 942c 942f\n\n00:58:58:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab5 38ba b538 bab0 b080 942c 942f\n\n00:58:59:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab5 38ba b5b9 bab0 b080 942c 942f\n\n00:59:00:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab5 b9ba b0b0 bab0 b080 942c 942f\n\n00:59:01:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab5 b9ba b031 bab0 b080 942c 942f\n\n00:59:02:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab5 b9ba b032 bab0 b080 942c 942f\n\n00:59:03:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab5 b9ba b0b3 bab0 b080 942c 942f\n\n00:59:04:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab5 b9ba b034 bab0 b080 942c 942f\n\n00:59:05:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab5 b9ba b0b5 bab0 b080 942c 942f\n\n00:59:06:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab5 b9ba b0b6 bab0 b080 942c 942f\n\n00:59:07:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab5 b9ba b037 bab0 b080 942c 942f\n\n00:59:08:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab5 b9ba b038 bab0 b080 942c 942f\n\n00:59:09:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab5 b9ba b0b9 bab0 b080 942c 942f\n\n00:59:10:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab5 b9ba 31b0 bab0 b080 942c 942f\n\n00:59:11:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab5 b9ba 3131 bab0 b080 942c 942f\n\n00:59:12:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab5 b9ba 3132 bab0 b080 942c 942f\n\n00:59:13:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab5 b9ba 31b3 bab0 b080 942c 942f\n\n00:59:14:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab5 b9ba 3134 bab0 b080 942c 942f\n\n00:59:15:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab5 b9ba 31b5 bab0 b080 942c 942f\n\n00:59:16:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab5 b9ba 31b6 bab0 b080 942c 942f\n\n00:59:17:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab5 b9ba 3137 bab0 b080 942c 942f\n\n00:59:18:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab5 b9ba 3138 bab0 b080 942c 942f\n\n00:59:19:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab5 b9ba 31b9 bab0 b080 942c 942f\n\n00:59:20:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab5 b9ba 32b0 bab0 b080 942c 942f\n\n00:59:21:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab5 b9ba 3231 bab0 b080 942c 942f\n\n00:59:22:00 9420 94ae 92c4 e56e 67ba 91b9 b0b0 bab5 b9ba 3232 bab0 b080 942c 942f\n\n00:59:23:00 9420 94ae 92e6 e56e 67ba 91b9 b0b0 bab5 b9ba 32b3 bab0 b080 942c 942f\n\n00:59:24:00 9420 94ae 15c8 e56e 67ba 91b9 b0b0 bab5 b9ba 3234 bab0 b080 942c 942f\n\n00:59:25:00 9420 94ae 97ea e56e 67ba 91b9 b0b0 bab5 b9ba 32b5 bab0 b080 942c 942f\n\n00:59:26:00 9420 94ae 104c e56e 67ba 91b9 b0b0 bab5 b9ba 32b6 bab0 b080 942c 942f\n\n00:59:27:00 9420 94ae 13ce e56e 67ba 91b9 b0b0 bab5 b9ba 3237 bab0 b080 942c 942f\n\n00:59:28:00 9420 94ae 13e0 e56e 67ba 91b9 b0b0 bab5 b9ba 3238 bab0 b080 942c 942f\n\n00:59:29:00 9420 94ae 94c2 e56e 67ba 91b9 b0b0 bab5 b9ba 32b9 bab0 b080 942c 942f\n\n00:59:30:00 9420 94ae 91c4 e56e 67ba 91b9 b0b0 bab5 b9ba b3b0 bab0 b080 942c 942f\n\n00:59:31:00 9420 94ae 91e6 e56e 67ba 91b9 b0b0 bab5 b9ba b331 bab0 b080 942c 942f\n\n00:59:32:00 9420 94ae 92c8 e56e 67ba 91b9 b0b0 bab5 b9ba b332 bab0 b080 942c 942f\n\n00:59:33:00 9420 94ae 92ea e56e 67ba 91b9 b0b0 bab5 b9ba b3b3 bab0 b080 942c 942f\n\n00:59:34:00 9420 94ae 154c e56e 67ba 91b9 b0b0 bab5 b9ba b334 bab0 b080 942c 942f\n\n00:59:35:00 9420 94ae 976e e56e 67ba 91b9 b0b0 bab5 b9ba b3b5 bab0 b080 942c 942f\n\n00:59:36:00 9420 94ae 1040 e56e 67ba 91b9 b0b0 bab5 b9ba b3b6 bab0 b080 942c 942f\n\n00:59:37:00 9420 94ae 13c2 e56e 67ba 91b9 b0b0 bab5 b9ba b337 bab0 b080 942c 942f\n\n00:59:38:00 9420 94ae 1364 e56e 67ba 91b9 b0b0 bab5 b9ba b338 bab0 b080 942c 942f\n\n00:59:39:00 9420 94ae 9446 e56e 67ba 91b9 b0b0 bab5 b9ba b3b9 bab0 b080 942c 942f\n\n00:59:40:00 9420 94ae 91c8 e56e 67ba 91b9 b0b0 bab5 b9ba 34b0 bab0 b080 942c 942f\n\n00:59:41:00 9420 94ae 91ea e56e 67ba 91b9 b0b0 bab5 b9ba 3431 bab0 b080 942c 942f\n\n00:59:42:00 9420 94ae 924c e56e 67ba 91b9 b0b0 bab5 b9ba 3432 bab0 b080 942c 942f\n\n00:59:43:00 9420 94ae 926e e56e 67ba 91b9 b0b0 bab5 b9ba 34b3 bab0 b080 942c 942f\n\n00:59:44:00 9420 94ae 1540 e56e 67ba 91b9 b0b0 bab5 b9ba 3434 bab0 b080 942c 942f\n\n00:59:45:00 9420 94ae 9762 e56e 67ba 91b9 b0b0 bab5 b9ba 34b5 bab0 b080 942c 942f\n\n00:59:46:00 9420 94ae 10c4 e56e 67ba 91b9 b0b0 bab5 b9ba 34b6 bab0 b080 942c 942f\n\n00:59:47:00 9420 94ae 1346 e56e 67ba 91b9 b0b0 bab5 b9ba 3437 bab0 b080 942c 942f\n\n00:59:48:00 9420 94ae 1368 e56e 67ba 91b9 b0b0 bab5 b9ba 3438 bab0 b080 942c 942f\n\n00:59:49:00 9420 94ae 944a e56e 67ba 91b9 b0b0 bab5 b9ba 34b9 bab0 b080 942c 942f\n\n00:59:50:00 9420 94ae 914c e56e 67ba 91b9 b0b0 bab5 b9ba b5b0 bab0 b080 942c 942f\n\n00:59:51:00 9420 94ae 916e e56e 67ba 91b9 b0b0 bab5 b9ba b531 bab0 b080 942c 942f\n\n00:59:52:00 9420 94ae 9240 e56e 67ba 91b9 b0b0 bab5 b9ba b532 bab0 b080 942c 942f\n\n00:59:53:00 9420 94ae 9262 e56e 67ba 91b9 b0b0 bab5 b9ba b5b3 bab0 b080 942c 942f\n\n00:59:54:00 9420 94ae 15c4 e56e 67ba 91b9 b0b0 bab5 b9ba b534 bab0 b080 942c 942f\n\n00:59:55:00 9420 94ae 97e6 e56e 67ba 91b9 b0b0 bab5 b9ba b5b5 bab0 b080 942c 942f\n\n00:59:56:00 9420 94ae 10c8 e56e 67ba 91b9 b0b0 bab5 b9ba b5b6 bab0 b080 942c 942f\n\n00:59:57:00 9420 94ae 134a e56e 67ba 91b9 b0b0 bab5 b9ba b537 bab0 b080 942c 942f\n\n00:59:58:00 9420 94ae 13ec e56e 67ba 91b9 b0b0 bab5 b9ba b538 bab0 b080 942c 942f\n\n00:59:59:00 9420 94ae 94ce e56e 67ba 91b9 b0b0 bab5 b9ba b5b9 bab0 b080 942c 942f\n"
  },
  {
    "path": "dashlivesim/cc_inserter/hour_swe.scc",
    "content": "Scenarist_SCC V1.0\n\n00:00:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab0 b0ba b0b0 bab0 b080 942c 942f\n\n00:00:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab0 b0ba b031 bab0 b080 942c 942f\n\n00:00:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab0 b0ba b032 bab0 b080 942c 942f\n\n00:00:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab0 b0ba b0b3 bab0 b080 942c 942f\n\n00:00:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab0 b0ba b034 bab0 b080 942c 942f\n\n00:00:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab0 b0ba b0b5 bab0 b080 942c 942f\n\n00:00:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab0 b0ba b0b6 bab0 b080 942c 942f\n\n00:00:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab0 b0ba b037 bab0 b080 942c 942f\n\n00:00:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab0 b0ba b038 bab0 b080 942c 942f\n\n00:00:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab0 b0ba b0b9 bab0 b080 942c 942f\n\n00:00:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab0 b0ba 31b0 bab0 b080 942c 942f\n\n00:00:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab0 b0ba 3131 bab0 b080 942c 942f\n\n00:00:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab0 b0ba 3132 bab0 b080 942c 942f\n\n00:00:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab0 b0ba 31b3 bab0 b080 942c 942f\n\n00:00:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab0 b0ba 3134 bab0 b080 942c 942f\n\n00:00:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab0 b0ba 31b5 bab0 b080 942c 942f\n\n00:00:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab0 b0ba 31b6 bab0 b080 942c 942f\n\n00:00:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab0 b0ba 3137 bab0 b080 942c 942f\n\n00:00:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab0 b0ba 3138 bab0 b080 942c 942f\n\n00:00:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab0 b0ba 31b9 bab0 b080 942c 942f\n\n00:00:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab0 b0ba 32b0 bab0 b080 942c 942f\n\n00:00:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab0 b0ba 3231 bab0 b080 942c 942f\n\n00:00:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab0 b0ba 3232 bab0 b080 942c 942f\n\n00:00:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab0 b0ba 32b3 bab0 b080 942c 942f\n\n00:00:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab0 b0ba 3234 bab0 b080 942c 942f\n\n00:00:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab0 b0ba 32b5 bab0 b080 942c 942f\n\n00:00:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab0 b0ba 32b6 bab0 b080 942c 942f\n\n00:00:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab0 b0ba 3237 bab0 b080 942c 942f\n\n00:00:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab0 b0ba 3238 bab0 b080 942c 942f\n\n00:00:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab0 b0ba 32b9 bab0 b080 942c 942f\n\n00:00:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab0 b0ba b3b0 bab0 b080 942c 942f\n\n00:00:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab0 b0ba b331 bab0 b080 942c 942f\n\n00:00:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab0 b0ba b332 bab0 b080 942c 942f\n\n00:00:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab0 b0ba b3b3 bab0 b080 942c 942f\n\n00:00:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab0 b0ba b334 bab0 b080 942c 942f\n\n00:00:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab0 b0ba b3b5 bab0 b080 942c 942f\n\n00:00:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab0 b0ba b3b6 bab0 b080 942c 942f\n\n00:00:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab0 b0ba b337 bab0 b080 942c 942f\n\n00:00:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab0 b0ba b338 bab0 b080 942c 942f\n\n00:00:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab0 b0ba b3b9 bab0 b080 942c 942f\n\n00:00:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab0 b0ba 34b0 bab0 b080 942c 942f\n\n00:00:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab0 b0ba 3431 bab0 b080 942c 942f\n\n00:00:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab0 b0ba 3432 bab0 b080 942c 942f\n\n00:00:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab0 b0ba 34b3 bab0 b080 942c 942f\n\n00:00:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab0 b0ba 3434 bab0 b080 942c 942f\n\n00:00:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab0 b0ba 34b5 bab0 b080 942c 942f\n\n00:00:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab0 b0ba 34b6 bab0 b080 942c 942f\n\n00:00:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab0 b0ba 3437 bab0 b080 942c 942f\n\n00:00:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab0 b0ba 3438 bab0 b080 942c 942f\n\n00:00:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab0 b0ba 34b9 bab0 b080 942c 942f\n\n00:00:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab0 b0ba b5b0 bab0 b080 942c 942f\n\n00:00:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab0 b0ba b531 bab0 b080 942c 942f\n\n00:00:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab0 b0ba b532 bab0 b080 942c 942f\n\n00:00:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab0 b0ba b5b3 bab0 b080 942c 942f\n\n00:00:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab0 b0ba b534 bab0 b080 942c 942f\n\n00:00:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab0 b0ba b5b5 bab0 b080 942c 942f\n\n00:00:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab0 b0ba b5b6 bab0 b080 942c 942f\n\n00:00:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab0 b0ba b537 bab0 b080 942c 942f\n\n00:00:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab0 b0ba b538 bab0 b080 942c 942f\n\n00:00:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab0 b0ba b5b9 bab0 b080 942c 942f\n\n00:01:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab0 31ba b0b0 bab0 b080 942c 942f\n\n00:01:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab0 31ba b031 bab0 b080 942c 942f\n\n00:01:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab0 31ba b032 bab0 b080 942c 942f\n\n00:01:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab0 31ba b0b3 bab0 b080 942c 942f\n\n00:01:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab0 31ba b034 bab0 b080 942c 942f\n\n00:01:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab0 31ba b0b5 bab0 b080 942c 942f\n\n00:01:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab0 31ba b0b6 bab0 b080 942c 942f\n\n00:01:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab0 31ba b037 bab0 b080 942c 942f\n\n00:01:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab0 31ba b038 bab0 b080 942c 942f\n\n00:01:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab0 31ba b0b9 bab0 b080 942c 942f\n\n00:01:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab0 31ba 31b0 bab0 b080 942c 942f\n\n00:01:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab0 31ba 3131 bab0 b080 942c 942f\n\n00:01:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab0 31ba 3132 bab0 b080 942c 942f\n\n00:01:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab0 31ba 31b3 bab0 b080 942c 942f\n\n00:01:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab0 31ba 3134 bab0 b080 942c 942f\n\n00:01:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab0 31ba 31b5 bab0 b080 942c 942f\n\n00:01:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab0 31ba 31b6 bab0 b080 942c 942f\n\n00:01:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab0 31ba 3137 bab0 b080 942c 942f\n\n00:01:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab0 31ba 3138 bab0 b080 942c 942f\n\n00:01:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab0 31ba 31b9 bab0 b080 942c 942f\n\n00:01:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab0 31ba 32b0 bab0 b080 942c 942f\n\n00:01:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab0 31ba 3231 bab0 b080 942c 942f\n\n00:01:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab0 31ba 3232 bab0 b080 942c 942f\n\n00:01:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab0 31ba 32b3 bab0 b080 942c 942f\n\n00:01:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab0 31ba 3234 bab0 b080 942c 942f\n\n00:01:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab0 31ba 32b5 bab0 b080 942c 942f\n\n00:01:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab0 31ba 32b6 bab0 b080 942c 942f\n\n00:01:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab0 31ba 3237 bab0 b080 942c 942f\n\n00:01:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab0 31ba 3238 bab0 b080 942c 942f\n\n00:01:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab0 31ba 32b9 bab0 b080 942c 942f\n\n00:01:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab0 31ba b3b0 bab0 b080 942c 942f\n\n00:01:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab0 31ba b331 bab0 b080 942c 942f\n\n00:01:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab0 31ba b332 bab0 b080 942c 942f\n\n00:01:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab0 31ba b3b3 bab0 b080 942c 942f\n\n00:01:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab0 31ba b334 bab0 b080 942c 942f\n\n00:01:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab0 31ba b3b5 bab0 b080 942c 942f\n\n00:01:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab0 31ba b3b6 bab0 b080 942c 942f\n\n00:01:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab0 31ba b337 bab0 b080 942c 942f\n\n00:01:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab0 31ba b338 bab0 b080 942c 942f\n\n00:01:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab0 31ba b3b9 bab0 b080 942c 942f\n\n00:01:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab0 31ba 34b0 bab0 b080 942c 942f\n\n00:01:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab0 31ba 3431 bab0 b080 942c 942f\n\n00:01:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab0 31ba 3432 bab0 b080 942c 942f\n\n00:01:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab0 31ba 34b3 bab0 b080 942c 942f\n\n00:01:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab0 31ba 3434 bab0 b080 942c 942f\n\n00:01:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab0 31ba 34b5 bab0 b080 942c 942f\n\n00:01:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab0 31ba 34b6 bab0 b080 942c 942f\n\n00:01:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab0 31ba 3437 bab0 b080 942c 942f\n\n00:01:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab0 31ba 3438 bab0 b080 942c 942f\n\n00:01:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab0 31ba 34b9 bab0 b080 942c 942f\n\n00:01:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab0 31ba b5b0 bab0 b080 942c 942f\n\n00:01:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab0 31ba b531 bab0 b080 942c 942f\n\n00:01:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab0 31ba b532 bab0 b080 942c 942f\n\n00:01:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab0 31ba b5b3 bab0 b080 942c 942f\n\n00:01:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab0 31ba b534 bab0 b080 942c 942f\n\n00:01:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab0 31ba b5b5 bab0 b080 942c 942f\n\n00:01:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab0 31ba b5b6 bab0 b080 942c 942f\n\n00:01:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab0 31ba b537 bab0 b080 942c 942f\n\n00:01:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab0 31ba b538 bab0 b080 942c 942f\n\n00:01:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab0 31ba b5b9 bab0 b080 942c 942f\n\n00:02:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab0 32ba b0b0 bab0 b080 942c 942f\n\n00:02:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab0 32ba b031 bab0 b080 942c 942f\n\n00:02:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab0 32ba b032 bab0 b080 942c 942f\n\n00:02:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab0 32ba b0b3 bab0 b080 942c 942f\n\n00:02:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab0 32ba b034 bab0 b080 942c 942f\n\n00:02:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab0 32ba b0b5 bab0 b080 942c 942f\n\n00:02:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab0 32ba b0b6 bab0 b080 942c 942f\n\n00:02:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab0 32ba b037 bab0 b080 942c 942f\n\n00:02:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab0 32ba b038 bab0 b080 942c 942f\n\n00:02:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab0 32ba b0b9 bab0 b080 942c 942f\n\n00:02:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab0 32ba 31b0 bab0 b080 942c 942f\n\n00:02:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab0 32ba 3131 bab0 b080 942c 942f\n\n00:02:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab0 32ba 3132 bab0 b080 942c 942f\n\n00:02:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab0 32ba 31b3 bab0 b080 942c 942f\n\n00:02:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab0 32ba 3134 bab0 b080 942c 942f\n\n00:02:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab0 32ba 31b5 bab0 b080 942c 942f\n\n00:02:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab0 32ba 31b6 bab0 b080 942c 942f\n\n00:02:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab0 32ba 3137 bab0 b080 942c 942f\n\n00:02:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab0 32ba 3138 bab0 b080 942c 942f\n\n00:02:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab0 32ba 31b9 bab0 b080 942c 942f\n\n00:02:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab0 32ba 32b0 bab0 b080 942c 942f\n\n00:02:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab0 32ba 3231 bab0 b080 942c 942f\n\n00:02:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab0 32ba 3232 bab0 b080 942c 942f\n\n00:02:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab0 32ba 32b3 bab0 b080 942c 942f\n\n00:02:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab0 32ba 3234 bab0 b080 942c 942f\n\n00:02:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab0 32ba 32b5 bab0 b080 942c 942f\n\n00:02:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab0 32ba 32b6 bab0 b080 942c 942f\n\n00:02:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab0 32ba 3237 bab0 b080 942c 942f\n\n00:02:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab0 32ba 3238 bab0 b080 942c 942f\n\n00:02:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab0 32ba 32b9 bab0 b080 942c 942f\n\n00:02:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab0 32ba b3b0 bab0 b080 942c 942f\n\n00:02:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab0 32ba b331 bab0 b080 942c 942f\n\n00:02:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab0 32ba b332 bab0 b080 942c 942f\n\n00:02:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab0 32ba b3b3 bab0 b080 942c 942f\n\n00:02:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab0 32ba b334 bab0 b080 942c 942f\n\n00:02:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab0 32ba b3b5 bab0 b080 942c 942f\n\n00:02:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab0 32ba b3b6 bab0 b080 942c 942f\n\n00:02:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab0 32ba b337 bab0 b080 942c 942f\n\n00:02:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab0 32ba b338 bab0 b080 942c 942f\n\n00:02:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab0 32ba b3b9 bab0 b080 942c 942f\n\n00:02:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab0 32ba 34b0 bab0 b080 942c 942f\n\n00:02:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab0 32ba 3431 bab0 b080 942c 942f\n\n00:02:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab0 32ba 3432 bab0 b080 942c 942f\n\n00:02:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab0 32ba 34b3 bab0 b080 942c 942f\n\n00:02:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab0 32ba 3434 bab0 b080 942c 942f\n\n00:02:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab0 32ba 34b5 bab0 b080 942c 942f\n\n00:02:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab0 32ba 34b6 bab0 b080 942c 942f\n\n00:02:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab0 32ba 3437 bab0 b080 942c 942f\n\n00:02:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab0 32ba 3438 bab0 b080 942c 942f\n\n00:02:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab0 32ba 34b9 bab0 b080 942c 942f\n\n00:02:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab0 32ba b5b0 bab0 b080 942c 942f\n\n00:02:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab0 32ba b531 bab0 b080 942c 942f\n\n00:02:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab0 32ba b532 bab0 b080 942c 942f\n\n00:02:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab0 32ba b5b3 bab0 b080 942c 942f\n\n00:02:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab0 32ba b534 bab0 b080 942c 942f\n\n00:02:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab0 32ba b5b5 bab0 b080 942c 942f\n\n00:02:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab0 32ba b5b6 bab0 b080 942c 942f\n\n00:02:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab0 32ba b537 bab0 b080 942c 942f\n\n00:02:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab0 32ba b538 bab0 b080 942c 942f\n\n00:02:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab0 32ba b5b9 bab0 b080 942c 942f\n\n00:03:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab0 b3ba b0b0 bab0 b080 942c 942f\n\n00:03:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab0 b3ba b031 bab0 b080 942c 942f\n\n00:03:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab0 b3ba b032 bab0 b080 942c 942f\n\n00:03:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab0 b3ba b0b3 bab0 b080 942c 942f\n\n00:03:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab0 b3ba b034 bab0 b080 942c 942f\n\n00:03:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab0 b3ba b0b5 bab0 b080 942c 942f\n\n00:03:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab0 b3ba b0b6 bab0 b080 942c 942f\n\n00:03:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab0 b3ba b037 bab0 b080 942c 942f\n\n00:03:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab0 b3ba b038 bab0 b080 942c 942f\n\n00:03:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab0 b3ba b0b9 bab0 b080 942c 942f\n\n00:03:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab0 b3ba 31b0 bab0 b080 942c 942f\n\n00:03:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab0 b3ba 3131 bab0 b080 942c 942f\n\n00:03:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab0 b3ba 3132 bab0 b080 942c 942f\n\n00:03:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab0 b3ba 31b3 bab0 b080 942c 942f\n\n00:03:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab0 b3ba 3134 bab0 b080 942c 942f\n\n00:03:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab0 b3ba 31b5 bab0 b080 942c 942f\n\n00:03:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab0 b3ba 31b6 bab0 b080 942c 942f\n\n00:03:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab0 b3ba 3137 bab0 b080 942c 942f\n\n00:03:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab0 b3ba 3138 bab0 b080 942c 942f\n\n00:03:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab0 b3ba 31b9 bab0 b080 942c 942f\n\n00:03:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab0 b3ba 32b0 bab0 b080 942c 942f\n\n00:03:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab0 b3ba 3231 bab0 b080 942c 942f\n\n00:03:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab0 b3ba 3232 bab0 b080 942c 942f\n\n00:03:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab0 b3ba 32b3 bab0 b080 942c 942f\n\n00:03:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab0 b3ba 3234 bab0 b080 942c 942f\n\n00:03:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab0 b3ba 32b5 bab0 b080 942c 942f\n\n00:03:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab0 b3ba 32b6 bab0 b080 942c 942f\n\n00:03:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab0 b3ba 3237 bab0 b080 942c 942f\n\n00:03:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab0 b3ba 3238 bab0 b080 942c 942f\n\n00:03:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab0 b3ba 32b9 bab0 b080 942c 942f\n\n00:03:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab0 b3ba b3b0 bab0 b080 942c 942f\n\n00:03:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab0 b3ba b331 bab0 b080 942c 942f\n\n00:03:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab0 b3ba b332 bab0 b080 942c 942f\n\n00:03:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab0 b3ba b3b3 bab0 b080 942c 942f\n\n00:03:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab0 b3ba b334 bab0 b080 942c 942f\n\n00:03:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab0 b3ba b3b5 bab0 b080 942c 942f\n\n00:03:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab0 b3ba b3b6 bab0 b080 942c 942f\n\n00:03:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab0 b3ba b337 bab0 b080 942c 942f\n\n00:03:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab0 b3ba b338 bab0 b080 942c 942f\n\n00:03:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab0 b3ba b3b9 bab0 b080 942c 942f\n\n00:03:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab0 b3ba 34b0 bab0 b080 942c 942f\n\n00:03:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab0 b3ba 3431 bab0 b080 942c 942f\n\n00:03:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab0 b3ba 3432 bab0 b080 942c 942f\n\n00:03:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab0 b3ba 34b3 bab0 b080 942c 942f\n\n00:03:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab0 b3ba 3434 bab0 b080 942c 942f\n\n00:03:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab0 b3ba 34b5 bab0 b080 942c 942f\n\n00:03:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab0 b3ba 34b6 bab0 b080 942c 942f\n\n00:03:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab0 b3ba 3437 bab0 b080 942c 942f\n\n00:03:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab0 b3ba 3438 bab0 b080 942c 942f\n\n00:03:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab0 b3ba 34b9 bab0 b080 942c 942f\n\n00:03:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab0 b3ba b5b0 bab0 b080 942c 942f\n\n00:03:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab0 b3ba b531 bab0 b080 942c 942f\n\n00:03:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab0 b3ba b532 bab0 b080 942c 942f\n\n00:03:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab0 b3ba b5b3 bab0 b080 942c 942f\n\n00:03:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab0 b3ba b534 bab0 b080 942c 942f\n\n00:03:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab0 b3ba b5b5 bab0 b080 942c 942f\n\n00:03:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab0 b3ba b5b6 bab0 b080 942c 942f\n\n00:03:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab0 b3ba b537 bab0 b080 942c 942f\n\n00:03:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab0 b3ba b538 bab0 b080 942c 942f\n\n00:03:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab0 b3ba b5b9 bab0 b080 942c 942f\n\n00:04:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab0 34ba b0b0 bab0 b080 942c 942f\n\n00:04:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab0 34ba b031 bab0 b080 942c 942f\n\n00:04:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab0 34ba b032 bab0 b080 942c 942f\n\n00:04:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab0 34ba b0b3 bab0 b080 942c 942f\n\n00:04:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab0 34ba b034 bab0 b080 942c 942f\n\n00:04:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab0 34ba b0b5 bab0 b080 942c 942f\n\n00:04:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab0 34ba b0b6 bab0 b080 942c 942f\n\n00:04:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab0 34ba b037 bab0 b080 942c 942f\n\n00:04:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab0 34ba b038 bab0 b080 942c 942f\n\n00:04:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab0 34ba b0b9 bab0 b080 942c 942f\n\n00:04:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab0 34ba 31b0 bab0 b080 942c 942f\n\n00:04:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab0 34ba 3131 bab0 b080 942c 942f\n\n00:04:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab0 34ba 3132 bab0 b080 942c 942f\n\n00:04:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab0 34ba 31b3 bab0 b080 942c 942f\n\n00:04:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab0 34ba 3134 bab0 b080 942c 942f\n\n00:04:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab0 34ba 31b5 bab0 b080 942c 942f\n\n00:04:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab0 34ba 31b6 bab0 b080 942c 942f\n\n00:04:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab0 34ba 3137 bab0 b080 942c 942f\n\n00:04:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab0 34ba 3138 bab0 b080 942c 942f\n\n00:04:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab0 34ba 31b9 bab0 b080 942c 942f\n\n00:04:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab0 34ba 32b0 bab0 b080 942c 942f\n\n00:04:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab0 34ba 3231 bab0 b080 942c 942f\n\n00:04:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab0 34ba 3232 bab0 b080 942c 942f\n\n00:04:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab0 34ba 32b3 bab0 b080 942c 942f\n\n00:04:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab0 34ba 3234 bab0 b080 942c 942f\n\n00:04:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab0 34ba 32b5 bab0 b080 942c 942f\n\n00:04:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab0 34ba 32b6 bab0 b080 942c 942f\n\n00:04:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab0 34ba 3237 bab0 b080 942c 942f\n\n00:04:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab0 34ba 3238 bab0 b080 942c 942f\n\n00:04:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab0 34ba 32b9 bab0 b080 942c 942f\n\n00:04:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab0 34ba b3b0 bab0 b080 942c 942f\n\n00:04:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab0 34ba b331 bab0 b080 942c 942f\n\n00:04:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab0 34ba b332 bab0 b080 942c 942f\n\n00:04:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab0 34ba b3b3 bab0 b080 942c 942f\n\n00:04:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab0 34ba b334 bab0 b080 942c 942f\n\n00:04:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab0 34ba b3b5 bab0 b080 942c 942f\n\n00:04:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab0 34ba b3b6 bab0 b080 942c 942f\n\n00:04:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab0 34ba b337 bab0 b080 942c 942f\n\n00:04:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab0 34ba b338 bab0 b080 942c 942f\n\n00:04:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab0 34ba b3b9 bab0 b080 942c 942f\n\n00:04:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab0 34ba 34b0 bab0 b080 942c 942f\n\n00:04:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab0 34ba 3431 bab0 b080 942c 942f\n\n00:04:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab0 34ba 3432 bab0 b080 942c 942f\n\n00:04:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab0 34ba 34b3 bab0 b080 942c 942f\n\n00:04:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab0 34ba 3434 bab0 b080 942c 942f\n\n00:04:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab0 34ba 34b5 bab0 b080 942c 942f\n\n00:04:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab0 34ba 34b6 bab0 b080 942c 942f\n\n00:04:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab0 34ba 3437 bab0 b080 942c 942f\n\n00:04:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab0 34ba 3438 bab0 b080 942c 942f\n\n00:04:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab0 34ba 34b9 bab0 b080 942c 942f\n\n00:04:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab0 34ba b5b0 bab0 b080 942c 942f\n\n00:04:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab0 34ba b531 bab0 b080 942c 942f\n\n00:04:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab0 34ba b532 bab0 b080 942c 942f\n\n00:04:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab0 34ba b5b3 bab0 b080 942c 942f\n\n00:04:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab0 34ba b534 bab0 b080 942c 942f\n\n00:04:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab0 34ba b5b5 bab0 b080 942c 942f\n\n00:04:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab0 34ba b5b6 bab0 b080 942c 942f\n\n00:04:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab0 34ba b537 bab0 b080 942c 942f\n\n00:04:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab0 34ba b538 bab0 b080 942c 942f\n\n00:04:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab0 34ba b5b9 bab0 b080 942c 942f\n\n00:05:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab0 b5ba b0b0 bab0 b080 942c 942f\n\n00:05:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab0 b5ba b031 bab0 b080 942c 942f\n\n00:05:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab0 b5ba b032 bab0 b080 942c 942f\n\n00:05:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab0 b5ba b0b3 bab0 b080 942c 942f\n\n00:05:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab0 b5ba b034 bab0 b080 942c 942f\n\n00:05:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab0 b5ba b0b5 bab0 b080 942c 942f\n\n00:05:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab0 b5ba b0b6 bab0 b080 942c 942f\n\n00:05:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab0 b5ba b037 bab0 b080 942c 942f\n\n00:05:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab0 b5ba b038 bab0 b080 942c 942f\n\n00:05:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab0 b5ba b0b9 bab0 b080 942c 942f\n\n00:05:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab0 b5ba 31b0 bab0 b080 942c 942f\n\n00:05:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab0 b5ba 3131 bab0 b080 942c 942f\n\n00:05:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab0 b5ba 3132 bab0 b080 942c 942f\n\n00:05:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab0 b5ba 31b3 bab0 b080 942c 942f\n\n00:05:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab0 b5ba 3134 bab0 b080 942c 942f\n\n00:05:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab0 b5ba 31b5 bab0 b080 942c 942f\n\n00:05:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab0 b5ba 31b6 bab0 b080 942c 942f\n\n00:05:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab0 b5ba 3137 bab0 b080 942c 942f\n\n00:05:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab0 b5ba 3138 bab0 b080 942c 942f\n\n00:05:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab0 b5ba 31b9 bab0 b080 942c 942f\n\n00:05:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab0 b5ba 32b0 bab0 b080 942c 942f\n\n00:05:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab0 b5ba 3231 bab0 b080 942c 942f\n\n00:05:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab0 b5ba 3232 bab0 b080 942c 942f\n\n00:05:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab0 b5ba 32b3 bab0 b080 942c 942f\n\n00:05:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab0 b5ba 3234 bab0 b080 942c 942f\n\n00:05:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab0 b5ba 32b5 bab0 b080 942c 942f\n\n00:05:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab0 b5ba 32b6 bab0 b080 942c 942f\n\n00:05:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab0 b5ba 3237 bab0 b080 942c 942f\n\n00:05:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab0 b5ba 3238 bab0 b080 942c 942f\n\n00:05:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab0 b5ba 32b9 bab0 b080 942c 942f\n\n00:05:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab0 b5ba b3b0 bab0 b080 942c 942f\n\n00:05:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab0 b5ba b331 bab0 b080 942c 942f\n\n00:05:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab0 b5ba b332 bab0 b080 942c 942f\n\n00:05:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab0 b5ba b3b3 bab0 b080 942c 942f\n\n00:05:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab0 b5ba b334 bab0 b080 942c 942f\n\n00:05:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab0 b5ba b3b5 bab0 b080 942c 942f\n\n00:05:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab0 b5ba b3b6 bab0 b080 942c 942f\n\n00:05:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab0 b5ba b337 bab0 b080 942c 942f\n\n00:05:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab0 b5ba b338 bab0 b080 942c 942f\n\n00:05:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab0 b5ba b3b9 bab0 b080 942c 942f\n\n00:05:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab0 b5ba 34b0 bab0 b080 942c 942f\n\n00:05:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab0 b5ba 3431 bab0 b080 942c 942f\n\n00:05:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab0 b5ba 3432 bab0 b080 942c 942f\n\n00:05:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab0 b5ba 34b3 bab0 b080 942c 942f\n\n00:05:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab0 b5ba 3434 bab0 b080 942c 942f\n\n00:05:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab0 b5ba 34b5 bab0 b080 942c 942f\n\n00:05:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab0 b5ba 34b6 bab0 b080 942c 942f\n\n00:05:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab0 b5ba 3437 bab0 b080 942c 942f\n\n00:05:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab0 b5ba 3438 bab0 b080 942c 942f\n\n00:05:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab0 b5ba 34b9 bab0 b080 942c 942f\n\n00:05:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab0 b5ba b5b0 bab0 b080 942c 942f\n\n00:05:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab0 b5ba b531 bab0 b080 942c 942f\n\n00:05:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab0 b5ba b532 bab0 b080 942c 942f\n\n00:05:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab0 b5ba b5b3 bab0 b080 942c 942f\n\n00:05:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab0 b5ba b534 bab0 b080 942c 942f\n\n00:05:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab0 b5ba b5b5 bab0 b080 942c 942f\n\n00:05:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab0 b5ba b5b6 bab0 b080 942c 942f\n\n00:05:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab0 b5ba b537 bab0 b080 942c 942f\n\n00:05:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab0 b5ba b538 bab0 b080 942c 942f\n\n00:05:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab0 b5ba b5b9 bab0 b080 942c 942f\n\n00:06:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab0 b6ba b0b0 bab0 b080 942c 942f\n\n00:06:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab0 b6ba b031 bab0 b080 942c 942f\n\n00:06:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab0 b6ba b032 bab0 b080 942c 942f\n\n00:06:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab0 b6ba b0b3 bab0 b080 942c 942f\n\n00:06:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab0 b6ba b034 bab0 b080 942c 942f\n\n00:06:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab0 b6ba b0b5 bab0 b080 942c 942f\n\n00:06:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab0 b6ba b0b6 bab0 b080 942c 942f\n\n00:06:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab0 b6ba b037 bab0 b080 942c 942f\n\n00:06:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab0 b6ba b038 bab0 b080 942c 942f\n\n00:06:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab0 b6ba b0b9 bab0 b080 942c 942f\n\n00:06:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab0 b6ba 31b0 bab0 b080 942c 942f\n\n00:06:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab0 b6ba 3131 bab0 b080 942c 942f\n\n00:06:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab0 b6ba 3132 bab0 b080 942c 942f\n\n00:06:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab0 b6ba 31b3 bab0 b080 942c 942f\n\n00:06:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab0 b6ba 3134 bab0 b080 942c 942f\n\n00:06:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab0 b6ba 31b5 bab0 b080 942c 942f\n\n00:06:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab0 b6ba 31b6 bab0 b080 942c 942f\n\n00:06:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab0 b6ba 3137 bab0 b080 942c 942f\n\n00:06:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab0 b6ba 3138 bab0 b080 942c 942f\n\n00:06:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab0 b6ba 31b9 bab0 b080 942c 942f\n\n00:06:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab0 b6ba 32b0 bab0 b080 942c 942f\n\n00:06:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab0 b6ba 3231 bab0 b080 942c 942f\n\n00:06:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab0 b6ba 3232 bab0 b080 942c 942f\n\n00:06:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab0 b6ba 32b3 bab0 b080 942c 942f\n\n00:06:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab0 b6ba 3234 bab0 b080 942c 942f\n\n00:06:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab0 b6ba 32b5 bab0 b080 942c 942f\n\n00:06:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab0 b6ba 32b6 bab0 b080 942c 942f\n\n00:06:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab0 b6ba 3237 bab0 b080 942c 942f\n\n00:06:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab0 b6ba 3238 bab0 b080 942c 942f\n\n00:06:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab0 b6ba 32b9 bab0 b080 942c 942f\n\n00:06:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab0 b6ba b3b0 bab0 b080 942c 942f\n\n00:06:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab0 b6ba b331 bab0 b080 942c 942f\n\n00:06:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab0 b6ba b332 bab0 b080 942c 942f\n\n00:06:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab0 b6ba b3b3 bab0 b080 942c 942f\n\n00:06:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab0 b6ba b334 bab0 b080 942c 942f\n\n00:06:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab0 b6ba b3b5 bab0 b080 942c 942f\n\n00:06:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab0 b6ba b3b6 bab0 b080 942c 942f\n\n00:06:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab0 b6ba b337 bab0 b080 942c 942f\n\n00:06:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab0 b6ba b338 bab0 b080 942c 942f\n\n00:06:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab0 b6ba b3b9 bab0 b080 942c 942f\n\n00:06:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab0 b6ba 34b0 bab0 b080 942c 942f\n\n00:06:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab0 b6ba 3431 bab0 b080 942c 942f\n\n00:06:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab0 b6ba 3432 bab0 b080 942c 942f\n\n00:06:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab0 b6ba 34b3 bab0 b080 942c 942f\n\n00:06:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab0 b6ba 3434 bab0 b080 942c 942f\n\n00:06:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab0 b6ba 34b5 bab0 b080 942c 942f\n\n00:06:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab0 b6ba 34b6 bab0 b080 942c 942f\n\n00:06:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab0 b6ba 3437 bab0 b080 942c 942f\n\n00:06:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab0 b6ba 3438 bab0 b080 942c 942f\n\n00:06:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab0 b6ba 34b9 bab0 b080 942c 942f\n\n00:06:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab0 b6ba b5b0 bab0 b080 942c 942f\n\n00:06:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab0 b6ba b531 bab0 b080 942c 942f\n\n00:06:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab0 b6ba b532 bab0 b080 942c 942f\n\n00:06:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab0 b6ba b5b3 bab0 b080 942c 942f\n\n00:06:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab0 b6ba b534 bab0 b080 942c 942f\n\n00:06:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab0 b6ba b5b5 bab0 b080 942c 942f\n\n00:06:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab0 b6ba b5b6 bab0 b080 942c 942f\n\n00:06:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab0 b6ba b537 bab0 b080 942c 942f\n\n00:06:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab0 b6ba b538 bab0 b080 942c 942f\n\n00:06:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab0 b6ba b5b9 bab0 b080 942c 942f\n\n00:07:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab0 37ba b0b0 bab0 b080 942c 942f\n\n00:07:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab0 37ba b031 bab0 b080 942c 942f\n\n00:07:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab0 37ba b032 bab0 b080 942c 942f\n\n00:07:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab0 37ba b0b3 bab0 b080 942c 942f\n\n00:07:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab0 37ba b034 bab0 b080 942c 942f\n\n00:07:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab0 37ba b0b5 bab0 b080 942c 942f\n\n00:07:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab0 37ba b0b6 bab0 b080 942c 942f\n\n00:07:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab0 37ba b037 bab0 b080 942c 942f\n\n00:07:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab0 37ba b038 bab0 b080 942c 942f\n\n00:07:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab0 37ba b0b9 bab0 b080 942c 942f\n\n00:07:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab0 37ba 31b0 bab0 b080 942c 942f\n\n00:07:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab0 37ba 3131 bab0 b080 942c 942f\n\n00:07:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab0 37ba 3132 bab0 b080 942c 942f\n\n00:07:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab0 37ba 31b3 bab0 b080 942c 942f\n\n00:07:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab0 37ba 3134 bab0 b080 942c 942f\n\n00:07:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab0 37ba 31b5 bab0 b080 942c 942f\n\n00:07:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab0 37ba 31b6 bab0 b080 942c 942f\n\n00:07:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab0 37ba 3137 bab0 b080 942c 942f\n\n00:07:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab0 37ba 3138 bab0 b080 942c 942f\n\n00:07:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab0 37ba 31b9 bab0 b080 942c 942f\n\n00:07:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab0 37ba 32b0 bab0 b080 942c 942f\n\n00:07:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab0 37ba 3231 bab0 b080 942c 942f\n\n00:07:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab0 37ba 3232 bab0 b080 942c 942f\n\n00:07:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab0 37ba 32b3 bab0 b080 942c 942f\n\n00:07:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab0 37ba 3234 bab0 b080 942c 942f\n\n00:07:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab0 37ba 32b5 bab0 b080 942c 942f\n\n00:07:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab0 37ba 32b6 bab0 b080 942c 942f\n\n00:07:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab0 37ba 3237 bab0 b080 942c 942f\n\n00:07:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab0 37ba 3238 bab0 b080 942c 942f\n\n00:07:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab0 37ba 32b9 bab0 b080 942c 942f\n\n00:07:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab0 37ba b3b0 bab0 b080 942c 942f\n\n00:07:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab0 37ba b331 bab0 b080 942c 942f\n\n00:07:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab0 37ba b332 bab0 b080 942c 942f\n\n00:07:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab0 37ba b3b3 bab0 b080 942c 942f\n\n00:07:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab0 37ba b334 bab0 b080 942c 942f\n\n00:07:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab0 37ba b3b5 bab0 b080 942c 942f\n\n00:07:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab0 37ba b3b6 bab0 b080 942c 942f\n\n00:07:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab0 37ba b337 bab0 b080 942c 942f\n\n00:07:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab0 37ba b338 bab0 b080 942c 942f\n\n00:07:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab0 37ba b3b9 bab0 b080 942c 942f\n\n00:07:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab0 37ba 34b0 bab0 b080 942c 942f\n\n00:07:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab0 37ba 3431 bab0 b080 942c 942f\n\n00:07:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab0 37ba 3432 bab0 b080 942c 942f\n\n00:07:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab0 37ba 34b3 bab0 b080 942c 942f\n\n00:07:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab0 37ba 3434 bab0 b080 942c 942f\n\n00:07:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab0 37ba 34b5 bab0 b080 942c 942f\n\n00:07:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab0 37ba 34b6 bab0 b080 942c 942f\n\n00:07:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab0 37ba 3437 bab0 b080 942c 942f\n\n00:07:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab0 37ba 3438 bab0 b080 942c 942f\n\n00:07:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab0 37ba 34b9 bab0 b080 942c 942f\n\n00:07:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab0 37ba b5b0 bab0 b080 942c 942f\n\n00:07:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab0 37ba b531 bab0 b080 942c 942f\n\n00:07:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab0 37ba b532 bab0 b080 942c 942f\n\n00:07:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab0 37ba b5b3 bab0 b080 942c 942f\n\n00:07:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab0 37ba b534 bab0 b080 942c 942f\n\n00:07:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab0 37ba b5b5 bab0 b080 942c 942f\n\n00:07:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab0 37ba b5b6 bab0 b080 942c 942f\n\n00:07:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab0 37ba b537 bab0 b080 942c 942f\n\n00:07:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab0 37ba b538 bab0 b080 942c 942f\n\n00:07:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab0 37ba b5b9 bab0 b080 942c 942f\n\n00:08:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab0 38ba b0b0 bab0 b080 942c 942f\n\n00:08:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab0 38ba b031 bab0 b080 942c 942f\n\n00:08:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab0 38ba b032 bab0 b080 942c 942f\n\n00:08:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab0 38ba b0b3 bab0 b080 942c 942f\n\n00:08:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab0 38ba b034 bab0 b080 942c 942f\n\n00:08:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab0 38ba b0b5 bab0 b080 942c 942f\n\n00:08:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab0 38ba b0b6 bab0 b080 942c 942f\n\n00:08:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab0 38ba b037 bab0 b080 942c 942f\n\n00:08:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab0 38ba b038 bab0 b080 942c 942f\n\n00:08:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab0 38ba b0b9 bab0 b080 942c 942f\n\n00:08:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab0 38ba 31b0 bab0 b080 942c 942f\n\n00:08:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab0 38ba 3131 bab0 b080 942c 942f\n\n00:08:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab0 38ba 3132 bab0 b080 942c 942f\n\n00:08:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab0 38ba 31b3 bab0 b080 942c 942f\n\n00:08:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab0 38ba 3134 bab0 b080 942c 942f\n\n00:08:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab0 38ba 31b5 bab0 b080 942c 942f\n\n00:08:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab0 38ba 31b6 bab0 b080 942c 942f\n\n00:08:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab0 38ba 3137 bab0 b080 942c 942f\n\n00:08:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab0 38ba 3138 bab0 b080 942c 942f\n\n00:08:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab0 38ba 31b9 bab0 b080 942c 942f\n\n00:08:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab0 38ba 32b0 bab0 b080 942c 942f\n\n00:08:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab0 38ba 3231 bab0 b080 942c 942f\n\n00:08:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab0 38ba 3232 bab0 b080 942c 942f\n\n00:08:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab0 38ba 32b3 bab0 b080 942c 942f\n\n00:08:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab0 38ba 3234 bab0 b080 942c 942f\n\n00:08:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab0 38ba 32b5 bab0 b080 942c 942f\n\n00:08:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab0 38ba 32b6 bab0 b080 942c 942f\n\n00:08:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab0 38ba 3237 bab0 b080 942c 942f\n\n00:08:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab0 38ba 3238 bab0 b080 942c 942f\n\n00:08:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab0 38ba 32b9 bab0 b080 942c 942f\n\n00:08:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab0 38ba b3b0 bab0 b080 942c 942f\n\n00:08:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab0 38ba b331 bab0 b080 942c 942f\n\n00:08:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab0 38ba b332 bab0 b080 942c 942f\n\n00:08:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab0 38ba b3b3 bab0 b080 942c 942f\n\n00:08:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab0 38ba b334 bab0 b080 942c 942f\n\n00:08:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab0 38ba b3b5 bab0 b080 942c 942f\n\n00:08:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab0 38ba b3b6 bab0 b080 942c 942f\n\n00:08:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab0 38ba b337 bab0 b080 942c 942f\n\n00:08:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab0 38ba b338 bab0 b080 942c 942f\n\n00:08:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab0 38ba b3b9 bab0 b080 942c 942f\n\n00:08:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab0 38ba 34b0 bab0 b080 942c 942f\n\n00:08:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab0 38ba 3431 bab0 b080 942c 942f\n\n00:08:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab0 38ba 3432 bab0 b080 942c 942f\n\n00:08:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab0 38ba 34b3 bab0 b080 942c 942f\n\n00:08:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab0 38ba 3434 bab0 b080 942c 942f\n\n00:08:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab0 38ba 34b5 bab0 b080 942c 942f\n\n00:08:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab0 38ba 34b6 bab0 b080 942c 942f\n\n00:08:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab0 38ba 3437 bab0 b080 942c 942f\n\n00:08:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab0 38ba 3438 bab0 b080 942c 942f\n\n00:08:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab0 38ba 34b9 bab0 b080 942c 942f\n\n00:08:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab0 38ba b5b0 bab0 b080 942c 942f\n\n00:08:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab0 38ba b531 bab0 b080 942c 942f\n\n00:08:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab0 38ba b532 bab0 b080 942c 942f\n\n00:08:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab0 38ba b5b3 bab0 b080 942c 942f\n\n00:08:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab0 38ba b534 bab0 b080 942c 942f\n\n00:08:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab0 38ba b5b5 bab0 b080 942c 942f\n\n00:08:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab0 38ba b5b6 bab0 b080 942c 942f\n\n00:08:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab0 38ba b537 bab0 b080 942c 942f\n\n00:08:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab0 38ba b538 bab0 b080 942c 942f\n\n00:08:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab0 38ba b5b9 bab0 b080 942c 942f\n\n00:09:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab0 b9ba b0b0 bab0 b080 942c 942f\n\n00:09:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab0 b9ba b031 bab0 b080 942c 942f\n\n00:09:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab0 b9ba b032 bab0 b080 942c 942f\n\n00:09:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab0 b9ba b0b3 bab0 b080 942c 942f\n\n00:09:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab0 b9ba b034 bab0 b080 942c 942f\n\n00:09:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab0 b9ba b0b5 bab0 b080 942c 942f\n\n00:09:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab0 b9ba b0b6 bab0 b080 942c 942f\n\n00:09:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab0 b9ba b037 bab0 b080 942c 942f\n\n00:09:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab0 b9ba b038 bab0 b080 942c 942f\n\n00:09:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab0 b9ba b0b9 bab0 b080 942c 942f\n\n00:09:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab0 b9ba 31b0 bab0 b080 942c 942f\n\n00:09:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab0 b9ba 3131 bab0 b080 942c 942f\n\n00:09:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab0 b9ba 3132 bab0 b080 942c 942f\n\n00:09:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab0 b9ba 31b3 bab0 b080 942c 942f\n\n00:09:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab0 b9ba 3134 bab0 b080 942c 942f\n\n00:09:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab0 b9ba 31b5 bab0 b080 942c 942f\n\n00:09:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab0 b9ba 31b6 bab0 b080 942c 942f\n\n00:09:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab0 b9ba 3137 bab0 b080 942c 942f\n\n00:09:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab0 b9ba 3138 bab0 b080 942c 942f\n\n00:09:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab0 b9ba 31b9 bab0 b080 942c 942f\n\n00:09:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab0 b9ba 32b0 bab0 b080 942c 942f\n\n00:09:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab0 b9ba 3231 bab0 b080 942c 942f\n\n00:09:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab0 b9ba 3232 bab0 b080 942c 942f\n\n00:09:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab0 b9ba 32b3 bab0 b080 942c 942f\n\n00:09:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab0 b9ba 3234 bab0 b080 942c 942f\n\n00:09:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab0 b9ba 32b5 bab0 b080 942c 942f\n\n00:09:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab0 b9ba 32b6 bab0 b080 942c 942f\n\n00:09:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab0 b9ba 3237 bab0 b080 942c 942f\n\n00:09:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab0 b9ba 3238 bab0 b080 942c 942f\n\n00:09:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab0 b9ba 32b9 bab0 b080 942c 942f\n\n00:09:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab0 b9ba b3b0 bab0 b080 942c 942f\n\n00:09:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab0 b9ba b331 bab0 b080 942c 942f\n\n00:09:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab0 b9ba b332 bab0 b080 942c 942f\n\n00:09:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab0 b9ba b3b3 bab0 b080 942c 942f\n\n00:09:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab0 b9ba b334 bab0 b080 942c 942f\n\n00:09:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab0 b9ba b3b5 bab0 b080 942c 942f\n\n00:09:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab0 b9ba b3b6 bab0 b080 942c 942f\n\n00:09:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab0 b9ba b337 bab0 b080 942c 942f\n\n00:09:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab0 b9ba b338 bab0 b080 942c 942f\n\n00:09:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab0 b9ba b3b9 bab0 b080 942c 942f\n\n00:09:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab0 b9ba 34b0 bab0 b080 942c 942f\n\n00:09:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab0 b9ba 3431 bab0 b080 942c 942f\n\n00:09:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab0 b9ba 3432 bab0 b080 942c 942f\n\n00:09:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab0 b9ba 34b3 bab0 b080 942c 942f\n\n00:09:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab0 b9ba 3434 bab0 b080 942c 942f\n\n00:09:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab0 b9ba 34b5 bab0 b080 942c 942f\n\n00:09:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab0 b9ba 34b6 bab0 b080 942c 942f\n\n00:09:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab0 b9ba 3437 bab0 b080 942c 942f\n\n00:09:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab0 b9ba 3438 bab0 b080 942c 942f\n\n00:09:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab0 b9ba 34b9 bab0 b080 942c 942f\n\n00:09:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab0 b9ba b5b0 bab0 b080 942c 942f\n\n00:09:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab0 b9ba b531 bab0 b080 942c 942f\n\n00:09:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab0 b9ba b532 bab0 b080 942c 942f\n\n00:09:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab0 b9ba b5b3 bab0 b080 942c 942f\n\n00:09:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab0 b9ba b534 bab0 b080 942c 942f\n\n00:09:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab0 b9ba b5b5 bab0 b080 942c 942f\n\n00:09:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab0 b9ba b5b6 bab0 b080 942c 942f\n\n00:09:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab0 b9ba b537 bab0 b080 942c 942f\n\n00:09:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab0 b9ba b538 bab0 b080 942c 942f\n\n00:09:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab0 b9ba b5b9 bab0 b080 942c 942f\n\n00:10:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba31 b0ba b0b0 bab0 b080 942c 942f\n\n00:10:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba31 b0ba b031 bab0 b080 942c 942f\n\n00:10:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba31 b0ba b032 bab0 b080 942c 942f\n\n00:10:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba31 b0ba b0b3 bab0 b080 942c 942f\n\n00:10:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba31 b0ba b034 bab0 b080 942c 942f\n\n00:10:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba31 b0ba b0b5 bab0 b080 942c 942f\n\n00:10:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba31 b0ba b0b6 bab0 b080 942c 942f\n\n00:10:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba31 b0ba b037 bab0 b080 942c 942f\n\n00:10:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba31 b0ba b038 bab0 b080 942c 942f\n\n00:10:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba31 b0ba b0b9 bab0 b080 942c 942f\n\n00:10:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba31 b0ba 31b0 bab0 b080 942c 942f\n\n00:10:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba31 b0ba 3131 bab0 b080 942c 942f\n\n00:10:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba31 b0ba 3132 bab0 b080 942c 942f\n\n00:10:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba31 b0ba 31b3 bab0 b080 942c 942f\n\n00:10:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba31 b0ba 3134 bab0 b080 942c 942f\n\n00:10:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba31 b0ba 31b5 bab0 b080 942c 942f\n\n00:10:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba31 b0ba 31b6 bab0 b080 942c 942f\n\n00:10:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba31 b0ba 3137 bab0 b080 942c 942f\n\n00:10:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba31 b0ba 3138 bab0 b080 942c 942f\n\n00:10:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba31 b0ba 31b9 bab0 b080 942c 942f\n\n00:10:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba31 b0ba 32b0 bab0 b080 942c 942f\n\n00:10:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba31 b0ba 3231 bab0 b080 942c 942f\n\n00:10:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba31 b0ba 3232 bab0 b080 942c 942f\n\n00:10:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba31 b0ba 32b3 bab0 b080 942c 942f\n\n00:10:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba31 b0ba 3234 bab0 b080 942c 942f\n\n00:10:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba31 b0ba 32b5 bab0 b080 942c 942f\n\n00:10:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba31 b0ba 32b6 bab0 b080 942c 942f\n\n00:10:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba31 b0ba 3237 bab0 b080 942c 942f\n\n00:10:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba31 b0ba 3238 bab0 b080 942c 942f\n\n00:10:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba31 b0ba 32b9 bab0 b080 942c 942f\n\n00:10:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba31 b0ba b3b0 bab0 b080 942c 942f\n\n00:10:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba31 b0ba b331 bab0 b080 942c 942f\n\n00:10:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba31 b0ba b332 bab0 b080 942c 942f\n\n00:10:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba31 b0ba b3b3 bab0 b080 942c 942f\n\n00:10:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba31 b0ba b334 bab0 b080 942c 942f\n\n00:10:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba31 b0ba b3b5 bab0 b080 942c 942f\n\n00:10:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba31 b0ba b3b6 bab0 b080 942c 942f\n\n00:10:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba31 b0ba b337 bab0 b080 942c 942f\n\n00:10:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba31 b0ba b338 bab0 b080 942c 942f\n\n00:10:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba31 b0ba b3b9 bab0 b080 942c 942f\n\n00:10:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba31 b0ba 34b0 bab0 b080 942c 942f\n\n00:10:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba31 b0ba 3431 bab0 b080 942c 942f\n\n00:10:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba31 b0ba 3432 bab0 b080 942c 942f\n\n00:10:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba31 b0ba 34b3 bab0 b080 942c 942f\n\n00:10:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba31 b0ba 3434 bab0 b080 942c 942f\n\n00:10:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba31 b0ba 34b5 bab0 b080 942c 942f\n\n00:10:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba31 b0ba 34b6 bab0 b080 942c 942f\n\n00:10:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba31 b0ba 3437 bab0 b080 942c 942f\n\n00:10:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba31 b0ba 3438 bab0 b080 942c 942f\n\n00:10:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba31 b0ba 34b9 bab0 b080 942c 942f\n\n00:10:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba31 b0ba b5b0 bab0 b080 942c 942f\n\n00:10:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba31 b0ba b531 bab0 b080 942c 942f\n\n00:10:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba31 b0ba b532 bab0 b080 942c 942f\n\n00:10:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba31 b0ba b5b3 bab0 b080 942c 942f\n\n00:10:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba31 b0ba b534 bab0 b080 942c 942f\n\n00:10:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba31 b0ba b5b5 bab0 b080 942c 942f\n\n00:10:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba31 b0ba b5b6 bab0 b080 942c 942f\n\n00:10:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba31 b0ba b537 bab0 b080 942c 942f\n\n00:10:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba31 b0ba b538 bab0 b080 942c 942f\n\n00:10:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba31 b0ba b5b9 bab0 b080 942c 942f\n\n00:11:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba31 31ba b0b0 bab0 b080 942c 942f\n\n00:11:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba31 31ba b031 bab0 b080 942c 942f\n\n00:11:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba31 31ba b032 bab0 b080 942c 942f\n\n00:11:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba31 31ba b0b3 bab0 b080 942c 942f\n\n00:11:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba31 31ba b034 bab0 b080 942c 942f\n\n00:11:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba31 31ba b0b5 bab0 b080 942c 942f\n\n00:11:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba31 31ba b0b6 bab0 b080 942c 942f\n\n00:11:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba31 31ba b037 bab0 b080 942c 942f\n\n00:11:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba31 31ba b038 bab0 b080 942c 942f\n\n00:11:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba31 31ba b0b9 bab0 b080 942c 942f\n\n00:11:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba31 31ba 31b0 bab0 b080 942c 942f\n\n00:11:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba31 31ba 3131 bab0 b080 942c 942f\n\n00:11:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba31 31ba 3132 bab0 b080 942c 942f\n\n00:11:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba31 31ba 31b3 bab0 b080 942c 942f\n\n00:11:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba31 31ba 3134 bab0 b080 942c 942f\n\n00:11:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba31 31ba 31b5 bab0 b080 942c 942f\n\n00:11:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba31 31ba 31b6 bab0 b080 942c 942f\n\n00:11:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba31 31ba 3137 bab0 b080 942c 942f\n\n00:11:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba31 31ba 3138 bab0 b080 942c 942f\n\n00:11:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba31 31ba 31b9 bab0 b080 942c 942f\n\n00:11:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba31 31ba 32b0 bab0 b080 942c 942f\n\n00:11:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba31 31ba 3231 bab0 b080 942c 942f\n\n00:11:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba31 31ba 3232 bab0 b080 942c 942f\n\n00:11:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba31 31ba 32b3 bab0 b080 942c 942f\n\n00:11:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba31 31ba 3234 bab0 b080 942c 942f\n\n00:11:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba31 31ba 32b5 bab0 b080 942c 942f\n\n00:11:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba31 31ba 32b6 bab0 b080 942c 942f\n\n00:11:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba31 31ba 3237 bab0 b080 942c 942f\n\n00:11:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba31 31ba 3238 bab0 b080 942c 942f\n\n00:11:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba31 31ba 32b9 bab0 b080 942c 942f\n\n00:11:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba31 31ba b3b0 bab0 b080 942c 942f\n\n00:11:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba31 31ba b331 bab0 b080 942c 942f\n\n00:11:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba31 31ba b332 bab0 b080 942c 942f\n\n00:11:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba31 31ba b3b3 bab0 b080 942c 942f\n\n00:11:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba31 31ba b334 bab0 b080 942c 942f\n\n00:11:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba31 31ba b3b5 bab0 b080 942c 942f\n\n00:11:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba31 31ba b3b6 bab0 b080 942c 942f\n\n00:11:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba31 31ba b337 bab0 b080 942c 942f\n\n00:11:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba31 31ba b338 bab0 b080 942c 942f\n\n00:11:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba31 31ba b3b9 bab0 b080 942c 942f\n\n00:11:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba31 31ba 34b0 bab0 b080 942c 942f\n\n00:11:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba31 31ba 3431 bab0 b080 942c 942f\n\n00:11:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba31 31ba 3432 bab0 b080 942c 942f\n\n00:11:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba31 31ba 34b3 bab0 b080 942c 942f\n\n00:11:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba31 31ba 3434 bab0 b080 942c 942f\n\n00:11:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba31 31ba 34b5 bab0 b080 942c 942f\n\n00:11:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba31 31ba 34b6 bab0 b080 942c 942f\n\n00:11:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba31 31ba 3437 bab0 b080 942c 942f\n\n00:11:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba31 31ba 3438 bab0 b080 942c 942f\n\n00:11:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba31 31ba 34b9 bab0 b080 942c 942f\n\n00:11:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba31 31ba b5b0 bab0 b080 942c 942f\n\n00:11:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba31 31ba b531 bab0 b080 942c 942f\n\n00:11:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba31 31ba b532 bab0 b080 942c 942f\n\n00:11:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba31 31ba b5b3 bab0 b080 942c 942f\n\n00:11:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba31 31ba b534 bab0 b080 942c 942f\n\n00:11:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba31 31ba b5b5 bab0 b080 942c 942f\n\n00:11:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba31 31ba b5b6 bab0 b080 942c 942f\n\n00:11:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba31 31ba b537 bab0 b080 942c 942f\n\n00:11:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba31 31ba b538 bab0 b080 942c 942f\n\n00:11:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba31 31ba b5b9 bab0 b080 942c 942f\n\n00:12:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba31 32ba b0b0 bab0 b080 942c 942f\n\n00:12:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba31 32ba b031 bab0 b080 942c 942f\n\n00:12:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba31 32ba b032 bab0 b080 942c 942f\n\n00:12:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba31 32ba b0b3 bab0 b080 942c 942f\n\n00:12:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba31 32ba b034 bab0 b080 942c 942f\n\n00:12:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba31 32ba b0b5 bab0 b080 942c 942f\n\n00:12:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba31 32ba b0b6 bab0 b080 942c 942f\n\n00:12:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba31 32ba b037 bab0 b080 942c 942f\n\n00:12:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba31 32ba b038 bab0 b080 942c 942f\n\n00:12:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba31 32ba b0b9 bab0 b080 942c 942f\n\n00:12:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba31 32ba 31b0 bab0 b080 942c 942f\n\n00:12:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba31 32ba 3131 bab0 b080 942c 942f\n\n00:12:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba31 32ba 3132 bab0 b080 942c 942f\n\n00:12:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba31 32ba 31b3 bab0 b080 942c 942f\n\n00:12:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba31 32ba 3134 bab0 b080 942c 942f\n\n00:12:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba31 32ba 31b5 bab0 b080 942c 942f\n\n00:12:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba31 32ba 31b6 bab0 b080 942c 942f\n\n00:12:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba31 32ba 3137 bab0 b080 942c 942f\n\n00:12:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba31 32ba 3138 bab0 b080 942c 942f\n\n00:12:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba31 32ba 31b9 bab0 b080 942c 942f\n\n00:12:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba31 32ba 32b0 bab0 b080 942c 942f\n\n00:12:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba31 32ba 3231 bab0 b080 942c 942f\n\n00:12:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba31 32ba 3232 bab0 b080 942c 942f\n\n00:12:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba31 32ba 32b3 bab0 b080 942c 942f\n\n00:12:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba31 32ba 3234 bab0 b080 942c 942f\n\n00:12:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba31 32ba 32b5 bab0 b080 942c 942f\n\n00:12:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba31 32ba 32b6 bab0 b080 942c 942f\n\n00:12:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba31 32ba 3237 bab0 b080 942c 942f\n\n00:12:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba31 32ba 3238 bab0 b080 942c 942f\n\n00:12:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba31 32ba 32b9 bab0 b080 942c 942f\n\n00:12:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba31 32ba b3b0 bab0 b080 942c 942f\n\n00:12:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba31 32ba b331 bab0 b080 942c 942f\n\n00:12:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba31 32ba b332 bab0 b080 942c 942f\n\n00:12:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba31 32ba b3b3 bab0 b080 942c 942f\n\n00:12:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba31 32ba b334 bab0 b080 942c 942f\n\n00:12:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba31 32ba b3b5 bab0 b080 942c 942f\n\n00:12:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba31 32ba b3b6 bab0 b080 942c 942f\n\n00:12:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba31 32ba b337 bab0 b080 942c 942f\n\n00:12:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba31 32ba b338 bab0 b080 942c 942f\n\n00:12:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba31 32ba b3b9 bab0 b080 942c 942f\n\n00:12:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba31 32ba 34b0 bab0 b080 942c 942f\n\n00:12:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba31 32ba 3431 bab0 b080 942c 942f\n\n00:12:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba31 32ba 3432 bab0 b080 942c 942f\n\n00:12:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba31 32ba 34b3 bab0 b080 942c 942f\n\n00:12:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba31 32ba 3434 bab0 b080 942c 942f\n\n00:12:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba31 32ba 34b5 bab0 b080 942c 942f\n\n00:12:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba31 32ba 34b6 bab0 b080 942c 942f\n\n00:12:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba31 32ba 3437 bab0 b080 942c 942f\n\n00:12:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba31 32ba 3438 bab0 b080 942c 942f\n\n00:12:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba31 32ba 34b9 bab0 b080 942c 942f\n\n00:12:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba31 32ba b5b0 bab0 b080 942c 942f\n\n00:12:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba31 32ba b531 bab0 b080 942c 942f\n\n00:12:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba31 32ba b532 bab0 b080 942c 942f\n\n00:12:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba31 32ba b5b3 bab0 b080 942c 942f\n\n00:12:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba31 32ba b534 bab0 b080 942c 942f\n\n00:12:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba31 32ba b5b5 bab0 b080 942c 942f\n\n00:12:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba31 32ba b5b6 bab0 b080 942c 942f\n\n00:12:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba31 32ba b537 bab0 b080 942c 942f\n\n00:12:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba31 32ba b538 bab0 b080 942c 942f\n\n00:12:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba31 32ba b5b9 bab0 b080 942c 942f\n\n00:13:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba31 b3ba b0b0 bab0 b080 942c 942f\n\n00:13:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba31 b3ba b031 bab0 b080 942c 942f\n\n00:13:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba31 b3ba b032 bab0 b080 942c 942f\n\n00:13:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba31 b3ba b0b3 bab0 b080 942c 942f\n\n00:13:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba31 b3ba b034 bab0 b080 942c 942f\n\n00:13:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba31 b3ba b0b5 bab0 b080 942c 942f\n\n00:13:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba31 b3ba b0b6 bab0 b080 942c 942f\n\n00:13:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba31 b3ba b037 bab0 b080 942c 942f\n\n00:13:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba31 b3ba b038 bab0 b080 942c 942f\n\n00:13:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba31 b3ba b0b9 bab0 b080 942c 942f\n\n00:13:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba31 b3ba 31b0 bab0 b080 942c 942f\n\n00:13:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba31 b3ba 3131 bab0 b080 942c 942f\n\n00:13:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba31 b3ba 3132 bab0 b080 942c 942f\n\n00:13:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba31 b3ba 31b3 bab0 b080 942c 942f\n\n00:13:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba31 b3ba 3134 bab0 b080 942c 942f\n\n00:13:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba31 b3ba 31b5 bab0 b080 942c 942f\n\n00:13:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba31 b3ba 31b6 bab0 b080 942c 942f\n\n00:13:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba31 b3ba 3137 bab0 b080 942c 942f\n\n00:13:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba31 b3ba 3138 bab0 b080 942c 942f\n\n00:13:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba31 b3ba 31b9 bab0 b080 942c 942f\n\n00:13:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba31 b3ba 32b0 bab0 b080 942c 942f\n\n00:13:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba31 b3ba 3231 bab0 b080 942c 942f\n\n00:13:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba31 b3ba 3232 bab0 b080 942c 942f\n\n00:13:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba31 b3ba 32b3 bab0 b080 942c 942f\n\n00:13:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba31 b3ba 3234 bab0 b080 942c 942f\n\n00:13:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba31 b3ba 32b5 bab0 b080 942c 942f\n\n00:13:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba31 b3ba 32b6 bab0 b080 942c 942f\n\n00:13:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba31 b3ba 3237 bab0 b080 942c 942f\n\n00:13:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba31 b3ba 3238 bab0 b080 942c 942f\n\n00:13:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba31 b3ba 32b9 bab0 b080 942c 942f\n\n00:13:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba31 b3ba b3b0 bab0 b080 942c 942f\n\n00:13:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba31 b3ba b331 bab0 b080 942c 942f\n\n00:13:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba31 b3ba b332 bab0 b080 942c 942f\n\n00:13:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba31 b3ba b3b3 bab0 b080 942c 942f\n\n00:13:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba31 b3ba b334 bab0 b080 942c 942f\n\n00:13:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba31 b3ba b3b5 bab0 b080 942c 942f\n\n00:13:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba31 b3ba b3b6 bab0 b080 942c 942f\n\n00:13:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba31 b3ba b337 bab0 b080 942c 942f\n\n00:13:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba31 b3ba b338 bab0 b080 942c 942f\n\n00:13:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba31 b3ba b3b9 bab0 b080 942c 942f\n\n00:13:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba31 b3ba 34b0 bab0 b080 942c 942f\n\n00:13:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba31 b3ba 3431 bab0 b080 942c 942f\n\n00:13:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba31 b3ba 3432 bab0 b080 942c 942f\n\n00:13:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba31 b3ba 34b3 bab0 b080 942c 942f\n\n00:13:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba31 b3ba 3434 bab0 b080 942c 942f\n\n00:13:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba31 b3ba 34b5 bab0 b080 942c 942f\n\n00:13:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba31 b3ba 34b6 bab0 b080 942c 942f\n\n00:13:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba31 b3ba 3437 bab0 b080 942c 942f\n\n00:13:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba31 b3ba 3438 bab0 b080 942c 942f\n\n00:13:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba31 b3ba 34b9 bab0 b080 942c 942f\n\n00:13:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba31 b3ba b5b0 bab0 b080 942c 942f\n\n00:13:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba31 b3ba b531 bab0 b080 942c 942f\n\n00:13:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba31 b3ba b532 bab0 b080 942c 942f\n\n00:13:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba31 b3ba b5b3 bab0 b080 942c 942f\n\n00:13:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba31 b3ba b534 bab0 b080 942c 942f\n\n00:13:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba31 b3ba b5b5 bab0 b080 942c 942f\n\n00:13:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba31 b3ba b5b6 bab0 b080 942c 942f\n\n00:13:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba31 b3ba b537 bab0 b080 942c 942f\n\n00:13:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba31 b3ba b538 bab0 b080 942c 942f\n\n00:13:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba31 b3ba b5b9 bab0 b080 942c 942f\n\n00:14:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba31 34ba b0b0 bab0 b080 942c 942f\n\n00:14:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba31 34ba b031 bab0 b080 942c 942f\n\n00:14:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba31 34ba b032 bab0 b080 942c 942f\n\n00:14:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba31 34ba b0b3 bab0 b080 942c 942f\n\n00:14:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba31 34ba b034 bab0 b080 942c 942f\n\n00:14:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba31 34ba b0b5 bab0 b080 942c 942f\n\n00:14:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba31 34ba b0b6 bab0 b080 942c 942f\n\n00:14:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba31 34ba b037 bab0 b080 942c 942f\n\n00:14:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba31 34ba b038 bab0 b080 942c 942f\n\n00:14:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba31 34ba b0b9 bab0 b080 942c 942f\n\n00:14:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba31 34ba 31b0 bab0 b080 942c 942f\n\n00:14:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba31 34ba 3131 bab0 b080 942c 942f\n\n00:14:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba31 34ba 3132 bab0 b080 942c 942f\n\n00:14:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba31 34ba 31b3 bab0 b080 942c 942f\n\n00:14:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba31 34ba 3134 bab0 b080 942c 942f\n\n00:14:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba31 34ba 31b5 bab0 b080 942c 942f\n\n00:14:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba31 34ba 31b6 bab0 b080 942c 942f\n\n00:14:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba31 34ba 3137 bab0 b080 942c 942f\n\n00:14:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba31 34ba 3138 bab0 b080 942c 942f\n\n00:14:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba31 34ba 31b9 bab0 b080 942c 942f\n\n00:14:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba31 34ba 32b0 bab0 b080 942c 942f\n\n00:14:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba31 34ba 3231 bab0 b080 942c 942f\n\n00:14:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba31 34ba 3232 bab0 b080 942c 942f\n\n00:14:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba31 34ba 32b3 bab0 b080 942c 942f\n\n00:14:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba31 34ba 3234 bab0 b080 942c 942f\n\n00:14:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba31 34ba 32b5 bab0 b080 942c 942f\n\n00:14:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba31 34ba 32b6 bab0 b080 942c 942f\n\n00:14:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba31 34ba 3237 bab0 b080 942c 942f\n\n00:14:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba31 34ba 3238 bab0 b080 942c 942f\n\n00:14:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba31 34ba 32b9 bab0 b080 942c 942f\n\n00:14:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba31 34ba b3b0 bab0 b080 942c 942f\n\n00:14:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba31 34ba b331 bab0 b080 942c 942f\n\n00:14:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba31 34ba b332 bab0 b080 942c 942f\n\n00:14:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba31 34ba b3b3 bab0 b080 942c 942f\n\n00:14:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba31 34ba b334 bab0 b080 942c 942f\n\n00:14:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba31 34ba b3b5 bab0 b080 942c 942f\n\n00:14:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba31 34ba b3b6 bab0 b080 942c 942f\n\n00:14:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba31 34ba b337 bab0 b080 942c 942f\n\n00:14:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba31 34ba b338 bab0 b080 942c 942f\n\n00:14:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba31 34ba b3b9 bab0 b080 942c 942f\n\n00:14:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba31 34ba 34b0 bab0 b080 942c 942f\n\n00:14:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba31 34ba 3431 bab0 b080 942c 942f\n\n00:14:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba31 34ba 3432 bab0 b080 942c 942f\n\n00:14:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba31 34ba 34b3 bab0 b080 942c 942f\n\n00:14:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba31 34ba 3434 bab0 b080 942c 942f\n\n00:14:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba31 34ba 34b5 bab0 b080 942c 942f\n\n00:14:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba31 34ba 34b6 bab0 b080 942c 942f\n\n00:14:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba31 34ba 3437 bab0 b080 942c 942f\n\n00:14:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba31 34ba 3438 bab0 b080 942c 942f\n\n00:14:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba31 34ba 34b9 bab0 b080 942c 942f\n\n00:14:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba31 34ba b5b0 bab0 b080 942c 942f\n\n00:14:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba31 34ba b531 bab0 b080 942c 942f\n\n00:14:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba31 34ba b532 bab0 b080 942c 942f\n\n00:14:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba31 34ba b5b3 bab0 b080 942c 942f\n\n00:14:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba31 34ba b534 bab0 b080 942c 942f\n\n00:14:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba31 34ba b5b5 bab0 b080 942c 942f\n\n00:14:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba31 34ba b5b6 bab0 b080 942c 942f\n\n00:14:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba31 34ba b537 bab0 b080 942c 942f\n\n00:14:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba31 34ba b538 bab0 b080 942c 942f\n\n00:14:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba31 34ba b5b9 bab0 b080 942c 942f\n\n00:15:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba31 b5ba b0b0 bab0 b080 942c 942f\n\n00:15:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba31 b5ba b031 bab0 b080 942c 942f\n\n00:15:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba31 b5ba b032 bab0 b080 942c 942f\n\n00:15:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba31 b5ba b0b3 bab0 b080 942c 942f\n\n00:15:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba31 b5ba b034 bab0 b080 942c 942f\n\n00:15:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba31 b5ba b0b5 bab0 b080 942c 942f\n\n00:15:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba31 b5ba b0b6 bab0 b080 942c 942f\n\n00:15:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba31 b5ba b037 bab0 b080 942c 942f\n\n00:15:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba31 b5ba b038 bab0 b080 942c 942f\n\n00:15:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba31 b5ba b0b9 bab0 b080 942c 942f\n\n00:15:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba31 b5ba 31b0 bab0 b080 942c 942f\n\n00:15:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba31 b5ba 3131 bab0 b080 942c 942f\n\n00:15:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba31 b5ba 3132 bab0 b080 942c 942f\n\n00:15:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba31 b5ba 31b3 bab0 b080 942c 942f\n\n00:15:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba31 b5ba 3134 bab0 b080 942c 942f\n\n00:15:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba31 b5ba 31b5 bab0 b080 942c 942f\n\n00:15:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba31 b5ba 31b6 bab0 b080 942c 942f\n\n00:15:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba31 b5ba 3137 bab0 b080 942c 942f\n\n00:15:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba31 b5ba 3138 bab0 b080 942c 942f\n\n00:15:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba31 b5ba 31b9 bab0 b080 942c 942f\n\n00:15:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba31 b5ba 32b0 bab0 b080 942c 942f\n\n00:15:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba31 b5ba 3231 bab0 b080 942c 942f\n\n00:15:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba31 b5ba 3232 bab0 b080 942c 942f\n\n00:15:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba31 b5ba 32b3 bab0 b080 942c 942f\n\n00:15:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba31 b5ba 3234 bab0 b080 942c 942f\n\n00:15:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba31 b5ba 32b5 bab0 b080 942c 942f\n\n00:15:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba31 b5ba 32b6 bab0 b080 942c 942f\n\n00:15:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba31 b5ba 3237 bab0 b080 942c 942f\n\n00:15:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba31 b5ba 3238 bab0 b080 942c 942f\n\n00:15:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba31 b5ba 32b9 bab0 b080 942c 942f\n\n00:15:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba31 b5ba b3b0 bab0 b080 942c 942f\n\n00:15:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba31 b5ba b331 bab0 b080 942c 942f\n\n00:15:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba31 b5ba b332 bab0 b080 942c 942f\n\n00:15:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba31 b5ba b3b3 bab0 b080 942c 942f\n\n00:15:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba31 b5ba b334 bab0 b080 942c 942f\n\n00:15:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba31 b5ba b3b5 bab0 b080 942c 942f\n\n00:15:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba31 b5ba b3b6 bab0 b080 942c 942f\n\n00:15:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba31 b5ba b337 bab0 b080 942c 942f\n\n00:15:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba31 b5ba b338 bab0 b080 942c 942f\n\n00:15:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba31 b5ba b3b9 bab0 b080 942c 942f\n\n00:15:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba31 b5ba 34b0 bab0 b080 942c 942f\n\n00:15:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba31 b5ba 3431 bab0 b080 942c 942f\n\n00:15:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba31 b5ba 3432 bab0 b080 942c 942f\n\n00:15:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba31 b5ba 34b3 bab0 b080 942c 942f\n\n00:15:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba31 b5ba 3434 bab0 b080 942c 942f\n\n00:15:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba31 b5ba 34b5 bab0 b080 942c 942f\n\n00:15:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba31 b5ba 34b6 bab0 b080 942c 942f\n\n00:15:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba31 b5ba 3437 bab0 b080 942c 942f\n\n00:15:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba31 b5ba 3438 bab0 b080 942c 942f\n\n00:15:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba31 b5ba 34b9 bab0 b080 942c 942f\n\n00:15:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba31 b5ba b5b0 bab0 b080 942c 942f\n\n00:15:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba31 b5ba b531 bab0 b080 942c 942f\n\n00:15:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba31 b5ba b532 bab0 b080 942c 942f\n\n00:15:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba31 b5ba b5b3 bab0 b080 942c 942f\n\n00:15:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba31 b5ba b534 bab0 b080 942c 942f\n\n00:15:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba31 b5ba b5b5 bab0 b080 942c 942f\n\n00:15:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba31 b5ba b5b6 bab0 b080 942c 942f\n\n00:15:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba31 b5ba b537 bab0 b080 942c 942f\n\n00:15:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba31 b5ba b538 bab0 b080 942c 942f\n\n00:15:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba31 b5ba b5b9 bab0 b080 942c 942f\n\n00:16:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba31 b6ba b0b0 bab0 b080 942c 942f\n\n00:16:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba31 b6ba b031 bab0 b080 942c 942f\n\n00:16:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba31 b6ba b032 bab0 b080 942c 942f\n\n00:16:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba31 b6ba b0b3 bab0 b080 942c 942f\n\n00:16:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba31 b6ba b034 bab0 b080 942c 942f\n\n00:16:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba31 b6ba b0b5 bab0 b080 942c 942f\n\n00:16:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba31 b6ba b0b6 bab0 b080 942c 942f\n\n00:16:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba31 b6ba b037 bab0 b080 942c 942f\n\n00:16:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba31 b6ba b038 bab0 b080 942c 942f\n\n00:16:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba31 b6ba b0b9 bab0 b080 942c 942f\n\n00:16:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba31 b6ba 31b0 bab0 b080 942c 942f\n\n00:16:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba31 b6ba 3131 bab0 b080 942c 942f\n\n00:16:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba31 b6ba 3132 bab0 b080 942c 942f\n\n00:16:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba31 b6ba 31b3 bab0 b080 942c 942f\n\n00:16:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba31 b6ba 3134 bab0 b080 942c 942f\n\n00:16:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba31 b6ba 31b5 bab0 b080 942c 942f\n\n00:16:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba31 b6ba 31b6 bab0 b080 942c 942f\n\n00:16:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba31 b6ba 3137 bab0 b080 942c 942f\n\n00:16:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba31 b6ba 3138 bab0 b080 942c 942f\n\n00:16:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba31 b6ba 31b9 bab0 b080 942c 942f\n\n00:16:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba31 b6ba 32b0 bab0 b080 942c 942f\n\n00:16:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba31 b6ba 3231 bab0 b080 942c 942f\n\n00:16:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba31 b6ba 3232 bab0 b080 942c 942f\n\n00:16:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba31 b6ba 32b3 bab0 b080 942c 942f\n\n00:16:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba31 b6ba 3234 bab0 b080 942c 942f\n\n00:16:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba31 b6ba 32b5 bab0 b080 942c 942f\n\n00:16:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba31 b6ba 32b6 bab0 b080 942c 942f\n\n00:16:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba31 b6ba 3237 bab0 b080 942c 942f\n\n00:16:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba31 b6ba 3238 bab0 b080 942c 942f\n\n00:16:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba31 b6ba 32b9 bab0 b080 942c 942f\n\n00:16:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba31 b6ba b3b0 bab0 b080 942c 942f\n\n00:16:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba31 b6ba b331 bab0 b080 942c 942f\n\n00:16:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba31 b6ba b332 bab0 b080 942c 942f\n\n00:16:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba31 b6ba b3b3 bab0 b080 942c 942f\n\n00:16:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba31 b6ba b334 bab0 b080 942c 942f\n\n00:16:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba31 b6ba b3b5 bab0 b080 942c 942f\n\n00:16:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba31 b6ba b3b6 bab0 b080 942c 942f\n\n00:16:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba31 b6ba b337 bab0 b080 942c 942f\n\n00:16:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba31 b6ba b338 bab0 b080 942c 942f\n\n00:16:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba31 b6ba b3b9 bab0 b080 942c 942f\n\n00:16:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba31 b6ba 34b0 bab0 b080 942c 942f\n\n00:16:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba31 b6ba 3431 bab0 b080 942c 942f\n\n00:16:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba31 b6ba 3432 bab0 b080 942c 942f\n\n00:16:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba31 b6ba 34b3 bab0 b080 942c 942f\n\n00:16:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba31 b6ba 3434 bab0 b080 942c 942f\n\n00:16:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba31 b6ba 34b5 bab0 b080 942c 942f\n\n00:16:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba31 b6ba 34b6 bab0 b080 942c 942f\n\n00:16:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba31 b6ba 3437 bab0 b080 942c 942f\n\n00:16:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba31 b6ba 3438 bab0 b080 942c 942f\n\n00:16:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba31 b6ba 34b9 bab0 b080 942c 942f\n\n00:16:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba31 b6ba b5b0 bab0 b080 942c 942f\n\n00:16:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba31 b6ba b531 bab0 b080 942c 942f\n\n00:16:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba31 b6ba b532 bab0 b080 942c 942f\n\n00:16:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba31 b6ba b5b3 bab0 b080 942c 942f\n\n00:16:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba31 b6ba b534 bab0 b080 942c 942f\n\n00:16:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba31 b6ba b5b5 bab0 b080 942c 942f\n\n00:16:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba31 b6ba b5b6 bab0 b080 942c 942f\n\n00:16:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba31 b6ba b537 bab0 b080 942c 942f\n\n00:16:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba31 b6ba b538 bab0 b080 942c 942f\n\n00:16:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba31 b6ba b5b9 bab0 b080 942c 942f\n\n00:17:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba31 37ba b0b0 bab0 b080 942c 942f\n\n00:17:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba31 37ba b031 bab0 b080 942c 942f\n\n00:17:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba31 37ba b032 bab0 b080 942c 942f\n\n00:17:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba31 37ba b0b3 bab0 b080 942c 942f\n\n00:17:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba31 37ba b034 bab0 b080 942c 942f\n\n00:17:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba31 37ba b0b5 bab0 b080 942c 942f\n\n00:17:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba31 37ba b0b6 bab0 b080 942c 942f\n\n00:17:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba31 37ba b037 bab0 b080 942c 942f\n\n00:17:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba31 37ba b038 bab0 b080 942c 942f\n\n00:17:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba31 37ba b0b9 bab0 b080 942c 942f\n\n00:17:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba31 37ba 31b0 bab0 b080 942c 942f\n\n00:17:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba31 37ba 3131 bab0 b080 942c 942f\n\n00:17:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba31 37ba 3132 bab0 b080 942c 942f\n\n00:17:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba31 37ba 31b3 bab0 b080 942c 942f\n\n00:17:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba31 37ba 3134 bab0 b080 942c 942f\n\n00:17:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba31 37ba 31b5 bab0 b080 942c 942f\n\n00:17:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba31 37ba 31b6 bab0 b080 942c 942f\n\n00:17:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba31 37ba 3137 bab0 b080 942c 942f\n\n00:17:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba31 37ba 3138 bab0 b080 942c 942f\n\n00:17:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba31 37ba 31b9 bab0 b080 942c 942f\n\n00:17:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba31 37ba 32b0 bab0 b080 942c 942f\n\n00:17:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba31 37ba 3231 bab0 b080 942c 942f\n\n00:17:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba31 37ba 3232 bab0 b080 942c 942f\n\n00:17:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba31 37ba 32b3 bab0 b080 942c 942f\n\n00:17:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba31 37ba 3234 bab0 b080 942c 942f\n\n00:17:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba31 37ba 32b5 bab0 b080 942c 942f\n\n00:17:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba31 37ba 32b6 bab0 b080 942c 942f\n\n00:17:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba31 37ba 3237 bab0 b080 942c 942f\n\n00:17:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba31 37ba 3238 bab0 b080 942c 942f\n\n00:17:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba31 37ba 32b9 bab0 b080 942c 942f\n\n00:17:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba31 37ba b3b0 bab0 b080 942c 942f\n\n00:17:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba31 37ba b331 bab0 b080 942c 942f\n\n00:17:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba31 37ba b332 bab0 b080 942c 942f\n\n00:17:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba31 37ba b3b3 bab0 b080 942c 942f\n\n00:17:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba31 37ba b334 bab0 b080 942c 942f\n\n00:17:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba31 37ba b3b5 bab0 b080 942c 942f\n\n00:17:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba31 37ba b3b6 bab0 b080 942c 942f\n\n00:17:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba31 37ba b337 bab0 b080 942c 942f\n\n00:17:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba31 37ba b338 bab0 b080 942c 942f\n\n00:17:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba31 37ba b3b9 bab0 b080 942c 942f\n\n00:17:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba31 37ba 34b0 bab0 b080 942c 942f\n\n00:17:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba31 37ba 3431 bab0 b080 942c 942f\n\n00:17:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba31 37ba 3432 bab0 b080 942c 942f\n\n00:17:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba31 37ba 34b3 bab0 b080 942c 942f\n\n00:17:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba31 37ba 3434 bab0 b080 942c 942f\n\n00:17:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba31 37ba 34b5 bab0 b080 942c 942f\n\n00:17:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba31 37ba 34b6 bab0 b080 942c 942f\n\n00:17:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba31 37ba 3437 bab0 b080 942c 942f\n\n00:17:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba31 37ba 3438 bab0 b080 942c 942f\n\n00:17:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba31 37ba 34b9 bab0 b080 942c 942f\n\n00:17:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba31 37ba b5b0 bab0 b080 942c 942f\n\n00:17:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba31 37ba b531 bab0 b080 942c 942f\n\n00:17:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba31 37ba b532 bab0 b080 942c 942f\n\n00:17:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba31 37ba b5b3 bab0 b080 942c 942f\n\n00:17:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba31 37ba b534 bab0 b080 942c 942f\n\n00:17:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba31 37ba b5b5 bab0 b080 942c 942f\n\n00:17:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba31 37ba b5b6 bab0 b080 942c 942f\n\n00:17:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba31 37ba b537 bab0 b080 942c 942f\n\n00:17:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba31 37ba b538 bab0 b080 942c 942f\n\n00:17:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba31 37ba b5b9 bab0 b080 942c 942f\n\n00:18:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba31 38ba b0b0 bab0 b080 942c 942f\n\n00:18:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba31 38ba b031 bab0 b080 942c 942f\n\n00:18:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba31 38ba b032 bab0 b080 942c 942f\n\n00:18:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba31 38ba b0b3 bab0 b080 942c 942f\n\n00:18:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba31 38ba b034 bab0 b080 942c 942f\n\n00:18:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba31 38ba b0b5 bab0 b080 942c 942f\n\n00:18:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba31 38ba b0b6 bab0 b080 942c 942f\n\n00:18:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba31 38ba b037 bab0 b080 942c 942f\n\n00:18:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba31 38ba b038 bab0 b080 942c 942f\n\n00:18:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba31 38ba b0b9 bab0 b080 942c 942f\n\n00:18:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba31 38ba 31b0 bab0 b080 942c 942f\n\n00:18:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba31 38ba 3131 bab0 b080 942c 942f\n\n00:18:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba31 38ba 3132 bab0 b080 942c 942f\n\n00:18:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba31 38ba 31b3 bab0 b080 942c 942f\n\n00:18:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba31 38ba 3134 bab0 b080 942c 942f\n\n00:18:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba31 38ba 31b5 bab0 b080 942c 942f\n\n00:18:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba31 38ba 31b6 bab0 b080 942c 942f\n\n00:18:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba31 38ba 3137 bab0 b080 942c 942f\n\n00:18:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba31 38ba 3138 bab0 b080 942c 942f\n\n00:18:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba31 38ba 31b9 bab0 b080 942c 942f\n\n00:18:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba31 38ba 32b0 bab0 b080 942c 942f\n\n00:18:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba31 38ba 3231 bab0 b080 942c 942f\n\n00:18:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba31 38ba 3232 bab0 b080 942c 942f\n\n00:18:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba31 38ba 32b3 bab0 b080 942c 942f\n\n00:18:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba31 38ba 3234 bab0 b080 942c 942f\n\n00:18:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba31 38ba 32b5 bab0 b080 942c 942f\n\n00:18:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba31 38ba 32b6 bab0 b080 942c 942f\n\n00:18:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba31 38ba 3237 bab0 b080 942c 942f\n\n00:18:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba31 38ba 3238 bab0 b080 942c 942f\n\n00:18:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba31 38ba 32b9 bab0 b080 942c 942f\n\n00:18:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba31 38ba b3b0 bab0 b080 942c 942f\n\n00:18:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba31 38ba b331 bab0 b080 942c 942f\n\n00:18:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba31 38ba b332 bab0 b080 942c 942f\n\n00:18:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba31 38ba b3b3 bab0 b080 942c 942f\n\n00:18:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba31 38ba b334 bab0 b080 942c 942f\n\n00:18:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba31 38ba b3b5 bab0 b080 942c 942f\n\n00:18:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba31 38ba b3b6 bab0 b080 942c 942f\n\n00:18:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba31 38ba b337 bab0 b080 942c 942f\n\n00:18:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba31 38ba b338 bab0 b080 942c 942f\n\n00:18:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba31 38ba b3b9 bab0 b080 942c 942f\n\n00:18:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba31 38ba 34b0 bab0 b080 942c 942f\n\n00:18:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba31 38ba 3431 bab0 b080 942c 942f\n\n00:18:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba31 38ba 3432 bab0 b080 942c 942f\n\n00:18:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba31 38ba 34b3 bab0 b080 942c 942f\n\n00:18:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba31 38ba 3434 bab0 b080 942c 942f\n\n00:18:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba31 38ba 34b5 bab0 b080 942c 942f\n\n00:18:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba31 38ba 34b6 bab0 b080 942c 942f\n\n00:18:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba31 38ba 3437 bab0 b080 942c 942f\n\n00:18:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba31 38ba 3438 bab0 b080 942c 942f\n\n00:18:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba31 38ba 34b9 bab0 b080 942c 942f\n\n00:18:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba31 38ba b5b0 bab0 b080 942c 942f\n\n00:18:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba31 38ba b531 bab0 b080 942c 942f\n\n00:18:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba31 38ba b532 bab0 b080 942c 942f\n\n00:18:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba31 38ba b5b3 bab0 b080 942c 942f\n\n00:18:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba31 38ba b534 bab0 b080 942c 942f\n\n00:18:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba31 38ba b5b5 bab0 b080 942c 942f\n\n00:18:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba31 38ba b5b6 bab0 b080 942c 942f\n\n00:18:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba31 38ba b537 bab0 b080 942c 942f\n\n00:18:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba31 38ba b538 bab0 b080 942c 942f\n\n00:18:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba31 38ba b5b9 bab0 b080 942c 942f\n\n00:19:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba31 b9ba b0b0 bab0 b080 942c 942f\n\n00:19:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba31 b9ba b031 bab0 b080 942c 942f\n\n00:19:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba31 b9ba b032 bab0 b080 942c 942f\n\n00:19:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba31 b9ba b0b3 bab0 b080 942c 942f\n\n00:19:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba31 b9ba b034 bab0 b080 942c 942f\n\n00:19:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba31 b9ba b0b5 bab0 b080 942c 942f\n\n00:19:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba31 b9ba b0b6 bab0 b080 942c 942f\n\n00:19:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba31 b9ba b037 bab0 b080 942c 942f\n\n00:19:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba31 b9ba b038 bab0 b080 942c 942f\n\n00:19:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba31 b9ba b0b9 bab0 b080 942c 942f\n\n00:19:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba31 b9ba 31b0 bab0 b080 942c 942f\n\n00:19:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba31 b9ba 3131 bab0 b080 942c 942f\n\n00:19:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba31 b9ba 3132 bab0 b080 942c 942f\n\n00:19:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba31 b9ba 31b3 bab0 b080 942c 942f\n\n00:19:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba31 b9ba 3134 bab0 b080 942c 942f\n\n00:19:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba31 b9ba 31b5 bab0 b080 942c 942f\n\n00:19:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba31 b9ba 31b6 bab0 b080 942c 942f\n\n00:19:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba31 b9ba 3137 bab0 b080 942c 942f\n\n00:19:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba31 b9ba 3138 bab0 b080 942c 942f\n\n00:19:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba31 b9ba 31b9 bab0 b080 942c 942f\n\n00:19:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba31 b9ba 32b0 bab0 b080 942c 942f\n\n00:19:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba31 b9ba 3231 bab0 b080 942c 942f\n\n00:19:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba31 b9ba 3232 bab0 b080 942c 942f\n\n00:19:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba31 b9ba 32b3 bab0 b080 942c 942f\n\n00:19:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba31 b9ba 3234 bab0 b080 942c 942f\n\n00:19:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba31 b9ba 32b5 bab0 b080 942c 942f\n\n00:19:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba31 b9ba 32b6 bab0 b080 942c 942f\n\n00:19:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba31 b9ba 3237 bab0 b080 942c 942f\n\n00:19:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba31 b9ba 3238 bab0 b080 942c 942f\n\n00:19:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba31 b9ba 32b9 bab0 b080 942c 942f\n\n00:19:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba31 b9ba b3b0 bab0 b080 942c 942f\n\n00:19:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba31 b9ba b331 bab0 b080 942c 942f\n\n00:19:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba31 b9ba b332 bab0 b080 942c 942f\n\n00:19:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba31 b9ba b3b3 bab0 b080 942c 942f\n\n00:19:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba31 b9ba b334 bab0 b080 942c 942f\n\n00:19:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba31 b9ba b3b5 bab0 b080 942c 942f\n\n00:19:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba31 b9ba b3b6 bab0 b080 942c 942f\n\n00:19:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba31 b9ba b337 bab0 b080 942c 942f\n\n00:19:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba31 b9ba b338 bab0 b080 942c 942f\n\n00:19:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba31 b9ba b3b9 bab0 b080 942c 942f\n\n00:19:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba31 b9ba 34b0 bab0 b080 942c 942f\n\n00:19:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba31 b9ba 3431 bab0 b080 942c 942f\n\n00:19:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba31 b9ba 3432 bab0 b080 942c 942f\n\n00:19:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba31 b9ba 34b3 bab0 b080 942c 942f\n\n00:19:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba31 b9ba 3434 bab0 b080 942c 942f\n\n00:19:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba31 b9ba 34b5 bab0 b080 942c 942f\n\n00:19:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba31 b9ba 34b6 bab0 b080 942c 942f\n\n00:19:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba31 b9ba 3437 bab0 b080 942c 942f\n\n00:19:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba31 b9ba 3438 bab0 b080 942c 942f\n\n00:19:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba31 b9ba 34b9 bab0 b080 942c 942f\n\n00:19:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba31 b9ba b5b0 bab0 b080 942c 942f\n\n00:19:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba31 b9ba b531 bab0 b080 942c 942f\n\n00:19:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba31 b9ba b532 bab0 b080 942c 942f\n\n00:19:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba31 b9ba b5b3 bab0 b080 942c 942f\n\n00:19:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba31 b9ba b534 bab0 b080 942c 942f\n\n00:19:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba31 b9ba b5b5 bab0 b080 942c 942f\n\n00:19:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba31 b9ba b5b6 bab0 b080 942c 942f\n\n00:19:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba31 b9ba b537 bab0 b080 942c 942f\n\n00:19:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba31 b9ba b538 bab0 b080 942c 942f\n\n00:19:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba31 b9ba b5b9 bab0 b080 942c 942f\n\n00:20:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba32 b0ba b0b0 bab0 b080 942c 942f\n\n00:20:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba32 b0ba b031 bab0 b080 942c 942f\n\n00:20:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba32 b0ba b032 bab0 b080 942c 942f\n\n00:20:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba32 b0ba b0b3 bab0 b080 942c 942f\n\n00:20:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba32 b0ba b034 bab0 b080 942c 942f\n\n00:20:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba32 b0ba b0b5 bab0 b080 942c 942f\n\n00:20:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba32 b0ba b0b6 bab0 b080 942c 942f\n\n00:20:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba32 b0ba b037 bab0 b080 942c 942f\n\n00:20:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba32 b0ba b038 bab0 b080 942c 942f\n\n00:20:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba32 b0ba b0b9 bab0 b080 942c 942f\n\n00:20:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba32 b0ba 31b0 bab0 b080 942c 942f\n\n00:20:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba32 b0ba 3131 bab0 b080 942c 942f\n\n00:20:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba32 b0ba 3132 bab0 b080 942c 942f\n\n00:20:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba32 b0ba 31b3 bab0 b080 942c 942f\n\n00:20:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba32 b0ba 3134 bab0 b080 942c 942f\n\n00:20:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba32 b0ba 31b5 bab0 b080 942c 942f\n\n00:20:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba32 b0ba 31b6 bab0 b080 942c 942f\n\n00:20:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba32 b0ba 3137 bab0 b080 942c 942f\n\n00:20:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba32 b0ba 3138 bab0 b080 942c 942f\n\n00:20:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba32 b0ba 31b9 bab0 b080 942c 942f\n\n00:20:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba32 b0ba 32b0 bab0 b080 942c 942f\n\n00:20:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba32 b0ba 3231 bab0 b080 942c 942f\n\n00:20:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba32 b0ba 3232 bab0 b080 942c 942f\n\n00:20:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba32 b0ba 32b3 bab0 b080 942c 942f\n\n00:20:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba32 b0ba 3234 bab0 b080 942c 942f\n\n00:20:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba32 b0ba 32b5 bab0 b080 942c 942f\n\n00:20:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba32 b0ba 32b6 bab0 b080 942c 942f\n\n00:20:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba32 b0ba 3237 bab0 b080 942c 942f\n\n00:20:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba32 b0ba 3238 bab0 b080 942c 942f\n\n00:20:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba32 b0ba 32b9 bab0 b080 942c 942f\n\n00:20:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba32 b0ba b3b0 bab0 b080 942c 942f\n\n00:20:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba32 b0ba b331 bab0 b080 942c 942f\n\n00:20:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba32 b0ba b332 bab0 b080 942c 942f\n\n00:20:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba32 b0ba b3b3 bab0 b080 942c 942f\n\n00:20:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba32 b0ba b334 bab0 b080 942c 942f\n\n00:20:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba32 b0ba b3b5 bab0 b080 942c 942f\n\n00:20:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba32 b0ba b3b6 bab0 b080 942c 942f\n\n00:20:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba32 b0ba b337 bab0 b080 942c 942f\n\n00:20:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba32 b0ba b338 bab0 b080 942c 942f\n\n00:20:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba32 b0ba b3b9 bab0 b080 942c 942f\n\n00:20:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba32 b0ba 34b0 bab0 b080 942c 942f\n\n00:20:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba32 b0ba 3431 bab0 b080 942c 942f\n\n00:20:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba32 b0ba 3432 bab0 b080 942c 942f\n\n00:20:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba32 b0ba 34b3 bab0 b080 942c 942f\n\n00:20:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba32 b0ba 3434 bab0 b080 942c 942f\n\n00:20:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba32 b0ba 34b5 bab0 b080 942c 942f\n\n00:20:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba32 b0ba 34b6 bab0 b080 942c 942f\n\n00:20:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba32 b0ba 3437 bab0 b080 942c 942f\n\n00:20:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba32 b0ba 3438 bab0 b080 942c 942f\n\n00:20:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba32 b0ba 34b9 bab0 b080 942c 942f\n\n00:20:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba32 b0ba b5b0 bab0 b080 942c 942f\n\n00:20:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba32 b0ba b531 bab0 b080 942c 942f\n\n00:20:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba32 b0ba b532 bab0 b080 942c 942f\n\n00:20:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba32 b0ba b5b3 bab0 b080 942c 942f\n\n00:20:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba32 b0ba b534 bab0 b080 942c 942f\n\n00:20:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba32 b0ba b5b5 bab0 b080 942c 942f\n\n00:20:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba32 b0ba b5b6 bab0 b080 942c 942f\n\n00:20:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba32 b0ba b537 bab0 b080 942c 942f\n\n00:20:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba32 b0ba b538 bab0 b080 942c 942f\n\n00:20:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba32 b0ba b5b9 bab0 b080 942c 942f\n\n00:21:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba32 31ba b0b0 bab0 b080 942c 942f\n\n00:21:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba32 31ba b031 bab0 b080 942c 942f\n\n00:21:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba32 31ba b032 bab0 b080 942c 942f\n\n00:21:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba32 31ba b0b3 bab0 b080 942c 942f\n\n00:21:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba32 31ba b034 bab0 b080 942c 942f\n\n00:21:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba32 31ba b0b5 bab0 b080 942c 942f\n\n00:21:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba32 31ba b0b6 bab0 b080 942c 942f\n\n00:21:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba32 31ba b037 bab0 b080 942c 942f\n\n00:21:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba32 31ba b038 bab0 b080 942c 942f\n\n00:21:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba32 31ba b0b9 bab0 b080 942c 942f\n\n00:21:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba32 31ba 31b0 bab0 b080 942c 942f\n\n00:21:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba32 31ba 3131 bab0 b080 942c 942f\n\n00:21:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba32 31ba 3132 bab0 b080 942c 942f\n\n00:21:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba32 31ba 31b3 bab0 b080 942c 942f\n\n00:21:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba32 31ba 3134 bab0 b080 942c 942f\n\n00:21:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba32 31ba 31b5 bab0 b080 942c 942f\n\n00:21:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba32 31ba 31b6 bab0 b080 942c 942f\n\n00:21:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba32 31ba 3137 bab0 b080 942c 942f\n\n00:21:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba32 31ba 3138 bab0 b080 942c 942f\n\n00:21:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba32 31ba 31b9 bab0 b080 942c 942f\n\n00:21:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba32 31ba 32b0 bab0 b080 942c 942f\n\n00:21:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba32 31ba 3231 bab0 b080 942c 942f\n\n00:21:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba32 31ba 3232 bab0 b080 942c 942f\n\n00:21:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba32 31ba 32b3 bab0 b080 942c 942f\n\n00:21:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba32 31ba 3234 bab0 b080 942c 942f\n\n00:21:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba32 31ba 32b5 bab0 b080 942c 942f\n\n00:21:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba32 31ba 32b6 bab0 b080 942c 942f\n\n00:21:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba32 31ba 3237 bab0 b080 942c 942f\n\n00:21:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba32 31ba 3238 bab0 b080 942c 942f\n\n00:21:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba32 31ba 32b9 bab0 b080 942c 942f\n\n00:21:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba32 31ba b3b0 bab0 b080 942c 942f\n\n00:21:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba32 31ba b331 bab0 b080 942c 942f\n\n00:21:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba32 31ba b332 bab0 b080 942c 942f\n\n00:21:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba32 31ba b3b3 bab0 b080 942c 942f\n\n00:21:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba32 31ba b334 bab0 b080 942c 942f\n\n00:21:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba32 31ba b3b5 bab0 b080 942c 942f\n\n00:21:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba32 31ba b3b6 bab0 b080 942c 942f\n\n00:21:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba32 31ba b337 bab0 b080 942c 942f\n\n00:21:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba32 31ba b338 bab0 b080 942c 942f\n\n00:21:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba32 31ba b3b9 bab0 b080 942c 942f\n\n00:21:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba32 31ba 34b0 bab0 b080 942c 942f\n\n00:21:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba32 31ba 3431 bab0 b080 942c 942f\n\n00:21:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba32 31ba 3432 bab0 b080 942c 942f\n\n00:21:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba32 31ba 34b3 bab0 b080 942c 942f\n\n00:21:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba32 31ba 3434 bab0 b080 942c 942f\n\n00:21:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba32 31ba 34b5 bab0 b080 942c 942f\n\n00:21:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba32 31ba 34b6 bab0 b080 942c 942f\n\n00:21:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba32 31ba 3437 bab0 b080 942c 942f\n\n00:21:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba32 31ba 3438 bab0 b080 942c 942f\n\n00:21:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba32 31ba 34b9 bab0 b080 942c 942f\n\n00:21:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba32 31ba b5b0 bab0 b080 942c 942f\n\n00:21:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba32 31ba b531 bab0 b080 942c 942f\n\n00:21:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba32 31ba b532 bab0 b080 942c 942f\n\n00:21:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba32 31ba b5b3 bab0 b080 942c 942f\n\n00:21:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba32 31ba b534 bab0 b080 942c 942f\n\n00:21:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba32 31ba b5b5 bab0 b080 942c 942f\n\n00:21:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba32 31ba b5b6 bab0 b080 942c 942f\n\n00:21:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba32 31ba b537 bab0 b080 942c 942f\n\n00:21:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba32 31ba b538 bab0 b080 942c 942f\n\n00:21:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba32 31ba b5b9 bab0 b080 942c 942f\n\n00:22:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba32 32ba b0b0 bab0 b080 942c 942f\n\n00:22:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba32 32ba b031 bab0 b080 942c 942f\n\n00:22:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba32 32ba b032 bab0 b080 942c 942f\n\n00:22:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba32 32ba b0b3 bab0 b080 942c 942f\n\n00:22:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba32 32ba b034 bab0 b080 942c 942f\n\n00:22:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba32 32ba b0b5 bab0 b080 942c 942f\n\n00:22:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba32 32ba b0b6 bab0 b080 942c 942f\n\n00:22:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba32 32ba b037 bab0 b080 942c 942f\n\n00:22:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba32 32ba b038 bab0 b080 942c 942f\n\n00:22:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba32 32ba b0b9 bab0 b080 942c 942f\n\n00:22:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba32 32ba 31b0 bab0 b080 942c 942f\n\n00:22:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba32 32ba 3131 bab0 b080 942c 942f\n\n00:22:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba32 32ba 3132 bab0 b080 942c 942f\n\n00:22:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba32 32ba 31b3 bab0 b080 942c 942f\n\n00:22:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba32 32ba 3134 bab0 b080 942c 942f\n\n00:22:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba32 32ba 31b5 bab0 b080 942c 942f\n\n00:22:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba32 32ba 31b6 bab0 b080 942c 942f\n\n00:22:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba32 32ba 3137 bab0 b080 942c 942f\n\n00:22:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba32 32ba 3138 bab0 b080 942c 942f\n\n00:22:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba32 32ba 31b9 bab0 b080 942c 942f\n\n00:22:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba32 32ba 32b0 bab0 b080 942c 942f\n\n00:22:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba32 32ba 3231 bab0 b080 942c 942f\n\n00:22:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba32 32ba 3232 bab0 b080 942c 942f\n\n00:22:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba32 32ba 32b3 bab0 b080 942c 942f\n\n00:22:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba32 32ba 3234 bab0 b080 942c 942f\n\n00:22:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba32 32ba 32b5 bab0 b080 942c 942f\n\n00:22:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba32 32ba 32b6 bab0 b080 942c 942f\n\n00:22:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba32 32ba 3237 bab0 b080 942c 942f\n\n00:22:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba32 32ba 3238 bab0 b080 942c 942f\n\n00:22:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba32 32ba 32b9 bab0 b080 942c 942f\n\n00:22:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba32 32ba b3b0 bab0 b080 942c 942f\n\n00:22:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba32 32ba b331 bab0 b080 942c 942f\n\n00:22:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba32 32ba b332 bab0 b080 942c 942f\n\n00:22:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba32 32ba b3b3 bab0 b080 942c 942f\n\n00:22:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba32 32ba b334 bab0 b080 942c 942f\n\n00:22:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba32 32ba b3b5 bab0 b080 942c 942f\n\n00:22:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba32 32ba b3b6 bab0 b080 942c 942f\n\n00:22:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba32 32ba b337 bab0 b080 942c 942f\n\n00:22:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba32 32ba b338 bab0 b080 942c 942f\n\n00:22:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba32 32ba b3b9 bab0 b080 942c 942f\n\n00:22:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba32 32ba 34b0 bab0 b080 942c 942f\n\n00:22:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba32 32ba 3431 bab0 b080 942c 942f\n\n00:22:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba32 32ba 3432 bab0 b080 942c 942f\n\n00:22:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba32 32ba 34b3 bab0 b080 942c 942f\n\n00:22:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba32 32ba 3434 bab0 b080 942c 942f\n\n00:22:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba32 32ba 34b5 bab0 b080 942c 942f\n\n00:22:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba32 32ba 34b6 bab0 b080 942c 942f\n\n00:22:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba32 32ba 3437 bab0 b080 942c 942f\n\n00:22:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba32 32ba 3438 bab0 b080 942c 942f\n\n00:22:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba32 32ba 34b9 bab0 b080 942c 942f\n\n00:22:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba32 32ba b5b0 bab0 b080 942c 942f\n\n00:22:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba32 32ba b531 bab0 b080 942c 942f\n\n00:22:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba32 32ba b532 bab0 b080 942c 942f\n\n00:22:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba32 32ba b5b3 bab0 b080 942c 942f\n\n00:22:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba32 32ba b534 bab0 b080 942c 942f\n\n00:22:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba32 32ba b5b5 bab0 b080 942c 942f\n\n00:22:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba32 32ba b5b6 bab0 b080 942c 942f\n\n00:22:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba32 32ba b537 bab0 b080 942c 942f\n\n00:22:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba32 32ba b538 bab0 b080 942c 942f\n\n00:22:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba32 32ba b5b9 bab0 b080 942c 942f\n\n00:23:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba32 b3ba b0b0 bab0 b080 942c 942f\n\n00:23:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba32 b3ba b031 bab0 b080 942c 942f\n\n00:23:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba32 b3ba b032 bab0 b080 942c 942f\n\n00:23:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba32 b3ba b0b3 bab0 b080 942c 942f\n\n00:23:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba32 b3ba b034 bab0 b080 942c 942f\n\n00:23:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba32 b3ba b0b5 bab0 b080 942c 942f\n\n00:23:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba32 b3ba b0b6 bab0 b080 942c 942f\n\n00:23:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba32 b3ba b037 bab0 b080 942c 942f\n\n00:23:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba32 b3ba b038 bab0 b080 942c 942f\n\n00:23:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba32 b3ba b0b9 bab0 b080 942c 942f\n\n00:23:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba32 b3ba 31b0 bab0 b080 942c 942f\n\n00:23:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba32 b3ba 3131 bab0 b080 942c 942f\n\n00:23:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba32 b3ba 3132 bab0 b080 942c 942f\n\n00:23:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba32 b3ba 31b3 bab0 b080 942c 942f\n\n00:23:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba32 b3ba 3134 bab0 b080 942c 942f\n\n00:23:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba32 b3ba 31b5 bab0 b080 942c 942f\n\n00:23:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba32 b3ba 31b6 bab0 b080 942c 942f\n\n00:23:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba32 b3ba 3137 bab0 b080 942c 942f\n\n00:23:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba32 b3ba 3138 bab0 b080 942c 942f\n\n00:23:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba32 b3ba 31b9 bab0 b080 942c 942f\n\n00:23:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba32 b3ba 32b0 bab0 b080 942c 942f\n\n00:23:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba32 b3ba 3231 bab0 b080 942c 942f\n\n00:23:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba32 b3ba 3232 bab0 b080 942c 942f\n\n00:23:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba32 b3ba 32b3 bab0 b080 942c 942f\n\n00:23:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba32 b3ba 3234 bab0 b080 942c 942f\n\n00:23:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba32 b3ba 32b5 bab0 b080 942c 942f\n\n00:23:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba32 b3ba 32b6 bab0 b080 942c 942f\n\n00:23:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba32 b3ba 3237 bab0 b080 942c 942f\n\n00:23:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba32 b3ba 3238 bab0 b080 942c 942f\n\n00:23:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba32 b3ba 32b9 bab0 b080 942c 942f\n\n00:23:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba32 b3ba b3b0 bab0 b080 942c 942f\n\n00:23:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba32 b3ba b331 bab0 b080 942c 942f\n\n00:23:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba32 b3ba b332 bab0 b080 942c 942f\n\n00:23:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba32 b3ba b3b3 bab0 b080 942c 942f\n\n00:23:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba32 b3ba b334 bab0 b080 942c 942f\n\n00:23:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba32 b3ba b3b5 bab0 b080 942c 942f\n\n00:23:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba32 b3ba b3b6 bab0 b080 942c 942f\n\n00:23:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba32 b3ba b337 bab0 b080 942c 942f\n\n00:23:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba32 b3ba b338 bab0 b080 942c 942f\n\n00:23:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba32 b3ba b3b9 bab0 b080 942c 942f\n\n00:23:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba32 b3ba 34b0 bab0 b080 942c 942f\n\n00:23:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba32 b3ba 3431 bab0 b080 942c 942f\n\n00:23:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba32 b3ba 3432 bab0 b080 942c 942f\n\n00:23:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba32 b3ba 34b3 bab0 b080 942c 942f\n\n00:23:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba32 b3ba 3434 bab0 b080 942c 942f\n\n00:23:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba32 b3ba 34b5 bab0 b080 942c 942f\n\n00:23:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba32 b3ba 34b6 bab0 b080 942c 942f\n\n00:23:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba32 b3ba 3437 bab0 b080 942c 942f\n\n00:23:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba32 b3ba 3438 bab0 b080 942c 942f\n\n00:23:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba32 b3ba 34b9 bab0 b080 942c 942f\n\n00:23:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba32 b3ba b5b0 bab0 b080 942c 942f\n\n00:23:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba32 b3ba b531 bab0 b080 942c 942f\n\n00:23:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba32 b3ba b532 bab0 b080 942c 942f\n\n00:23:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba32 b3ba b5b3 bab0 b080 942c 942f\n\n00:23:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba32 b3ba b534 bab0 b080 942c 942f\n\n00:23:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba32 b3ba b5b5 bab0 b080 942c 942f\n\n00:23:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba32 b3ba b5b6 bab0 b080 942c 942f\n\n00:23:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba32 b3ba b537 bab0 b080 942c 942f\n\n00:23:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba32 b3ba b538 bab0 b080 942c 942f\n\n00:23:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba32 b3ba b5b9 bab0 b080 942c 942f\n\n00:24:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba32 34ba b0b0 bab0 b080 942c 942f\n\n00:24:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba32 34ba b031 bab0 b080 942c 942f\n\n00:24:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba32 34ba b032 bab0 b080 942c 942f\n\n00:24:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba32 34ba b0b3 bab0 b080 942c 942f\n\n00:24:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba32 34ba b034 bab0 b080 942c 942f\n\n00:24:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba32 34ba b0b5 bab0 b080 942c 942f\n\n00:24:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba32 34ba b0b6 bab0 b080 942c 942f\n\n00:24:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba32 34ba b037 bab0 b080 942c 942f\n\n00:24:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba32 34ba b038 bab0 b080 942c 942f\n\n00:24:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba32 34ba b0b9 bab0 b080 942c 942f\n\n00:24:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba32 34ba 31b0 bab0 b080 942c 942f\n\n00:24:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba32 34ba 3131 bab0 b080 942c 942f\n\n00:24:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba32 34ba 3132 bab0 b080 942c 942f\n\n00:24:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba32 34ba 31b3 bab0 b080 942c 942f\n\n00:24:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba32 34ba 3134 bab0 b080 942c 942f\n\n00:24:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba32 34ba 31b5 bab0 b080 942c 942f\n\n00:24:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba32 34ba 31b6 bab0 b080 942c 942f\n\n00:24:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba32 34ba 3137 bab0 b080 942c 942f\n\n00:24:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba32 34ba 3138 bab0 b080 942c 942f\n\n00:24:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba32 34ba 31b9 bab0 b080 942c 942f\n\n00:24:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba32 34ba 32b0 bab0 b080 942c 942f\n\n00:24:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba32 34ba 3231 bab0 b080 942c 942f\n\n00:24:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba32 34ba 3232 bab0 b080 942c 942f\n\n00:24:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba32 34ba 32b3 bab0 b080 942c 942f\n\n00:24:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba32 34ba 3234 bab0 b080 942c 942f\n\n00:24:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba32 34ba 32b5 bab0 b080 942c 942f\n\n00:24:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba32 34ba 32b6 bab0 b080 942c 942f\n\n00:24:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba32 34ba 3237 bab0 b080 942c 942f\n\n00:24:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba32 34ba 3238 bab0 b080 942c 942f\n\n00:24:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba32 34ba 32b9 bab0 b080 942c 942f\n\n00:24:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba32 34ba b3b0 bab0 b080 942c 942f\n\n00:24:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba32 34ba b331 bab0 b080 942c 942f\n\n00:24:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba32 34ba b332 bab0 b080 942c 942f\n\n00:24:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba32 34ba b3b3 bab0 b080 942c 942f\n\n00:24:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba32 34ba b334 bab0 b080 942c 942f\n\n00:24:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba32 34ba b3b5 bab0 b080 942c 942f\n\n00:24:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba32 34ba b3b6 bab0 b080 942c 942f\n\n00:24:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba32 34ba b337 bab0 b080 942c 942f\n\n00:24:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba32 34ba b338 bab0 b080 942c 942f\n\n00:24:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba32 34ba b3b9 bab0 b080 942c 942f\n\n00:24:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba32 34ba 34b0 bab0 b080 942c 942f\n\n00:24:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba32 34ba 3431 bab0 b080 942c 942f\n\n00:24:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba32 34ba 3432 bab0 b080 942c 942f\n\n00:24:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba32 34ba 34b3 bab0 b080 942c 942f\n\n00:24:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba32 34ba 3434 bab0 b080 942c 942f\n\n00:24:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba32 34ba 34b5 bab0 b080 942c 942f\n\n00:24:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba32 34ba 34b6 bab0 b080 942c 942f\n\n00:24:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba32 34ba 3437 bab0 b080 942c 942f\n\n00:24:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba32 34ba 3438 bab0 b080 942c 942f\n\n00:24:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba32 34ba 34b9 bab0 b080 942c 942f\n\n00:24:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba32 34ba b5b0 bab0 b080 942c 942f\n\n00:24:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba32 34ba b531 bab0 b080 942c 942f\n\n00:24:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba32 34ba b532 bab0 b080 942c 942f\n\n00:24:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba32 34ba b5b3 bab0 b080 942c 942f\n\n00:24:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba32 34ba b534 bab0 b080 942c 942f\n\n00:24:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba32 34ba b5b5 bab0 b080 942c 942f\n\n00:24:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba32 34ba b5b6 bab0 b080 942c 942f\n\n00:24:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba32 34ba b537 bab0 b080 942c 942f\n\n00:24:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba32 34ba b538 bab0 b080 942c 942f\n\n00:24:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba32 34ba b5b9 bab0 b080 942c 942f\n\n00:25:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba32 b5ba b0b0 bab0 b080 942c 942f\n\n00:25:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba32 b5ba b031 bab0 b080 942c 942f\n\n00:25:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba32 b5ba b032 bab0 b080 942c 942f\n\n00:25:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba32 b5ba b0b3 bab0 b080 942c 942f\n\n00:25:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba32 b5ba b034 bab0 b080 942c 942f\n\n00:25:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba32 b5ba b0b5 bab0 b080 942c 942f\n\n00:25:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba32 b5ba b0b6 bab0 b080 942c 942f\n\n00:25:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba32 b5ba b037 bab0 b080 942c 942f\n\n00:25:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba32 b5ba b038 bab0 b080 942c 942f\n\n00:25:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba32 b5ba b0b9 bab0 b080 942c 942f\n\n00:25:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba32 b5ba 31b0 bab0 b080 942c 942f\n\n00:25:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba32 b5ba 3131 bab0 b080 942c 942f\n\n00:25:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba32 b5ba 3132 bab0 b080 942c 942f\n\n00:25:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba32 b5ba 31b3 bab0 b080 942c 942f\n\n00:25:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba32 b5ba 3134 bab0 b080 942c 942f\n\n00:25:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba32 b5ba 31b5 bab0 b080 942c 942f\n\n00:25:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba32 b5ba 31b6 bab0 b080 942c 942f\n\n00:25:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba32 b5ba 3137 bab0 b080 942c 942f\n\n00:25:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba32 b5ba 3138 bab0 b080 942c 942f\n\n00:25:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba32 b5ba 31b9 bab0 b080 942c 942f\n\n00:25:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba32 b5ba 32b0 bab0 b080 942c 942f\n\n00:25:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba32 b5ba 3231 bab0 b080 942c 942f\n\n00:25:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba32 b5ba 3232 bab0 b080 942c 942f\n\n00:25:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba32 b5ba 32b3 bab0 b080 942c 942f\n\n00:25:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba32 b5ba 3234 bab0 b080 942c 942f\n\n00:25:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba32 b5ba 32b5 bab0 b080 942c 942f\n\n00:25:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba32 b5ba 32b6 bab0 b080 942c 942f\n\n00:25:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba32 b5ba 3237 bab0 b080 942c 942f\n\n00:25:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba32 b5ba 3238 bab0 b080 942c 942f\n\n00:25:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba32 b5ba 32b9 bab0 b080 942c 942f\n\n00:25:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba32 b5ba b3b0 bab0 b080 942c 942f\n\n00:25:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba32 b5ba b331 bab0 b080 942c 942f\n\n00:25:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba32 b5ba b332 bab0 b080 942c 942f\n\n00:25:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba32 b5ba b3b3 bab0 b080 942c 942f\n\n00:25:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba32 b5ba b334 bab0 b080 942c 942f\n\n00:25:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba32 b5ba b3b5 bab0 b080 942c 942f\n\n00:25:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba32 b5ba b3b6 bab0 b080 942c 942f\n\n00:25:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba32 b5ba b337 bab0 b080 942c 942f\n\n00:25:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba32 b5ba b338 bab0 b080 942c 942f\n\n00:25:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba32 b5ba b3b9 bab0 b080 942c 942f\n\n00:25:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba32 b5ba 34b0 bab0 b080 942c 942f\n\n00:25:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba32 b5ba 3431 bab0 b080 942c 942f\n\n00:25:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba32 b5ba 3432 bab0 b080 942c 942f\n\n00:25:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba32 b5ba 34b3 bab0 b080 942c 942f\n\n00:25:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba32 b5ba 3434 bab0 b080 942c 942f\n\n00:25:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba32 b5ba 34b5 bab0 b080 942c 942f\n\n00:25:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba32 b5ba 34b6 bab0 b080 942c 942f\n\n00:25:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba32 b5ba 3437 bab0 b080 942c 942f\n\n00:25:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba32 b5ba 3438 bab0 b080 942c 942f\n\n00:25:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba32 b5ba 34b9 bab0 b080 942c 942f\n\n00:25:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba32 b5ba b5b0 bab0 b080 942c 942f\n\n00:25:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba32 b5ba b531 bab0 b080 942c 942f\n\n00:25:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba32 b5ba b532 bab0 b080 942c 942f\n\n00:25:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba32 b5ba b5b3 bab0 b080 942c 942f\n\n00:25:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba32 b5ba b534 bab0 b080 942c 942f\n\n00:25:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba32 b5ba b5b5 bab0 b080 942c 942f\n\n00:25:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba32 b5ba b5b6 bab0 b080 942c 942f\n\n00:25:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba32 b5ba b537 bab0 b080 942c 942f\n\n00:25:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba32 b5ba b538 bab0 b080 942c 942f\n\n00:25:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba32 b5ba b5b9 bab0 b080 942c 942f\n\n00:26:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba32 b6ba b0b0 bab0 b080 942c 942f\n\n00:26:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba32 b6ba b031 bab0 b080 942c 942f\n\n00:26:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba32 b6ba b032 bab0 b080 942c 942f\n\n00:26:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba32 b6ba b0b3 bab0 b080 942c 942f\n\n00:26:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba32 b6ba b034 bab0 b080 942c 942f\n\n00:26:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba32 b6ba b0b5 bab0 b080 942c 942f\n\n00:26:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba32 b6ba b0b6 bab0 b080 942c 942f\n\n00:26:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba32 b6ba b037 bab0 b080 942c 942f\n\n00:26:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba32 b6ba b038 bab0 b080 942c 942f\n\n00:26:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba32 b6ba b0b9 bab0 b080 942c 942f\n\n00:26:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba32 b6ba 31b0 bab0 b080 942c 942f\n\n00:26:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba32 b6ba 3131 bab0 b080 942c 942f\n\n00:26:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba32 b6ba 3132 bab0 b080 942c 942f\n\n00:26:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba32 b6ba 31b3 bab0 b080 942c 942f\n\n00:26:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba32 b6ba 3134 bab0 b080 942c 942f\n\n00:26:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba32 b6ba 31b5 bab0 b080 942c 942f\n\n00:26:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba32 b6ba 31b6 bab0 b080 942c 942f\n\n00:26:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba32 b6ba 3137 bab0 b080 942c 942f\n\n00:26:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba32 b6ba 3138 bab0 b080 942c 942f\n\n00:26:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba32 b6ba 31b9 bab0 b080 942c 942f\n\n00:26:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba32 b6ba 32b0 bab0 b080 942c 942f\n\n00:26:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba32 b6ba 3231 bab0 b080 942c 942f\n\n00:26:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba32 b6ba 3232 bab0 b080 942c 942f\n\n00:26:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba32 b6ba 32b3 bab0 b080 942c 942f\n\n00:26:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba32 b6ba 3234 bab0 b080 942c 942f\n\n00:26:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba32 b6ba 32b5 bab0 b080 942c 942f\n\n00:26:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba32 b6ba 32b6 bab0 b080 942c 942f\n\n00:26:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba32 b6ba 3237 bab0 b080 942c 942f\n\n00:26:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba32 b6ba 3238 bab0 b080 942c 942f\n\n00:26:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba32 b6ba 32b9 bab0 b080 942c 942f\n\n00:26:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba32 b6ba b3b0 bab0 b080 942c 942f\n\n00:26:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba32 b6ba b331 bab0 b080 942c 942f\n\n00:26:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba32 b6ba b332 bab0 b080 942c 942f\n\n00:26:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba32 b6ba b3b3 bab0 b080 942c 942f\n\n00:26:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba32 b6ba b334 bab0 b080 942c 942f\n\n00:26:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba32 b6ba b3b5 bab0 b080 942c 942f\n\n00:26:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba32 b6ba b3b6 bab0 b080 942c 942f\n\n00:26:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba32 b6ba b337 bab0 b080 942c 942f\n\n00:26:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba32 b6ba b338 bab0 b080 942c 942f\n\n00:26:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba32 b6ba b3b9 bab0 b080 942c 942f\n\n00:26:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba32 b6ba 34b0 bab0 b080 942c 942f\n\n00:26:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba32 b6ba 3431 bab0 b080 942c 942f\n\n00:26:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba32 b6ba 3432 bab0 b080 942c 942f\n\n00:26:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba32 b6ba 34b3 bab0 b080 942c 942f\n\n00:26:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba32 b6ba 3434 bab0 b080 942c 942f\n\n00:26:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba32 b6ba 34b5 bab0 b080 942c 942f\n\n00:26:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba32 b6ba 34b6 bab0 b080 942c 942f\n\n00:26:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba32 b6ba 3437 bab0 b080 942c 942f\n\n00:26:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba32 b6ba 3438 bab0 b080 942c 942f\n\n00:26:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba32 b6ba 34b9 bab0 b080 942c 942f\n\n00:26:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba32 b6ba b5b0 bab0 b080 942c 942f\n\n00:26:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba32 b6ba b531 bab0 b080 942c 942f\n\n00:26:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba32 b6ba b532 bab0 b080 942c 942f\n\n00:26:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba32 b6ba b5b3 bab0 b080 942c 942f\n\n00:26:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba32 b6ba b534 bab0 b080 942c 942f\n\n00:26:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba32 b6ba b5b5 bab0 b080 942c 942f\n\n00:26:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba32 b6ba b5b6 bab0 b080 942c 942f\n\n00:26:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba32 b6ba b537 bab0 b080 942c 942f\n\n00:26:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba32 b6ba b538 bab0 b080 942c 942f\n\n00:26:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba32 b6ba b5b9 bab0 b080 942c 942f\n\n00:27:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba32 37ba b0b0 bab0 b080 942c 942f\n\n00:27:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba32 37ba b031 bab0 b080 942c 942f\n\n00:27:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba32 37ba b032 bab0 b080 942c 942f\n\n00:27:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba32 37ba b0b3 bab0 b080 942c 942f\n\n00:27:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba32 37ba b034 bab0 b080 942c 942f\n\n00:27:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba32 37ba b0b5 bab0 b080 942c 942f\n\n00:27:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba32 37ba b0b6 bab0 b080 942c 942f\n\n00:27:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba32 37ba b037 bab0 b080 942c 942f\n\n00:27:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba32 37ba b038 bab0 b080 942c 942f\n\n00:27:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba32 37ba b0b9 bab0 b080 942c 942f\n\n00:27:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba32 37ba 31b0 bab0 b080 942c 942f\n\n00:27:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba32 37ba 3131 bab0 b080 942c 942f\n\n00:27:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba32 37ba 3132 bab0 b080 942c 942f\n\n00:27:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba32 37ba 31b3 bab0 b080 942c 942f\n\n00:27:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba32 37ba 3134 bab0 b080 942c 942f\n\n00:27:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba32 37ba 31b5 bab0 b080 942c 942f\n\n00:27:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba32 37ba 31b6 bab0 b080 942c 942f\n\n00:27:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba32 37ba 3137 bab0 b080 942c 942f\n\n00:27:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba32 37ba 3138 bab0 b080 942c 942f\n\n00:27:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba32 37ba 31b9 bab0 b080 942c 942f\n\n00:27:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba32 37ba 32b0 bab0 b080 942c 942f\n\n00:27:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba32 37ba 3231 bab0 b080 942c 942f\n\n00:27:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba32 37ba 3232 bab0 b080 942c 942f\n\n00:27:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba32 37ba 32b3 bab0 b080 942c 942f\n\n00:27:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba32 37ba 3234 bab0 b080 942c 942f\n\n00:27:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba32 37ba 32b5 bab0 b080 942c 942f\n\n00:27:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba32 37ba 32b6 bab0 b080 942c 942f\n\n00:27:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba32 37ba 3237 bab0 b080 942c 942f\n\n00:27:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba32 37ba 3238 bab0 b080 942c 942f\n\n00:27:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba32 37ba 32b9 bab0 b080 942c 942f\n\n00:27:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba32 37ba b3b0 bab0 b080 942c 942f\n\n00:27:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba32 37ba b331 bab0 b080 942c 942f\n\n00:27:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba32 37ba b332 bab0 b080 942c 942f\n\n00:27:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba32 37ba b3b3 bab0 b080 942c 942f\n\n00:27:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba32 37ba b334 bab0 b080 942c 942f\n\n00:27:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba32 37ba b3b5 bab0 b080 942c 942f\n\n00:27:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba32 37ba b3b6 bab0 b080 942c 942f\n\n00:27:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba32 37ba b337 bab0 b080 942c 942f\n\n00:27:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba32 37ba b338 bab0 b080 942c 942f\n\n00:27:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba32 37ba b3b9 bab0 b080 942c 942f\n\n00:27:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba32 37ba 34b0 bab0 b080 942c 942f\n\n00:27:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba32 37ba 3431 bab0 b080 942c 942f\n\n00:27:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba32 37ba 3432 bab0 b080 942c 942f\n\n00:27:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba32 37ba 34b3 bab0 b080 942c 942f\n\n00:27:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba32 37ba 3434 bab0 b080 942c 942f\n\n00:27:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba32 37ba 34b5 bab0 b080 942c 942f\n\n00:27:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba32 37ba 34b6 bab0 b080 942c 942f\n\n00:27:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba32 37ba 3437 bab0 b080 942c 942f\n\n00:27:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba32 37ba 3438 bab0 b080 942c 942f\n\n00:27:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba32 37ba 34b9 bab0 b080 942c 942f\n\n00:27:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba32 37ba b5b0 bab0 b080 942c 942f\n\n00:27:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba32 37ba b531 bab0 b080 942c 942f\n\n00:27:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba32 37ba b532 bab0 b080 942c 942f\n\n00:27:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba32 37ba b5b3 bab0 b080 942c 942f\n\n00:27:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba32 37ba b534 bab0 b080 942c 942f\n\n00:27:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba32 37ba b5b5 bab0 b080 942c 942f\n\n00:27:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba32 37ba b5b6 bab0 b080 942c 942f\n\n00:27:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba32 37ba b537 bab0 b080 942c 942f\n\n00:27:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba32 37ba b538 bab0 b080 942c 942f\n\n00:27:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba32 37ba b5b9 bab0 b080 942c 942f\n\n00:28:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba32 38ba b0b0 bab0 b080 942c 942f\n\n00:28:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba32 38ba b031 bab0 b080 942c 942f\n\n00:28:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba32 38ba b032 bab0 b080 942c 942f\n\n00:28:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba32 38ba b0b3 bab0 b080 942c 942f\n\n00:28:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba32 38ba b034 bab0 b080 942c 942f\n\n00:28:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba32 38ba b0b5 bab0 b080 942c 942f\n\n00:28:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba32 38ba b0b6 bab0 b080 942c 942f\n\n00:28:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba32 38ba b037 bab0 b080 942c 942f\n\n00:28:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba32 38ba b038 bab0 b080 942c 942f\n\n00:28:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba32 38ba b0b9 bab0 b080 942c 942f\n\n00:28:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba32 38ba 31b0 bab0 b080 942c 942f\n\n00:28:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba32 38ba 3131 bab0 b080 942c 942f\n\n00:28:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba32 38ba 3132 bab0 b080 942c 942f\n\n00:28:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba32 38ba 31b3 bab0 b080 942c 942f\n\n00:28:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba32 38ba 3134 bab0 b080 942c 942f\n\n00:28:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba32 38ba 31b5 bab0 b080 942c 942f\n\n00:28:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba32 38ba 31b6 bab0 b080 942c 942f\n\n00:28:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba32 38ba 3137 bab0 b080 942c 942f\n\n00:28:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba32 38ba 3138 bab0 b080 942c 942f\n\n00:28:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba32 38ba 31b9 bab0 b080 942c 942f\n\n00:28:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba32 38ba 32b0 bab0 b080 942c 942f\n\n00:28:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba32 38ba 3231 bab0 b080 942c 942f\n\n00:28:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba32 38ba 3232 bab0 b080 942c 942f\n\n00:28:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba32 38ba 32b3 bab0 b080 942c 942f\n\n00:28:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba32 38ba 3234 bab0 b080 942c 942f\n\n00:28:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba32 38ba 32b5 bab0 b080 942c 942f\n\n00:28:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba32 38ba 32b6 bab0 b080 942c 942f\n\n00:28:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba32 38ba 3237 bab0 b080 942c 942f\n\n00:28:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba32 38ba 3238 bab0 b080 942c 942f\n\n00:28:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba32 38ba 32b9 bab0 b080 942c 942f\n\n00:28:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba32 38ba b3b0 bab0 b080 942c 942f\n\n00:28:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba32 38ba b331 bab0 b080 942c 942f\n\n00:28:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba32 38ba b332 bab0 b080 942c 942f\n\n00:28:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba32 38ba b3b3 bab0 b080 942c 942f\n\n00:28:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba32 38ba b334 bab0 b080 942c 942f\n\n00:28:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba32 38ba b3b5 bab0 b080 942c 942f\n\n00:28:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba32 38ba b3b6 bab0 b080 942c 942f\n\n00:28:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba32 38ba b337 bab0 b080 942c 942f\n\n00:28:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba32 38ba b338 bab0 b080 942c 942f\n\n00:28:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba32 38ba b3b9 bab0 b080 942c 942f\n\n00:28:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba32 38ba 34b0 bab0 b080 942c 942f\n\n00:28:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba32 38ba 3431 bab0 b080 942c 942f\n\n00:28:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba32 38ba 3432 bab0 b080 942c 942f\n\n00:28:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba32 38ba 34b3 bab0 b080 942c 942f\n\n00:28:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba32 38ba 3434 bab0 b080 942c 942f\n\n00:28:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba32 38ba 34b5 bab0 b080 942c 942f\n\n00:28:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba32 38ba 34b6 bab0 b080 942c 942f\n\n00:28:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba32 38ba 3437 bab0 b080 942c 942f\n\n00:28:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba32 38ba 3438 bab0 b080 942c 942f\n\n00:28:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba32 38ba 34b9 bab0 b080 942c 942f\n\n00:28:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba32 38ba b5b0 bab0 b080 942c 942f\n\n00:28:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba32 38ba b531 bab0 b080 942c 942f\n\n00:28:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba32 38ba b532 bab0 b080 942c 942f\n\n00:28:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba32 38ba b5b3 bab0 b080 942c 942f\n\n00:28:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba32 38ba b534 bab0 b080 942c 942f\n\n00:28:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba32 38ba b5b5 bab0 b080 942c 942f\n\n00:28:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba32 38ba b5b6 bab0 b080 942c 942f\n\n00:28:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba32 38ba b537 bab0 b080 942c 942f\n\n00:28:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba32 38ba b538 bab0 b080 942c 942f\n\n00:28:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba32 38ba b5b9 bab0 b080 942c 942f\n\n00:29:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba32 b9ba b0b0 bab0 b080 942c 942f\n\n00:29:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba32 b9ba b031 bab0 b080 942c 942f\n\n00:29:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba32 b9ba b032 bab0 b080 942c 942f\n\n00:29:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba32 b9ba b0b3 bab0 b080 942c 942f\n\n00:29:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba32 b9ba b034 bab0 b080 942c 942f\n\n00:29:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba32 b9ba b0b5 bab0 b080 942c 942f\n\n00:29:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba32 b9ba b0b6 bab0 b080 942c 942f\n\n00:29:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba32 b9ba b037 bab0 b080 942c 942f\n\n00:29:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba32 b9ba b038 bab0 b080 942c 942f\n\n00:29:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba32 b9ba b0b9 bab0 b080 942c 942f\n\n00:29:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba32 b9ba 31b0 bab0 b080 942c 942f\n\n00:29:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba32 b9ba 3131 bab0 b080 942c 942f\n\n00:29:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba32 b9ba 3132 bab0 b080 942c 942f\n\n00:29:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba32 b9ba 31b3 bab0 b080 942c 942f\n\n00:29:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba32 b9ba 3134 bab0 b080 942c 942f\n\n00:29:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba32 b9ba 31b5 bab0 b080 942c 942f\n\n00:29:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba32 b9ba 31b6 bab0 b080 942c 942f\n\n00:29:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba32 b9ba 3137 bab0 b080 942c 942f\n\n00:29:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba32 b9ba 3138 bab0 b080 942c 942f\n\n00:29:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba32 b9ba 31b9 bab0 b080 942c 942f\n\n00:29:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba32 b9ba 32b0 bab0 b080 942c 942f\n\n00:29:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba32 b9ba 3231 bab0 b080 942c 942f\n\n00:29:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba32 b9ba 3232 bab0 b080 942c 942f\n\n00:29:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba32 b9ba 32b3 bab0 b080 942c 942f\n\n00:29:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba32 b9ba 3234 bab0 b080 942c 942f\n\n00:29:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba32 b9ba 32b5 bab0 b080 942c 942f\n\n00:29:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba32 b9ba 32b6 bab0 b080 942c 942f\n\n00:29:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba32 b9ba 3237 bab0 b080 942c 942f\n\n00:29:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba32 b9ba 3238 bab0 b080 942c 942f\n\n00:29:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba32 b9ba 32b9 bab0 b080 942c 942f\n\n00:29:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba32 b9ba b3b0 bab0 b080 942c 942f\n\n00:29:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba32 b9ba b331 bab0 b080 942c 942f\n\n00:29:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba32 b9ba b332 bab0 b080 942c 942f\n\n00:29:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba32 b9ba b3b3 bab0 b080 942c 942f\n\n00:29:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba32 b9ba b334 bab0 b080 942c 942f\n\n00:29:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba32 b9ba b3b5 bab0 b080 942c 942f\n\n00:29:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba32 b9ba b3b6 bab0 b080 942c 942f\n\n00:29:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba32 b9ba b337 bab0 b080 942c 942f\n\n00:29:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba32 b9ba b338 bab0 b080 942c 942f\n\n00:29:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba32 b9ba b3b9 bab0 b080 942c 942f\n\n00:29:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba32 b9ba 34b0 bab0 b080 942c 942f\n\n00:29:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba32 b9ba 3431 bab0 b080 942c 942f\n\n00:29:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba32 b9ba 3432 bab0 b080 942c 942f\n\n00:29:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba32 b9ba 34b3 bab0 b080 942c 942f\n\n00:29:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba32 b9ba 3434 bab0 b080 942c 942f\n\n00:29:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba32 b9ba 34b5 bab0 b080 942c 942f\n\n00:29:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba32 b9ba 34b6 bab0 b080 942c 942f\n\n00:29:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba32 b9ba 3437 bab0 b080 942c 942f\n\n00:29:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba32 b9ba 3438 bab0 b080 942c 942f\n\n00:29:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba32 b9ba 34b9 bab0 b080 942c 942f\n\n00:29:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba32 b9ba b5b0 bab0 b080 942c 942f\n\n00:29:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba32 b9ba b531 bab0 b080 942c 942f\n\n00:29:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba32 b9ba b532 bab0 b080 942c 942f\n\n00:29:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba32 b9ba b5b3 bab0 b080 942c 942f\n\n00:29:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba32 b9ba b534 bab0 b080 942c 942f\n\n00:29:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba32 b9ba b5b5 bab0 b080 942c 942f\n\n00:29:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba32 b9ba b5b6 bab0 b080 942c 942f\n\n00:29:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba32 b9ba b537 bab0 b080 942c 942f\n\n00:29:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba32 b9ba b538 bab0 b080 942c 942f\n\n00:29:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba32 b9ba b5b9 bab0 b080 942c 942f\n\n00:30:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab3 b0ba b0b0 bab0 b080 942c 942f\n\n00:30:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab3 b0ba b031 bab0 b080 942c 942f\n\n00:30:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab3 b0ba b032 bab0 b080 942c 942f\n\n00:30:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab3 b0ba b0b3 bab0 b080 942c 942f\n\n00:30:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab3 b0ba b034 bab0 b080 942c 942f\n\n00:30:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab3 b0ba b0b5 bab0 b080 942c 942f\n\n00:30:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab3 b0ba b0b6 bab0 b080 942c 942f\n\n00:30:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab3 b0ba b037 bab0 b080 942c 942f\n\n00:30:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab3 b0ba b038 bab0 b080 942c 942f\n\n00:30:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab3 b0ba b0b9 bab0 b080 942c 942f\n\n00:30:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab3 b0ba 31b0 bab0 b080 942c 942f\n\n00:30:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab3 b0ba 3131 bab0 b080 942c 942f\n\n00:30:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab3 b0ba 3132 bab0 b080 942c 942f\n\n00:30:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab3 b0ba 31b3 bab0 b080 942c 942f\n\n00:30:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab3 b0ba 3134 bab0 b080 942c 942f\n\n00:30:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab3 b0ba 31b5 bab0 b080 942c 942f\n\n00:30:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab3 b0ba 31b6 bab0 b080 942c 942f\n\n00:30:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab3 b0ba 3137 bab0 b080 942c 942f\n\n00:30:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab3 b0ba 3138 bab0 b080 942c 942f\n\n00:30:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab3 b0ba 31b9 bab0 b080 942c 942f\n\n00:30:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab3 b0ba 32b0 bab0 b080 942c 942f\n\n00:30:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab3 b0ba 3231 bab0 b080 942c 942f\n\n00:30:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab3 b0ba 3232 bab0 b080 942c 942f\n\n00:30:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab3 b0ba 32b3 bab0 b080 942c 942f\n\n00:30:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab3 b0ba 3234 bab0 b080 942c 942f\n\n00:30:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab3 b0ba 32b5 bab0 b080 942c 942f\n\n00:30:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab3 b0ba 32b6 bab0 b080 942c 942f\n\n00:30:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab3 b0ba 3237 bab0 b080 942c 942f\n\n00:30:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab3 b0ba 3238 bab0 b080 942c 942f\n\n00:30:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab3 b0ba 32b9 bab0 b080 942c 942f\n\n00:30:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab3 b0ba b3b0 bab0 b080 942c 942f\n\n00:30:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab3 b0ba b331 bab0 b080 942c 942f\n\n00:30:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab3 b0ba b332 bab0 b080 942c 942f\n\n00:30:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab3 b0ba b3b3 bab0 b080 942c 942f\n\n00:30:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab3 b0ba b334 bab0 b080 942c 942f\n\n00:30:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab3 b0ba b3b5 bab0 b080 942c 942f\n\n00:30:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab3 b0ba b3b6 bab0 b080 942c 942f\n\n00:30:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab3 b0ba b337 bab0 b080 942c 942f\n\n00:30:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab3 b0ba b338 bab0 b080 942c 942f\n\n00:30:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab3 b0ba b3b9 bab0 b080 942c 942f\n\n00:30:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab3 b0ba 34b0 bab0 b080 942c 942f\n\n00:30:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab3 b0ba 3431 bab0 b080 942c 942f\n\n00:30:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab3 b0ba 3432 bab0 b080 942c 942f\n\n00:30:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab3 b0ba 34b3 bab0 b080 942c 942f\n\n00:30:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab3 b0ba 3434 bab0 b080 942c 942f\n\n00:30:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab3 b0ba 34b5 bab0 b080 942c 942f\n\n00:30:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab3 b0ba 34b6 bab0 b080 942c 942f\n\n00:30:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab3 b0ba 3437 bab0 b080 942c 942f\n\n00:30:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab3 b0ba 3438 bab0 b080 942c 942f\n\n00:30:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab3 b0ba 34b9 bab0 b080 942c 942f\n\n00:30:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab3 b0ba b5b0 bab0 b080 942c 942f\n\n00:30:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab3 b0ba b531 bab0 b080 942c 942f\n\n00:30:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab3 b0ba b532 bab0 b080 942c 942f\n\n00:30:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab3 b0ba b5b3 bab0 b080 942c 942f\n\n00:30:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab3 b0ba b534 bab0 b080 942c 942f\n\n00:30:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab3 b0ba b5b5 bab0 b080 942c 942f\n\n00:30:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab3 b0ba b5b6 bab0 b080 942c 942f\n\n00:30:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab3 b0ba b537 bab0 b080 942c 942f\n\n00:30:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab3 b0ba b538 bab0 b080 942c 942f\n\n00:30:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab3 b0ba b5b9 bab0 b080 942c 942f\n\n00:31:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab3 31ba b0b0 bab0 b080 942c 942f\n\n00:31:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab3 31ba b031 bab0 b080 942c 942f\n\n00:31:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab3 31ba b032 bab0 b080 942c 942f\n\n00:31:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab3 31ba b0b3 bab0 b080 942c 942f\n\n00:31:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab3 31ba b034 bab0 b080 942c 942f\n\n00:31:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab3 31ba b0b5 bab0 b080 942c 942f\n\n00:31:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab3 31ba b0b6 bab0 b080 942c 942f\n\n00:31:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab3 31ba b037 bab0 b080 942c 942f\n\n00:31:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab3 31ba b038 bab0 b080 942c 942f\n\n00:31:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab3 31ba b0b9 bab0 b080 942c 942f\n\n00:31:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab3 31ba 31b0 bab0 b080 942c 942f\n\n00:31:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab3 31ba 3131 bab0 b080 942c 942f\n\n00:31:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab3 31ba 3132 bab0 b080 942c 942f\n\n00:31:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab3 31ba 31b3 bab0 b080 942c 942f\n\n00:31:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab3 31ba 3134 bab0 b080 942c 942f\n\n00:31:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab3 31ba 31b5 bab0 b080 942c 942f\n\n00:31:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab3 31ba 31b6 bab0 b080 942c 942f\n\n00:31:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab3 31ba 3137 bab0 b080 942c 942f\n\n00:31:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab3 31ba 3138 bab0 b080 942c 942f\n\n00:31:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab3 31ba 31b9 bab0 b080 942c 942f\n\n00:31:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab3 31ba 32b0 bab0 b080 942c 942f\n\n00:31:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab3 31ba 3231 bab0 b080 942c 942f\n\n00:31:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab3 31ba 3232 bab0 b080 942c 942f\n\n00:31:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab3 31ba 32b3 bab0 b080 942c 942f\n\n00:31:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab3 31ba 3234 bab0 b080 942c 942f\n\n00:31:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab3 31ba 32b5 bab0 b080 942c 942f\n\n00:31:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab3 31ba 32b6 bab0 b080 942c 942f\n\n00:31:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab3 31ba 3237 bab0 b080 942c 942f\n\n00:31:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab3 31ba 3238 bab0 b080 942c 942f\n\n00:31:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab3 31ba 32b9 bab0 b080 942c 942f\n\n00:31:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab3 31ba b3b0 bab0 b080 942c 942f\n\n00:31:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab3 31ba b331 bab0 b080 942c 942f\n\n00:31:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab3 31ba b332 bab0 b080 942c 942f\n\n00:31:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab3 31ba b3b3 bab0 b080 942c 942f\n\n00:31:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab3 31ba b334 bab0 b080 942c 942f\n\n00:31:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab3 31ba b3b5 bab0 b080 942c 942f\n\n00:31:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab3 31ba b3b6 bab0 b080 942c 942f\n\n00:31:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab3 31ba b337 bab0 b080 942c 942f\n\n00:31:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab3 31ba b338 bab0 b080 942c 942f\n\n00:31:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab3 31ba b3b9 bab0 b080 942c 942f\n\n00:31:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab3 31ba 34b0 bab0 b080 942c 942f\n\n00:31:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab3 31ba 3431 bab0 b080 942c 942f\n\n00:31:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab3 31ba 3432 bab0 b080 942c 942f\n\n00:31:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab3 31ba 34b3 bab0 b080 942c 942f\n\n00:31:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab3 31ba 3434 bab0 b080 942c 942f\n\n00:31:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab3 31ba 34b5 bab0 b080 942c 942f\n\n00:31:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab3 31ba 34b6 bab0 b080 942c 942f\n\n00:31:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab3 31ba 3437 bab0 b080 942c 942f\n\n00:31:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab3 31ba 3438 bab0 b080 942c 942f\n\n00:31:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab3 31ba 34b9 bab0 b080 942c 942f\n\n00:31:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab3 31ba b5b0 bab0 b080 942c 942f\n\n00:31:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab3 31ba b531 bab0 b080 942c 942f\n\n00:31:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab3 31ba b532 bab0 b080 942c 942f\n\n00:31:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab3 31ba b5b3 bab0 b080 942c 942f\n\n00:31:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab3 31ba b534 bab0 b080 942c 942f\n\n00:31:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab3 31ba b5b5 bab0 b080 942c 942f\n\n00:31:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab3 31ba b5b6 bab0 b080 942c 942f\n\n00:31:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab3 31ba b537 bab0 b080 942c 942f\n\n00:31:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab3 31ba b538 bab0 b080 942c 942f\n\n00:31:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab3 31ba b5b9 bab0 b080 942c 942f\n\n00:32:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab3 32ba b0b0 bab0 b080 942c 942f\n\n00:32:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab3 32ba b031 bab0 b080 942c 942f\n\n00:32:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab3 32ba b032 bab0 b080 942c 942f\n\n00:32:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab3 32ba b0b3 bab0 b080 942c 942f\n\n00:32:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab3 32ba b034 bab0 b080 942c 942f\n\n00:32:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab3 32ba b0b5 bab0 b080 942c 942f\n\n00:32:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab3 32ba b0b6 bab0 b080 942c 942f\n\n00:32:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab3 32ba b037 bab0 b080 942c 942f\n\n00:32:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab3 32ba b038 bab0 b080 942c 942f\n\n00:32:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab3 32ba b0b9 bab0 b080 942c 942f\n\n00:32:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab3 32ba 31b0 bab0 b080 942c 942f\n\n00:32:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab3 32ba 3131 bab0 b080 942c 942f\n\n00:32:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab3 32ba 3132 bab0 b080 942c 942f\n\n00:32:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab3 32ba 31b3 bab0 b080 942c 942f\n\n00:32:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab3 32ba 3134 bab0 b080 942c 942f\n\n00:32:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab3 32ba 31b5 bab0 b080 942c 942f\n\n00:32:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab3 32ba 31b6 bab0 b080 942c 942f\n\n00:32:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab3 32ba 3137 bab0 b080 942c 942f\n\n00:32:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab3 32ba 3138 bab0 b080 942c 942f\n\n00:32:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab3 32ba 31b9 bab0 b080 942c 942f\n\n00:32:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab3 32ba 32b0 bab0 b080 942c 942f\n\n00:32:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab3 32ba 3231 bab0 b080 942c 942f\n\n00:32:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab3 32ba 3232 bab0 b080 942c 942f\n\n00:32:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab3 32ba 32b3 bab0 b080 942c 942f\n\n00:32:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab3 32ba 3234 bab0 b080 942c 942f\n\n00:32:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab3 32ba 32b5 bab0 b080 942c 942f\n\n00:32:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab3 32ba 32b6 bab0 b080 942c 942f\n\n00:32:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab3 32ba 3237 bab0 b080 942c 942f\n\n00:32:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab3 32ba 3238 bab0 b080 942c 942f\n\n00:32:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab3 32ba 32b9 bab0 b080 942c 942f\n\n00:32:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab3 32ba b3b0 bab0 b080 942c 942f\n\n00:32:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab3 32ba b331 bab0 b080 942c 942f\n\n00:32:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab3 32ba b332 bab0 b080 942c 942f\n\n00:32:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab3 32ba b3b3 bab0 b080 942c 942f\n\n00:32:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab3 32ba b334 bab0 b080 942c 942f\n\n00:32:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab3 32ba b3b5 bab0 b080 942c 942f\n\n00:32:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab3 32ba b3b6 bab0 b080 942c 942f\n\n00:32:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab3 32ba b337 bab0 b080 942c 942f\n\n00:32:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab3 32ba b338 bab0 b080 942c 942f\n\n00:32:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab3 32ba b3b9 bab0 b080 942c 942f\n\n00:32:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab3 32ba 34b0 bab0 b080 942c 942f\n\n00:32:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab3 32ba 3431 bab0 b080 942c 942f\n\n00:32:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab3 32ba 3432 bab0 b080 942c 942f\n\n00:32:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab3 32ba 34b3 bab0 b080 942c 942f\n\n00:32:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab3 32ba 3434 bab0 b080 942c 942f\n\n00:32:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab3 32ba 34b5 bab0 b080 942c 942f\n\n00:32:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab3 32ba 34b6 bab0 b080 942c 942f\n\n00:32:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab3 32ba 3437 bab0 b080 942c 942f\n\n00:32:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab3 32ba 3438 bab0 b080 942c 942f\n\n00:32:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab3 32ba 34b9 bab0 b080 942c 942f\n\n00:32:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab3 32ba b5b0 bab0 b080 942c 942f\n\n00:32:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab3 32ba b531 bab0 b080 942c 942f\n\n00:32:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab3 32ba b532 bab0 b080 942c 942f\n\n00:32:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab3 32ba b5b3 bab0 b080 942c 942f\n\n00:32:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab3 32ba b534 bab0 b080 942c 942f\n\n00:32:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab3 32ba b5b5 bab0 b080 942c 942f\n\n00:32:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab3 32ba b5b6 bab0 b080 942c 942f\n\n00:32:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab3 32ba b537 bab0 b080 942c 942f\n\n00:32:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab3 32ba b538 bab0 b080 942c 942f\n\n00:32:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab3 32ba b5b9 bab0 b080 942c 942f\n\n00:33:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab3 b3ba b0b0 bab0 b080 942c 942f\n\n00:33:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab3 b3ba b031 bab0 b080 942c 942f\n\n00:33:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab3 b3ba b032 bab0 b080 942c 942f\n\n00:33:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab3 b3ba b0b3 bab0 b080 942c 942f\n\n00:33:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab3 b3ba b034 bab0 b080 942c 942f\n\n00:33:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab3 b3ba b0b5 bab0 b080 942c 942f\n\n00:33:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab3 b3ba b0b6 bab0 b080 942c 942f\n\n00:33:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab3 b3ba b037 bab0 b080 942c 942f\n\n00:33:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab3 b3ba b038 bab0 b080 942c 942f\n\n00:33:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab3 b3ba b0b9 bab0 b080 942c 942f\n\n00:33:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab3 b3ba 31b0 bab0 b080 942c 942f\n\n00:33:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab3 b3ba 3131 bab0 b080 942c 942f\n\n00:33:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab3 b3ba 3132 bab0 b080 942c 942f\n\n00:33:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab3 b3ba 31b3 bab0 b080 942c 942f\n\n00:33:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab3 b3ba 3134 bab0 b080 942c 942f\n\n00:33:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab3 b3ba 31b5 bab0 b080 942c 942f\n\n00:33:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab3 b3ba 31b6 bab0 b080 942c 942f\n\n00:33:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab3 b3ba 3137 bab0 b080 942c 942f\n\n00:33:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab3 b3ba 3138 bab0 b080 942c 942f\n\n00:33:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab3 b3ba 31b9 bab0 b080 942c 942f\n\n00:33:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab3 b3ba 32b0 bab0 b080 942c 942f\n\n00:33:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab3 b3ba 3231 bab0 b080 942c 942f\n\n00:33:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab3 b3ba 3232 bab0 b080 942c 942f\n\n00:33:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab3 b3ba 32b3 bab0 b080 942c 942f\n\n00:33:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab3 b3ba 3234 bab0 b080 942c 942f\n\n00:33:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab3 b3ba 32b5 bab0 b080 942c 942f\n\n00:33:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab3 b3ba 32b6 bab0 b080 942c 942f\n\n00:33:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab3 b3ba 3237 bab0 b080 942c 942f\n\n00:33:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab3 b3ba 3238 bab0 b080 942c 942f\n\n00:33:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab3 b3ba 32b9 bab0 b080 942c 942f\n\n00:33:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab3 b3ba b3b0 bab0 b080 942c 942f\n\n00:33:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab3 b3ba b331 bab0 b080 942c 942f\n\n00:33:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab3 b3ba b332 bab0 b080 942c 942f\n\n00:33:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab3 b3ba b3b3 bab0 b080 942c 942f\n\n00:33:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab3 b3ba b334 bab0 b080 942c 942f\n\n00:33:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab3 b3ba b3b5 bab0 b080 942c 942f\n\n00:33:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab3 b3ba b3b6 bab0 b080 942c 942f\n\n00:33:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab3 b3ba b337 bab0 b080 942c 942f\n\n00:33:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab3 b3ba b338 bab0 b080 942c 942f\n\n00:33:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab3 b3ba b3b9 bab0 b080 942c 942f\n\n00:33:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab3 b3ba 34b0 bab0 b080 942c 942f\n\n00:33:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab3 b3ba 3431 bab0 b080 942c 942f\n\n00:33:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab3 b3ba 3432 bab0 b080 942c 942f\n\n00:33:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab3 b3ba 34b3 bab0 b080 942c 942f\n\n00:33:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab3 b3ba 3434 bab0 b080 942c 942f\n\n00:33:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab3 b3ba 34b5 bab0 b080 942c 942f\n\n00:33:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab3 b3ba 34b6 bab0 b080 942c 942f\n\n00:33:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab3 b3ba 3437 bab0 b080 942c 942f\n\n00:33:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab3 b3ba 3438 bab0 b080 942c 942f\n\n00:33:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab3 b3ba 34b9 bab0 b080 942c 942f\n\n00:33:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab3 b3ba b5b0 bab0 b080 942c 942f\n\n00:33:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab3 b3ba b531 bab0 b080 942c 942f\n\n00:33:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab3 b3ba b532 bab0 b080 942c 942f\n\n00:33:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab3 b3ba b5b3 bab0 b080 942c 942f\n\n00:33:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab3 b3ba b534 bab0 b080 942c 942f\n\n00:33:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab3 b3ba b5b5 bab0 b080 942c 942f\n\n00:33:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab3 b3ba b5b6 bab0 b080 942c 942f\n\n00:33:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab3 b3ba b537 bab0 b080 942c 942f\n\n00:33:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab3 b3ba b538 bab0 b080 942c 942f\n\n00:33:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab3 b3ba b5b9 bab0 b080 942c 942f\n\n00:34:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab3 34ba b0b0 bab0 b080 942c 942f\n\n00:34:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab3 34ba b031 bab0 b080 942c 942f\n\n00:34:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab3 34ba b032 bab0 b080 942c 942f\n\n00:34:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab3 34ba b0b3 bab0 b080 942c 942f\n\n00:34:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab3 34ba b034 bab0 b080 942c 942f\n\n00:34:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab3 34ba b0b5 bab0 b080 942c 942f\n\n00:34:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab3 34ba b0b6 bab0 b080 942c 942f\n\n00:34:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab3 34ba b037 bab0 b080 942c 942f\n\n00:34:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab3 34ba b038 bab0 b080 942c 942f\n\n00:34:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab3 34ba b0b9 bab0 b080 942c 942f\n\n00:34:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab3 34ba 31b0 bab0 b080 942c 942f\n\n00:34:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab3 34ba 3131 bab0 b080 942c 942f\n\n00:34:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab3 34ba 3132 bab0 b080 942c 942f\n\n00:34:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab3 34ba 31b3 bab0 b080 942c 942f\n\n00:34:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab3 34ba 3134 bab0 b080 942c 942f\n\n00:34:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab3 34ba 31b5 bab0 b080 942c 942f\n\n00:34:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab3 34ba 31b6 bab0 b080 942c 942f\n\n00:34:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab3 34ba 3137 bab0 b080 942c 942f\n\n00:34:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab3 34ba 3138 bab0 b080 942c 942f\n\n00:34:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab3 34ba 31b9 bab0 b080 942c 942f\n\n00:34:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab3 34ba 32b0 bab0 b080 942c 942f\n\n00:34:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab3 34ba 3231 bab0 b080 942c 942f\n\n00:34:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab3 34ba 3232 bab0 b080 942c 942f\n\n00:34:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab3 34ba 32b3 bab0 b080 942c 942f\n\n00:34:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab3 34ba 3234 bab0 b080 942c 942f\n\n00:34:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab3 34ba 32b5 bab0 b080 942c 942f\n\n00:34:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab3 34ba 32b6 bab0 b080 942c 942f\n\n00:34:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab3 34ba 3237 bab0 b080 942c 942f\n\n00:34:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab3 34ba 3238 bab0 b080 942c 942f\n\n00:34:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab3 34ba 32b9 bab0 b080 942c 942f\n\n00:34:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab3 34ba b3b0 bab0 b080 942c 942f\n\n00:34:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab3 34ba b331 bab0 b080 942c 942f\n\n00:34:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab3 34ba b332 bab0 b080 942c 942f\n\n00:34:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab3 34ba b3b3 bab0 b080 942c 942f\n\n00:34:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab3 34ba b334 bab0 b080 942c 942f\n\n00:34:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab3 34ba b3b5 bab0 b080 942c 942f\n\n00:34:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab3 34ba b3b6 bab0 b080 942c 942f\n\n00:34:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab3 34ba b337 bab0 b080 942c 942f\n\n00:34:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab3 34ba b338 bab0 b080 942c 942f\n\n00:34:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab3 34ba b3b9 bab0 b080 942c 942f\n\n00:34:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab3 34ba 34b0 bab0 b080 942c 942f\n\n00:34:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab3 34ba 3431 bab0 b080 942c 942f\n\n00:34:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab3 34ba 3432 bab0 b080 942c 942f\n\n00:34:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab3 34ba 34b3 bab0 b080 942c 942f\n\n00:34:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab3 34ba 3434 bab0 b080 942c 942f\n\n00:34:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab3 34ba 34b5 bab0 b080 942c 942f\n\n00:34:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab3 34ba 34b6 bab0 b080 942c 942f\n\n00:34:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab3 34ba 3437 bab0 b080 942c 942f\n\n00:34:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab3 34ba 3438 bab0 b080 942c 942f\n\n00:34:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab3 34ba 34b9 bab0 b080 942c 942f\n\n00:34:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab3 34ba b5b0 bab0 b080 942c 942f\n\n00:34:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab3 34ba b531 bab0 b080 942c 942f\n\n00:34:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab3 34ba b532 bab0 b080 942c 942f\n\n00:34:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab3 34ba b5b3 bab0 b080 942c 942f\n\n00:34:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab3 34ba b534 bab0 b080 942c 942f\n\n00:34:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab3 34ba b5b5 bab0 b080 942c 942f\n\n00:34:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab3 34ba b5b6 bab0 b080 942c 942f\n\n00:34:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab3 34ba b537 bab0 b080 942c 942f\n\n00:34:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab3 34ba b538 bab0 b080 942c 942f\n\n00:34:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab3 34ba b5b9 bab0 b080 942c 942f\n\n00:35:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab3 b5ba b0b0 bab0 b080 942c 942f\n\n00:35:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab3 b5ba b031 bab0 b080 942c 942f\n\n00:35:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab3 b5ba b032 bab0 b080 942c 942f\n\n00:35:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab3 b5ba b0b3 bab0 b080 942c 942f\n\n00:35:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab3 b5ba b034 bab0 b080 942c 942f\n\n00:35:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab3 b5ba b0b5 bab0 b080 942c 942f\n\n00:35:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab3 b5ba b0b6 bab0 b080 942c 942f\n\n00:35:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab3 b5ba b037 bab0 b080 942c 942f\n\n00:35:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab3 b5ba b038 bab0 b080 942c 942f\n\n00:35:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab3 b5ba b0b9 bab0 b080 942c 942f\n\n00:35:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab3 b5ba 31b0 bab0 b080 942c 942f\n\n00:35:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab3 b5ba 3131 bab0 b080 942c 942f\n\n00:35:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab3 b5ba 3132 bab0 b080 942c 942f\n\n00:35:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab3 b5ba 31b3 bab0 b080 942c 942f\n\n00:35:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab3 b5ba 3134 bab0 b080 942c 942f\n\n00:35:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab3 b5ba 31b5 bab0 b080 942c 942f\n\n00:35:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab3 b5ba 31b6 bab0 b080 942c 942f\n\n00:35:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab3 b5ba 3137 bab0 b080 942c 942f\n\n00:35:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab3 b5ba 3138 bab0 b080 942c 942f\n\n00:35:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab3 b5ba 31b9 bab0 b080 942c 942f\n\n00:35:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab3 b5ba 32b0 bab0 b080 942c 942f\n\n00:35:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab3 b5ba 3231 bab0 b080 942c 942f\n\n00:35:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab3 b5ba 3232 bab0 b080 942c 942f\n\n00:35:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab3 b5ba 32b3 bab0 b080 942c 942f\n\n00:35:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab3 b5ba 3234 bab0 b080 942c 942f\n\n00:35:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab3 b5ba 32b5 bab0 b080 942c 942f\n\n00:35:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab3 b5ba 32b6 bab0 b080 942c 942f\n\n00:35:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab3 b5ba 3237 bab0 b080 942c 942f\n\n00:35:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab3 b5ba 3238 bab0 b080 942c 942f\n\n00:35:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab3 b5ba 32b9 bab0 b080 942c 942f\n\n00:35:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab3 b5ba b3b0 bab0 b080 942c 942f\n\n00:35:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab3 b5ba b331 bab0 b080 942c 942f\n\n00:35:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab3 b5ba b332 bab0 b080 942c 942f\n\n00:35:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab3 b5ba b3b3 bab0 b080 942c 942f\n\n00:35:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab3 b5ba b334 bab0 b080 942c 942f\n\n00:35:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab3 b5ba b3b5 bab0 b080 942c 942f\n\n00:35:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab3 b5ba b3b6 bab0 b080 942c 942f\n\n00:35:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab3 b5ba b337 bab0 b080 942c 942f\n\n00:35:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab3 b5ba b338 bab0 b080 942c 942f\n\n00:35:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab3 b5ba b3b9 bab0 b080 942c 942f\n\n00:35:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab3 b5ba 34b0 bab0 b080 942c 942f\n\n00:35:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab3 b5ba 3431 bab0 b080 942c 942f\n\n00:35:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab3 b5ba 3432 bab0 b080 942c 942f\n\n00:35:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab3 b5ba 34b3 bab0 b080 942c 942f\n\n00:35:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab3 b5ba 3434 bab0 b080 942c 942f\n\n00:35:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab3 b5ba 34b5 bab0 b080 942c 942f\n\n00:35:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab3 b5ba 34b6 bab0 b080 942c 942f\n\n00:35:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab3 b5ba 3437 bab0 b080 942c 942f\n\n00:35:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab3 b5ba 3438 bab0 b080 942c 942f\n\n00:35:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab3 b5ba 34b9 bab0 b080 942c 942f\n\n00:35:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab3 b5ba b5b0 bab0 b080 942c 942f\n\n00:35:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab3 b5ba b531 bab0 b080 942c 942f\n\n00:35:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab3 b5ba b532 bab0 b080 942c 942f\n\n00:35:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab3 b5ba b5b3 bab0 b080 942c 942f\n\n00:35:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab3 b5ba b534 bab0 b080 942c 942f\n\n00:35:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab3 b5ba b5b5 bab0 b080 942c 942f\n\n00:35:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab3 b5ba b5b6 bab0 b080 942c 942f\n\n00:35:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab3 b5ba b537 bab0 b080 942c 942f\n\n00:35:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab3 b5ba b538 bab0 b080 942c 942f\n\n00:35:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab3 b5ba b5b9 bab0 b080 942c 942f\n\n00:36:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab3 b6ba b0b0 bab0 b080 942c 942f\n\n00:36:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab3 b6ba b031 bab0 b080 942c 942f\n\n00:36:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab3 b6ba b032 bab0 b080 942c 942f\n\n00:36:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab3 b6ba b0b3 bab0 b080 942c 942f\n\n00:36:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab3 b6ba b034 bab0 b080 942c 942f\n\n00:36:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab3 b6ba b0b5 bab0 b080 942c 942f\n\n00:36:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab3 b6ba b0b6 bab0 b080 942c 942f\n\n00:36:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab3 b6ba b037 bab0 b080 942c 942f\n\n00:36:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab3 b6ba b038 bab0 b080 942c 942f\n\n00:36:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab3 b6ba b0b9 bab0 b080 942c 942f\n\n00:36:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab3 b6ba 31b0 bab0 b080 942c 942f\n\n00:36:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab3 b6ba 3131 bab0 b080 942c 942f\n\n00:36:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab3 b6ba 3132 bab0 b080 942c 942f\n\n00:36:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab3 b6ba 31b3 bab0 b080 942c 942f\n\n00:36:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab3 b6ba 3134 bab0 b080 942c 942f\n\n00:36:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab3 b6ba 31b5 bab0 b080 942c 942f\n\n00:36:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab3 b6ba 31b6 bab0 b080 942c 942f\n\n00:36:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab3 b6ba 3137 bab0 b080 942c 942f\n\n00:36:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab3 b6ba 3138 bab0 b080 942c 942f\n\n00:36:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab3 b6ba 31b9 bab0 b080 942c 942f\n\n00:36:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab3 b6ba 32b0 bab0 b080 942c 942f\n\n00:36:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab3 b6ba 3231 bab0 b080 942c 942f\n\n00:36:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab3 b6ba 3232 bab0 b080 942c 942f\n\n00:36:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab3 b6ba 32b3 bab0 b080 942c 942f\n\n00:36:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab3 b6ba 3234 bab0 b080 942c 942f\n\n00:36:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab3 b6ba 32b5 bab0 b080 942c 942f\n\n00:36:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab3 b6ba 32b6 bab0 b080 942c 942f\n\n00:36:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab3 b6ba 3237 bab0 b080 942c 942f\n\n00:36:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab3 b6ba 3238 bab0 b080 942c 942f\n\n00:36:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab3 b6ba 32b9 bab0 b080 942c 942f\n\n00:36:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab3 b6ba b3b0 bab0 b080 942c 942f\n\n00:36:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab3 b6ba b331 bab0 b080 942c 942f\n\n00:36:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab3 b6ba b332 bab0 b080 942c 942f\n\n00:36:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab3 b6ba b3b3 bab0 b080 942c 942f\n\n00:36:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab3 b6ba b334 bab0 b080 942c 942f\n\n00:36:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab3 b6ba b3b5 bab0 b080 942c 942f\n\n00:36:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab3 b6ba b3b6 bab0 b080 942c 942f\n\n00:36:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab3 b6ba b337 bab0 b080 942c 942f\n\n00:36:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab3 b6ba b338 bab0 b080 942c 942f\n\n00:36:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab3 b6ba b3b9 bab0 b080 942c 942f\n\n00:36:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab3 b6ba 34b0 bab0 b080 942c 942f\n\n00:36:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab3 b6ba 3431 bab0 b080 942c 942f\n\n00:36:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab3 b6ba 3432 bab0 b080 942c 942f\n\n00:36:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab3 b6ba 34b3 bab0 b080 942c 942f\n\n00:36:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab3 b6ba 3434 bab0 b080 942c 942f\n\n00:36:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab3 b6ba 34b5 bab0 b080 942c 942f\n\n00:36:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab3 b6ba 34b6 bab0 b080 942c 942f\n\n00:36:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab3 b6ba 3437 bab0 b080 942c 942f\n\n00:36:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab3 b6ba 3438 bab0 b080 942c 942f\n\n00:36:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab3 b6ba 34b9 bab0 b080 942c 942f\n\n00:36:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab3 b6ba b5b0 bab0 b080 942c 942f\n\n00:36:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab3 b6ba b531 bab0 b080 942c 942f\n\n00:36:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab3 b6ba b532 bab0 b080 942c 942f\n\n00:36:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab3 b6ba b5b3 bab0 b080 942c 942f\n\n00:36:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab3 b6ba b534 bab0 b080 942c 942f\n\n00:36:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab3 b6ba b5b5 bab0 b080 942c 942f\n\n00:36:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab3 b6ba b5b6 bab0 b080 942c 942f\n\n00:36:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab3 b6ba b537 bab0 b080 942c 942f\n\n00:36:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab3 b6ba b538 bab0 b080 942c 942f\n\n00:36:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab3 b6ba b5b9 bab0 b080 942c 942f\n\n00:37:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab3 37ba b0b0 bab0 b080 942c 942f\n\n00:37:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab3 37ba b031 bab0 b080 942c 942f\n\n00:37:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab3 37ba b032 bab0 b080 942c 942f\n\n00:37:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab3 37ba b0b3 bab0 b080 942c 942f\n\n00:37:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab3 37ba b034 bab0 b080 942c 942f\n\n00:37:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab3 37ba b0b5 bab0 b080 942c 942f\n\n00:37:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab3 37ba b0b6 bab0 b080 942c 942f\n\n00:37:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab3 37ba b037 bab0 b080 942c 942f\n\n00:37:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab3 37ba b038 bab0 b080 942c 942f\n\n00:37:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab3 37ba b0b9 bab0 b080 942c 942f\n\n00:37:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab3 37ba 31b0 bab0 b080 942c 942f\n\n00:37:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab3 37ba 3131 bab0 b080 942c 942f\n\n00:37:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab3 37ba 3132 bab0 b080 942c 942f\n\n00:37:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab3 37ba 31b3 bab0 b080 942c 942f\n\n00:37:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab3 37ba 3134 bab0 b080 942c 942f\n\n00:37:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab3 37ba 31b5 bab0 b080 942c 942f\n\n00:37:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab3 37ba 31b6 bab0 b080 942c 942f\n\n00:37:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab3 37ba 3137 bab0 b080 942c 942f\n\n00:37:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab3 37ba 3138 bab0 b080 942c 942f\n\n00:37:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab3 37ba 31b9 bab0 b080 942c 942f\n\n00:37:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab3 37ba 32b0 bab0 b080 942c 942f\n\n00:37:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab3 37ba 3231 bab0 b080 942c 942f\n\n00:37:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab3 37ba 3232 bab0 b080 942c 942f\n\n00:37:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab3 37ba 32b3 bab0 b080 942c 942f\n\n00:37:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab3 37ba 3234 bab0 b080 942c 942f\n\n00:37:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab3 37ba 32b5 bab0 b080 942c 942f\n\n00:37:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab3 37ba 32b6 bab0 b080 942c 942f\n\n00:37:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab3 37ba 3237 bab0 b080 942c 942f\n\n00:37:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab3 37ba 3238 bab0 b080 942c 942f\n\n00:37:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab3 37ba 32b9 bab0 b080 942c 942f\n\n00:37:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab3 37ba b3b0 bab0 b080 942c 942f\n\n00:37:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab3 37ba b331 bab0 b080 942c 942f\n\n00:37:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab3 37ba b332 bab0 b080 942c 942f\n\n00:37:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab3 37ba b3b3 bab0 b080 942c 942f\n\n00:37:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab3 37ba b334 bab0 b080 942c 942f\n\n00:37:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab3 37ba b3b5 bab0 b080 942c 942f\n\n00:37:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab3 37ba b3b6 bab0 b080 942c 942f\n\n00:37:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab3 37ba b337 bab0 b080 942c 942f\n\n00:37:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab3 37ba b338 bab0 b080 942c 942f\n\n00:37:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab3 37ba b3b9 bab0 b080 942c 942f\n\n00:37:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab3 37ba 34b0 bab0 b080 942c 942f\n\n00:37:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab3 37ba 3431 bab0 b080 942c 942f\n\n00:37:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab3 37ba 3432 bab0 b080 942c 942f\n\n00:37:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab3 37ba 34b3 bab0 b080 942c 942f\n\n00:37:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab3 37ba 3434 bab0 b080 942c 942f\n\n00:37:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab3 37ba 34b5 bab0 b080 942c 942f\n\n00:37:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab3 37ba 34b6 bab0 b080 942c 942f\n\n00:37:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab3 37ba 3437 bab0 b080 942c 942f\n\n00:37:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab3 37ba 3438 bab0 b080 942c 942f\n\n00:37:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab3 37ba 34b9 bab0 b080 942c 942f\n\n00:37:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab3 37ba b5b0 bab0 b080 942c 942f\n\n00:37:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab3 37ba b531 bab0 b080 942c 942f\n\n00:37:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab3 37ba b532 bab0 b080 942c 942f\n\n00:37:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab3 37ba b5b3 bab0 b080 942c 942f\n\n00:37:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab3 37ba b534 bab0 b080 942c 942f\n\n00:37:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab3 37ba b5b5 bab0 b080 942c 942f\n\n00:37:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab3 37ba b5b6 bab0 b080 942c 942f\n\n00:37:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab3 37ba b537 bab0 b080 942c 942f\n\n00:37:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab3 37ba b538 bab0 b080 942c 942f\n\n00:37:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab3 37ba b5b9 bab0 b080 942c 942f\n\n00:38:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab3 38ba b0b0 bab0 b080 942c 942f\n\n00:38:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab3 38ba b031 bab0 b080 942c 942f\n\n00:38:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab3 38ba b032 bab0 b080 942c 942f\n\n00:38:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab3 38ba b0b3 bab0 b080 942c 942f\n\n00:38:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab3 38ba b034 bab0 b080 942c 942f\n\n00:38:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab3 38ba b0b5 bab0 b080 942c 942f\n\n00:38:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab3 38ba b0b6 bab0 b080 942c 942f\n\n00:38:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab3 38ba b037 bab0 b080 942c 942f\n\n00:38:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab3 38ba b038 bab0 b080 942c 942f\n\n00:38:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab3 38ba b0b9 bab0 b080 942c 942f\n\n00:38:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab3 38ba 31b0 bab0 b080 942c 942f\n\n00:38:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab3 38ba 3131 bab0 b080 942c 942f\n\n00:38:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab3 38ba 3132 bab0 b080 942c 942f\n\n00:38:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab3 38ba 31b3 bab0 b080 942c 942f\n\n00:38:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab3 38ba 3134 bab0 b080 942c 942f\n\n00:38:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab3 38ba 31b5 bab0 b080 942c 942f\n\n00:38:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab3 38ba 31b6 bab0 b080 942c 942f\n\n00:38:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab3 38ba 3137 bab0 b080 942c 942f\n\n00:38:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab3 38ba 3138 bab0 b080 942c 942f\n\n00:38:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab3 38ba 31b9 bab0 b080 942c 942f\n\n00:38:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab3 38ba 32b0 bab0 b080 942c 942f\n\n00:38:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab3 38ba 3231 bab0 b080 942c 942f\n\n00:38:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab3 38ba 3232 bab0 b080 942c 942f\n\n00:38:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab3 38ba 32b3 bab0 b080 942c 942f\n\n00:38:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab3 38ba 3234 bab0 b080 942c 942f\n\n00:38:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab3 38ba 32b5 bab0 b080 942c 942f\n\n00:38:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab3 38ba 32b6 bab0 b080 942c 942f\n\n00:38:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab3 38ba 3237 bab0 b080 942c 942f\n\n00:38:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab3 38ba 3238 bab0 b080 942c 942f\n\n00:38:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab3 38ba 32b9 bab0 b080 942c 942f\n\n00:38:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab3 38ba b3b0 bab0 b080 942c 942f\n\n00:38:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab3 38ba b331 bab0 b080 942c 942f\n\n00:38:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab3 38ba b332 bab0 b080 942c 942f\n\n00:38:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab3 38ba b3b3 bab0 b080 942c 942f\n\n00:38:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab3 38ba b334 bab0 b080 942c 942f\n\n00:38:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab3 38ba b3b5 bab0 b080 942c 942f\n\n00:38:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab3 38ba b3b6 bab0 b080 942c 942f\n\n00:38:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab3 38ba b337 bab0 b080 942c 942f\n\n00:38:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab3 38ba b338 bab0 b080 942c 942f\n\n00:38:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab3 38ba b3b9 bab0 b080 942c 942f\n\n00:38:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab3 38ba 34b0 bab0 b080 942c 942f\n\n00:38:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab3 38ba 3431 bab0 b080 942c 942f\n\n00:38:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab3 38ba 3432 bab0 b080 942c 942f\n\n00:38:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab3 38ba 34b3 bab0 b080 942c 942f\n\n00:38:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab3 38ba 3434 bab0 b080 942c 942f\n\n00:38:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab3 38ba 34b5 bab0 b080 942c 942f\n\n00:38:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab3 38ba 34b6 bab0 b080 942c 942f\n\n00:38:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab3 38ba 3437 bab0 b080 942c 942f\n\n00:38:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab3 38ba 3438 bab0 b080 942c 942f\n\n00:38:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab3 38ba 34b9 bab0 b080 942c 942f\n\n00:38:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab3 38ba b5b0 bab0 b080 942c 942f\n\n00:38:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab3 38ba b531 bab0 b080 942c 942f\n\n00:38:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab3 38ba b532 bab0 b080 942c 942f\n\n00:38:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab3 38ba b5b3 bab0 b080 942c 942f\n\n00:38:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab3 38ba b534 bab0 b080 942c 942f\n\n00:38:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab3 38ba b5b5 bab0 b080 942c 942f\n\n00:38:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab3 38ba b5b6 bab0 b080 942c 942f\n\n00:38:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab3 38ba b537 bab0 b080 942c 942f\n\n00:38:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab3 38ba b538 bab0 b080 942c 942f\n\n00:38:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab3 38ba b5b9 bab0 b080 942c 942f\n\n00:39:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab3 b9ba b0b0 bab0 b080 942c 942f\n\n00:39:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab3 b9ba b031 bab0 b080 942c 942f\n\n00:39:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab3 b9ba b032 bab0 b080 942c 942f\n\n00:39:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab3 b9ba b0b3 bab0 b080 942c 942f\n\n00:39:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab3 b9ba b034 bab0 b080 942c 942f\n\n00:39:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab3 b9ba b0b5 bab0 b080 942c 942f\n\n00:39:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab3 b9ba b0b6 bab0 b080 942c 942f\n\n00:39:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab3 b9ba b037 bab0 b080 942c 942f\n\n00:39:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab3 b9ba b038 bab0 b080 942c 942f\n\n00:39:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab3 b9ba b0b9 bab0 b080 942c 942f\n\n00:39:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab3 b9ba 31b0 bab0 b080 942c 942f\n\n00:39:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab3 b9ba 3131 bab0 b080 942c 942f\n\n00:39:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab3 b9ba 3132 bab0 b080 942c 942f\n\n00:39:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab3 b9ba 31b3 bab0 b080 942c 942f\n\n00:39:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab3 b9ba 3134 bab0 b080 942c 942f\n\n00:39:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab3 b9ba 31b5 bab0 b080 942c 942f\n\n00:39:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab3 b9ba 31b6 bab0 b080 942c 942f\n\n00:39:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab3 b9ba 3137 bab0 b080 942c 942f\n\n00:39:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab3 b9ba 3138 bab0 b080 942c 942f\n\n00:39:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab3 b9ba 31b9 bab0 b080 942c 942f\n\n00:39:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab3 b9ba 32b0 bab0 b080 942c 942f\n\n00:39:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab3 b9ba 3231 bab0 b080 942c 942f\n\n00:39:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab3 b9ba 3232 bab0 b080 942c 942f\n\n00:39:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab3 b9ba 32b3 bab0 b080 942c 942f\n\n00:39:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab3 b9ba 3234 bab0 b080 942c 942f\n\n00:39:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab3 b9ba 32b5 bab0 b080 942c 942f\n\n00:39:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab3 b9ba 32b6 bab0 b080 942c 942f\n\n00:39:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab3 b9ba 3237 bab0 b080 942c 942f\n\n00:39:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab3 b9ba 3238 bab0 b080 942c 942f\n\n00:39:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab3 b9ba 32b9 bab0 b080 942c 942f\n\n00:39:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab3 b9ba b3b0 bab0 b080 942c 942f\n\n00:39:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab3 b9ba b331 bab0 b080 942c 942f\n\n00:39:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab3 b9ba b332 bab0 b080 942c 942f\n\n00:39:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab3 b9ba b3b3 bab0 b080 942c 942f\n\n00:39:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab3 b9ba b334 bab0 b080 942c 942f\n\n00:39:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab3 b9ba b3b5 bab0 b080 942c 942f\n\n00:39:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab3 b9ba b3b6 bab0 b080 942c 942f\n\n00:39:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab3 b9ba b337 bab0 b080 942c 942f\n\n00:39:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab3 b9ba b338 bab0 b080 942c 942f\n\n00:39:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab3 b9ba b3b9 bab0 b080 942c 942f\n\n00:39:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab3 b9ba 34b0 bab0 b080 942c 942f\n\n00:39:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab3 b9ba 3431 bab0 b080 942c 942f\n\n00:39:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab3 b9ba 3432 bab0 b080 942c 942f\n\n00:39:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab3 b9ba 34b3 bab0 b080 942c 942f\n\n00:39:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab3 b9ba 3434 bab0 b080 942c 942f\n\n00:39:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab3 b9ba 34b5 bab0 b080 942c 942f\n\n00:39:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab3 b9ba 34b6 bab0 b080 942c 942f\n\n00:39:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab3 b9ba 3437 bab0 b080 942c 942f\n\n00:39:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab3 b9ba 3438 bab0 b080 942c 942f\n\n00:39:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab3 b9ba 34b9 bab0 b080 942c 942f\n\n00:39:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab3 b9ba b5b0 bab0 b080 942c 942f\n\n00:39:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab3 b9ba b531 bab0 b080 942c 942f\n\n00:39:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab3 b9ba b532 bab0 b080 942c 942f\n\n00:39:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab3 b9ba b5b3 bab0 b080 942c 942f\n\n00:39:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab3 b9ba b534 bab0 b080 942c 942f\n\n00:39:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab3 b9ba b5b5 bab0 b080 942c 942f\n\n00:39:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab3 b9ba b5b6 bab0 b080 942c 942f\n\n00:39:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab3 b9ba b537 bab0 b080 942c 942f\n\n00:39:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab3 b9ba b538 bab0 b080 942c 942f\n\n00:39:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab3 b9ba b5b9 bab0 b080 942c 942f\n\n00:40:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba34 b0ba b0b0 bab0 b080 942c 942f\n\n00:40:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba34 b0ba b031 bab0 b080 942c 942f\n\n00:40:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba34 b0ba b032 bab0 b080 942c 942f\n\n00:40:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba34 b0ba b0b3 bab0 b080 942c 942f\n\n00:40:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba34 b0ba b034 bab0 b080 942c 942f\n\n00:40:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba34 b0ba b0b5 bab0 b080 942c 942f\n\n00:40:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba34 b0ba b0b6 bab0 b080 942c 942f\n\n00:40:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba34 b0ba b037 bab0 b080 942c 942f\n\n00:40:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba34 b0ba b038 bab0 b080 942c 942f\n\n00:40:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba34 b0ba b0b9 bab0 b080 942c 942f\n\n00:40:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba34 b0ba 31b0 bab0 b080 942c 942f\n\n00:40:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba34 b0ba 3131 bab0 b080 942c 942f\n\n00:40:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba34 b0ba 3132 bab0 b080 942c 942f\n\n00:40:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba34 b0ba 31b3 bab0 b080 942c 942f\n\n00:40:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba34 b0ba 3134 bab0 b080 942c 942f\n\n00:40:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba34 b0ba 31b5 bab0 b080 942c 942f\n\n00:40:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba34 b0ba 31b6 bab0 b080 942c 942f\n\n00:40:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba34 b0ba 3137 bab0 b080 942c 942f\n\n00:40:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba34 b0ba 3138 bab0 b080 942c 942f\n\n00:40:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba34 b0ba 31b9 bab0 b080 942c 942f\n\n00:40:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba34 b0ba 32b0 bab0 b080 942c 942f\n\n00:40:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba34 b0ba 3231 bab0 b080 942c 942f\n\n00:40:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba34 b0ba 3232 bab0 b080 942c 942f\n\n00:40:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba34 b0ba 32b3 bab0 b080 942c 942f\n\n00:40:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba34 b0ba 3234 bab0 b080 942c 942f\n\n00:40:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba34 b0ba 32b5 bab0 b080 942c 942f\n\n00:40:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba34 b0ba 32b6 bab0 b080 942c 942f\n\n00:40:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba34 b0ba 3237 bab0 b080 942c 942f\n\n00:40:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba34 b0ba 3238 bab0 b080 942c 942f\n\n00:40:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba34 b0ba 32b9 bab0 b080 942c 942f\n\n00:40:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba34 b0ba b3b0 bab0 b080 942c 942f\n\n00:40:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba34 b0ba b331 bab0 b080 942c 942f\n\n00:40:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba34 b0ba b332 bab0 b080 942c 942f\n\n00:40:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba34 b0ba b3b3 bab0 b080 942c 942f\n\n00:40:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba34 b0ba b334 bab0 b080 942c 942f\n\n00:40:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba34 b0ba b3b5 bab0 b080 942c 942f\n\n00:40:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba34 b0ba b3b6 bab0 b080 942c 942f\n\n00:40:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba34 b0ba b337 bab0 b080 942c 942f\n\n00:40:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba34 b0ba b338 bab0 b080 942c 942f\n\n00:40:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba34 b0ba b3b9 bab0 b080 942c 942f\n\n00:40:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba34 b0ba 34b0 bab0 b080 942c 942f\n\n00:40:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba34 b0ba 3431 bab0 b080 942c 942f\n\n00:40:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba34 b0ba 3432 bab0 b080 942c 942f\n\n00:40:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba34 b0ba 34b3 bab0 b080 942c 942f\n\n00:40:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba34 b0ba 3434 bab0 b080 942c 942f\n\n00:40:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba34 b0ba 34b5 bab0 b080 942c 942f\n\n00:40:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba34 b0ba 34b6 bab0 b080 942c 942f\n\n00:40:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba34 b0ba 3437 bab0 b080 942c 942f\n\n00:40:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba34 b0ba 3438 bab0 b080 942c 942f\n\n00:40:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba34 b0ba 34b9 bab0 b080 942c 942f\n\n00:40:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba34 b0ba b5b0 bab0 b080 942c 942f\n\n00:40:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba34 b0ba b531 bab0 b080 942c 942f\n\n00:40:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba34 b0ba b532 bab0 b080 942c 942f\n\n00:40:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba34 b0ba b5b3 bab0 b080 942c 942f\n\n00:40:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba34 b0ba b534 bab0 b080 942c 942f\n\n00:40:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba34 b0ba b5b5 bab0 b080 942c 942f\n\n00:40:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba34 b0ba b5b6 bab0 b080 942c 942f\n\n00:40:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba34 b0ba b537 bab0 b080 942c 942f\n\n00:40:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba34 b0ba b538 bab0 b080 942c 942f\n\n00:40:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba34 b0ba b5b9 bab0 b080 942c 942f\n\n00:41:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba34 31ba b0b0 bab0 b080 942c 942f\n\n00:41:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba34 31ba b031 bab0 b080 942c 942f\n\n00:41:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba34 31ba b032 bab0 b080 942c 942f\n\n00:41:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba34 31ba b0b3 bab0 b080 942c 942f\n\n00:41:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba34 31ba b034 bab0 b080 942c 942f\n\n00:41:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba34 31ba b0b5 bab0 b080 942c 942f\n\n00:41:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba34 31ba b0b6 bab0 b080 942c 942f\n\n00:41:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba34 31ba b037 bab0 b080 942c 942f\n\n00:41:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba34 31ba b038 bab0 b080 942c 942f\n\n00:41:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba34 31ba b0b9 bab0 b080 942c 942f\n\n00:41:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba34 31ba 31b0 bab0 b080 942c 942f\n\n00:41:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba34 31ba 3131 bab0 b080 942c 942f\n\n00:41:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba34 31ba 3132 bab0 b080 942c 942f\n\n00:41:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba34 31ba 31b3 bab0 b080 942c 942f\n\n00:41:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba34 31ba 3134 bab0 b080 942c 942f\n\n00:41:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba34 31ba 31b5 bab0 b080 942c 942f\n\n00:41:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba34 31ba 31b6 bab0 b080 942c 942f\n\n00:41:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba34 31ba 3137 bab0 b080 942c 942f\n\n00:41:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba34 31ba 3138 bab0 b080 942c 942f\n\n00:41:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba34 31ba 31b9 bab0 b080 942c 942f\n\n00:41:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba34 31ba 32b0 bab0 b080 942c 942f\n\n00:41:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba34 31ba 3231 bab0 b080 942c 942f\n\n00:41:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba34 31ba 3232 bab0 b080 942c 942f\n\n00:41:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba34 31ba 32b3 bab0 b080 942c 942f\n\n00:41:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba34 31ba 3234 bab0 b080 942c 942f\n\n00:41:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba34 31ba 32b5 bab0 b080 942c 942f\n\n00:41:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba34 31ba 32b6 bab0 b080 942c 942f\n\n00:41:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba34 31ba 3237 bab0 b080 942c 942f\n\n00:41:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba34 31ba 3238 bab0 b080 942c 942f\n\n00:41:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba34 31ba 32b9 bab0 b080 942c 942f\n\n00:41:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba34 31ba b3b0 bab0 b080 942c 942f\n\n00:41:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba34 31ba b331 bab0 b080 942c 942f\n\n00:41:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba34 31ba b332 bab0 b080 942c 942f\n\n00:41:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba34 31ba b3b3 bab0 b080 942c 942f\n\n00:41:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba34 31ba b334 bab0 b080 942c 942f\n\n00:41:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba34 31ba b3b5 bab0 b080 942c 942f\n\n00:41:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba34 31ba b3b6 bab0 b080 942c 942f\n\n00:41:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba34 31ba b337 bab0 b080 942c 942f\n\n00:41:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba34 31ba b338 bab0 b080 942c 942f\n\n00:41:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba34 31ba b3b9 bab0 b080 942c 942f\n\n00:41:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba34 31ba 34b0 bab0 b080 942c 942f\n\n00:41:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba34 31ba 3431 bab0 b080 942c 942f\n\n00:41:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba34 31ba 3432 bab0 b080 942c 942f\n\n00:41:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba34 31ba 34b3 bab0 b080 942c 942f\n\n00:41:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba34 31ba 3434 bab0 b080 942c 942f\n\n00:41:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba34 31ba 34b5 bab0 b080 942c 942f\n\n00:41:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba34 31ba 34b6 bab0 b080 942c 942f\n\n00:41:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba34 31ba 3437 bab0 b080 942c 942f\n\n00:41:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba34 31ba 3438 bab0 b080 942c 942f\n\n00:41:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba34 31ba 34b9 bab0 b080 942c 942f\n\n00:41:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba34 31ba b5b0 bab0 b080 942c 942f\n\n00:41:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba34 31ba b531 bab0 b080 942c 942f\n\n00:41:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba34 31ba b532 bab0 b080 942c 942f\n\n00:41:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba34 31ba b5b3 bab0 b080 942c 942f\n\n00:41:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba34 31ba b534 bab0 b080 942c 942f\n\n00:41:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba34 31ba b5b5 bab0 b080 942c 942f\n\n00:41:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba34 31ba b5b6 bab0 b080 942c 942f\n\n00:41:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba34 31ba b537 bab0 b080 942c 942f\n\n00:41:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba34 31ba b538 bab0 b080 942c 942f\n\n00:41:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba34 31ba b5b9 bab0 b080 942c 942f\n\n00:42:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba34 32ba b0b0 bab0 b080 942c 942f\n\n00:42:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba34 32ba b031 bab0 b080 942c 942f\n\n00:42:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba34 32ba b032 bab0 b080 942c 942f\n\n00:42:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba34 32ba b0b3 bab0 b080 942c 942f\n\n00:42:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba34 32ba b034 bab0 b080 942c 942f\n\n00:42:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba34 32ba b0b5 bab0 b080 942c 942f\n\n00:42:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba34 32ba b0b6 bab0 b080 942c 942f\n\n00:42:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba34 32ba b037 bab0 b080 942c 942f\n\n00:42:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba34 32ba b038 bab0 b080 942c 942f\n\n00:42:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba34 32ba b0b9 bab0 b080 942c 942f\n\n00:42:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba34 32ba 31b0 bab0 b080 942c 942f\n\n00:42:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba34 32ba 3131 bab0 b080 942c 942f\n\n00:42:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba34 32ba 3132 bab0 b080 942c 942f\n\n00:42:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba34 32ba 31b3 bab0 b080 942c 942f\n\n00:42:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba34 32ba 3134 bab0 b080 942c 942f\n\n00:42:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba34 32ba 31b5 bab0 b080 942c 942f\n\n00:42:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba34 32ba 31b6 bab0 b080 942c 942f\n\n00:42:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba34 32ba 3137 bab0 b080 942c 942f\n\n00:42:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba34 32ba 3138 bab0 b080 942c 942f\n\n00:42:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba34 32ba 31b9 bab0 b080 942c 942f\n\n00:42:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba34 32ba 32b0 bab0 b080 942c 942f\n\n00:42:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba34 32ba 3231 bab0 b080 942c 942f\n\n00:42:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba34 32ba 3232 bab0 b080 942c 942f\n\n00:42:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba34 32ba 32b3 bab0 b080 942c 942f\n\n00:42:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba34 32ba 3234 bab0 b080 942c 942f\n\n00:42:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba34 32ba 32b5 bab0 b080 942c 942f\n\n00:42:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba34 32ba 32b6 bab0 b080 942c 942f\n\n00:42:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba34 32ba 3237 bab0 b080 942c 942f\n\n00:42:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba34 32ba 3238 bab0 b080 942c 942f\n\n00:42:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba34 32ba 32b9 bab0 b080 942c 942f\n\n00:42:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba34 32ba b3b0 bab0 b080 942c 942f\n\n00:42:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba34 32ba b331 bab0 b080 942c 942f\n\n00:42:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba34 32ba b332 bab0 b080 942c 942f\n\n00:42:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba34 32ba b3b3 bab0 b080 942c 942f\n\n00:42:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba34 32ba b334 bab0 b080 942c 942f\n\n00:42:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba34 32ba b3b5 bab0 b080 942c 942f\n\n00:42:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba34 32ba b3b6 bab0 b080 942c 942f\n\n00:42:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba34 32ba b337 bab0 b080 942c 942f\n\n00:42:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba34 32ba b338 bab0 b080 942c 942f\n\n00:42:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba34 32ba b3b9 bab0 b080 942c 942f\n\n00:42:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba34 32ba 34b0 bab0 b080 942c 942f\n\n00:42:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba34 32ba 3431 bab0 b080 942c 942f\n\n00:42:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba34 32ba 3432 bab0 b080 942c 942f\n\n00:42:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba34 32ba 34b3 bab0 b080 942c 942f\n\n00:42:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba34 32ba 3434 bab0 b080 942c 942f\n\n00:42:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba34 32ba 34b5 bab0 b080 942c 942f\n\n00:42:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba34 32ba 34b6 bab0 b080 942c 942f\n\n00:42:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba34 32ba 3437 bab0 b080 942c 942f\n\n00:42:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba34 32ba 3438 bab0 b080 942c 942f\n\n00:42:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba34 32ba 34b9 bab0 b080 942c 942f\n\n00:42:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba34 32ba b5b0 bab0 b080 942c 942f\n\n00:42:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba34 32ba b531 bab0 b080 942c 942f\n\n00:42:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba34 32ba b532 bab0 b080 942c 942f\n\n00:42:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba34 32ba b5b3 bab0 b080 942c 942f\n\n00:42:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba34 32ba b534 bab0 b080 942c 942f\n\n00:42:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba34 32ba b5b5 bab0 b080 942c 942f\n\n00:42:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba34 32ba b5b6 bab0 b080 942c 942f\n\n00:42:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba34 32ba b537 bab0 b080 942c 942f\n\n00:42:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba34 32ba b538 bab0 b080 942c 942f\n\n00:42:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba34 32ba b5b9 bab0 b080 942c 942f\n\n00:43:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba34 b3ba b0b0 bab0 b080 942c 942f\n\n00:43:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba34 b3ba b031 bab0 b080 942c 942f\n\n00:43:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba34 b3ba b032 bab0 b080 942c 942f\n\n00:43:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba34 b3ba b0b3 bab0 b080 942c 942f\n\n00:43:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba34 b3ba b034 bab0 b080 942c 942f\n\n00:43:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba34 b3ba b0b5 bab0 b080 942c 942f\n\n00:43:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba34 b3ba b0b6 bab0 b080 942c 942f\n\n00:43:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba34 b3ba b037 bab0 b080 942c 942f\n\n00:43:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba34 b3ba b038 bab0 b080 942c 942f\n\n00:43:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba34 b3ba b0b9 bab0 b080 942c 942f\n\n00:43:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba34 b3ba 31b0 bab0 b080 942c 942f\n\n00:43:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba34 b3ba 3131 bab0 b080 942c 942f\n\n00:43:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba34 b3ba 3132 bab0 b080 942c 942f\n\n00:43:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba34 b3ba 31b3 bab0 b080 942c 942f\n\n00:43:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba34 b3ba 3134 bab0 b080 942c 942f\n\n00:43:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba34 b3ba 31b5 bab0 b080 942c 942f\n\n00:43:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba34 b3ba 31b6 bab0 b080 942c 942f\n\n00:43:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba34 b3ba 3137 bab0 b080 942c 942f\n\n00:43:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba34 b3ba 3138 bab0 b080 942c 942f\n\n00:43:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba34 b3ba 31b9 bab0 b080 942c 942f\n\n00:43:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba34 b3ba 32b0 bab0 b080 942c 942f\n\n00:43:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba34 b3ba 3231 bab0 b080 942c 942f\n\n00:43:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba34 b3ba 3232 bab0 b080 942c 942f\n\n00:43:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba34 b3ba 32b3 bab0 b080 942c 942f\n\n00:43:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba34 b3ba 3234 bab0 b080 942c 942f\n\n00:43:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba34 b3ba 32b5 bab0 b080 942c 942f\n\n00:43:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba34 b3ba 32b6 bab0 b080 942c 942f\n\n00:43:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba34 b3ba 3237 bab0 b080 942c 942f\n\n00:43:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba34 b3ba 3238 bab0 b080 942c 942f\n\n00:43:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba34 b3ba 32b9 bab0 b080 942c 942f\n\n00:43:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba34 b3ba b3b0 bab0 b080 942c 942f\n\n00:43:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba34 b3ba b331 bab0 b080 942c 942f\n\n00:43:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba34 b3ba b332 bab0 b080 942c 942f\n\n00:43:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba34 b3ba b3b3 bab0 b080 942c 942f\n\n00:43:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba34 b3ba b334 bab0 b080 942c 942f\n\n00:43:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba34 b3ba b3b5 bab0 b080 942c 942f\n\n00:43:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba34 b3ba b3b6 bab0 b080 942c 942f\n\n00:43:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba34 b3ba b337 bab0 b080 942c 942f\n\n00:43:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba34 b3ba b338 bab0 b080 942c 942f\n\n00:43:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba34 b3ba b3b9 bab0 b080 942c 942f\n\n00:43:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba34 b3ba 34b0 bab0 b080 942c 942f\n\n00:43:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba34 b3ba 3431 bab0 b080 942c 942f\n\n00:43:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba34 b3ba 3432 bab0 b080 942c 942f\n\n00:43:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba34 b3ba 34b3 bab0 b080 942c 942f\n\n00:43:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba34 b3ba 3434 bab0 b080 942c 942f\n\n00:43:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba34 b3ba 34b5 bab0 b080 942c 942f\n\n00:43:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba34 b3ba 34b6 bab0 b080 942c 942f\n\n00:43:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba34 b3ba 3437 bab0 b080 942c 942f\n\n00:43:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba34 b3ba 3438 bab0 b080 942c 942f\n\n00:43:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba34 b3ba 34b9 bab0 b080 942c 942f\n\n00:43:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba34 b3ba b5b0 bab0 b080 942c 942f\n\n00:43:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba34 b3ba b531 bab0 b080 942c 942f\n\n00:43:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba34 b3ba b532 bab0 b080 942c 942f\n\n00:43:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba34 b3ba b5b3 bab0 b080 942c 942f\n\n00:43:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba34 b3ba b534 bab0 b080 942c 942f\n\n00:43:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba34 b3ba b5b5 bab0 b080 942c 942f\n\n00:43:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba34 b3ba b5b6 bab0 b080 942c 942f\n\n00:43:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba34 b3ba b537 bab0 b080 942c 942f\n\n00:43:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba34 b3ba b538 bab0 b080 942c 942f\n\n00:43:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba34 b3ba b5b9 bab0 b080 942c 942f\n\n00:44:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba34 34ba b0b0 bab0 b080 942c 942f\n\n00:44:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba34 34ba b031 bab0 b080 942c 942f\n\n00:44:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba34 34ba b032 bab0 b080 942c 942f\n\n00:44:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba34 34ba b0b3 bab0 b080 942c 942f\n\n00:44:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba34 34ba b034 bab0 b080 942c 942f\n\n00:44:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba34 34ba b0b5 bab0 b080 942c 942f\n\n00:44:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba34 34ba b0b6 bab0 b080 942c 942f\n\n00:44:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba34 34ba b037 bab0 b080 942c 942f\n\n00:44:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba34 34ba b038 bab0 b080 942c 942f\n\n00:44:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba34 34ba b0b9 bab0 b080 942c 942f\n\n00:44:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba34 34ba 31b0 bab0 b080 942c 942f\n\n00:44:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba34 34ba 3131 bab0 b080 942c 942f\n\n00:44:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba34 34ba 3132 bab0 b080 942c 942f\n\n00:44:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba34 34ba 31b3 bab0 b080 942c 942f\n\n00:44:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba34 34ba 3134 bab0 b080 942c 942f\n\n00:44:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba34 34ba 31b5 bab0 b080 942c 942f\n\n00:44:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba34 34ba 31b6 bab0 b080 942c 942f\n\n00:44:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba34 34ba 3137 bab0 b080 942c 942f\n\n00:44:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba34 34ba 3138 bab0 b080 942c 942f\n\n00:44:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba34 34ba 31b9 bab0 b080 942c 942f\n\n00:44:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba34 34ba 32b0 bab0 b080 942c 942f\n\n00:44:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba34 34ba 3231 bab0 b080 942c 942f\n\n00:44:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba34 34ba 3232 bab0 b080 942c 942f\n\n00:44:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba34 34ba 32b3 bab0 b080 942c 942f\n\n00:44:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba34 34ba 3234 bab0 b080 942c 942f\n\n00:44:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba34 34ba 32b5 bab0 b080 942c 942f\n\n00:44:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba34 34ba 32b6 bab0 b080 942c 942f\n\n00:44:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba34 34ba 3237 bab0 b080 942c 942f\n\n00:44:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba34 34ba 3238 bab0 b080 942c 942f\n\n00:44:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba34 34ba 32b9 bab0 b080 942c 942f\n\n00:44:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba34 34ba b3b0 bab0 b080 942c 942f\n\n00:44:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba34 34ba b331 bab0 b080 942c 942f\n\n00:44:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba34 34ba b332 bab0 b080 942c 942f\n\n00:44:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba34 34ba b3b3 bab0 b080 942c 942f\n\n00:44:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba34 34ba b334 bab0 b080 942c 942f\n\n00:44:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba34 34ba b3b5 bab0 b080 942c 942f\n\n00:44:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba34 34ba b3b6 bab0 b080 942c 942f\n\n00:44:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba34 34ba b337 bab0 b080 942c 942f\n\n00:44:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba34 34ba b338 bab0 b080 942c 942f\n\n00:44:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba34 34ba b3b9 bab0 b080 942c 942f\n\n00:44:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba34 34ba 34b0 bab0 b080 942c 942f\n\n00:44:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba34 34ba 3431 bab0 b080 942c 942f\n\n00:44:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba34 34ba 3432 bab0 b080 942c 942f\n\n00:44:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba34 34ba 34b3 bab0 b080 942c 942f\n\n00:44:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba34 34ba 3434 bab0 b080 942c 942f\n\n00:44:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba34 34ba 34b5 bab0 b080 942c 942f\n\n00:44:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba34 34ba 34b6 bab0 b080 942c 942f\n\n00:44:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba34 34ba 3437 bab0 b080 942c 942f\n\n00:44:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba34 34ba 3438 bab0 b080 942c 942f\n\n00:44:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba34 34ba 34b9 bab0 b080 942c 942f\n\n00:44:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba34 34ba b5b0 bab0 b080 942c 942f\n\n00:44:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba34 34ba b531 bab0 b080 942c 942f\n\n00:44:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba34 34ba b532 bab0 b080 942c 942f\n\n00:44:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba34 34ba b5b3 bab0 b080 942c 942f\n\n00:44:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba34 34ba b534 bab0 b080 942c 942f\n\n00:44:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba34 34ba b5b5 bab0 b080 942c 942f\n\n00:44:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba34 34ba b5b6 bab0 b080 942c 942f\n\n00:44:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba34 34ba b537 bab0 b080 942c 942f\n\n00:44:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba34 34ba b538 bab0 b080 942c 942f\n\n00:44:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba34 34ba b5b9 bab0 b080 942c 942f\n\n00:45:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba34 b5ba b0b0 bab0 b080 942c 942f\n\n00:45:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba34 b5ba b031 bab0 b080 942c 942f\n\n00:45:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba34 b5ba b032 bab0 b080 942c 942f\n\n00:45:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba34 b5ba b0b3 bab0 b080 942c 942f\n\n00:45:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba34 b5ba b034 bab0 b080 942c 942f\n\n00:45:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba34 b5ba b0b5 bab0 b080 942c 942f\n\n00:45:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba34 b5ba b0b6 bab0 b080 942c 942f\n\n00:45:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba34 b5ba b037 bab0 b080 942c 942f\n\n00:45:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba34 b5ba b038 bab0 b080 942c 942f\n\n00:45:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba34 b5ba b0b9 bab0 b080 942c 942f\n\n00:45:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba34 b5ba 31b0 bab0 b080 942c 942f\n\n00:45:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba34 b5ba 3131 bab0 b080 942c 942f\n\n00:45:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba34 b5ba 3132 bab0 b080 942c 942f\n\n00:45:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba34 b5ba 31b3 bab0 b080 942c 942f\n\n00:45:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba34 b5ba 3134 bab0 b080 942c 942f\n\n00:45:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba34 b5ba 31b5 bab0 b080 942c 942f\n\n00:45:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba34 b5ba 31b6 bab0 b080 942c 942f\n\n00:45:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba34 b5ba 3137 bab0 b080 942c 942f\n\n00:45:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba34 b5ba 3138 bab0 b080 942c 942f\n\n00:45:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba34 b5ba 31b9 bab0 b080 942c 942f\n\n00:45:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba34 b5ba 32b0 bab0 b080 942c 942f\n\n00:45:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba34 b5ba 3231 bab0 b080 942c 942f\n\n00:45:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba34 b5ba 3232 bab0 b080 942c 942f\n\n00:45:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba34 b5ba 32b3 bab0 b080 942c 942f\n\n00:45:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba34 b5ba 3234 bab0 b080 942c 942f\n\n00:45:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba34 b5ba 32b5 bab0 b080 942c 942f\n\n00:45:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba34 b5ba 32b6 bab0 b080 942c 942f\n\n00:45:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba34 b5ba 3237 bab0 b080 942c 942f\n\n00:45:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba34 b5ba 3238 bab0 b080 942c 942f\n\n00:45:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba34 b5ba 32b9 bab0 b080 942c 942f\n\n00:45:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba34 b5ba b3b0 bab0 b080 942c 942f\n\n00:45:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba34 b5ba b331 bab0 b080 942c 942f\n\n00:45:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba34 b5ba b332 bab0 b080 942c 942f\n\n00:45:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba34 b5ba b3b3 bab0 b080 942c 942f\n\n00:45:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba34 b5ba b334 bab0 b080 942c 942f\n\n00:45:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba34 b5ba b3b5 bab0 b080 942c 942f\n\n00:45:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba34 b5ba b3b6 bab0 b080 942c 942f\n\n00:45:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba34 b5ba b337 bab0 b080 942c 942f\n\n00:45:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba34 b5ba b338 bab0 b080 942c 942f\n\n00:45:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba34 b5ba b3b9 bab0 b080 942c 942f\n\n00:45:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba34 b5ba 34b0 bab0 b080 942c 942f\n\n00:45:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba34 b5ba 3431 bab0 b080 942c 942f\n\n00:45:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba34 b5ba 3432 bab0 b080 942c 942f\n\n00:45:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba34 b5ba 34b3 bab0 b080 942c 942f\n\n00:45:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba34 b5ba 3434 bab0 b080 942c 942f\n\n00:45:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba34 b5ba 34b5 bab0 b080 942c 942f\n\n00:45:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba34 b5ba 34b6 bab0 b080 942c 942f\n\n00:45:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba34 b5ba 3437 bab0 b080 942c 942f\n\n00:45:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba34 b5ba 3438 bab0 b080 942c 942f\n\n00:45:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba34 b5ba 34b9 bab0 b080 942c 942f\n\n00:45:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba34 b5ba b5b0 bab0 b080 942c 942f\n\n00:45:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba34 b5ba b531 bab0 b080 942c 942f\n\n00:45:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba34 b5ba b532 bab0 b080 942c 942f\n\n00:45:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba34 b5ba b5b3 bab0 b080 942c 942f\n\n00:45:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba34 b5ba b534 bab0 b080 942c 942f\n\n00:45:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba34 b5ba b5b5 bab0 b080 942c 942f\n\n00:45:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba34 b5ba b5b6 bab0 b080 942c 942f\n\n00:45:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba34 b5ba b537 bab0 b080 942c 942f\n\n00:45:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba34 b5ba b538 bab0 b080 942c 942f\n\n00:45:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba34 b5ba b5b9 bab0 b080 942c 942f\n\n00:46:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba34 b6ba b0b0 bab0 b080 942c 942f\n\n00:46:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba34 b6ba b031 bab0 b080 942c 942f\n\n00:46:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba34 b6ba b032 bab0 b080 942c 942f\n\n00:46:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba34 b6ba b0b3 bab0 b080 942c 942f\n\n00:46:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba34 b6ba b034 bab0 b080 942c 942f\n\n00:46:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba34 b6ba b0b5 bab0 b080 942c 942f\n\n00:46:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba34 b6ba b0b6 bab0 b080 942c 942f\n\n00:46:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba34 b6ba b037 bab0 b080 942c 942f\n\n00:46:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba34 b6ba b038 bab0 b080 942c 942f\n\n00:46:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba34 b6ba b0b9 bab0 b080 942c 942f\n\n00:46:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba34 b6ba 31b0 bab0 b080 942c 942f\n\n00:46:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba34 b6ba 3131 bab0 b080 942c 942f\n\n00:46:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba34 b6ba 3132 bab0 b080 942c 942f\n\n00:46:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba34 b6ba 31b3 bab0 b080 942c 942f\n\n00:46:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba34 b6ba 3134 bab0 b080 942c 942f\n\n00:46:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba34 b6ba 31b5 bab0 b080 942c 942f\n\n00:46:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba34 b6ba 31b6 bab0 b080 942c 942f\n\n00:46:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba34 b6ba 3137 bab0 b080 942c 942f\n\n00:46:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba34 b6ba 3138 bab0 b080 942c 942f\n\n00:46:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba34 b6ba 31b9 bab0 b080 942c 942f\n\n00:46:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba34 b6ba 32b0 bab0 b080 942c 942f\n\n00:46:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba34 b6ba 3231 bab0 b080 942c 942f\n\n00:46:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba34 b6ba 3232 bab0 b080 942c 942f\n\n00:46:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba34 b6ba 32b3 bab0 b080 942c 942f\n\n00:46:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba34 b6ba 3234 bab0 b080 942c 942f\n\n00:46:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba34 b6ba 32b5 bab0 b080 942c 942f\n\n00:46:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba34 b6ba 32b6 bab0 b080 942c 942f\n\n00:46:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba34 b6ba 3237 bab0 b080 942c 942f\n\n00:46:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba34 b6ba 3238 bab0 b080 942c 942f\n\n00:46:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba34 b6ba 32b9 bab0 b080 942c 942f\n\n00:46:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba34 b6ba b3b0 bab0 b080 942c 942f\n\n00:46:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba34 b6ba b331 bab0 b080 942c 942f\n\n00:46:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba34 b6ba b332 bab0 b080 942c 942f\n\n00:46:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba34 b6ba b3b3 bab0 b080 942c 942f\n\n00:46:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba34 b6ba b334 bab0 b080 942c 942f\n\n00:46:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba34 b6ba b3b5 bab0 b080 942c 942f\n\n00:46:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba34 b6ba b3b6 bab0 b080 942c 942f\n\n00:46:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba34 b6ba b337 bab0 b080 942c 942f\n\n00:46:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba34 b6ba b338 bab0 b080 942c 942f\n\n00:46:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba34 b6ba b3b9 bab0 b080 942c 942f\n\n00:46:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba34 b6ba 34b0 bab0 b080 942c 942f\n\n00:46:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba34 b6ba 3431 bab0 b080 942c 942f\n\n00:46:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba34 b6ba 3432 bab0 b080 942c 942f\n\n00:46:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba34 b6ba 34b3 bab0 b080 942c 942f\n\n00:46:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba34 b6ba 3434 bab0 b080 942c 942f\n\n00:46:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba34 b6ba 34b5 bab0 b080 942c 942f\n\n00:46:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba34 b6ba 34b6 bab0 b080 942c 942f\n\n00:46:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba34 b6ba 3437 bab0 b080 942c 942f\n\n00:46:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba34 b6ba 3438 bab0 b080 942c 942f\n\n00:46:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba34 b6ba 34b9 bab0 b080 942c 942f\n\n00:46:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba34 b6ba b5b0 bab0 b080 942c 942f\n\n00:46:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba34 b6ba b531 bab0 b080 942c 942f\n\n00:46:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba34 b6ba b532 bab0 b080 942c 942f\n\n00:46:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba34 b6ba b5b3 bab0 b080 942c 942f\n\n00:46:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba34 b6ba b534 bab0 b080 942c 942f\n\n00:46:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba34 b6ba b5b5 bab0 b080 942c 942f\n\n00:46:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba34 b6ba b5b6 bab0 b080 942c 942f\n\n00:46:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba34 b6ba b537 bab0 b080 942c 942f\n\n00:46:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba34 b6ba b538 bab0 b080 942c 942f\n\n00:46:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba34 b6ba b5b9 bab0 b080 942c 942f\n\n00:47:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba34 37ba b0b0 bab0 b080 942c 942f\n\n00:47:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba34 37ba b031 bab0 b080 942c 942f\n\n00:47:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba34 37ba b032 bab0 b080 942c 942f\n\n00:47:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba34 37ba b0b3 bab0 b080 942c 942f\n\n00:47:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba34 37ba b034 bab0 b080 942c 942f\n\n00:47:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba34 37ba b0b5 bab0 b080 942c 942f\n\n00:47:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba34 37ba b0b6 bab0 b080 942c 942f\n\n00:47:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba34 37ba b037 bab0 b080 942c 942f\n\n00:47:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba34 37ba b038 bab0 b080 942c 942f\n\n00:47:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba34 37ba b0b9 bab0 b080 942c 942f\n\n00:47:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba34 37ba 31b0 bab0 b080 942c 942f\n\n00:47:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba34 37ba 3131 bab0 b080 942c 942f\n\n00:47:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba34 37ba 3132 bab0 b080 942c 942f\n\n00:47:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba34 37ba 31b3 bab0 b080 942c 942f\n\n00:47:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba34 37ba 3134 bab0 b080 942c 942f\n\n00:47:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba34 37ba 31b5 bab0 b080 942c 942f\n\n00:47:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba34 37ba 31b6 bab0 b080 942c 942f\n\n00:47:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba34 37ba 3137 bab0 b080 942c 942f\n\n00:47:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba34 37ba 3138 bab0 b080 942c 942f\n\n00:47:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba34 37ba 31b9 bab0 b080 942c 942f\n\n00:47:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba34 37ba 32b0 bab0 b080 942c 942f\n\n00:47:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba34 37ba 3231 bab0 b080 942c 942f\n\n00:47:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba34 37ba 3232 bab0 b080 942c 942f\n\n00:47:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba34 37ba 32b3 bab0 b080 942c 942f\n\n00:47:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba34 37ba 3234 bab0 b080 942c 942f\n\n00:47:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba34 37ba 32b5 bab0 b080 942c 942f\n\n00:47:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba34 37ba 32b6 bab0 b080 942c 942f\n\n00:47:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba34 37ba 3237 bab0 b080 942c 942f\n\n00:47:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba34 37ba 3238 bab0 b080 942c 942f\n\n00:47:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba34 37ba 32b9 bab0 b080 942c 942f\n\n00:47:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba34 37ba b3b0 bab0 b080 942c 942f\n\n00:47:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba34 37ba b331 bab0 b080 942c 942f\n\n00:47:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba34 37ba b332 bab0 b080 942c 942f\n\n00:47:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba34 37ba b3b3 bab0 b080 942c 942f\n\n00:47:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba34 37ba b334 bab0 b080 942c 942f\n\n00:47:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba34 37ba b3b5 bab0 b080 942c 942f\n\n00:47:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba34 37ba b3b6 bab0 b080 942c 942f\n\n00:47:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba34 37ba b337 bab0 b080 942c 942f\n\n00:47:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba34 37ba b338 bab0 b080 942c 942f\n\n00:47:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba34 37ba b3b9 bab0 b080 942c 942f\n\n00:47:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba34 37ba 34b0 bab0 b080 942c 942f\n\n00:47:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba34 37ba 3431 bab0 b080 942c 942f\n\n00:47:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba34 37ba 3432 bab0 b080 942c 942f\n\n00:47:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba34 37ba 34b3 bab0 b080 942c 942f\n\n00:47:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba34 37ba 3434 bab0 b080 942c 942f\n\n00:47:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba34 37ba 34b5 bab0 b080 942c 942f\n\n00:47:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba34 37ba 34b6 bab0 b080 942c 942f\n\n00:47:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba34 37ba 3437 bab0 b080 942c 942f\n\n00:47:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba34 37ba 3438 bab0 b080 942c 942f\n\n00:47:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba34 37ba 34b9 bab0 b080 942c 942f\n\n00:47:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba34 37ba b5b0 bab0 b080 942c 942f\n\n00:47:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba34 37ba b531 bab0 b080 942c 942f\n\n00:47:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba34 37ba b532 bab0 b080 942c 942f\n\n00:47:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba34 37ba b5b3 bab0 b080 942c 942f\n\n00:47:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba34 37ba b534 bab0 b080 942c 942f\n\n00:47:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba34 37ba b5b5 bab0 b080 942c 942f\n\n00:47:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba34 37ba b5b6 bab0 b080 942c 942f\n\n00:47:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba34 37ba b537 bab0 b080 942c 942f\n\n00:47:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba34 37ba b538 bab0 b080 942c 942f\n\n00:47:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba34 37ba b5b9 bab0 b080 942c 942f\n\n00:48:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba34 38ba b0b0 bab0 b080 942c 942f\n\n00:48:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba34 38ba b031 bab0 b080 942c 942f\n\n00:48:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba34 38ba b032 bab0 b080 942c 942f\n\n00:48:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba34 38ba b0b3 bab0 b080 942c 942f\n\n00:48:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba34 38ba b034 bab0 b080 942c 942f\n\n00:48:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba34 38ba b0b5 bab0 b080 942c 942f\n\n00:48:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba34 38ba b0b6 bab0 b080 942c 942f\n\n00:48:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba34 38ba b037 bab0 b080 942c 942f\n\n00:48:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba34 38ba b038 bab0 b080 942c 942f\n\n00:48:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba34 38ba b0b9 bab0 b080 942c 942f\n\n00:48:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba34 38ba 31b0 bab0 b080 942c 942f\n\n00:48:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba34 38ba 3131 bab0 b080 942c 942f\n\n00:48:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba34 38ba 3132 bab0 b080 942c 942f\n\n00:48:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba34 38ba 31b3 bab0 b080 942c 942f\n\n00:48:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba34 38ba 3134 bab0 b080 942c 942f\n\n00:48:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba34 38ba 31b5 bab0 b080 942c 942f\n\n00:48:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba34 38ba 31b6 bab0 b080 942c 942f\n\n00:48:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba34 38ba 3137 bab0 b080 942c 942f\n\n00:48:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba34 38ba 3138 bab0 b080 942c 942f\n\n00:48:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba34 38ba 31b9 bab0 b080 942c 942f\n\n00:48:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba34 38ba 32b0 bab0 b080 942c 942f\n\n00:48:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba34 38ba 3231 bab0 b080 942c 942f\n\n00:48:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba34 38ba 3232 bab0 b080 942c 942f\n\n00:48:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba34 38ba 32b3 bab0 b080 942c 942f\n\n00:48:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba34 38ba 3234 bab0 b080 942c 942f\n\n00:48:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba34 38ba 32b5 bab0 b080 942c 942f\n\n00:48:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba34 38ba 32b6 bab0 b080 942c 942f\n\n00:48:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba34 38ba 3237 bab0 b080 942c 942f\n\n00:48:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba34 38ba 3238 bab0 b080 942c 942f\n\n00:48:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba34 38ba 32b9 bab0 b080 942c 942f\n\n00:48:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba34 38ba b3b0 bab0 b080 942c 942f\n\n00:48:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba34 38ba b331 bab0 b080 942c 942f\n\n00:48:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba34 38ba b332 bab0 b080 942c 942f\n\n00:48:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba34 38ba b3b3 bab0 b080 942c 942f\n\n00:48:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba34 38ba b334 bab0 b080 942c 942f\n\n00:48:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba34 38ba b3b5 bab0 b080 942c 942f\n\n00:48:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba34 38ba b3b6 bab0 b080 942c 942f\n\n00:48:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba34 38ba b337 bab0 b080 942c 942f\n\n00:48:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba34 38ba b338 bab0 b080 942c 942f\n\n00:48:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba34 38ba b3b9 bab0 b080 942c 942f\n\n00:48:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba34 38ba 34b0 bab0 b080 942c 942f\n\n00:48:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba34 38ba 3431 bab0 b080 942c 942f\n\n00:48:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba34 38ba 3432 bab0 b080 942c 942f\n\n00:48:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba34 38ba 34b3 bab0 b080 942c 942f\n\n00:48:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba34 38ba 3434 bab0 b080 942c 942f\n\n00:48:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba34 38ba 34b5 bab0 b080 942c 942f\n\n00:48:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba34 38ba 34b6 bab0 b080 942c 942f\n\n00:48:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba34 38ba 3437 bab0 b080 942c 942f\n\n00:48:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba34 38ba 3438 bab0 b080 942c 942f\n\n00:48:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba34 38ba 34b9 bab0 b080 942c 942f\n\n00:48:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba34 38ba b5b0 bab0 b080 942c 942f\n\n00:48:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba34 38ba b531 bab0 b080 942c 942f\n\n00:48:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba34 38ba b532 bab0 b080 942c 942f\n\n00:48:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba34 38ba b5b3 bab0 b080 942c 942f\n\n00:48:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba34 38ba b534 bab0 b080 942c 942f\n\n00:48:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba34 38ba b5b5 bab0 b080 942c 942f\n\n00:48:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba34 38ba b5b6 bab0 b080 942c 942f\n\n00:48:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba34 38ba b537 bab0 b080 942c 942f\n\n00:48:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba34 38ba b538 bab0 b080 942c 942f\n\n00:48:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba34 38ba b5b9 bab0 b080 942c 942f\n\n00:49:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba34 b9ba b0b0 bab0 b080 942c 942f\n\n00:49:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba34 b9ba b031 bab0 b080 942c 942f\n\n00:49:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba34 b9ba b032 bab0 b080 942c 942f\n\n00:49:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba34 b9ba b0b3 bab0 b080 942c 942f\n\n00:49:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba34 b9ba b034 bab0 b080 942c 942f\n\n00:49:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba34 b9ba b0b5 bab0 b080 942c 942f\n\n00:49:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba34 b9ba b0b6 bab0 b080 942c 942f\n\n00:49:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba34 b9ba b037 bab0 b080 942c 942f\n\n00:49:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba34 b9ba b038 bab0 b080 942c 942f\n\n00:49:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba34 b9ba b0b9 bab0 b080 942c 942f\n\n00:49:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba34 b9ba 31b0 bab0 b080 942c 942f\n\n00:49:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba34 b9ba 3131 bab0 b080 942c 942f\n\n00:49:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba34 b9ba 3132 bab0 b080 942c 942f\n\n00:49:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba34 b9ba 31b3 bab0 b080 942c 942f\n\n00:49:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba34 b9ba 3134 bab0 b080 942c 942f\n\n00:49:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba34 b9ba 31b5 bab0 b080 942c 942f\n\n00:49:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba34 b9ba 31b6 bab0 b080 942c 942f\n\n00:49:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba34 b9ba 3137 bab0 b080 942c 942f\n\n00:49:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba34 b9ba 3138 bab0 b080 942c 942f\n\n00:49:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba34 b9ba 31b9 bab0 b080 942c 942f\n\n00:49:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 ba34 b9ba 32b0 bab0 b080 942c 942f\n\n00:49:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 ba34 b9ba 3231 bab0 b080 942c 942f\n\n00:49:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 ba34 b9ba 3232 bab0 b080 942c 942f\n\n00:49:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 ba34 b9ba 32b3 bab0 b080 942c 942f\n\n00:49:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 ba34 b9ba 3234 bab0 b080 942c 942f\n\n00:49:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 ba34 b9ba 32b5 bab0 b080 942c 942f\n\n00:49:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 ba34 b9ba 32b6 bab0 b080 942c 942f\n\n00:49:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 ba34 b9ba 3237 bab0 b080 942c 942f\n\n00:49:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 ba34 b9ba 3238 bab0 b080 942c 942f\n\n00:49:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 ba34 b9ba 32b9 bab0 b080 942c 942f\n\n00:49:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 ba34 b9ba b3b0 bab0 b080 942c 942f\n\n00:49:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 ba34 b9ba b331 bab0 b080 942c 942f\n\n00:49:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 ba34 b9ba b332 bab0 b080 942c 942f\n\n00:49:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 ba34 b9ba b3b3 bab0 b080 942c 942f\n\n00:49:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 ba34 b9ba b334 bab0 b080 942c 942f\n\n00:49:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 ba34 b9ba b3b5 bab0 b080 942c 942f\n\n00:49:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 ba34 b9ba b3b6 bab0 b080 942c 942f\n\n00:49:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 ba34 b9ba b337 bab0 b080 942c 942f\n\n00:49:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 ba34 b9ba b338 bab0 b080 942c 942f\n\n00:49:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 ba34 b9ba b3b9 bab0 b080 942c 942f\n\n00:49:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 ba34 b9ba 34b0 bab0 b080 942c 942f\n\n00:49:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 ba34 b9ba 3431 bab0 b080 942c 942f\n\n00:49:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 ba34 b9ba 3432 bab0 b080 942c 942f\n\n00:49:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 ba34 b9ba 34b3 bab0 b080 942c 942f\n\n00:49:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 ba34 b9ba 3434 bab0 b080 942c 942f\n\n00:49:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 ba34 b9ba 34b5 bab0 b080 942c 942f\n\n00:49:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 ba34 b9ba 34b6 bab0 b080 942c 942f\n\n00:49:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 ba34 b9ba 3437 bab0 b080 942c 942f\n\n00:49:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 ba34 b9ba 3438 bab0 b080 942c 942f\n\n00:49:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 ba34 b9ba 34b9 bab0 b080 942c 942f\n\n00:49:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 ba34 b9ba b5b0 bab0 b080 942c 942f\n\n00:49:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 ba34 b9ba b531 bab0 b080 942c 942f\n\n00:49:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 ba34 b9ba b532 bab0 b080 942c 942f\n\n00:49:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 ba34 b9ba b5b3 bab0 b080 942c 942f\n\n00:49:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 ba34 b9ba b534 bab0 b080 942c 942f\n\n00:49:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 ba34 b9ba b5b5 bab0 b080 942c 942f\n\n00:49:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 ba34 b9ba b5b6 bab0 b080 942c 942f\n\n00:49:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 ba34 b9ba b537 bab0 b080 942c 942f\n\n00:49:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 ba34 b9ba b538 bab0 b080 942c 942f\n\n00:49:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 ba34 b9ba b5b9 bab0 b080 942c 942f\n\n00:50:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab5 b0ba b0b0 bab0 b080 942c 942f\n\n00:50:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab5 b0ba b031 bab0 b080 942c 942f\n\n00:50:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab5 b0ba b032 bab0 b080 942c 942f\n\n00:50:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab5 b0ba b0b3 bab0 b080 942c 942f\n\n00:50:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab5 b0ba b034 bab0 b080 942c 942f\n\n00:50:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab5 b0ba b0b5 bab0 b080 942c 942f\n\n00:50:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab5 b0ba b0b6 bab0 b080 942c 942f\n\n00:50:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab5 b0ba b037 bab0 b080 942c 942f\n\n00:50:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab5 b0ba b038 bab0 b080 942c 942f\n\n00:50:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab5 b0ba b0b9 bab0 b080 942c 942f\n\n00:50:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab5 b0ba 31b0 bab0 b080 942c 942f\n\n00:50:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab5 b0ba 3131 bab0 b080 942c 942f\n\n00:50:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab5 b0ba 3132 bab0 b080 942c 942f\n\n00:50:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab5 b0ba 31b3 bab0 b080 942c 942f\n\n00:50:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab5 b0ba 3134 bab0 b080 942c 942f\n\n00:50:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab5 b0ba 31b5 bab0 b080 942c 942f\n\n00:50:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab5 b0ba 31b6 bab0 b080 942c 942f\n\n00:50:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab5 b0ba 3137 bab0 b080 942c 942f\n\n00:50:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab5 b0ba 3138 bab0 b080 942c 942f\n\n00:50:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab5 b0ba 31b9 bab0 b080 942c 942f\n\n00:50:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab5 b0ba 32b0 bab0 b080 942c 942f\n\n00:50:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab5 b0ba 3231 bab0 b080 942c 942f\n\n00:50:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab5 b0ba 3232 bab0 b080 942c 942f\n\n00:50:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab5 b0ba 32b3 bab0 b080 942c 942f\n\n00:50:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab5 b0ba 3234 bab0 b080 942c 942f\n\n00:50:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab5 b0ba 32b5 bab0 b080 942c 942f\n\n00:50:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab5 b0ba 32b6 bab0 b080 942c 942f\n\n00:50:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab5 b0ba 3237 bab0 b080 942c 942f\n\n00:50:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab5 b0ba 3238 bab0 b080 942c 942f\n\n00:50:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab5 b0ba 32b9 bab0 b080 942c 942f\n\n00:50:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab5 b0ba b3b0 bab0 b080 942c 942f\n\n00:50:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab5 b0ba b331 bab0 b080 942c 942f\n\n00:50:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab5 b0ba b332 bab0 b080 942c 942f\n\n00:50:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab5 b0ba b3b3 bab0 b080 942c 942f\n\n00:50:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab5 b0ba b334 bab0 b080 942c 942f\n\n00:50:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab5 b0ba b3b5 bab0 b080 942c 942f\n\n00:50:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab5 b0ba b3b6 bab0 b080 942c 942f\n\n00:50:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab5 b0ba b337 bab0 b080 942c 942f\n\n00:50:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab5 b0ba b338 bab0 b080 942c 942f\n\n00:50:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab5 b0ba b3b9 bab0 b080 942c 942f\n\n00:50:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab5 b0ba 34b0 bab0 b080 942c 942f\n\n00:50:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab5 b0ba 3431 bab0 b080 942c 942f\n\n00:50:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab5 b0ba 3432 bab0 b080 942c 942f\n\n00:50:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab5 b0ba 34b3 bab0 b080 942c 942f\n\n00:50:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab5 b0ba 3434 bab0 b080 942c 942f\n\n00:50:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab5 b0ba 34b5 bab0 b080 942c 942f\n\n00:50:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab5 b0ba 34b6 bab0 b080 942c 942f\n\n00:50:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab5 b0ba 3437 bab0 b080 942c 942f\n\n00:50:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab5 b0ba 3438 bab0 b080 942c 942f\n\n00:50:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab5 b0ba 34b9 bab0 b080 942c 942f\n\n00:50:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab5 b0ba b5b0 bab0 b080 942c 942f\n\n00:50:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab5 b0ba b531 bab0 b080 942c 942f\n\n00:50:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab5 b0ba b532 bab0 b080 942c 942f\n\n00:50:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab5 b0ba b5b3 bab0 b080 942c 942f\n\n00:50:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab5 b0ba b534 bab0 b080 942c 942f\n\n00:50:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab5 b0ba b5b5 bab0 b080 942c 942f\n\n00:50:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab5 b0ba b5b6 bab0 b080 942c 942f\n\n00:50:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab5 b0ba b537 bab0 b080 942c 942f\n\n00:50:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab5 b0ba b538 bab0 b080 942c 942f\n\n00:50:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab5 b0ba b5b9 bab0 b080 942c 942f\n\n00:51:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab5 31ba b0b0 bab0 b080 942c 942f\n\n00:51:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab5 31ba b031 bab0 b080 942c 942f\n\n00:51:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab5 31ba b032 bab0 b080 942c 942f\n\n00:51:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab5 31ba b0b3 bab0 b080 942c 942f\n\n00:51:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab5 31ba b034 bab0 b080 942c 942f\n\n00:51:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab5 31ba b0b5 bab0 b080 942c 942f\n\n00:51:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab5 31ba b0b6 bab0 b080 942c 942f\n\n00:51:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab5 31ba b037 bab0 b080 942c 942f\n\n00:51:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab5 31ba b038 bab0 b080 942c 942f\n\n00:51:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab5 31ba b0b9 bab0 b080 942c 942f\n\n00:51:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab5 31ba 31b0 bab0 b080 942c 942f\n\n00:51:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab5 31ba 3131 bab0 b080 942c 942f\n\n00:51:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab5 31ba 3132 bab0 b080 942c 942f\n\n00:51:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab5 31ba 31b3 bab0 b080 942c 942f\n\n00:51:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab5 31ba 3134 bab0 b080 942c 942f\n\n00:51:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab5 31ba 31b5 bab0 b080 942c 942f\n\n00:51:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab5 31ba 31b6 bab0 b080 942c 942f\n\n00:51:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab5 31ba 3137 bab0 b080 942c 942f\n\n00:51:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab5 31ba 3138 bab0 b080 942c 942f\n\n00:51:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab5 31ba 31b9 bab0 b080 942c 942f\n\n00:51:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab5 31ba 32b0 bab0 b080 942c 942f\n\n00:51:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab5 31ba 3231 bab0 b080 942c 942f\n\n00:51:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab5 31ba 3232 bab0 b080 942c 942f\n\n00:51:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab5 31ba 32b3 bab0 b080 942c 942f\n\n00:51:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab5 31ba 3234 bab0 b080 942c 942f\n\n00:51:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab5 31ba 32b5 bab0 b080 942c 942f\n\n00:51:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab5 31ba 32b6 bab0 b080 942c 942f\n\n00:51:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab5 31ba 3237 bab0 b080 942c 942f\n\n00:51:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab5 31ba 3238 bab0 b080 942c 942f\n\n00:51:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab5 31ba 32b9 bab0 b080 942c 942f\n\n00:51:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab5 31ba b3b0 bab0 b080 942c 942f\n\n00:51:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab5 31ba b331 bab0 b080 942c 942f\n\n00:51:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab5 31ba b332 bab0 b080 942c 942f\n\n00:51:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab5 31ba b3b3 bab0 b080 942c 942f\n\n00:51:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab5 31ba b334 bab0 b080 942c 942f\n\n00:51:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab5 31ba b3b5 bab0 b080 942c 942f\n\n00:51:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab5 31ba b3b6 bab0 b080 942c 942f\n\n00:51:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab5 31ba b337 bab0 b080 942c 942f\n\n00:51:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab5 31ba b338 bab0 b080 942c 942f\n\n00:51:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab5 31ba b3b9 bab0 b080 942c 942f\n\n00:51:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab5 31ba 34b0 bab0 b080 942c 942f\n\n00:51:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab5 31ba 3431 bab0 b080 942c 942f\n\n00:51:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab5 31ba 3432 bab0 b080 942c 942f\n\n00:51:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab5 31ba 34b3 bab0 b080 942c 942f\n\n00:51:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab5 31ba 3434 bab0 b080 942c 942f\n\n00:51:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab5 31ba 34b5 bab0 b080 942c 942f\n\n00:51:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab5 31ba 34b6 bab0 b080 942c 942f\n\n00:51:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab5 31ba 3437 bab0 b080 942c 942f\n\n00:51:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab5 31ba 3438 bab0 b080 942c 942f\n\n00:51:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab5 31ba 34b9 bab0 b080 942c 942f\n\n00:51:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab5 31ba b5b0 bab0 b080 942c 942f\n\n00:51:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab5 31ba b531 bab0 b080 942c 942f\n\n00:51:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab5 31ba b532 bab0 b080 942c 942f\n\n00:51:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab5 31ba b5b3 bab0 b080 942c 942f\n\n00:51:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab5 31ba b534 bab0 b080 942c 942f\n\n00:51:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab5 31ba b5b5 bab0 b080 942c 942f\n\n00:51:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab5 31ba b5b6 bab0 b080 942c 942f\n\n00:51:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab5 31ba b537 bab0 b080 942c 942f\n\n00:51:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab5 31ba b538 bab0 b080 942c 942f\n\n00:51:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab5 31ba b5b9 bab0 b080 942c 942f\n\n00:52:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab5 32ba b0b0 bab0 b080 942c 942f\n\n00:52:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab5 32ba b031 bab0 b080 942c 942f\n\n00:52:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab5 32ba b032 bab0 b080 942c 942f\n\n00:52:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab5 32ba b0b3 bab0 b080 942c 942f\n\n00:52:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab5 32ba b034 bab0 b080 942c 942f\n\n00:52:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab5 32ba b0b5 bab0 b080 942c 942f\n\n00:52:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab5 32ba b0b6 bab0 b080 942c 942f\n\n00:52:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab5 32ba b037 bab0 b080 942c 942f\n\n00:52:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab5 32ba b038 bab0 b080 942c 942f\n\n00:52:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab5 32ba b0b9 bab0 b080 942c 942f\n\n00:52:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab5 32ba 31b0 bab0 b080 942c 942f\n\n00:52:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab5 32ba 3131 bab0 b080 942c 942f\n\n00:52:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab5 32ba 3132 bab0 b080 942c 942f\n\n00:52:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab5 32ba 31b3 bab0 b080 942c 942f\n\n00:52:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab5 32ba 3134 bab0 b080 942c 942f\n\n00:52:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab5 32ba 31b5 bab0 b080 942c 942f\n\n00:52:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab5 32ba 31b6 bab0 b080 942c 942f\n\n00:52:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab5 32ba 3137 bab0 b080 942c 942f\n\n00:52:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab5 32ba 3138 bab0 b080 942c 942f\n\n00:52:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab5 32ba 31b9 bab0 b080 942c 942f\n\n00:52:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab5 32ba 32b0 bab0 b080 942c 942f\n\n00:52:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab5 32ba 3231 bab0 b080 942c 942f\n\n00:52:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab5 32ba 3232 bab0 b080 942c 942f\n\n00:52:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab5 32ba 32b3 bab0 b080 942c 942f\n\n00:52:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab5 32ba 3234 bab0 b080 942c 942f\n\n00:52:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab5 32ba 32b5 bab0 b080 942c 942f\n\n00:52:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab5 32ba 32b6 bab0 b080 942c 942f\n\n00:52:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab5 32ba 3237 bab0 b080 942c 942f\n\n00:52:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab5 32ba 3238 bab0 b080 942c 942f\n\n00:52:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab5 32ba 32b9 bab0 b080 942c 942f\n\n00:52:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab5 32ba b3b0 bab0 b080 942c 942f\n\n00:52:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab5 32ba b331 bab0 b080 942c 942f\n\n00:52:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab5 32ba b332 bab0 b080 942c 942f\n\n00:52:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab5 32ba b3b3 bab0 b080 942c 942f\n\n00:52:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab5 32ba b334 bab0 b080 942c 942f\n\n00:52:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab5 32ba b3b5 bab0 b080 942c 942f\n\n00:52:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab5 32ba b3b6 bab0 b080 942c 942f\n\n00:52:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab5 32ba b337 bab0 b080 942c 942f\n\n00:52:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab5 32ba b338 bab0 b080 942c 942f\n\n00:52:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab5 32ba b3b9 bab0 b080 942c 942f\n\n00:52:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab5 32ba 34b0 bab0 b080 942c 942f\n\n00:52:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab5 32ba 3431 bab0 b080 942c 942f\n\n00:52:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab5 32ba 3432 bab0 b080 942c 942f\n\n00:52:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab5 32ba 34b3 bab0 b080 942c 942f\n\n00:52:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab5 32ba 3434 bab0 b080 942c 942f\n\n00:52:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab5 32ba 34b5 bab0 b080 942c 942f\n\n00:52:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab5 32ba 34b6 bab0 b080 942c 942f\n\n00:52:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab5 32ba 3437 bab0 b080 942c 942f\n\n00:52:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab5 32ba 3438 bab0 b080 942c 942f\n\n00:52:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab5 32ba 34b9 bab0 b080 942c 942f\n\n00:52:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab5 32ba b5b0 bab0 b080 942c 942f\n\n00:52:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab5 32ba b531 bab0 b080 942c 942f\n\n00:52:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab5 32ba b532 bab0 b080 942c 942f\n\n00:52:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab5 32ba b5b3 bab0 b080 942c 942f\n\n00:52:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab5 32ba b534 bab0 b080 942c 942f\n\n00:52:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab5 32ba b5b5 bab0 b080 942c 942f\n\n00:52:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab5 32ba b5b6 bab0 b080 942c 942f\n\n00:52:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab5 32ba b537 bab0 b080 942c 942f\n\n00:52:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab5 32ba b538 bab0 b080 942c 942f\n\n00:52:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab5 32ba b5b9 bab0 b080 942c 942f\n\n00:53:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab5 b3ba b0b0 bab0 b080 942c 942f\n\n00:53:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab5 b3ba b031 bab0 b080 942c 942f\n\n00:53:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab5 b3ba b032 bab0 b080 942c 942f\n\n00:53:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab5 b3ba b0b3 bab0 b080 942c 942f\n\n00:53:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab5 b3ba b034 bab0 b080 942c 942f\n\n00:53:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab5 b3ba b0b5 bab0 b080 942c 942f\n\n00:53:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab5 b3ba b0b6 bab0 b080 942c 942f\n\n00:53:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab5 b3ba b037 bab0 b080 942c 942f\n\n00:53:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab5 b3ba b038 bab0 b080 942c 942f\n\n00:53:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab5 b3ba b0b9 bab0 b080 942c 942f\n\n00:53:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab5 b3ba 31b0 bab0 b080 942c 942f\n\n00:53:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab5 b3ba 3131 bab0 b080 942c 942f\n\n00:53:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab5 b3ba 3132 bab0 b080 942c 942f\n\n00:53:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab5 b3ba 31b3 bab0 b080 942c 942f\n\n00:53:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab5 b3ba 3134 bab0 b080 942c 942f\n\n00:53:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab5 b3ba 31b5 bab0 b080 942c 942f\n\n00:53:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab5 b3ba 31b6 bab0 b080 942c 942f\n\n00:53:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab5 b3ba 3137 bab0 b080 942c 942f\n\n00:53:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab5 b3ba 3138 bab0 b080 942c 942f\n\n00:53:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab5 b3ba 31b9 bab0 b080 942c 942f\n\n00:53:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab5 b3ba 32b0 bab0 b080 942c 942f\n\n00:53:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab5 b3ba 3231 bab0 b080 942c 942f\n\n00:53:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab5 b3ba 3232 bab0 b080 942c 942f\n\n00:53:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab5 b3ba 32b3 bab0 b080 942c 942f\n\n00:53:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab5 b3ba 3234 bab0 b080 942c 942f\n\n00:53:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab5 b3ba 32b5 bab0 b080 942c 942f\n\n00:53:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab5 b3ba 32b6 bab0 b080 942c 942f\n\n00:53:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab5 b3ba 3237 bab0 b080 942c 942f\n\n00:53:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab5 b3ba 3238 bab0 b080 942c 942f\n\n00:53:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab5 b3ba 32b9 bab0 b080 942c 942f\n\n00:53:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab5 b3ba b3b0 bab0 b080 942c 942f\n\n00:53:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab5 b3ba b331 bab0 b080 942c 942f\n\n00:53:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab5 b3ba b332 bab0 b080 942c 942f\n\n00:53:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab5 b3ba b3b3 bab0 b080 942c 942f\n\n00:53:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab5 b3ba b334 bab0 b080 942c 942f\n\n00:53:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab5 b3ba b3b5 bab0 b080 942c 942f\n\n00:53:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab5 b3ba b3b6 bab0 b080 942c 942f\n\n00:53:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab5 b3ba b337 bab0 b080 942c 942f\n\n00:53:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab5 b3ba b338 bab0 b080 942c 942f\n\n00:53:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab5 b3ba b3b9 bab0 b080 942c 942f\n\n00:53:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab5 b3ba 34b0 bab0 b080 942c 942f\n\n00:53:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab5 b3ba 3431 bab0 b080 942c 942f\n\n00:53:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab5 b3ba 3432 bab0 b080 942c 942f\n\n00:53:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab5 b3ba 34b3 bab0 b080 942c 942f\n\n00:53:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab5 b3ba 3434 bab0 b080 942c 942f\n\n00:53:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab5 b3ba 34b5 bab0 b080 942c 942f\n\n00:53:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab5 b3ba 34b6 bab0 b080 942c 942f\n\n00:53:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab5 b3ba 3437 bab0 b080 942c 942f\n\n00:53:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab5 b3ba 3438 bab0 b080 942c 942f\n\n00:53:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab5 b3ba 34b9 bab0 b080 942c 942f\n\n00:53:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab5 b3ba b5b0 bab0 b080 942c 942f\n\n00:53:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab5 b3ba b531 bab0 b080 942c 942f\n\n00:53:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab5 b3ba b532 bab0 b080 942c 942f\n\n00:53:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab5 b3ba b5b3 bab0 b080 942c 942f\n\n00:53:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab5 b3ba b534 bab0 b080 942c 942f\n\n00:53:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab5 b3ba b5b5 bab0 b080 942c 942f\n\n00:53:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab5 b3ba b5b6 bab0 b080 942c 942f\n\n00:53:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab5 b3ba b537 bab0 b080 942c 942f\n\n00:53:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab5 b3ba b538 bab0 b080 942c 942f\n\n00:53:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab5 b3ba b5b9 bab0 b080 942c 942f\n\n00:54:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab5 34ba b0b0 bab0 b080 942c 942f\n\n00:54:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab5 34ba b031 bab0 b080 942c 942f\n\n00:54:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab5 34ba b032 bab0 b080 942c 942f\n\n00:54:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab5 34ba b0b3 bab0 b080 942c 942f\n\n00:54:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab5 34ba b034 bab0 b080 942c 942f\n\n00:54:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab5 34ba b0b5 bab0 b080 942c 942f\n\n00:54:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab5 34ba b0b6 bab0 b080 942c 942f\n\n00:54:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab5 34ba b037 bab0 b080 942c 942f\n\n00:54:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab5 34ba b038 bab0 b080 942c 942f\n\n00:54:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab5 34ba b0b9 bab0 b080 942c 942f\n\n00:54:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab5 34ba 31b0 bab0 b080 942c 942f\n\n00:54:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab5 34ba 3131 bab0 b080 942c 942f\n\n00:54:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab5 34ba 3132 bab0 b080 942c 942f\n\n00:54:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab5 34ba 31b3 bab0 b080 942c 942f\n\n00:54:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab5 34ba 3134 bab0 b080 942c 942f\n\n00:54:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab5 34ba 31b5 bab0 b080 942c 942f\n\n00:54:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab5 34ba 31b6 bab0 b080 942c 942f\n\n00:54:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab5 34ba 3137 bab0 b080 942c 942f\n\n00:54:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab5 34ba 3138 bab0 b080 942c 942f\n\n00:54:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab5 34ba 31b9 bab0 b080 942c 942f\n\n00:54:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab5 34ba 32b0 bab0 b080 942c 942f\n\n00:54:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab5 34ba 3231 bab0 b080 942c 942f\n\n00:54:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab5 34ba 3232 bab0 b080 942c 942f\n\n00:54:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab5 34ba 32b3 bab0 b080 942c 942f\n\n00:54:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab5 34ba 3234 bab0 b080 942c 942f\n\n00:54:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab5 34ba 32b5 bab0 b080 942c 942f\n\n00:54:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab5 34ba 32b6 bab0 b080 942c 942f\n\n00:54:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab5 34ba 3237 bab0 b080 942c 942f\n\n00:54:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab5 34ba 3238 bab0 b080 942c 942f\n\n00:54:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab5 34ba 32b9 bab0 b080 942c 942f\n\n00:54:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab5 34ba b3b0 bab0 b080 942c 942f\n\n00:54:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab5 34ba b331 bab0 b080 942c 942f\n\n00:54:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab5 34ba b332 bab0 b080 942c 942f\n\n00:54:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab5 34ba b3b3 bab0 b080 942c 942f\n\n00:54:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab5 34ba b334 bab0 b080 942c 942f\n\n00:54:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab5 34ba b3b5 bab0 b080 942c 942f\n\n00:54:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab5 34ba b3b6 bab0 b080 942c 942f\n\n00:54:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab5 34ba b337 bab0 b080 942c 942f\n\n00:54:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab5 34ba b338 bab0 b080 942c 942f\n\n00:54:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab5 34ba b3b9 bab0 b080 942c 942f\n\n00:54:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab5 34ba 34b0 bab0 b080 942c 942f\n\n00:54:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab5 34ba 3431 bab0 b080 942c 942f\n\n00:54:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab5 34ba 3432 bab0 b080 942c 942f\n\n00:54:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab5 34ba 34b3 bab0 b080 942c 942f\n\n00:54:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab5 34ba 3434 bab0 b080 942c 942f\n\n00:54:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab5 34ba 34b5 bab0 b080 942c 942f\n\n00:54:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab5 34ba 34b6 bab0 b080 942c 942f\n\n00:54:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab5 34ba 3437 bab0 b080 942c 942f\n\n00:54:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab5 34ba 3438 bab0 b080 942c 942f\n\n00:54:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab5 34ba 34b9 bab0 b080 942c 942f\n\n00:54:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab5 34ba b5b0 bab0 b080 942c 942f\n\n00:54:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab5 34ba b531 bab0 b080 942c 942f\n\n00:54:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab5 34ba b532 bab0 b080 942c 942f\n\n00:54:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab5 34ba b5b3 bab0 b080 942c 942f\n\n00:54:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab5 34ba b534 bab0 b080 942c 942f\n\n00:54:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab5 34ba b5b5 bab0 b080 942c 942f\n\n00:54:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab5 34ba b5b6 bab0 b080 942c 942f\n\n00:54:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab5 34ba b537 bab0 b080 942c 942f\n\n00:54:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab5 34ba b538 bab0 b080 942c 942f\n\n00:54:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab5 34ba b5b9 bab0 b080 942c 942f\n\n00:55:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab5 b5ba b0b0 bab0 b080 942c 942f\n\n00:55:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab5 b5ba b031 bab0 b080 942c 942f\n\n00:55:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab5 b5ba b032 bab0 b080 942c 942f\n\n00:55:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab5 b5ba b0b3 bab0 b080 942c 942f\n\n00:55:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab5 b5ba b034 bab0 b080 942c 942f\n\n00:55:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab5 b5ba b0b5 bab0 b080 942c 942f\n\n00:55:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab5 b5ba b0b6 bab0 b080 942c 942f\n\n00:55:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab5 b5ba b037 bab0 b080 942c 942f\n\n00:55:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab5 b5ba b038 bab0 b080 942c 942f\n\n00:55:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab5 b5ba b0b9 bab0 b080 942c 942f\n\n00:55:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab5 b5ba 31b0 bab0 b080 942c 942f\n\n00:55:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab5 b5ba 3131 bab0 b080 942c 942f\n\n00:55:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab5 b5ba 3132 bab0 b080 942c 942f\n\n00:55:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab5 b5ba 31b3 bab0 b080 942c 942f\n\n00:55:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab5 b5ba 3134 bab0 b080 942c 942f\n\n00:55:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab5 b5ba 31b5 bab0 b080 942c 942f\n\n00:55:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab5 b5ba 31b6 bab0 b080 942c 942f\n\n00:55:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab5 b5ba 3137 bab0 b080 942c 942f\n\n00:55:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab5 b5ba 3138 bab0 b080 942c 942f\n\n00:55:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab5 b5ba 31b9 bab0 b080 942c 942f\n\n00:55:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab5 b5ba 32b0 bab0 b080 942c 942f\n\n00:55:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab5 b5ba 3231 bab0 b080 942c 942f\n\n00:55:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab5 b5ba 3232 bab0 b080 942c 942f\n\n00:55:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab5 b5ba 32b3 bab0 b080 942c 942f\n\n00:55:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab5 b5ba 3234 bab0 b080 942c 942f\n\n00:55:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab5 b5ba 32b5 bab0 b080 942c 942f\n\n00:55:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab5 b5ba 32b6 bab0 b080 942c 942f\n\n00:55:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab5 b5ba 3237 bab0 b080 942c 942f\n\n00:55:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab5 b5ba 3238 bab0 b080 942c 942f\n\n00:55:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab5 b5ba 32b9 bab0 b080 942c 942f\n\n00:55:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab5 b5ba b3b0 bab0 b080 942c 942f\n\n00:55:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab5 b5ba b331 bab0 b080 942c 942f\n\n00:55:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab5 b5ba b332 bab0 b080 942c 942f\n\n00:55:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab5 b5ba b3b3 bab0 b080 942c 942f\n\n00:55:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab5 b5ba b334 bab0 b080 942c 942f\n\n00:55:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab5 b5ba b3b5 bab0 b080 942c 942f\n\n00:55:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab5 b5ba b3b6 bab0 b080 942c 942f\n\n00:55:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab5 b5ba b337 bab0 b080 942c 942f\n\n00:55:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab5 b5ba b338 bab0 b080 942c 942f\n\n00:55:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab5 b5ba b3b9 bab0 b080 942c 942f\n\n00:55:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab5 b5ba 34b0 bab0 b080 942c 942f\n\n00:55:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab5 b5ba 3431 bab0 b080 942c 942f\n\n00:55:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab5 b5ba 3432 bab0 b080 942c 942f\n\n00:55:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab5 b5ba 34b3 bab0 b080 942c 942f\n\n00:55:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab5 b5ba 3434 bab0 b080 942c 942f\n\n00:55:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab5 b5ba 34b5 bab0 b080 942c 942f\n\n00:55:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab5 b5ba 34b6 bab0 b080 942c 942f\n\n00:55:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab5 b5ba 3437 bab0 b080 942c 942f\n\n00:55:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab5 b5ba 3438 bab0 b080 942c 942f\n\n00:55:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab5 b5ba 34b9 bab0 b080 942c 942f\n\n00:55:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab5 b5ba b5b0 bab0 b080 942c 942f\n\n00:55:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab5 b5ba b531 bab0 b080 942c 942f\n\n00:55:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab5 b5ba b532 bab0 b080 942c 942f\n\n00:55:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab5 b5ba b5b3 bab0 b080 942c 942f\n\n00:55:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab5 b5ba b534 bab0 b080 942c 942f\n\n00:55:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab5 b5ba b5b5 bab0 b080 942c 942f\n\n00:55:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab5 b5ba b5b6 bab0 b080 942c 942f\n\n00:55:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab5 b5ba b537 bab0 b080 942c 942f\n\n00:55:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab5 b5ba b538 bab0 b080 942c 942f\n\n00:55:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab5 b5ba b5b9 bab0 b080 942c 942f\n\n00:56:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab5 b6ba b0b0 bab0 b080 942c 942f\n\n00:56:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab5 b6ba b031 bab0 b080 942c 942f\n\n00:56:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab5 b6ba b032 bab0 b080 942c 942f\n\n00:56:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab5 b6ba b0b3 bab0 b080 942c 942f\n\n00:56:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab5 b6ba b034 bab0 b080 942c 942f\n\n00:56:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab5 b6ba b0b5 bab0 b080 942c 942f\n\n00:56:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab5 b6ba b0b6 bab0 b080 942c 942f\n\n00:56:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab5 b6ba b037 bab0 b080 942c 942f\n\n00:56:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab5 b6ba b038 bab0 b080 942c 942f\n\n00:56:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab5 b6ba b0b9 bab0 b080 942c 942f\n\n00:56:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab5 b6ba 31b0 bab0 b080 942c 942f\n\n00:56:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab5 b6ba 3131 bab0 b080 942c 942f\n\n00:56:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab5 b6ba 3132 bab0 b080 942c 942f\n\n00:56:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab5 b6ba 31b3 bab0 b080 942c 942f\n\n00:56:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab5 b6ba 3134 bab0 b080 942c 942f\n\n00:56:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab5 b6ba 31b5 bab0 b080 942c 942f\n\n00:56:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab5 b6ba 31b6 bab0 b080 942c 942f\n\n00:56:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab5 b6ba 3137 bab0 b080 942c 942f\n\n00:56:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab5 b6ba 3138 bab0 b080 942c 942f\n\n00:56:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab5 b6ba 31b9 bab0 b080 942c 942f\n\n00:56:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab5 b6ba 32b0 bab0 b080 942c 942f\n\n00:56:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab5 b6ba 3231 bab0 b080 942c 942f\n\n00:56:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab5 b6ba 3232 bab0 b080 942c 942f\n\n00:56:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab5 b6ba 32b3 bab0 b080 942c 942f\n\n00:56:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab5 b6ba 3234 bab0 b080 942c 942f\n\n00:56:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab5 b6ba 32b5 bab0 b080 942c 942f\n\n00:56:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab5 b6ba 32b6 bab0 b080 942c 942f\n\n00:56:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab5 b6ba 3237 bab0 b080 942c 942f\n\n00:56:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab5 b6ba 3238 bab0 b080 942c 942f\n\n00:56:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab5 b6ba 32b9 bab0 b080 942c 942f\n\n00:56:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab5 b6ba b3b0 bab0 b080 942c 942f\n\n00:56:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab5 b6ba b331 bab0 b080 942c 942f\n\n00:56:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab5 b6ba b332 bab0 b080 942c 942f\n\n00:56:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab5 b6ba b3b3 bab0 b080 942c 942f\n\n00:56:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab5 b6ba b334 bab0 b080 942c 942f\n\n00:56:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab5 b6ba b3b5 bab0 b080 942c 942f\n\n00:56:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab5 b6ba b3b6 bab0 b080 942c 942f\n\n00:56:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab5 b6ba b337 bab0 b080 942c 942f\n\n00:56:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab5 b6ba b338 bab0 b080 942c 942f\n\n00:56:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab5 b6ba b3b9 bab0 b080 942c 942f\n\n00:56:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab5 b6ba 34b0 bab0 b080 942c 942f\n\n00:56:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab5 b6ba 3431 bab0 b080 942c 942f\n\n00:56:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab5 b6ba 3432 bab0 b080 942c 942f\n\n00:56:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab5 b6ba 34b3 bab0 b080 942c 942f\n\n00:56:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab5 b6ba 3434 bab0 b080 942c 942f\n\n00:56:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab5 b6ba 34b5 bab0 b080 942c 942f\n\n00:56:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab5 b6ba 34b6 bab0 b080 942c 942f\n\n00:56:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab5 b6ba 3437 bab0 b080 942c 942f\n\n00:56:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab5 b6ba 3438 bab0 b080 942c 942f\n\n00:56:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab5 b6ba 34b9 bab0 b080 942c 942f\n\n00:56:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab5 b6ba b5b0 bab0 b080 942c 942f\n\n00:56:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab5 b6ba b531 bab0 b080 942c 942f\n\n00:56:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab5 b6ba b532 bab0 b080 942c 942f\n\n00:56:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab5 b6ba b5b3 bab0 b080 942c 942f\n\n00:56:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab5 b6ba b534 bab0 b080 942c 942f\n\n00:56:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab5 b6ba b5b5 bab0 b080 942c 942f\n\n00:56:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab5 b6ba b5b6 bab0 b080 942c 942f\n\n00:56:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab5 b6ba b537 bab0 b080 942c 942f\n\n00:56:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab5 b6ba b538 bab0 b080 942c 942f\n\n00:56:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab5 b6ba b5b9 bab0 b080 942c 942f\n\n00:57:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab5 37ba b0b0 bab0 b080 942c 942f\n\n00:57:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab5 37ba b031 bab0 b080 942c 942f\n\n00:57:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab5 37ba b032 bab0 b080 942c 942f\n\n00:57:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab5 37ba b0b3 bab0 b080 942c 942f\n\n00:57:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab5 37ba b034 bab0 b080 942c 942f\n\n00:57:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab5 37ba b0b5 bab0 b080 942c 942f\n\n00:57:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab5 37ba b0b6 bab0 b080 942c 942f\n\n00:57:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab5 37ba b037 bab0 b080 942c 942f\n\n00:57:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab5 37ba b038 bab0 b080 942c 942f\n\n00:57:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab5 37ba b0b9 bab0 b080 942c 942f\n\n00:57:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab5 37ba 31b0 bab0 b080 942c 942f\n\n00:57:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab5 37ba 3131 bab0 b080 942c 942f\n\n00:57:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab5 37ba 3132 bab0 b080 942c 942f\n\n00:57:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab5 37ba 31b3 bab0 b080 942c 942f\n\n00:57:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab5 37ba 3134 bab0 b080 942c 942f\n\n00:57:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab5 37ba 31b5 bab0 b080 942c 942f\n\n00:57:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab5 37ba 31b6 bab0 b080 942c 942f\n\n00:57:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab5 37ba 3137 bab0 b080 942c 942f\n\n00:57:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab5 37ba 3138 bab0 b080 942c 942f\n\n00:57:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab5 37ba 31b9 bab0 b080 942c 942f\n\n00:57:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab5 37ba 32b0 bab0 b080 942c 942f\n\n00:57:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab5 37ba 3231 bab0 b080 942c 942f\n\n00:57:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab5 37ba 3232 bab0 b080 942c 942f\n\n00:57:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab5 37ba 32b3 bab0 b080 942c 942f\n\n00:57:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab5 37ba 3234 bab0 b080 942c 942f\n\n00:57:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab5 37ba 32b5 bab0 b080 942c 942f\n\n00:57:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab5 37ba 32b6 bab0 b080 942c 942f\n\n00:57:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab5 37ba 3237 bab0 b080 942c 942f\n\n00:57:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab5 37ba 3238 bab0 b080 942c 942f\n\n00:57:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab5 37ba 32b9 bab0 b080 942c 942f\n\n00:57:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab5 37ba b3b0 bab0 b080 942c 942f\n\n00:57:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab5 37ba b331 bab0 b080 942c 942f\n\n00:57:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab5 37ba b332 bab0 b080 942c 942f\n\n00:57:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab5 37ba b3b3 bab0 b080 942c 942f\n\n00:57:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab5 37ba b334 bab0 b080 942c 942f\n\n00:57:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab5 37ba b3b5 bab0 b080 942c 942f\n\n00:57:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab5 37ba b3b6 bab0 b080 942c 942f\n\n00:57:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab5 37ba b337 bab0 b080 942c 942f\n\n00:57:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab5 37ba b338 bab0 b080 942c 942f\n\n00:57:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab5 37ba b3b9 bab0 b080 942c 942f\n\n00:57:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab5 37ba 34b0 bab0 b080 942c 942f\n\n00:57:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab5 37ba 3431 bab0 b080 942c 942f\n\n00:57:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab5 37ba 3432 bab0 b080 942c 942f\n\n00:57:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab5 37ba 34b3 bab0 b080 942c 942f\n\n00:57:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab5 37ba 3434 bab0 b080 942c 942f\n\n00:57:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab5 37ba 34b5 bab0 b080 942c 942f\n\n00:57:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab5 37ba 34b6 bab0 b080 942c 942f\n\n00:57:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab5 37ba 3437 bab0 b080 942c 942f\n\n00:57:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab5 37ba 3438 bab0 b080 942c 942f\n\n00:57:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab5 37ba 34b9 bab0 b080 942c 942f\n\n00:57:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab5 37ba b5b0 bab0 b080 942c 942f\n\n00:57:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab5 37ba b531 bab0 b080 942c 942f\n\n00:57:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab5 37ba b532 bab0 b080 942c 942f\n\n00:57:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab5 37ba b5b3 bab0 b080 942c 942f\n\n00:57:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab5 37ba b534 bab0 b080 942c 942f\n\n00:57:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab5 37ba b5b5 bab0 b080 942c 942f\n\n00:57:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab5 37ba b5b6 bab0 b080 942c 942f\n\n00:57:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab5 37ba b537 bab0 b080 942c 942f\n\n00:57:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab5 37ba b538 bab0 b080 942c 942f\n\n00:57:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab5 37ba b5b9 bab0 b080 942c 942f\n\n00:58:00:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab5 38ba b0b0 bab0 b080 942c 942f\n\n00:58:01:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab5 38ba b031 bab0 b080 942c 942f\n\n00:58:02:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab5 38ba b032 bab0 b080 942c 942f\n\n00:58:03:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab5 38ba b0b3 bab0 b080 942c 942f\n\n00:58:04:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab5 38ba b034 bab0 b080 942c 942f\n\n00:58:05:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab5 38ba b0b5 bab0 b080 942c 942f\n\n00:58:06:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab5 38ba b0b6 bab0 b080 942c 942f\n\n00:58:07:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab5 38ba b037 bab0 b080 942c 942f\n\n00:58:08:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab5 38ba b038 bab0 b080 942c 942f\n\n00:58:09:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab5 38ba b0b9 bab0 b080 942c 942f\n\n00:58:10:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab5 38ba 31b0 bab0 b080 942c 942f\n\n00:58:11:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab5 38ba 3131 bab0 b080 942c 942f\n\n00:58:12:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab5 38ba 3132 bab0 b080 942c 942f\n\n00:58:13:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab5 38ba 31b3 bab0 b080 942c 942f\n\n00:58:14:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab5 38ba 3134 bab0 b080 942c 942f\n\n00:58:15:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab5 38ba 31b5 bab0 b080 942c 942f\n\n00:58:16:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab5 38ba 31b6 bab0 b080 942c 942f\n\n00:58:17:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab5 38ba 3137 bab0 b080 942c 942f\n\n00:58:18:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab5 38ba 3138 bab0 b080 942c 942f\n\n00:58:19:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab5 38ba 31b9 bab0 b080 942c 942f\n\n00:58:20:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab5 38ba 32b0 bab0 b080 942c 942f\n\n00:58:21:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab5 38ba 3231 bab0 b080 942c 942f\n\n00:58:22:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab5 38ba 3232 bab0 b080 942c 942f\n\n00:58:23:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab5 38ba 32b3 bab0 b080 942c 942f\n\n00:58:24:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab5 38ba 3234 bab0 b080 942c 942f\n\n00:58:25:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab5 38ba 32b5 bab0 b080 942c 942f\n\n00:58:26:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab5 38ba 32b6 bab0 b080 942c 942f\n\n00:58:27:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab5 38ba 3237 bab0 b080 942c 942f\n\n00:58:28:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab5 38ba 3238 bab0 b080 942c 942f\n\n00:58:29:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab5 38ba 32b9 bab0 b080 942c 942f\n\n00:58:30:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab5 38ba b3b0 bab0 b080 942c 942f\n\n00:58:31:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab5 38ba b331 bab0 b080 942c 942f\n\n00:58:32:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab5 38ba b332 bab0 b080 942c 942f\n\n00:58:33:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab5 38ba b3b3 bab0 b080 942c 942f\n\n00:58:34:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab5 38ba b334 bab0 b080 942c 942f\n\n00:58:35:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab5 38ba b3b5 bab0 b080 942c 942f\n\n00:58:36:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab5 38ba b3b6 bab0 b080 942c 942f\n\n00:58:37:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab5 38ba b337 bab0 b080 942c 942f\n\n00:58:38:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab5 38ba b338 bab0 b080 942c 942f\n\n00:58:39:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab5 38ba b3b9 bab0 b080 942c 942f\n\n00:58:40:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab5 38ba 34b0 bab0 b080 942c 942f\n\n00:58:41:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab5 38ba 3431 bab0 b080 942c 942f\n\n00:58:42:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab5 38ba 3432 bab0 b080 942c 942f\n\n00:58:43:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab5 38ba 34b3 bab0 b080 942c 942f\n\n00:58:44:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab5 38ba 3434 bab0 b080 942c 942f\n\n00:58:45:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab5 38ba 34b5 bab0 b080 942c 942f\n\n00:58:46:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab5 38ba 34b6 bab0 b080 942c 942f\n\n00:58:47:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab5 38ba 3437 bab0 b080 942c 942f\n\n00:58:48:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab5 38ba 3438 bab0 b080 942c 942f\n\n00:58:49:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab5 38ba 34b9 bab0 b080 942c 942f\n\n00:58:50:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab5 38ba b5b0 bab0 b080 942c 942f\n\n00:58:51:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab5 38ba b531 bab0 b080 942c 942f\n\n00:58:52:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab5 38ba b532 bab0 b080 942c 942f\n\n00:58:53:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab5 38ba b5b3 bab0 b080 942c 942f\n\n00:58:54:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab5 38ba b534 bab0 b080 942c 942f\n\n00:58:55:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab5 38ba b5b5 bab0 b080 942c 942f\n\n00:58:56:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab5 38ba b5b6 bab0 b080 942c 942f\n\n00:58:57:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab5 38ba b537 bab0 b080 942c 942f\n\n00:58:58:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab5 38ba b538 bab0 b080 942c 942f\n\n00:58:59:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab5 38ba b5b9 bab0 b080 942c 942f\n\n00:59:00:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab5 b9ba b0b0 bab0 b080 942c 942f\n\n00:59:01:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab5 b9ba b031 bab0 b080 942c 942f\n\n00:59:02:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab5 b9ba b032 bab0 b080 942c 942f\n\n00:59:03:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab5 b9ba b0b3 bab0 b080 942c 942f\n\n00:59:04:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab5 b9ba b034 bab0 b080 942c 942f\n\n00:59:05:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab5 b9ba b0b5 bab0 b080 942c 942f\n\n00:59:06:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab5 b9ba b0b6 bab0 b080 942c 942f\n\n00:59:07:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab5 b9ba b037 bab0 b080 942c 942f\n\n00:59:08:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab5 b9ba b038 bab0 b080 942c 942f\n\n00:59:09:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab5 b9ba b0b9 bab0 b080 942c 942f\n\n00:59:10:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab5 b9ba 31b0 bab0 b080 942c 942f\n\n00:59:11:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab5 b9ba 3131 bab0 b080 942c 942f\n\n00:59:12:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab5 b9ba 3132 bab0 b080 942c 942f\n\n00:59:13:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab5 b9ba 31b3 bab0 b080 942c 942f\n\n00:59:14:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab5 b9ba 3134 bab0 b080 942c 942f\n\n00:59:15:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab5 b9ba 31b5 bab0 b080 942c 942f\n\n00:59:16:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab5 b9ba 31b6 bab0 b080 942c 942f\n\n00:59:17:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab5 b9ba 3137 bab0 b080 942c 942f\n\n00:59:18:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab5 b9ba 3138 bab0 b080 942c 942f\n\n00:59:19:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab5 b9ba 31b9 bab0 b080 942c 942f\n\n00:59:20:00 9420 94ae 9140 73f7 e5ba 91b9 b0b0 bab5 b9ba 32b0 bab0 b080 942c 942f\n\n00:59:21:00 9420 94ae 9162 73f7 e5ba 91b9 b0b0 bab5 b9ba 3231 bab0 b080 942c 942f\n\n00:59:22:00 9420 94ae 92c4 73f7 e5ba 91b9 b0b0 bab5 b9ba 3232 bab0 b080 942c 942f\n\n00:59:23:00 9420 94ae 92e6 73f7 e5ba 91b9 b0b0 bab5 b9ba 32b3 bab0 b080 942c 942f\n\n00:59:24:00 9420 94ae 15c8 73f7 e5ba 91b9 b0b0 bab5 b9ba 3234 bab0 b080 942c 942f\n\n00:59:25:00 9420 94ae 97ea 73f7 e5ba 91b9 b0b0 bab5 b9ba 32b5 bab0 b080 942c 942f\n\n00:59:26:00 9420 94ae 104c 73f7 e5ba 91b9 b0b0 bab5 b9ba 32b6 bab0 b080 942c 942f\n\n00:59:27:00 9420 94ae 13ce 73f7 e5ba 91b9 b0b0 bab5 b9ba 3237 bab0 b080 942c 942f\n\n00:59:28:00 9420 94ae 13e0 73f7 e5ba 91b9 b0b0 bab5 b9ba 3238 bab0 b080 942c 942f\n\n00:59:29:00 9420 94ae 94c2 73f7 e5ba 91b9 b0b0 bab5 b9ba 32b9 bab0 b080 942c 942f\n\n00:59:30:00 9420 94ae 91c4 73f7 e5ba 91b9 b0b0 bab5 b9ba b3b0 bab0 b080 942c 942f\n\n00:59:31:00 9420 94ae 91e6 73f7 e5ba 91b9 b0b0 bab5 b9ba b331 bab0 b080 942c 942f\n\n00:59:32:00 9420 94ae 92c8 73f7 e5ba 91b9 b0b0 bab5 b9ba b332 bab0 b080 942c 942f\n\n00:59:33:00 9420 94ae 92ea 73f7 e5ba 91b9 b0b0 bab5 b9ba b3b3 bab0 b080 942c 942f\n\n00:59:34:00 9420 94ae 154c 73f7 e5ba 91b9 b0b0 bab5 b9ba b334 bab0 b080 942c 942f\n\n00:59:35:00 9420 94ae 976e 73f7 e5ba 91b9 b0b0 bab5 b9ba b3b5 bab0 b080 942c 942f\n\n00:59:36:00 9420 94ae 1040 73f7 e5ba 91b9 b0b0 bab5 b9ba b3b6 bab0 b080 942c 942f\n\n00:59:37:00 9420 94ae 13c2 73f7 e5ba 91b9 b0b0 bab5 b9ba b337 bab0 b080 942c 942f\n\n00:59:38:00 9420 94ae 1364 73f7 e5ba 91b9 b0b0 bab5 b9ba b338 bab0 b080 942c 942f\n\n00:59:39:00 9420 94ae 9446 73f7 e5ba 91b9 b0b0 bab5 b9ba b3b9 bab0 b080 942c 942f\n\n00:59:40:00 9420 94ae 91c8 73f7 e5ba 91b9 b0b0 bab5 b9ba 34b0 bab0 b080 942c 942f\n\n00:59:41:00 9420 94ae 91ea 73f7 e5ba 91b9 b0b0 bab5 b9ba 3431 bab0 b080 942c 942f\n\n00:59:42:00 9420 94ae 924c 73f7 e5ba 91b9 b0b0 bab5 b9ba 3432 bab0 b080 942c 942f\n\n00:59:43:00 9420 94ae 926e 73f7 e5ba 91b9 b0b0 bab5 b9ba 34b3 bab0 b080 942c 942f\n\n00:59:44:00 9420 94ae 1540 73f7 e5ba 91b9 b0b0 bab5 b9ba 3434 bab0 b080 942c 942f\n\n00:59:45:00 9420 94ae 9762 73f7 e5ba 91b9 b0b0 bab5 b9ba 34b5 bab0 b080 942c 942f\n\n00:59:46:00 9420 94ae 10c4 73f7 e5ba 91b9 b0b0 bab5 b9ba 34b6 bab0 b080 942c 942f\n\n00:59:47:00 9420 94ae 1346 73f7 e5ba 91b9 b0b0 bab5 b9ba 3437 bab0 b080 942c 942f\n\n00:59:48:00 9420 94ae 1368 73f7 e5ba 91b9 b0b0 bab5 b9ba 3438 bab0 b080 942c 942f\n\n00:59:49:00 9420 94ae 944a 73f7 e5ba 91b9 b0b0 bab5 b9ba 34b9 bab0 b080 942c 942f\n\n00:59:50:00 9420 94ae 914c 73f7 e5ba 91b9 b0b0 bab5 b9ba b5b0 bab0 b080 942c 942f\n\n00:59:51:00 9420 94ae 916e 73f7 e5ba 91b9 b0b0 bab5 b9ba b531 bab0 b080 942c 942f\n\n00:59:52:00 9420 94ae 9240 73f7 e5ba 91b9 b0b0 bab5 b9ba b532 bab0 b080 942c 942f\n\n00:59:53:00 9420 94ae 9262 73f7 e5ba 91b9 b0b0 bab5 b9ba b5b3 bab0 b080 942c 942f\n\n00:59:54:00 9420 94ae 15c4 73f7 e5ba 91b9 b0b0 bab5 b9ba b534 bab0 b080 942c 942f\n\n00:59:55:00 9420 94ae 97e6 73f7 e5ba 91b9 b0b0 bab5 b9ba b5b5 bab0 b080 942c 942f\n\n00:59:56:00 9420 94ae 10c8 73f7 e5ba 91b9 b0b0 bab5 b9ba b5b6 bab0 b080 942c 942f\n\n00:59:57:00 9420 94ae 134a 73f7 e5ba 91b9 b0b0 bab5 b9ba b537 bab0 b080 942c 942f\n\n00:59:58:00 9420 94ae 13ec 73f7 e5ba 91b9 b0b0 bab5 b9ba b538 bab0 b080 942c 942f\n\n00:59:59:00 9420 94ae 94ce 73f7 e5ba 91b9 b0b0 bab5 b9ba b5b9 bab0 b080 942c 942f\n"
  },
  {
    "path": "dashlivesim/cc_inserter/mpdprocessor.py",
    "content": "\"\"\"DASH MPD processor and classes for MPD elements.\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nfrom xml.etree import ElementTree\nimport io\nimport re\n\nfrom dashlivesim.dashlib import timeformatconversions as tfc\n\nRE_DURATION = re.compile(r\"PT((?P<hours>\\d+)H)?((?P<minutes>\\d+)M)?((?P<seconds>\\d+)S)?\")\nRE_NAMESPACE_TAG = re.compile(r\"({.*})?(.*)\")\n\n\nclass MpdElementError(Exception):\n    \"General MpdElement Error.\"\n\n\nclass MpdElement(object):\n    \"BaseClass for MPD elements.\"\n\n    def __init__(self, node):\n        self.node = node\n        self.attribs = {}\n\n    # pylint: disable=no-self-use\n    def parse(self):\n        \"Parse the node and its children.\"\n        raise MpdElementError(\"Not implemented\")\n\n    # pylint: disable=no-self-use, unused-argument\n    def make_live(self, data):\n        \"Change attributes and values to make this MPD live. Use the data dictionary for this.\"\n        raise MpdElementError(\"Not implemented\")\n\n    # pylint: disable=no-self-use, unused-variable\n    def tag_and_namespace(self, full_tag):\n        \"Extract tag and namespace.\"\n        match_obj = RE_NAMESPACE_TAG.match(full_tag)\n        tag = match_obj.group(2)\n        namespace = match_obj.group(1)\n        return (tag, namespace)\n\n    def compare_tag(self, full_tag, string):\n        \"Compare tag to see if it is equal.\"\n        tag, namespace = self.tag_and_namespace(full_tag)\n        return tag == string\n\n    def check_and_add_attributes(self, node, attribs):\n        \"Check if node has attributes and add them to self.attribs.\"\n        for attr in attribs:\n            if attr in node.attrib:\n                self.attribs[attr] = node.attrib[attr]\n            else:\n                if attr not in self.attribs:\n                    self.attribs[attr] = None\n\n    def set_value(self, element, key, data):\n        \"Set attribute key of element to value data[key], if present.\"\n        if key in data:\n            element.set(key, str(data[key]))\n\n\nclass Mpd(MpdElement):\n    \"Top level MPD element.\"\n\n    def __init__(self, node):\n        MpdElement.__init__(self, node)\n        self.periods = []\n\n    def parse(self):\n        \"Parse the node and its children.\"\n        self.check_and_add_attributes(self.node, ('profiles', 'maxSegmentDuration', 'minBufferTime',\n                                                  'type', 'mediaPresentationDuration'))\n        for child in self.node.getchildren():\n            if self.compare_tag(child.tag, 'Period'):\n                period = Period(child)\n                period.parse()\n                self.periods.append(period)\n\n    def make_live(self, data):\n        \"Change attributes and values to make this MPD live. Use the data dictionary for this.\"\n        self.set_value(self.node, 'type', 'dynamic')\n        for attr in ('availabilityStartTime', 'availabilityEndTime'):\n            self.set_value(self.node, attr, data[attr])\n        for period in self.periods:\n            period.make_live(data)\n\n\nclass Period(MpdElement):\n    \"Period element in MPD.\"\n\n    def __init__(self, node):\n        MpdElement.__init__(self, node)\n        self.adaptation_sets = []\n\n    def parse(self):\n        \"Parse the node and its children.\"\n        self.check_and_add_attributes(self.node, ('id', 'start'))\n        for child in self.node.getchildren():\n            if self.compare_tag(child.tag, 'AdaptationSet'):\n                adaptation_set = AdaptationSet(child)\n                adaptation_set.parse()\n                self.adaptation_sets.append(adaptation_set)\n\n    def make_live(self, data):\n        for attr in ('start'):\n            self.set_value(self.node, attr, data[attr])\n        for adaptation_set in self.adaptation_sets:\n            adaptation_set.make_live(data)\n\n\nclass AdaptationSet(MpdElement):\n    \"AdaptationSet element in a Period.\"\n\n    def __init__(self, node):\n        MpdElement.__init__(self, node)\n        self.segment_template = None\n        self.representations = []\n\n    @property\n    def content_type(self):\n        \"Get the contentType for the AdaptationSet.\"\n        return self.attribs['contentType']\n\n    @property\n    def media_pattern(self):\n        \"Get the media pattern from SegmentTemplate.\"\n        return self.attribs['media']\n\n    @property\n    def initialization_pattern(self):\n        \"Get the initialization pattern from SegmentTemplate.\"\n        return self.attribs['initialization']\n\n    @property\n    def start_number(self):\n        \"StartNumber for segments (from SegmentTemplate).\"\n        return int(self.attribs['startNumber'])\n\n    @property\n    def timescale(self):\n        \"Timescale for the derivation of different real-time duration values in the Segment Information.\"\n        return int(self.attribs['timescale'] or 1)\n\n    @property\n    def duration(self):\n        \"Segment duration (in whole seconds).\"\n        return int(self.attribs['duration']) // self.timescale\n\n    def parse(self):\n        \"Parse the node and its children.\"\n        self.check_and_add_attributes(self.node, ('contentType', 'mimeType'))\n        for child in self.node:\n            if self.compare_tag(child.tag, 'SegmentTemplate'):\n                self.check_and_add_attributes(child, ('initialization', 'startNumber', 'media',\n                                                      'duration', 'timescale'))\n            elif self.compare_tag(child.tag, 'Representation'):\n                rep = Representation(self, child)\n                rep.parse()\n                self.representations.append(rep)\n\n    def make_live(self, data):\n        for attr in ('startNr'):\n            self.set_value(self.node, attr, data[attr])\n        for adaptation_set in self.adaptation_sets:\n            adaptation_set.make_live(data)\n\n\nclass Representation(MpdElement):\n    \"Representation element in an AdaptationSet.\"\n\n    def __init__(self, adaptation_set, node):\n        MpdElement.__init__(self, node)\n        self.adaptation_set = adaptation_set\n\n    @property\n    def initialization_path(self):\n        \"The initialization path of this representation.\"\n        return self.get_initialization_path()\n\n    @property\n    def rep_id(self):\n        \"Id of this representation.\"\n        return self.attribs['id']\n\n    def parse(self):\n        \"Parse the node and its children.\"\n        self.check_and_add_attributes(self.node, ('id', 'bandwidth'))\n\n    def get_initialization_path(self):\n        \"The initialization path of this representation.\"\n        init_pattern = self.adaptation_set.initialization_pattern\n        rep_id = self.attribs['id']\n        bandwidth = self.attribs['bandwidth']\n        init_path = init_pattern.replace(\"$RepresentationID$\", rep_id).replace(\"$bandwidth$\", bandwidth)\n        return init_path\n\n    def get_media_path(self, segNr=\"%d\"):\n        \"Return the media path for this representation and given segNr.\"\n        media_pattern = self.adaptation_set.media_pattern\n        rep_id = self.attribs['id']\n        bandwidth = self.attribs['bandwidth']\n        media_path = media_pattern.replace(\"$RepresentationID$\", rep_id).replace(\"$bandwidth$\", bandwidth)\n        media_path = media_path.replace(\"$Number$\", str(segNr))\n        return media_path\n\n\nclass MpdProcessor(MpdElement):\n    \"\"\"Modify the mpd to become live. Whatever is input in data is set to these values.\"\"\"\n\n    def __init__(self, infile):\n        self.tree = ElementTree.parse(infile)\n        self.mpd_namespace = None\n        self.root = self.tree.getroot()\n        self.is_base_url_set = False\n        self.adaptation_sets = []\n        self.media_presentation_duration = None\n        self.media_presentation_duration_in_s = None\n        self.muxed_rep = None\n        self.parse()\n\n    def parse(self):\n        \"Parse and find all the adaptation sets and their representations.\"\n        mpd = self.root\n        tag, self.mpd_namespace = self.tag_and_namespace(mpd.tag)\n        assert tag == \"MPD\"\n        if 'mediaPresentationDuration' in mpd.attrib:\n            self.media_presentation_duration = mpd.attrib['mediaPresentationDuration']\n            self.media_presentation_duration_in_s = tfc.iso_duration_to_seconds(self.media_presentation_duration)\n            print(\"Found mediaPresentationDuration = %ds\" % self.media_presentation_duration_in_s)\n        for child in mpd:\n            if self.compare_tag(child.tag, 'Period'):\n                for grand_child in child:\n                    if self.compare_tag(grand_child.tag, 'AdaptationSet'):\n                        AS = AdaptationSet(grand_child)\n                        AS.parse()\n                        self.adaptation_sets.append(AS)\n\n    def get_adaptation_sets(self):\n        return self.adaptation_sets\n\n    def getMuxedRep(self):\n        return self.muxed_rep\n\n    def getMuxedInitPath(self):\n        initPath = None\n        for AS in self.adaptation_sets:\n            if AS.contentType == \"video\":\n                print(AS.initialization)\n                initPath = AS.initialization.replace(\"$RepresentationID$\", self.muxed_rep)\n        return initPath\n\n    def getMuxedMediaPath(self):\n        mediaPath = None\n        for AS in self.adaptation_sets:\n            if AS.contentType == \"video\":\n                mediaPath = AS.media.replace(\"$RepresentationID$\", self.muxed_rep).replace(\"$Number$\", \"%d\")\n        return mediaPath\n\n    def process(self, mpdData={}):\n        MPD = self.root\n        self.processMPD(MPD, mpdData)\n\n    def makeLiveMpd(self, data):\n        \"\"\"Process the root element (MPD) and set values from data dictionary.\n\n        Typical keys are: availabilityStartTime, timeShiftBufferDepth, minimumUpdatePeriod.\"\"\"\n        MPD = self.root\n        MPD.set('type', \"dynamic\")\n        for key in data.keys():\n            self.setValue(MPD, key, data)\n        if 'mediaPresentationDuration' in MPD.attrib:\n            del MPD.attrib['mediaPresentationDuration']\n        for child in MPD:\n            if self.compare_tag(child.tag, 'Period'):\n                child.set(\"start\", \"PT0S\")  # Set Period start to 0\n\n    def makeLiveMultiplexedMpd(self, data, mediaData):\n        self.makeLiveMpd(data)\n        MPD = self.root\n        audioAS = None\n        videoAS = None\n        period = None\n        audioRep = None\n        videoRep = None\n        for child in MPD:\n            if self.compare_tag(child.tag, 'Period'):\n                period = child\n                for grandChild in child:\n                    if self.compare_tag(grandChild.tag, 'AdaptationSet'):\n                        AS = AdaptationSet(grandChild)\n                        AS.parse()\n                        if AS.contentType == \"audio\":\n                            audioAS = grandChild\n                        elif AS.contentType == \"video\":\n                            videoAS = grandChild\n\n        for contentType, mData in mediaData.items():\n            trackID = mData['trackID']\n            cc = self.makeContentComponent(contentType, trackID)\n            videoAS.insert(0, cc)\n\n        del videoAS.attrib['contentType']\n        audioRep = audioAS.find(self.mpd_namespace+\"Representation\")\n        videoRep = videoAS.find(self.mpd_namespace+\"Representation\")\n        videoRep.set(\"id\", self.muxed_rep)\n        try:\n            audioCodec = audioRep.attrib[\"codecs\"]\n            videoCodec = videoRep.attrib[\"codecs\"]\n            combinedCodecs = \"%s,%s\" % (audioCodec, videoCodec)\n            videoRep.set(\"codecs\", combinedCodecs)\n        except KeyError:\n            print(\"Could not combine codecs\")\n        period.remove(audioAS)\n\n    def makeContentComponent(self, contentType, trackID):\n        \"Create and insert a contentComponent element.\"\n        elem = ElementTree.Element('%sContentComponent' % self.mpd_namespace)\n        elem.set(\"id\", str(trackID))\n        elem.set(\"contentType\", contentType)\n        elem.tail = \"\\n\"\n        return elem\n\n    def getCleanString(self, clean=True, targetMpdNameSpace=None):\n        \"Get a string of all XML cleaned (no ns0 namespace)\"\n        ofh = io.StringIO()\n        self.tree.write(ofh)  # ,default_namespace=NAMESPACE)\n        value = ofh.getvalue()\n        if clean:\n            value = value.replace(\"ns0:\", \"\").replace(\"xmlns:ns0=\", \"xmlns=\")\n        if targetMpdNameSpace is not None:\n            newStr = 'xmlns=\"%s\"' % targetMpdNameSpace\n            value = re.sub('xmlns=\"[^\"]+\"', newStr, value)\n        xmlIntro = '<?xml version=\"1.0\" encoding=\"utf-8\"?>\\n'\n        return xmlIntro + value\n"
  },
  {
    "path": "dashlivesim/cc_inserter/small.scc",
    "content": "Scenarist_SCC V1.0\n\n00:00:00:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab0 b0ba b0b0 bab0 b080 942c 942f\n\n00:00:01:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab0 b0ba b031 bab0 b080 942c 942f\n\n00:00:02:00 9420 94ae 9140 e56e 67ba 91b9 b0b0 bab0 b0ba b0b2 bab0 b080 942c 942f\n\n00:00:03:00 9420 94ae 9162 e56e 67ba 91b9 b0b0 bab0 b0ba b033 bab0 b080 942c 942f\n\n"
  },
  {
    "path": "dashlivesim/dashlib/__init__.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "dashlivesim/dashlib/bitreader.py",
    "content": "\"\"\" Simple bitreader class and some utility functions\n\"\"\"\n\nimport struct\n\n\nBYTE_UNPACK = struct.Struct(\"B\").unpack_from\n\n\nclass bitreader:\n    \"\"\" Class used to read bits from a byte buffer\n    \"\"\"\n\n    def __init__(self, buffer):\n        self.buffer = buffer\n        self.bit_pos = 7\n        self.byte = BYTE_UNPACK(self.buffer, 0)[0]\n        self.index = 1\n        self.bit = 0\n\n    def get_bits(self, num_bits):\n        \"\"\" Read bits from the buffer\n        \"\"\"\n\n        num = 0\n        mask = 1 << self.bit_pos\n\n        while num_bits:\n            num_bits -= 1\n            self.bit += 1\n            num <<= 1\n\n            if self.byte & mask:\n                num |= 1\n            mask >>= 1\n            self.bit_pos -= 1\n\n            if self.bit_pos < 0:\n                self.bit_pos = 7\n                mask = 1 << self.bit_pos\n                if self.index < len(self.buffer):\n                    self.byte = BYTE_UNPACK(self.buffer, self.index)[0]\n                else:\n                    self.byte = 0\n                self.index += 1\n\n        return num\n\n    def step_bytes(self, bytes):\n        \"\"\" Returns an integer number of bytes from the buffer\n        \"\"\"\n\n        data = self.buffer[self.index - 1: self.index - 1 + bytes]\n        for i in range(bytes):\n            self.get_bits(8)\n        return data\n\n    def tell(self):\n        \"\"\" Returns the current byte position\n        \"\"\"\n\n        return self.index\n\n    def tell_bits(self):\n        \"\"\"Returns the current bit position.\"\"\"\n        return self.bit\n\n    def remaining_bits(self):\n        \"\"\"Returns the remaining bits in the buffer.\"\"\"\n        return len(self.buffer) * 8 - self.bit\n\n\ndef read_bits(reader, num_bits, text, display, to_hex=False):\n    \"\"\" Read bits from a bitreader and displays the output\n    \"\"\"\n\n    num = reader.get_bits(num_bits)\n    if display:\n        if to_hex:\n            print(f\"{text:40}: 0x{num:02x}\")\n        else:\n            print(f\"{text:40}: {num}\")\n\n    return num\n\n\ndef ue(reader):\n    \"\"\" Read one exponential golomb code using a bitreader\n\n        H264 bitstreams often makes use of exponential golomb codes\n    \"\"\"\n\n    leading_zero_bits = -1\n    b = 0\n    while not b:\n        leading_zero_bits += 1\n        b = reader.get_bits(1)\n    return 2**leading_zero_bits - 1 + reader.get_bits(leading_zero_bits)\n"
  },
  {
    "path": "dashlivesim/dashlib/bitwriter.py",
    "content": "\"\"\" Simple bitwriter class\n\"\"\"\n\nLOWEST_BIT_MASKS = [(1 << pw) - 1 for pw in range(34)]\n\n\nclass Bitwriter:\n    \"\"\" Simple class to write bits into a byte array\n    \"\"\"\n\n    def __init__(self):\n        self.byte_string = bytearray()\n        self.current_byte = 0\n        self.nr_bits_in_new_byte = 0\n\n    def __len__(self):\n        return len(self.byte_string)\n\n    def __getitem__(self, sliced):\n        return self.byte_string[sliced]\n\n    def add_bits(self, data, nr_bits):\n        \"\"\"Add an arbitrary number of bits from unsigned data.\n        \"\"\"\n\n        nr_bits_left = nr_bits\n\n        while nr_bits_left + self.nr_bits_in_new_byte >= 8:\n            nr_bits_to_insert = 8 - self.nr_bits_in_new_byte\n            bits = data >> (nr_bits_left - nr_bits_to_insert)\n            self.current_byte <<= nr_bits_to_insert\n            self.current_byte |= bits\n            self.byte_string.append(self.current_byte)\n            self.current_byte = 0\n            self.nr_bits_in_new_byte = 0\n            nr_bits_left -= nr_bits_to_insert\n            data &= LOWEST_BIT_MASKS[nr_bits_left]\n\n        if nr_bits_left > 0:\n            self.current_byte <<= nr_bits_left\n            self.current_byte |= (data & LOWEST_BIT_MASKS[nr_bits_left])\n            self.nr_bits_in_new_byte += nr_bits_left\n\n    def add_bytes(self, byte_list):\n        self.byte_string.extend(byte_list)\n\n    def get_bytes(self):\n        return self.byte_string\n"
  },
  {
    "path": "dashlivesim/dashlib/boxes.py",
    "content": "\"\"\"\nGenerator of fragmented MP4 files.\n\nThe classes in this module are internal and are not accessed directly by a\nuser.\n\"\"\"\nfrom collections import namedtuple\nfrom itertools import chain\nimport logging\nimport struct\n\nMOVIE_TIMESCALE = 90000\n\n\nPACK_U8 = struct.Struct('>B').pack\nPACK_U16 = struct.Struct('>H').pack\nPACK_U32 = struct.Struct('>L').pack\nPACK_U64 = struct.Struct('>Q').pack\nPACK_NAME = struct.Struct('4s').pack\n\n\ndef serialize_u8(x):\n    \"\"\" Serialize uint_8\n    \"\"\"\n    return PACK_U8(x & 0xff)\n\n\ndef serialize_u16(x):\n    \"\"\" Serialize uint_16\n    \"\"\"\n    return PACK_U16(x & 0xfffff)\n\n\ndef serialize_u32(x):\n    \"\"\" Serialize uint_32\n    \"\"\"\n    return PACK_U32(x & 0xffffffff)\n\n\ndef serialize_u64(x):\n    \"\"\" Serialize uint_64\n    \"\"\"\n    return PACK_U64(x)\n\n\ndef serialize_name(x):\n    \"\"\" Serialize box name containing 4 characters\n    \"\"\"\n    return PACK_NAME(x)\n\n\ndef serialize_string(x):\n    \"\"\" Serialize string\n    \"\"\"\n    return x\n\n\ndef serialize_bytes(x, n):\n    \"\"\" Serialize array of bytes\n    \"\"\"\n    return serialize_u8(x) * n\n\n\nTRUNSample = namedtuple('TRUNSample', 'duration size sync offset')\n\n\nSAIZSample = namedtuple('SAIZSample', 'sample_info_size')\n\n\nSBGPGroup = namedtuple('TRUNSample', 'sample_count group_description_index')\n\n\nSGPDGroup = namedtuple('SGPDGroup', 'is_encrypted iv_size kid')\n\n\nSENCSample = namedtuple('SENCSample', 'iv subsamples')\n\n\nSENCSubsample = namedtuple('SENCSubsample', 'clear_bytes enc_bytes')\n\nSIDXReference = namedtuple('SIDXReference', 'reference_type '\n                                            'referenced_size '\n                                            'subsegment_duration '\n                                            'starts_with_SAP '\n                                            'SAP_type '\n                                            'SAP_delta_time')\n\n\nclass Sample:\n\n    def __init__(self, data, time=0, duration=0, sync=True, time_offset=0):\n        self.data = data\n        self.time = time\n        self.duration = duration\n        self.sync = sync\n        self.time_offset = time_offset\n\n    @property\n    def size(self):\n        return len(self.data)\n\n\nclass DataPlaceholder:\n\n    def __init__(self, data_length):\n        self.data_length = data_length\n\n    def __len__(self):\n        return self.data_length\n\n\nclass Box:\n\n    def serialize(self):\n        return b''.join(self)\n\n\nclass BoxSequence(Box):\n\n    def __init__(self, *boxes):\n        self.boxes = boxes\n\n    def size(self):\n        return sum(box.size() for box in self.boxes)\n\n    def __iter__(self):\n        for value in chain.from_iterable(self.boxes):\n            yield value\n\n\nclass BoxContainer(Box):\n\n    def __init__(self, name, boxes=None):\n        self.name = name\n        self.boxes = boxes if boxes else []\n\n    def add_box(self, box):\n        self.boxes.append(box)\n\n    def size(self):\n        return sum((box.size() for box in self.boxes), 8)\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(self.name)\n\n        for value in chain.from_iterable(self.boxes):\n            yield value\n\n\nclass FTYPBox(Box):\n    \"\"\" File type and compatibility\n    \"\"\"\n\n    def __init__(self, major_brand, minor_version, brands, styp=False):\n        self.major_brand = major_brand\n        self.minor_version = minor_version\n        self.brands = brands if brands else []\n        self.typ = b'styp' if styp else b'ftyp'\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(self.typ)\n        yield serialize_name(self.major_brand)\n        yield serialize_u32(self.minor_version)\n        for brand in self.brands:\n            yield serialize_name(brand)\n\n    def size(self):\n        return 16 + 4 * len(self.brands)\n\n\nclass MOOVBox(BoxContainer):\n    \"\"\" Movie box, contains information about one or more tracks,\n    where a track can be audio, video, or some other type of data\n    \"\"\"\n\n    def __init__(self):\n        super().__init__(b'moov')\n\n\nclass MVHDBox(Box):\n    \"\"\" Movie header, overall declarations\n    \"\"\"\n\n    def __init__(self, timescale, duration, next_track_id):\n        self.timescale = timescale\n        self.duration = duration\n        self.next_track_id = next_track_id\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'mvhd')\n        yield serialize_u32(0)  # version and flags\n\n        yield serialize_u32(0)  # creation time\n        yield serialize_u32(0)  # modification time\n        yield serialize_u32(self.timescale)  # timescale\n        yield serialize_u32(self.duration)  # duration\n\n        # 80 bytes matrix etc\n        yield serialize_u32(0x00010000)  # rate\n        yield serialize_u16(0x0100)  # volume\n        yield serialize_u16(0)  # reserved\n        yield serialize_u32(0)  # reserved\n        yield serialize_u32(0)  # reserved\n        yield serialize_u32(0x00010000)  # matrix\n        yield serialize_u32(0)  # matrix\n        yield serialize_u32(0)  # matrix\n        yield serialize_u32(0)  # matrix\n        yield serialize_u32(0x00010000)  # matrix\n        yield serialize_u32(0)  # matrix\n        yield serialize_u32(0)  # matrix\n        yield serialize_u32(0)  # matrix\n        yield serialize_u32(0x40000000)  # matrix\n        yield serialize_u32(0)  # pre-defined\n        yield serialize_u32(0)  # pre-defined\n        yield serialize_u32(0)  # pre-defined\n        yield serialize_u32(0)  # pre-defined\n        yield serialize_u32(0)  # pre-defined\n        yield serialize_u32(0)  # pre-defined\n        yield serialize_u32(self.next_track_id)\n\n    def size(self):\n        return 108\n\n\nclass MVEXBox(BoxContainer):\n    \"\"\" Movie extends box\n    \"\"\"\n\n    def __init__(self):\n        super().__init__(b'mvex')\n\n\nclass TRAKBox(BoxContainer):\n    \"\"\" Container for an individual track or stream\n    \"\"\"\n\n    def __init__(self):\n        super().__init__(b'trak')\n\n\nclass MDIABox(BoxContainer):\n    \"\"\" Container for the media information in a track\n    \"\"\"\n\n    def __init__(self):\n        super().__init__(b'mdia')\n\n\nclass MINFBox(BoxContainer):\n    \"\"\" Media information container\n    \"\"\"\n\n    def __init__(self):\n        super().__init__(b'minf')\n\n\nclass DINFBox(BoxContainer):\n    \"\"\" Data information box, container\n    \"\"\"\n\n    def __init__(self):\n        super().__init__(b'dinf')\n\n\nclass STBLBox(BoxContainer):\n    \"\"\" Sample table box, container for the time/space map\n    \"\"\"\n\n    def __init__(self):\n        super().__init__(b'stbl')\n\n\nclass TREXBox(Box):\n    \"\"\" Track extends defaults\n    \"\"\"\n\n    def __init__(self, track_id):\n        self.track_id = track_id\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'trex')\n        yield serialize_u32(0x00)  # version and flags\n        yield serialize_u32(self.track_id)  # track_id\n        yield serialize_u32(0x01)  # default_sample_description_index\n        yield serialize_u32(0x00)  # default_sample_duration\n        yield serialize_u32(0x00)  # default_sample_size\n        yield serialize_u32(0x00)  # default_sample_flags\n\n    def size(self):\n        return 32\n\n\nclass TKHDBox(Box):\n    \"\"\" Track header, overall information about the track\n    \"\"\"\n\n    def __init__(self, track_id, duration, volume, width, height):\n        self.track_id = track_id\n        self.duration = duration\n        self.volume = volume\n        self.width = width\n        self.height = height\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'tkhd')\n        yield serialize_u32(0x00000007)  # version and flags\n\n        yield serialize_u32(0)  # creation time\n        yield serialize_u32(0)  # modification time\n        yield serialize_u32(self.track_id)  # track_id\n        yield serialize_u32(0)  # reserved\n        yield serialize_u32(self.duration)  # duration\n\n        yield serialize_u64(0)  # reserved\n        yield serialize_u16(0)  # layer\n        yield serialize_u16(0)  # alternate_group\n\n        yield serialize_u16(self.volume)  # volume\n        yield serialize_u16(0)  # reserved\n\n        # matrix\n        yield serialize_u32(0x00010000)\n        yield serialize_u32(0)\n        yield serialize_u32(0)\n        yield serialize_u32(0)\n        yield serialize_u32(0x00010000)\n        yield serialize_u32(0)\n        yield serialize_u32(0)\n        yield serialize_u32(0)\n        yield serialize_u32(0x40000000)\n\n        yield serialize_u32(self.width << 16)\n        yield serialize_u32(self.height << 16)\n\n    def size(self):\n        return 92\n\n\nclass MDHDBox(Box):\n    \"\"\" Media header, overall information about the media\n\n    lang field needs to be three characters according to ISO 639-2\n    \"\"\"\n\n    def __init__(self, timescale, duration, lang):\n        self.timescale = timescale\n        self.duration = duration\n        self.lang = lang\n\n    def make_bits_from_lang_char(self, char):\n        bits = (ord(char) - 0x60) & 0x1f\n        char_back = bits + 0x60\n        if chr(char_back) != char:\n            raise ValueError(f\"Cannot code char {char}\")\n        return bits\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'mdhd')\n        yield serialize_u32(0x00000000)  # version and flags\n\n        yield serialize_u32(0)  # creation time\n        yield serialize_u32(0)  # modification time\n        yield serialize_u32(self.timescale)  # timescale\n        yield serialize_u32(self.duration)  # duration\n\n        try:\n            if len(self.lang) != 3:\n                raise ValueError(f\"Non-3-letter language code {self.lang}\")\n            lang = ((self.make_bits_from_lang_char(self.lang[0]) << 10) +\n                    (self.make_bits_from_lang_char(self.lang[1]) << 5) +\n                    (self.make_bits_from_lang_char(self.lang[2])))\n\n        except ValueError as e:\n            logging.info('mdhd generation: %s replaced by \"und\"' % e)\n            lang = 0x55c4  # Representation of 'und'\n\n        yield serialize_u16(lang)  # language\n        yield serialize_u16(0)  # pre_defined\n\n    def size(self):\n        return 32\n\n\nclass HDLRBox(Box):\n    \"\"\" Handler, declares the media (handler) type\n    \"\"\"\n\n    def __init__(self, handler_type, handler_name):\n        self.handler_type = handler_type\n        self.handler_name = handler_name\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'hdlr')\n        yield serialize_u32(0x00000000)  # version and flags\n        yield serialize_u32(0)  # pre_defined\n        yield serialize_string(self.handler_type)\n        yield serialize_u32(0)  # reserved\n        yield serialize_u32(0)  # reserved\n        yield serialize_u32(0)  # reserved\n        yield serialize_string(self.handler_name)  # handler\n        yield serialize_u8(0)  # null terminator\n\n    def size(self):\n        return 33 + len(self.handler_name)\n\n\nclass URLBox(Box):\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'url ')\n        yield serialize_u32(0x00000001)\n\n    def size(self):\n        return 12\n\n\nclass DREFBox(Box):\n    \"\"\" Data reference box, declares source(s) of media data in track\n    \"\"\"\n\n    def __init__(self):\n        self.url = URLBox()\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'dref')\n        yield serialize_u32(0x00000000)  # version and flags\n        yield serialize_u32(0x00000001)  # entry count\n\n        for value in self.url:\n            yield value\n\n    def size(self):\n        return 16 + self.url.size()\n\n\nclass VMHDBox(Box):\n    \"\"\" Video media header, overall information (video track only)\n    \"\"\"\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'vmhd')\n        yield serialize_u32(0x00000000)  # version and flags\n        yield serialize_u16(0x0000)  # graphics_mode\n        yield serialize_u8(0)  # opcolor\n        yield serialize_u8(0)  # opcolor\n        yield serialize_u8(0)  # opcolor\n        yield serialize_u8(0)  # opcolor\n        yield serialize_u8(0)  # opcolor\n        yield serialize_u8(0)  # opcolor\n\n    def size(self):\n        return 20\n\n\nclass SMHDBox(Box):\n    \"\"\"  Sound media header, overall information (sound track only)\n    \"\"\"\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'smhd')\n        yield serialize_u32(0x00000000)  # version and flags\n        yield serialize_u16(0x0000)  # balance\n        yield serialize_u16(0x0000)  # reserved\n\n    def size(self):\n        return 16\n\n\nclass NMHDBox(Box):\n    \"\"\" Null media header, overall information (some tracks only)\n    \"\"\"\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'nmhd')\n        yield serialize_u32(0x00000000)  # version and flags\n\n    def size(self):\n        return 12\n\n\nclass VisualSampleEntry(Box):\n\n    def __init__(self, coding, width, height, avcc, pasp):\n        self.coding = coding\n        self.width = width\n        self.height = height\n        self.avcc = avcc\n        self.pasp = pasp\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(self.coding)\n\n        yield serialize_bytes(0, 6)  # reserved\n        yield serialize_u16(0x0001)  # data_reference_index\n\n        # visual\n        yield serialize_u16(0x0000)  # pre_defined\n        yield serialize_u16(0x0000)  # reserved\n        yield serialize_bytes(0x00, 12)  # pre_defined\n\n        # width / height\n        yield serialize_u16(self.width)  # width\n        yield serialize_u16(self.height)  # height\n        yield serialize_u32(0x00480000)  # horires = 72 dpi\n        yield serialize_u32(0x00480000)  # vert = 72 dpi\n\n        yield serialize_bytes(0, 4)  # reserved\n        yield serialize_u16(0x0001)  # frame_count\n        yield serialize_bytes(0, 32)  # compressorname\n        yield serialize_u16(0x0018)  # depth\n        yield serialize_u16(0xffff)  # pre_defined\n\n        # rest of the boxes\n        for value in self.avcc:\n            yield value\n\n    def size(self):\n        return 86 + self.avcc.size()\n\n\nclass AudioSampleEntry(Box):\n\n    def __init__(self, coding, num_channels, sample_size, sample_rate, esds):\n        self.coding = coding\n        self.num_channels = num_channels\n        self.sample_size = sample_size\n        self.sample_rate = sample_rate\n        self.esds = esds\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(self.coding)\n\n        yield serialize_bytes(0, 6)  # reserved\n        yield serialize_u16(0x0001)  # data_reference_index\n\n        # audio\n        yield serialize_bytes(0, 8)  # reserved\n        yield serialize_u16(self.num_channels)  # channelcount\n        yield serialize_u16(self.sample_size)  # samplesize\n        yield serialize_u16(0)  # pre_defined\n        yield serialize_u16(0)  # reserved\n        yield serialize_u32(self.sample_rate << 16)  # samplerate\n\n        # rest of the boxes\n        yield self.esds\n\n    def size(self):\n        return 36 + len(self.esds)\n\n\nclass WVTTSampleEntryBox(Box):\n    \"\"\" WebVTT data\n    \"\"\"\n\n    def __init__(self):\n        self.vttC = WVTTConfigBox()\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'wvtt')\n        yield b'\\x00' * 6 + serialize_u16(1)  # SampleEntry data format\n\n        for value in self.vttC:\n            yield value\n\n    def size(self):\n        return 16 + self.vttC.size()\n\n\nclass WVTTConfigBox(Box):\n    \"\"\"WebVTTConfigurationBox (vttC). Contains top-level configuration.\"\"\"\n\n    def __init__(self, config_string='WEBVTT'):\n        \"\"\"The minimal configuration is WEBVTT.\"\"\"\n        self.utf8_text = config_string.encode()\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield b'vttC'\n        yield self.utf8_text\n\n    def size(self):\n        return 8 + len(self.utf8_text)\n\n\nclass VTTCBox(BoxContainer):\n    \"\"\"VTTCueBox. Contains exactly one WebVTT Cue.\"\"\"\n\n    def __init__(self, boxes=None):\n        super().__init__(b'vttc', boxes)\n\n\nclass VTTEBox(Box):\n    \"\"\"VTTEmptyCueBox. Indicates that no subtitles are available.\"\"\"\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield b'vtte'\n\n    def size(self):\n        return 8\n\n\nclass PAYLBox(Box):\n    \"\"\"CuePayloadBox. Contains the WebVTT text.\"\"\"\n\n    def __init__(self, cue_text='place_holder'):\n        self.utf8_data = cue_text.encode()\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield b'payl'\n        yield self.utf8_data\n\n    def size(self):\n        return 8 + len(self.utf8_data)\n\n\nclass STSDBox(Box):\n    \"\"\" Sample descriptions (codec types, initialization etc.)\n    \"\"\"\n\n    def __init__(self):\n        self.boxes = []\n\n    def add_box(self, box):\n        self.boxes.append(box)\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'stsd')\n\n        yield serialize_u32(0x00)  # version and flags\n        yield serialize_u32(len(self.boxes))  # entry_count\n\n        for value in chain.from_iterable(self.boxes):\n            yield value\n\n    def size(self):\n        return sum((b.size() for b in self.boxes), 16)\n\n\nclass AVCCBox(Box):\n    \"\"\" AVC Decoder Configuration\n    \"\"\"\n\n    def __init__(self, profile_ind, profile_compat, level_ind, sps, pps):\n        self.profile_ind = profile_ind\n        self.profile_compat = profile_compat\n        self.level_ind = level_ind\n        self.sps = sps\n        self.pps = pps\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'avcC')\n\n        yield serialize_u8(0x01)  # configured\n        yield serialize_u8(self.profile_ind)  # AVC profile indication\n        yield serialize_u8(self.profile_compat)  # AVC profile compatibility\n        yield serialize_u8(self.level_ind)  # AVC level\n\n        yield serialize_u8(0xff)  # 4 bytes NAL\n        yield serialize_u8(0xe1)  # 1 SPS\n\n        # SPS\n        yield serialize_u16(len(self.sps))  # sps length\n        yield self.sps\n\n        # PPS\n        yield serialize_u8(0x01)  # 1 PPS\n        yield serialize_u16(len(self.pps))  # sps length\n        yield self.pps\n\n    def size(self):\n        return 19 + len(self.sps) + len(self.pps)\n\n\nclass HVCCBox(Box):\n    \"\"\" HEVC Decoder Configuration\n    \"\"\"\n\n    def __init__(self, hvcc_data, vps, sps, pps):\n        self.hvcc_data = hvcc_data\n        self.vps = vps\n        self.sps = sps\n        self.pps = pps\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'hvcC')\n\n        writer = bitwriter.Bitwriter()\n        writer.add_bits(0x01, 8)  # configurationVersion\n        writer.add_bits(self.hvcc_data.general_profile_space, 2)\n        writer.add_bits(self.hvcc_data.general_tier_flag, 1)\n        writer.add_bits(self.hvcc_data.general_profile_idc, 5)\n        writer.add_bits(self.hvcc_data.general_profile_compatibility_flags, 32)\n\n        value = self.hvcc_data.general_constraint_indicator_flags\n        high_bits = value >> 32\n        low_bits = value & 0xffffffff\n        writer.add_bits(high_bits, 16)\n        writer.add_bits(low_bits, 32)\n\n        writer.add_bits(self.hvcc_data.general_level_idc, 8)\n        writer.add_bits(0xf, 4)  # reserved\n        writer.add_bits(self.hvcc_data.min_spatial_segmentation_idc, 12)\n        writer.add_bits(0x3f, 6)  # reserved\n        writer.add_bits(self.hvcc_data.parallelism_type, 2)\n        writer.add_bits(0x3f, 6)  # reserved\n        writer.add_bits(self.hvcc_data.chroma_format_idc, 2)\n        writer.add_bits(0x1f, 5)  # reserved\n        writer.add_bits(self.hvcc_data.bit_depth_luma_minus8, 3)\n        writer.add_bits(0x1f, 5)  # reserved\n        writer.add_bits(self.hvcc_data.bit_depth_chroma_minus8, 3)\n\n        writer.add_bits(0, 16)  # avgFrameRate\n        writer.add_bits(0, 2)  # constantFrameRate\n        writer.add_bits(1, 3)  # numTemporalLayers\n        writer.add_bits(1, 1)  # temporalIdNested\n        writer.add_bits(3, 2)  # lengthSizeMinusOne\n        writer.add_bits(3, 8)  # numOfArrays\n\n        # vps\n        writer.add_bits(0, 1)  # array_completeness\n        writer.add_bits(0, 1)  # reserved\n        writer.add_bits(32, 6)  # NAL_unit_type\n        writer.add_bits(1, 16)  # numNalus\n        writer.add_bits(len(self.vps), 16)  # nalUnitLength\n        writer.add_bytes(self.vps)\n\n        # sps\n        writer.add_bits(0, 1)  # array_completeness\n        writer.add_bits(0, 1)  # reserved\n        writer.add_bits(33, 6)  # NAL_unit_type\n        writer.add_bits(1, 16)  # numNalus\n        writer.add_bits(len(self.sps), 16)  # nalUnitLength\n        writer.add_bytes(self.sps)\n\n        # pps\n        writer.add_bits(0, 1)  # array_completeness\n        writer.add_bits(0, 1)  # reserved\n        writer.add_bits(34, 6)  # NAL_unit_type\n        writer.add_bits(1, 16)  # numNalus\n        writer.add_bits(len(self.pps), 16)  # nalUnitLength\n        writer.add_bytes(self.pps)\n\n        yield writer.get_bytes()\n\n    def size(self):\n        return 46 + len(self.vps) + len(self.sps) + len(self.pps)\n\n\nclass ESDSBox(Box):\n    \"\"\" MPEG-4 Elementary Stream Descriptor\n    \"\"\"\n\n    def __init__(self, decoder_config):\n        self.decoder_config = decoder_config\n\n    def __iter__(self):\n        dec_cfg_len = len(self.decoder_config)\n        yield serialize_u32(self.size())\n        yield serialize_name(b'esds')\n\n        # 9 bytes\n        yield serialize_u32(0)  # version and flags\n        yield serialize_u8(3)  # tag\n        yield serialize_u8(23 + dec_cfg_len)  # length\n        yield serialize_u16(0x0001)  # esid\n        yield serialize_u8(0)  # priority\n\n        # 15 bytes\n        yield serialize_u8(4)  # tag\n        yield serialize_u8(15 + dec_cfg_len)  # length\n        yield serialize_u8(0x40)  # object type\n        yield serialize_u8(0x15)  # stream type\n        yield serialize_u8(0)  # buffer_size\n        yield serialize_u8(0)  # buffer_size\n        yield serialize_u8(0)  # buffer_size\n\n        yield serialize_u32(0)  # max bitrate\n        yield serialize_u32(0)  # avg bitrate\n\n        # 2 bytes\n        yield serialize_u8(5)  # tag\n        yield serialize_u8(dec_cfg_len)  # length\n\n        # decoder config\n        yield self.decoder_config\n\n        # 3 bytes\n        yield serialize_u8(6)  # tag\n        yield serialize_u8(1)  # length\n        yield serialize_u8(2)  # constant\n\n    def size(self):\n        # 37 is the size of the esds box minus the actual decoder config\n        return 37 + len(self.decoder_config)\n\n\nclass PASPBox(Box):\n    \"\"\"Picture Aspect Ratio Box\n    \"\"\"\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'pasp')\n\n        yield serialize_u32(0x00000001)  # hSpacing\n        yield serialize_u32(0x00000001)  # vSpacing\n\n    def size(self):\n        return 16\n\n\nclass STTSBox(Box):\n    \"\"\" (decoding) time-to-sample\n    \"\"\"\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'stts')\n        yield serialize_u32(0)  # version and flags\n        yield serialize_u32(0)  # entry_count\n\n    def size(self):\n        return 16\n\n\nclass STSCBox(Box):\n    \"\"\" Sample-to-chunk, partial data-offset information\n    \"\"\"\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'stsc')\n        yield serialize_u32(0)  # version and flags\n        yield serialize_u32(0)  # entry_count\n\n    def size(self):\n        return 16\n\n\nclass STSZBox(Box):\n    \"\"\" Sample sizes (framing)\n    \"\"\"\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'stsz')\n        yield serialize_u32(0)  # version and flags\n        yield serialize_u32(0)  # sample_size\n        yield serialize_u32(0)  # entry_count\n\n    def size(self):\n        return 20\n\n\nclass STCOBox(Box):\n    \"\"\" Chunk offset, partial data-offset information\n    \"\"\"\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'stco')\n        yield serialize_u32(0)  # version and flags\n        yield serialize_u32(0)  # entry_count\n\n    def size(self):\n        return 16\n\n\nclass MOOFBox(BoxContainer):\n    \"\"\" Movie fragment\n    \"\"\"\n\n    def __init__(self):\n        super().__init__(b'moof')\n\n\nclass TRAFBox(BoxContainer):\n    \"\"\" Track fragment\n    \"\"\"\n\n    def __init__(self):\n        super().__init__(b'traf')\n\n\nclass TFHDBox(Box):\n    \"\"\" Track fragment header\n    \"\"\"\n\n    def __init__(self, track_id):\n        self.track_id = track_id\n\n    def __iter__(self):\n        flags = 0x20000  # default base is moof\n\n        yield serialize_u32(self.size())\n        yield serialize_name(b'tfhd')\n        yield serialize_u32(flags)  # version and flags\n        yield serialize_u32(self.track_id)  # track_id\n\n    def size(self):\n        return 16\n\n\nclass TFDTBox(Box):\n    \"\"\" Track fragment decode time\n    \"\"\"\n    _size = 20\n\n    def __init__(self, decode_time):\n        self.decode_time = decode_time\n\n    def __iter__(self):\n        v_and_f = 0x01000000  # Use 64 bits for timestamp\n\n        yield serialize_u32(self.size())\n        yield serialize_name(b'tfdt')\n        yield serialize_u32(v_and_f)  # version and flags\n        yield serialize_u64(self.decode_time)  # decode_time\n\n    def size(self):\n        return 20\n\n\nclass TRUNBox(Box):\n    \"\"\" Track fragment run\n    \"\"\"\n\n    def __init__(self, data_offset):\n        self.samples = []\n        self.data_offset = data_offset\n        self.use_comp_off = False  # Needs to be true for dash.js\n\n    def add_sample(self, duration, size, sync, offset):\n        self.samples.append(TRUNSample(duration, size, sync, offset))\n        if offset != 0:\n            self.use_comp_off = True\n\n    def set_data_offset(self, data_offset):\n        self.data_offset = data_offset\n\n    def __iter__(self):\n        # Flags:\n        #  data-offset     = 0x000001\n        #  sample_duration = 0x000100\n        #  sample_size     = 0x000200\n        #  sample_flags    = 0x000400\n        #  sample_time_off = 0x000800\n\n        flags = 0x000001 | 0x000100 | 0x000200 | 0x000400\n        if self.use_comp_off:\n            flags |= 0x000800\n\n        yield serialize_u32(self.size())\n        yield serialize_name(b'trun')\n        yield serialize_u32(flags)  # version and flags\n        yield serialize_u32(len(self.samples))  # sample_count\n        yield serialize_u32(self.data_offset)  # data_offset\n\n        for sample in self.samples:\n            yield serialize_u32(sample.duration)\n            yield serialize_u32(sample.size)\n\n            # The following 32-bits are defined in 14496-12 8.8.3.1 + 8.6.4.3\n            # 4bits reserved (0)\n            # 2bits is_leading (0 = unknown)\n            # 2bits sample_depends_on (2 = I-picture or 1 = non-I-picture)\n            # 2bits sample_is_dependend_on (0 = unknown)\n            # 2bits has_redundancy (0 = unknown)\n            # 3bits sample_padding_value\n            # 1bit sample_is_non_sync_sample (0 or 1, match sync samples)\n            # 16bits sample_degradation_priority (0)\n            sync_flag = 0x02000000 if sample.sync else 0x01010000\n            yield serialize_u32(sync_flag)\n\n            if self.use_comp_off:\n                yield serialize_u32(sample.offset)\n\n    def size(self):\n        return 20 + len(self.samples) * (12 + (4 if self.use_comp_off else 0))\n\n\nclass MFHDBox(Box):\n    \"\"\" Movie fragment header\n    \"\"\"\n\n    def __init__(self, seq_no):\n        self.seq_no = seq_no\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'mfhd')\n        yield serialize_u32(0)  # version and flags\n        yield serialize_u32(self.seq_no)\n\n    def size(self):\n        return 16\n\n\nclass MDATBox(Box):\n    \"\"\" Media data container\n    \"\"\"\n\n    def __init__(self):\n        self.data = []\n\n    def add_data(self, data):\n        self.data.append(data)\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'mdat')\n\n        for value in self.data:\n            yield value\n\n    def size(self):\n        return sum((len(x) for x in self.data), 8)\n\n\nclass SAIZBox(Box):\n    \"\"\" Sample auxiliary information sizes\n    \"\"\"\n\n    def __init__(self, default_sample_info_size):\n        self.default_sample_info_size = default_sample_info_size\n        self.samples = []\n\n    def add_sample(self, sample_info_size):\n        self.samples.append(SAIZSample(sample_info_size))\n\n    def __iter__(self):\n        default_size = 0 if self.samples else self.default_sample_info_size\n        yield serialize_u32(self.size())\n        yield serialize_name(b'saiz')\n        yield serialize_u32(0x00)  # version and flags\n        yield serialize_u8(default_size)  # default_sample_info_size\n        yield serialize_u32(len(self.samples))  # sample_count\n\n        for sample in self.samples:\n            yield serialize_u8(sample.sample_info_size)\n\n    def size(self):\n        # 17 is the base size of the saiz box\n        return 17 + len(self.samples)\n\n\nclass SAIOBox(Box):\n    \"\"\" Sample auxiliary information offsets\n    \"\"\"\n\n    def __init__(self, offset):\n        self.offset = offset\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'saio')\n        yield serialize_u32(0x00)  # version and flags\n        yield serialize_u32(1)  # entry_count\n        yield serialize_u32(self.offset)  # offset\n\n    def size(self):\n        return 20\n\n\nclass SBGPBox(Box):\n    \"\"\" Sample to Group box\n    \"\"\"\n\n    def __init__(self):\n        self.groups = []\n\n    def add_group(self, sample_count, group_description_index):\n        self.groups.append(SBGPGroup(sample_count, group_description_index))\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'sbgp')\n        yield serialize_u32(0x00)  # version and flags\n        yield serialize_u32(len(self.groups))  # entry_count\n\n        for group in self.groups:\n            yield serialize_u32(group.sample_count)\n            yield serialize_u32(group.group_description_index)\n\n    def size(self):\n        # 16 is the base size of the 'sbgp' box\n        # each entry is 8 bytes long\n        return 16 + 8 * len(self.groups)\n\n\nclass SGPDBox(Box):\n    \"\"\" Sample group definition box\n    \"\"\"\n\n    def __init__(self, grouping_type):\n        self.grouping_type = grouping_type\n        self.groups = []\n\n    def add_group(self, is_encrypted, iv_size, kid):\n        self.groups.append(SGPDGroup(is_encrypted, iv_size, kid))\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'sgpd')\n        yield serialize_u32(0x00)  # version and flags\n        yield serialize_u32(self.grouping_type)  # grouping_type\n        yield serialize_u32(len(self.groups))  # entry_count\n\n        for group in self.groups:\n            yield serialize_u8(0)\n            yield serialize_u8(0)\n            yield serialize_u8(1 if group.is_encrypted else 0)\n            yield serialize_u8(group.iv_size)\n            yield serialize_string(group.kid)\n\n    def size(self):\n        # 20 is the base size of the 'sgpd' box\n        # each item is 20 bytes long\n        return 20 + 20 * len(self.groups)\n\n\nclass SENCBox(Box):\n    \"\"\" Sample specific encryption data\n    \"\"\"\n    _subsample_count_size = 2\n    _subsample_size = 6\n\n    def __init__(self, iv_size):\n        self.iv_size = iv_size\n        self.flags = 0\n        self.samples = []\n\n        # self.sz is the size of the box\n        # Base size of the 'senc' box is 16 bytes\n        self.sz = 16\n\n    def add_sample(self, iv, subsamples):\n        self.samples.append(SENCSample(iv, subsamples))\n        self.sz += self.iv_size\n\n        if subsamples:\n            self.flags = 0x000002\n            self.sz += (self._subsample_count_size +\n                        len(subsamples) * self._subsample_size)\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'senc')\n        yield serialize_u32(self.flags)  # version and flags\n        yield serialize_u32(len(self.samples))  # sample_count\n\n        for sample in self.samples:\n            yield serialize_u64(sample.iv)  # iv\n\n            if self.flags == 0x000002:\n                yield serialize_u16(len(sample.subsamples))\n                for subsample in sample.subsamples:\n                    yield serialize_u16(subsample.clear_bytes)\n                    yield serialize_u32(subsample.enc_bytes)\n\n    def size(self):\n        return self.sz\n\n\nclass SIDXBox(Box):\n    \"\"\" Segment Index Box, 8.16.3\n    \"\"\"\n\n    def __init__(self, reference_id, timescale, earliest_presentation_time,\n                 version=0):\n        self.reference_id = reference_id\n        self.timescale = timescale\n        self.earliest_presentation_time = earliest_presentation_time\n        self.version = version\n        self.first_offset = 0  # assume sidx is directly before first media seg\n        self.sz = 32 + 8 * self.version  # 8 bytes extra if version == 1\n        self.references = []\n\n    def add_reference(self, referenced_size, subsegment_duration,\n                      reference_type=0, starts_with_sap=1, sap_type=1,\n                      sap_delta_time=0):\n        self.references.append(SIDXReference(reference_type,\n                                             referenced_size,\n                                             subsegment_duration,\n                                             starts_with_sap,\n                                             sap_type,\n                                             sap_delta_time))\n        self.sz += 12\n\n    def __iter__(self):\n        yield serialize_u32(self.size())\n        yield serialize_name(b'sidx')\n        yield serialize_u8(self.version)  # version\n        yield serialize_u16(0)            # flags\n        yield serialize_u8(0)             # flags\n        yield serialize_u32(self.reference_id)\n        yield serialize_u32(self.timescale)\n        if self.version == 0:\n            yield serialize_u32(self.earliest_presentation_time)\n            yield serialize_u32(self.first_offset)\n        else:\n            yield serialize_u64(self.earliest_presentation_time)\n            yield serialize_u64(self.first_offset)\n        yield serialize_u16(0)            # reserved\n        yield serialize_u16(len(self.references))\n\n        for ref in self.references:\n            yield serialize_u32((ref.reference_type << 31) +\n                                ref.referenced_size)\n            yield serialize_u32(ref.subsegment_duration)\n            yield serialize_u32((ref.starts_with_SAP << 31) +\n                                (ref.SAP_type << 28) +\n                                ref.SAP_delta_time)\n\n    def size(self):\n        return self.sz\n\n\ndef create_empty_sidx(track_id, timescale, no_segments):\n    # Will create a \"placeholder\" in order to get correct sidx size.\n    # References can be set later on\n    sidx = SIDXBox(track_id, timescale, 0, 1)\n    for _ in range(0, no_segments):\n        sidx.add_reference(0, 0)\n    return sidx\n\n\ndef create_stsd_h264(media_type, width, height, avcc):\n    pasp = PASPBox()\n    visual = VisualSampleEntry(media_type, width, height, avcc, pasp)\n\n    # sinf\n    # TODO\n\n    stsd = STSDBox()\n    stsd.add_box(visual)\n    return stsd\n\n\ndef create_stsd_hevc(media_type, width, height, hvcc):\n    pasp = PASPBox()\n    visual = VisualSampleEntry(media_type, width, height, hvcc, pasp)\n\n    # sinf\n    # TODO\n\n    stsd = STSDBox()\n    stsd.add_box(visual)\n    return stsd\n\n\ndef create_stsd_mp4a(media_type,\n                     num_channels,\n                     sample_size,\n                     sample_rate,\n                     esds):\n\n    audio = AudioSampleEntry(media_type,\n                             num_channels,\n                             sample_size,\n                             sample_rate,\n                             esds)\n\n    # sinf\n    # TODO\n\n    stsd = STSDBox()\n    stsd.add_box(audio)\n    return stsd\n\n\ndef create_stsd_ac3(media_type,\n                    num_channels,\n                    sample_size,\n                    sample_rate,\n                    specific_box):\n\n    audio = AudioSampleEntry(media_type,\n                             num_channels,\n                             sample_size,\n                             sample_rate,\n                             specific_box)\n\n    stsd = STSDBox()\n    stsd.add_box(audio)\n    return stsd\n\n\ndef create_stsd_mp4s():\n    \"\"\"Create stsd for WebVTT subtitles.\"\"\"\n    stsd = STSDBox()\n    wvtt_box = WVTTSampleEntryBox()\n    stsd.add_box(wvtt_box)\n    return stsd\n\n\ndef create_minf_box(stsd, media_header_box):\n    minf = MINFBox()\n\n    # mdhd\n    minf.add_box(media_header_box)\n\n    # dinf / dref\n    dinf = DINFBox()\n    dref = DREFBox()\n    dinf.add_box(dref)\n    minf.add_box(dinf)\n\n    # stbl\n    stbl = STBLBox()\n    stbl.add_box(stsd)\n    stbl.add_box(STTSBox())\n    stbl.add_box(STSCBox())\n    stbl.add_box(STSZBox())\n    stbl.add_box(STCOBox())\n    minf.add_box(stbl)\n\n    return minf\n\n\ndef create_box_mdia(media_type,\n                    handler,\n                    timescale,\n                    duration,\n                    language,\n                    stsd,\n                    media_header_box):\n    mdia = MDIABox()\n\n    # mdhd\n    mdhd = MDHDBox(timescale, duration, language)\n    mdia.add_box(mdhd)\n\n    # hdlr\n    hdlr = HDLRBox(media_type, handler)\n    mdia.add_box(hdlr)\n\n    # minf\n    minf = create_minf_box(stsd, media_header_box)\n\n    mdia.add_box(minf)\n\n    return mdia\n\n\ndef create_box_trak_h264(h264_info):\n    trak = TRAKBox()\n    duration = h264_info.duration * MOVIE_TIMESCALE\n    tkhd = TKHDBox(h264_info.track_id,\n                   int(duration / h264_info.timescale),\n                   0, h264_info.width, h264_info.height)\n    trak.add_box(tkhd)\n\n    # avcc\n    avcc = AVCCBox(h264_info.profile_ind,\n                   h264_info.profile_compat,\n                   h264_info.level_ind,\n                   h264_info.sps,\n                   h264_info.pps)\n\n    # stsd\n    stsd = create_stsd_h264(b'avc1',\n                            h264_info.width,\n                            h264_info.height,\n                            avcc)\n\n    # vmhd\n    vmhd = VMHDBox()\n\n    lang = 'und'\n\n    # mdia\n    mdia = create_box_mdia(b'vide',\n                           b'Edgeware Video Media Handler',\n                           h264_info.timescale,\n                           h264_info.duration,\n                           lang,\n                           stsd,\n                           vmhd)\n    trak.add_box(mdia)\n\n    return trak\n\n\ndef create_box_trak_hevc(hevc_info):\n    trak = TRAKBox()\n    duration = hevc_info.duration * MOVIE_TIMESCALE\n    tkhd = TKHDBox(hevc_info.track_id,\n                   int(duration / hevc_info.timescale),\n                   0, hevc_info.width, hevc_info.height)\n    trak.add_box(tkhd)\n\n    # hvcc\n    hvcc = HVCCBox(hevc_info.hvcc_data,\n                   hevc_info.vps,\n                   hevc_info.sps,\n                   hevc_info.pps)\n\n    # stsd\n    stsd = create_stsd_hevc(b'hev1',\n                            hevc_info.width,\n                            hevc_info.height,\n                            hvcc)\n\n    # vmhd\n    vmhd = VMHDBox()\n\n    lang = 'und'\n\n    # mdia\n    mdia = create_box_mdia(b'vide',\n                           b'Edgeware Video Media Handler',\n                           hevc_info.timescale,\n                           hevc_info.duration,\n                           lang,\n                           stsd,\n                           vmhd)\n    trak.add_box(mdia)\n\n    return trak\n\n\ndef create_box_trak_mp4a(mp4a_info):\n    volume = 0x100\n    trak = TRAKBox()\n    duration = mp4a_info.duration * MOVIE_TIMESCALE\n    tkhd = TKHDBox(mp4a_info.track_id,\n                   int(duration / mp4a_info.timescale),\n                   volume, 0, 0)\n    trak.add_box(tkhd)\n\n    # stsd\n    stsd = create_stsd_mp4a(b'mp4a',\n                            mp4a_info.num_channels,\n                            mp4a_info.sample_size,\n                            mp4a_info.sample_rate,\n                            mp4a_info.esds)\n\n    # smhd\n    smhd = SMHDBox()\n\n    # mdia\n    mdia = create_box_mdia(b'soun',\n                           b'Edgeware Audio Media Handler',\n                           mp4a_info.timescale,\n                           mp4a_info.duration,\n                           mp4a_info.lang,\n                           stsd,\n                           smhd)\n    trak.add_box(mdia)\n\n    return trak\n\n\ndef create_box_trak_ac3(ac3_info):\n    volume = 0x100\n    trak = TRAKBox()\n    duration = ac3_info.duration * MOVIE_TIMESCALE\n    tkhd = TKHDBox(ac3_info.track_id,\n                   int(duration / ac3_info.timescale),\n                   volume, 0, 0)\n    trak.add_box(tkhd)\n\n    if ac3_info.codec == 'ac-3':\n        media_type = b'ac-3'\n    elif ac3_info.codec == 'ec-3' or ac3_info.codec == 'ec+3':\n        media_type = b'ec-3'\n    else:\n        raise ValueError(f\"Invalid codec {ac3_info.codec}\")\n\n    # stsd\n    stsd = create_stsd_ac3(media_type,\n                           ac3_info.num_channels,\n                           ac3_info.sample_size,\n                           ac3_info.sample_rate,\n                           ac3_info.specific_box)\n\n    # smhd\n    smhd = SMHDBox()\n\n    # mdia\n    mdia = create_box_mdia(b'soun',\n                           b'Edgeware Audio Media Handler',\n                           ac3_info.timescale,\n                           ac3_info.duration,\n                           ac3_info.lang,\n                           stsd,\n                           smhd)\n    trak.add_box(mdia)\n\n    return trak\n\n\ndef create_box_trak_mp4s(mp4s_info):\n    trak = TRAKBox()\n    duration = mp4s_info.duration * MOVIE_TIMESCALE\n    tkhd = TKHDBox(mp4s_info.track_id,\n                   int(duration / mp4s_info.timescale),\n                   0, 0, 0)\n    trak.add_box(tkhd)\n\n    # stsd\n    stsd = create_stsd_mp4s()\n\n    # nmhd\n    nmhd = NMHDBox()\n\n    # mdia\n    mdia = create_box_mdia(b'text',\n                           b'Edgeware Subtitle Media Handler',\n                           mp4s_info.timescale,\n                           mp4s_info.duration,\n                           mp4s_info.lang,\n                           stsd,\n                           nmhd)\n    trak.add_box(mdia)\n\n    return trak\n\n\nclass MediaInfo:\n\n    def __init__(self, track_id, timescale, duration):\n        self.track_id = track_id\n        self.timescale = timescale\n        self.duration = duration\n\n\nclass H264Info(MediaInfo):\n\n    def __init__(self, track_id, timescale, duration,\n                 width, height,\n                 profile_ind, profile_compat, level_ind,\n                 sps, pps):\n        super().__init__(track_id, timescale, duration)\n        self.width = width\n        self.height = height\n        self.profile_ind = profile_ind\n        self.profile_compat = profile_compat\n        self.level_ind = level_ind\n        self.sps = sps\n        self.pps = pps\n\n\nclass HVCCData:\n\n    def __init__(self):\n        self.general_profile_space = 0\n        self.general_tier_flag = 0\n        self.general_profile_idc = 0\n        self.general_profile_compatibility_flags = 0\n        self.general_constraint_indicator_flags = 0\n        self.general_level_idc = 0\n        self.min_spatial_segmentation_idc = 0  # TODO: set this\n        self.parallelism_type = 0  # TODO: set this\n\n        self.chroma_format_idc = 0\n        self.width = 0\n        self.height = 0\n        self.bit_depth_luma_minus8 = 0\n        self.bit_depth_chroma_minus8 = 0\n\n\nclass HEVCInfo(MediaInfo):\n\n    def __init__(self, track_id, timescale, duration,\n                 width, height,\n                 vps, sps, pps,\n                 hvcc_data):\n        super().__init__(track_id, timescale, duration)\n        self.width = width\n        self.height = height\n        self.vps = vps\n        self.sps = sps\n        self.pps = pps\n        self.hvcc_data = hvcc_data\n\n\nclass MP4AInfo(MediaInfo):\n\n    def __init__(self, track_id, timescale, duration,\n                 num_channels, sample_size, sample_rate,\n                 esds, dec_cfg, lang='und'):\n        super().__init__(track_id, timescale, duration)\n        self.num_channels = num_channels\n        self.sample_size = sample_size\n        self.sample_rate = sample_rate\n        self.esds = esds\n        self.dec_cfg = dec_cfg\n        self.lang = lang\n\n\nclass MP4SInfo(MediaInfo):\n\n    def __init__(self, track_id, timescale, duration, lang='und'):\n        super().__init__(track_id, timescale, duration)\n        self.lang = lang\n\n\nclass AC3Info(MediaInfo):\n    \"\"\"Information needed to create and ac-3, ec-3 box.\n    The specific_box should be a full binary dac3 or dec3 box.\"\"\"\n\n    def __init__(self, codec, track_id, timescale, duration,\n                 num_channels, sample_size, sample_rate,\n                 specific_box, lang='und'):\n        super().__init__(track_id, timescale, duration)\n        self.codec = codec\n        self.num_channels = num_channels\n        self.sample_size = sample_size\n        self.sample_rate = sample_rate\n        self.specific_box = specific_box\n        self.lang = lang\n\n\ndef create_moov_h264(h264_info):\n    moov = MOOVBox()\n\n    # mvhd\n    scale_from = h264_info.timescale\n    scale_to = MOVIE_TIMESCALE\n    dur_media = int((h264_info.duration * scale_to) / scale_from)\n    mvhd = MVHDBox(MOVIE_TIMESCALE, dur_media, h264_info.track_id + 1)\n    moov.add_box(mvhd)\n\n    # trak\n    trak = create_box_trak_h264(h264_info)\n    moov.add_box(trak)\n\n    # mvex/trex\n    trex = TREXBox(h264_info.track_id)\n    mvex = MVEXBox()\n    mvex.add_box(trex)\n    moov.add_box(mvex)\n\n    return moov\n\n\ndef create_moov_hevc(hevc_info):\n    moov = MOOVBox()\n\n    # mvhd\n    scale_from = hevc_info.timescale\n    scale_to = MOVIE_TIMESCALE\n    dur_media = int((hevc_info.duration * scale_to) / scale_from)\n    mvhd = MVHDBox(MOVIE_TIMESCALE, dur_media, hevc_info.track_id + 1)\n    moov.add_box(mvhd)\n\n    # trak\n    trak = create_box_trak_hevc(hevc_info)\n    moov.add_box(trak)\n\n    # mvex/trex\n    trex = TREXBox(hevc_info.track_id)\n    mvex = MVEXBox()\n    mvex.add_box(trex)\n    moov.add_box(mvex)\n\n    return moov\n\n\ndef create_moov_mp4a(mp4a_info):\n    moov = MOOVBox()\n\n    # mvhd\n    scale_from = mp4a_info.timescale\n    scale_to = MOVIE_TIMESCALE\n    dur_media = int((mp4a_info.duration * scale_to) / scale_from)\n    mvhd = MVHDBox(MOVIE_TIMESCALE, dur_media, mp4a_info.track_id + 1)\n    moov.add_box(mvhd)\n\n    # mvex/trex\n    trex = TREXBox(mp4a_info.track_id)\n    mvex = MVEXBox()\n    mvex.add_box(trex)\n    moov.add_box(mvex)\n\n    # trak\n    trak = create_box_trak_mp4a(mp4a_info)\n    moov.add_box(trak)\n\n    return moov\n\n\ndef create_moov_ac3(ac3_info):\n    moov = MOOVBox()\n\n    # mvhd\n    scale_from = ac3_info.timescale\n    scale_to = MOVIE_TIMESCALE\n    dur_media = int((ac3_info.duration * scale_to) / scale_from)\n    mvhd = MVHDBox(MOVIE_TIMESCALE, dur_media, ac3_info.track_id + 1)\n    moov.add_box(mvhd)\n\n    # mvex/trex\n    trex = TREXBox(ac3_info.track_id)\n    mvex = MVEXBox()\n    mvex.add_box(trex)\n    moov.add_box(mvex)\n\n    # trak\n    trak = create_box_trak_ac3(ac3_info)\n    moov.add_box(trak)\n\n    return moov\n\n\ndef create_moov_mp4s(info):\n    \"\"\"Create subtitle movie box\n    :param info: mp4s_info\n    \"\"\"\n\n    moov = MOOVBox()\n\n    # mvhd\n    scale_from = info.timescale\n    scale_to = MOVIE_TIMESCALE\n    dur_media = int((info.duration * scale_to) / scale_from)\n    mvhd = MVHDBox(MOVIE_TIMESCALE, dur_media, info.track_id + 1)\n    moov.add_box(mvhd)\n\n    # mvex/trex\n    trex = TREXBox(info.track_id)\n    mvex = MVEXBox()\n    mvex.add_box(trex)\n    moov.add_box(mvex)\n\n    # trak\n    trak = create_box_trak_mp4s(info)\n    moov.add_box(trak)\n\n    return moov\n\n\ndef create_moof(segment_no, track_id, samples, encryptor=None):\n    mfhd = MFHDBox(segment_no)\n    moof = MOOFBox()\n    moof.add_box(mfhd)\n\n    saiz = None\n    senc = None\n\n    if encryptor:\n        sample_aux_data = encryptor.encrypt(samples)\n        default_sample_info_size = 8\n        saiz = SAIZBox(default_sample_info_size)\n        senc = SENCBox(default_sample_info_size)\n        for sample in sample_aux_data:\n            # print(hex(sample.iv))\n            senc.add_sample(sample.iv, sample.subsamples)\n\n    traf = TRAFBox()\n    moof.add_box(traf)\n\n    # tfhd\n    tfhd = TFHDBox(track_id)\n    traf.add_box(tfhd)\n\n    # tfdt\n    tfdt = TFDTBox(samples[0].time)\n    traf.add_box(tfdt)\n\n    # encryption boxes\n    if saiz:\n        traf.add_box(saiz)\n        # 16 bytes senc header and 20 bytes saio\n        saio = SAIOBox(moof.size() + 16 + 20)\n        traf.add_box(saio)\n\n    if senc:\n        traf.add_box(senc)\n\n    # Add samples\n    trun = TRUNBox(0)\n    for sample in samples:\n        trun.add_sample(sample.duration,\n                        sample.size,\n                        sample.sync,\n                        sample.time_offset)\n    traf.add_box(trun)\n\n    # set data_offset in trun\n    moof_size = moof.size()\n    moof_header_size = 8\n    trun.set_data_offset(moof_size + moof_header_size)\n\n    return moof\n\n\ndef create_mdat(samples):\n    mdat = MDATBox()\n    for sample in samples:\n        mdat.add_data(sample.data)\n    return mdat\n\n\ndef create_ftyp():\n    ftyp = FTYPBox(b'cmfc', 0, [b'iso9', b'dash'])\n    return ftyp\n\n\ndef create_styp():\n    ftyp = FTYPBox(b'cmfs', 0, [b'iso9', b'dash'], styp=True)\n    return ftyp\n"
  },
  {
    "path": "dashlivesim/dashlib/chunker.py",
    "content": "\"\"\"Chunkify an ISOBMFF segment. Either as library or command line tool.\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2017, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nfrom time import time, sleep\n\nfrom dashlivesim.dashlib.mp4 import mp4\nfrom dashlivesim.dashlib.boxes import create_moof, create_mdat, Sample\n\n\ndef decode_fragment(data, trex):\n    \"Extract samples from a segment.\"\n    root = mp4(data)\n    moof = root.find(b'moof')\n    tfhd = moof.find(b'traf.tfhd')\n    tfdt = moof.find(b'traf.tfdt')\n    trun = moof.find(b'traf.trun')\n\n    base_data_offset = tfhd.base_data_offset if tfhd.has_base_data_offset else moof.offset\n    data_offset = trun.data_offset if trun.has_data_offset else 0\n    base_media_decode_time = tfdt.decode_time\n\n    t0, t1 = base_media_decode_time, base_media_decode_time\n    begin, end = 0, 0\n    default_sample_duration = (tfhd.default_sample_duration if tfhd.has_default_sample_duration else\n                               trex.default_sample_duration)\n    default_sample_size = (tfhd.default_sample_size if tfhd.has_default_sample_size else\n                           trex.default_sample_size)\n    default_sample_flags = (tfhd.default_sample_flags if tfhd.has_default_sample_flags else\n                            trex.default_sample_flags)\n    for entry in map(trun.sample_entry, range(trun.sample_count)):\n        duration = entry['duration'] if trun.has_sample_duration else default_sample_duration\n        size = entry['size'] if trun.has_sample_size else default_sample_size\n        flags = entry['flags'] if trun.has_sample_flags else default_sample_flags\n        time_offset = entry['time_offset'] if trun.has_sample_composition_time_offset else 0\n        begin, end = end, end + size\n        data = root.fmap[base_data_offset+data_offset:][begin:end]\n        t0, t1 = t1, t1 + duration\n        yield Sample(data, t0, duration, flags, time_offset)\n\n\ndef partition(samples, duration):\n    d0, d1 = 0, duration\n    part = []\n    for sample in samples:\n        if d0 >= d1:\n            d1 += duration\n            yield part\n            part = []\n        d0 += sample.duration\n        part.append(sample)\n    if part:\n        yield part\n\n\ndef encode_chunked(seqno, track_id, samples, duration):\n    for chunk_samples in partition(samples, duration):\n        yield (create_moof(seqno, track_id, chunk_samples, None), create_mdat(chunk_samples))\n\n\ndef chunk(data, duration, trex_box):\n    \"Decode data into a segment and chunk it given duration and trex_box data.\"\n    root = mp4(data)\n    mfhd = root.find(b'moof.mfhd')\n    tfhd = root.find(b'moof.traf.tfhd')\n\n    seqno = mfhd.seqno\n    track_id = tfhd.track_id\n\n    fragments = encode_chunked(seqno,\n                               track_id,\n                               decode_fragment(data, trex_box),\n                               duration)\n    chunks = []\n    for moof, mdat in fragments:\n        chunks.append(moof.serialize() + mdat.serialize())\n    return chunks\n\n\ndef simulate_continuous_production(segment, segment_start, chunk_duration, now_float):\n    \"Simulate continuous production by producing as many chunks as time allows.\"\n\n    # print('Segment requested at %fs' % now_float)\n    for i, chunk in enumerate(segment, start=1):\n        chunk_availability_time = segment_start + i * chunk_duration\n        time_until_available = chunk_availability_time - now_float\n        if time_until_available > 0:\n            now_float = time()  # Update time\n            time_until_available = chunk_availability_time - now_float\n            #print('Chunk %d was delayed by %fs, until %fs' % (i, time_until_available, chunk_availability_time))\n            if time_until_available > 0:\n                sleep(time_until_available)\n                #print('Chunk %d was delayed by %fs, until %fs' % (i, time_until_available, chunk_availability_time))\n        yield chunk\n\n\nif __name__ == '__main__':\n    from argparse import ArgumentParser\n\n    parser = ArgumentParser(description='Repackage a media segment to chunked '\n                                        'segment to stdout')\n    parser.add_argument('duration', type=int, nargs=1, help='Chunk duration in track timescale.')\n    parser.add_argument('init', type=str,  help='Initialization segment containing track header.')\n    parser.add_argument('media', type=str,  help='Media segment to repackage.')\n    parser.add_argument(\"outfile\", type=str, help='Output media segment.')\n\n    args = parser.parse_args()\n    duration = args.duration[0]\n    init = open(args.init, 'rb').read()\n    media = open(args.media, 'rb').read()\n\n    with open(args.outfile, 'wb') as ofh:\n        for chunk_data in chunk(media, duration, init_data=init):\n            ofh.write(chunk_data)\n            ofh.flush()\n"
  },
  {
    "path": "dashlivesim/dashlib/configprocessor.py",
    "content": "\"\"\"Get config depending on url. The URL specifies content but can also have parameters.\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\n\nfrom os.path import join, splitext\nfrom collections import namedtuple\nimport configparser\n\nfrom dashlivesim.dashlib.moduloperiod import ModuloPeriod\n\nDEFAULT_AVAILABILITY_STARTTIME_IN_S = 0  # Jan 1 1970 00:00 UTC\nDEFAULT_AVAILABILITY_TIME_OFFSET_IN_S = 0\nDEFAULT_TIMESHIFT_BUFFER_DEPTH_IN_SECS = 300\nDEFAULT_SHORT_MINIMUM_UPDATE_PERIOD_IN_S = 10\n\nMUX_DIVIDER = \"__\"  # Multiplexed representations can be written as A__V\n\nSEGTIMEFORMAT = 'HHII'  # Format for segment durations and repeatcount (nr, repeat, start, duration)\nSegTimeEntry = namedtuple('SegTimeEntry', ['start_nr', 'repeats', 'start_time', 'duration'])\n\n\nclass ConfigProcessorError(Exception):\n    \"Generic error for DASH ConfigProcessor.\"\n    pass\n\n\ndef quantize(number, step):\n    \"Quantize number to a multiple of step.\"\n    return (int(number)//step)*step\n\n\nclass Config(object):\n    \"Holds config from both url parts and config file for content.\"\n    # pylint: disable=too-many-instance-attributes\n\n    def __init__(self, vod_cfg_dir, base_url=None):\n\n        self.availability_start_time_in_s = DEFAULT_AVAILABILITY_STARTTIME_IN_S\n        self.availability_time_offset_in_s = DEFAULT_AVAILABILITY_TIME_OFFSET_IN_S\n        self.availability_time_complete = True\n        self.suggested_presentation_delay_in_s = None  # Not set\n        self.availability_end_time = None\n        self.media_presentation_duration = None\n        self.timeshift_buffer_depth_in_s = None\n        self.minimum_update_period_in_s = None\n        self.chunk_duration_in_s = None\n        self.modulo_period = None\n        self.last_segment_numbers = []  # The last segment number in every period.\n        self.init_seg_avail_offset = 0  # The number of secs before AST that one can fetch the init segments\n        self.tfdt32_flag = False  # Restart every 3 hours make tfdt fit into 32 bits.\n        self.cont = False  # Continuous update of MPD AST and seg_nr.\n        self.periods_per_hour = -1  # If > 0, generates that many periods per hour. If 0, only one offset period.\n        self.xlink_periods_per_hour = -1  # Number of periods per hour that are accessed via xlink.\n        self.etp_periods_per_hour = -1  # Number of periods per hour that are accessed via xlink.\n        self.etp_duration = -1  # Duration of the early-terminated period.\n        self.insert_ad = -1  # Number of periods per hour that are accessed via xlink.\n        self.mpd_callback = -1  # Number of periods per hour that have mpd callback events.\n        self.cont_multiperiod = False  # This flag should only be used when periods_per_hour is set\n        self.seg_timeline = False  # This flag is only true when there is /segtimeline_1/ in the URL\n        self.seg_timeline_nr = False  # This flag is only true when there is\n        # /segtimelinenr_1/ in the URL\n        self.multi_url = []  # If not empty, give multiple URLs in the BaseURL element\n        self.period_offset = -1  # Make one period with an offset compared to ast\n        self.scte35_per_minute = 0  # Number of 10s ads per minute. Maximum 3\n        self.utc_timing_methods = []\n        self.start_nr = 0\n        self.content_name = None\n        self.base_url = base_url\n        self.rel_path = None\n        self.filename = None\n        self.reps = None  # An array of representations with id, content_type, timescale (only > 1 if muxed)\n        self.media_data = None  # A dictionary with timescales and paths to segment durations\n        self.ext = None  # File extension\n        self.seg_duration = None\n        self.vod_first_segment_in_loop = None\n        self.vod_nr_segments_in_loop = 0\n        self.vod_default_tsbd_secs = 0\n        self.publish_time = None\n        self.vod_cfg_dir = vod_cfg_dir\n        self.vod_wrap_seconds = None\n        self.add_location = False\n        self.start_time = None\n        self.stop_time = None\n        self.timeoffset = None\n        self.insert_sidx = False\n        self.segtimelineloss = False  # This flag is true only when there is /segtimelineloss_1/\n        self.emsg_last_seg = False\n\n    def __str__(self):\n        lines = [\"%s=%s\" % (k, v) for (k, v) in self.__dict__.items() if not k.startswith(\"_\")]\n        lines.sort()\n        return \"<Config>:\\n\" + \"\\n\".join(lines)\n\n    def update_with_filedata(self, url_parts, url_pos):\n        \"Find the content_name, file_name, and representations (if muxed as signalled by MUX_DIVIDER).\"\n        self.content_name = url_parts[url_pos]\n        self.base_url += \"/\".join(url_parts[:url_pos+1]) + \"/\"\n        rel_path_parts = url_parts[url_pos+1:-1]\n        self.rel_path = \"/\".join(rel_path_parts)\n        self.filename = url_parts[-1]\n        self.ext = splitext(self.filename)[1]\n\n    def update_with_reps(self, vod_cfg, url_parts, url_pos):\n        \"Update config with representations and their data.\"\n        self.reps = []\n        if len(url_parts) > url_pos + 2:  # More than just a manifest\n            reps = url_parts[-2].split(MUX_DIVIDER)\n            for rep in reps:\n                content_type = vod_cfg.content_type_for_rep(rep)\n                timescale = vod_cfg.media_data[content_type]['timescale']\n                rep_data = {'id': rep, 'content_type': content_type, 'timescale': timescale}\n                self.reps.append(rep_data)\n\n    def update_with_vodcfg(self, vod_cfg):\n        \"Update config with data from VoD content.\"\n        if self.timeshift_buffer_depth_in_s is None:\n            self.timeshift_buffer_depth_in_s = vod_cfg.default_tsbd_secs\n        self.vod_first_segment_in_loop = vod_cfg.first_segment_in_loop\n        self.vod_nr_segments_in_loop = vod_cfg.nr_segments_in_loop\n        self.media_data = vod_cfg.media_data\n        self.seg_duration = vod_cfg.segment_duration_s\n        self.vod_wrap_seconds = vod_cfg.segment_duration_s * vod_cfg.nr_segments_in_loop\n\n    def update_for_tfdt32(self, now_int):\n        \"Set MPD values for 32-bit tfdt (reset session every 3 hours).\"\n        self.availability_start_time_in_s = quantize(now_int, 10800)\n        self.availability_end_time = self.availability_start_time_in_s + 10800\n        self.media_presentation_duration = 10800\n        self.minimum_update_period_in_s = 10800//2\n\n    def update_for_cont_update(self, now_int):\n        \"Set values for case of continuous MPD updates (3hours session).\"\n        seg_dur = self.seg_duration\n        self.availability_start_time_in_s = quantize(now_int - seg_dur, seg_dur)\n        self.availability_end_time = self.availability_start_time_in_s + 10800\n        self.media_presentation_duration = 10800\n        self.minimum_update_period_in_s = 10800\n\n    def update_with_modulo_period(self, modulo_period, seg_dur):\n        \"Update cfg data according to a modulo period.\"\n        self.minimum_update_period_in_s = modulo_period.minimum_update_period\n        self.availability_start_time_in_s = modulo_period.availability_start_time\n        self.media_presentation_duration = modulo_period.media_presentation_duration\n        self.availability_end_time = modulo_period.availability_end_time\n        self.last_segment_numbers.append(modulo_period.calc_last_segment_number(seg_dur))\n\n    def update_with_aet(self, now_int, availability_end_times, media_presentation_durations):\n        \"Find the proper availabilityEndTime and mediaPresentation duration for now and set in cfg.\"\n        end_time = None\n        media_presentation_duration = None\n        if len(availability_end_times) > 0:\n            end_time = availability_end_times[-1]\n            for aet, media_pre_dur in zip(availability_end_times[::-1], media_presentation_durations[::-1]):\n                if now_int > aet - 2*self.minimum_update_period_in_s:\n                    break\n                end_time = aet\n                media_presentation_duration = media_pre_dur\n        if end_time is not None:\n            self.availability_end_time = end_time\n            self.media_presentation_duration = media_presentation_duration\n\n    def process_start_time(self, start_time, durations, now_int, stop_time):\n        \"Process start_time and durations and set appropriate values.\"\n        self.availability_start_time_in_s = quantize(start_time, self.seg_duration)\n        self.start_time = self.availability_start_time_in_s\n        if self.minimum_update_period_in_s is None:\n            self.minimum_update_period_in_s = DEFAULT_SHORT_MINIMUM_UPDATE_PERIOD_IN_S\n        if len(durations) > 0:\n            total_dur = 0\n            availability_end_times = []\n            media_presentation_durations = []\n            for dur in durations:\n                total_dur += dur\n                end_time = quantize(start_time + total_dur, self.seg_duration)\n                availability_end_times.append(end_time)\n                media_presentation_durations.append(total_dur)\n            last_segment_number = (end_time-self.availability_start_time_in_s)//self.seg_duration - 1\n            self.last_segment_numbers.append(last_segment_number)\n            self.update_with_aet(now_int, availability_end_times, media_presentation_durations)\n        if stop_time is not None:\n            self.stop_time = quantize(stop_time + 0.999 * self.seg_duration,\n                                      self.seg_duration)\n            self.media_presentation_duration = self.stop_time - self.start_time\n            self.timeshift_buffer_depth_in_s = self.stop_time - self.start_time\n\n    def do_add_location(self):\n        \"Do add Location header to MPD. Use with relative start and stop time.\"\n        self.add_location = True\n\n    def update_publish_time(self, now_int):\n        \"\"\"The publishTime to be written in the MPD. Changed according to the rules:\n            if availabilityStartTimeInS == DEFAULT_AVAILABILITY_STARTTIME_IN_S.\"\"\"\n        if self.availability_start_time_in_s != DEFAULT_AVAILABILITY_STARTTIME_IN_S:\n            publish_time = quantize(now_int, self.minimum_update_period_in_s)\n        else:\n            publish_time = DEFAULT_AVAILABILITY_STARTTIME_IN_S\n        self.publish_time = publish_time\n\n    def set_timeoffset(self, new_offset):\n        self.timeoffset = new_offset\n\n    @property\n    def adjusted_start_number(self):\n        start_nr = self.start_nr\n        if self.timeoffset is not None:\n            start_nr += ((self.availability_start_time_in_s - self.timeoffset)\n                         // self.seg_duration)\n        return start_nr\n\n    def adjusted_pto(self, pto, timescale):\n        if self.timeoffset is not None:\n            return pto + (self.availability_start_time_in_s -\n                          self.timeoffset) * timescale\n        else:\n            return pto\n\n    @property\n    def stop_number(self):\n        if self.stop_time is None:\n            return None\n        start = self.adjusted_start_number\n        return start + self.media_presentation_duration // self.seg_duration\n\n\nclass VodConfig(object):\n    \"Configuration of the actual content.\"\n\n    def __init__(self):\n        self.good_versions = (\"1.0\", \"1.1\")\n        self.first_segment_in_loop = None\n        self.nr_segments_in_loop = 0\n        self.segment_duration_s = 0\n        self.segment_duration_ms = 0\n        self.default_tsbd_secs = DEFAULT_TIMESHIFT_BUFFER_DEPTH_IN_SECS\n        self.possible_media = ('video', 'audio', 'subtitles', 'image')\n        self.media_data = {}\n\n    def read_config(self, config_file):\n        \"Read VoD config data.\"\n        config = configparser.RawConfigParser()\n        config.read(config_file)\n        version = config.get('General', 'version')\n        if version not in self.good_versions:\n            raise ConfigProcessorError(\"Bad config file version: %s (should be in %s)\" %\n                                       (version, self.good_versions))\n        self.first_segment_in_loop = config.getint(\"Setup\", \"first_segment_in_loop\")\n        try:\n            self.segment_duration_s = config.getint(\"Setup\", \"segment_duration_s\")\n        except configparser.NoOptionError:\n            pass\n        try:\n            self.segment_duration_ms = config.getint(\"Setup\", \"segment_duration_ms\")\n        except configparser.NoOptionError:\n            pass\n        else:\n            if self.segment_duration_s != 0:\n                print(\"Both segment_duration_s and segment_duration_ms set\")\n            self.segment_duration_s = 0\n        if self.segment_duration_s == 0 and self.segment_duration_ms == 0:\n            raise ConfigProcessorError(\"Neither segment_duration_s or segment_duration_ms set\")\n        self.nr_segments_in_loop = config.getint(\"Setup\", \"nr_segments_in_loop\")\n        self.default_tsbd_secs = config.getint(\"Setup\", \"default_tsbd_secs\")\n        for media in self.possible_media:\n            try:\n                reps = config.get(media, \"representations\")\n                timescale = config.getint(media, \"timescale\")\n                representations = [rep.strip() for rep in reps.split(\",\")]\n                self.media_data[media] = {'timescale': timescale, 'representations': representations}\n                if version == \"1.1\":\n                    self.media_data[media]['total_duration'] = config.getint(media, \"total_duration\")\n                    self.media_data[media]['dat_file'] = config.get(media, 'dat_file')\n            except (configparser.NoOptionError, configparser.NoSectionError):\n                pass\n\n    # pylint: disable=dangerous-default-value\n\n    def write_config(self, config_file, data={}):\n        \"Write a config file for the analyzed content, that can then be used to serve it efficiently.\"\n        # Note that one needs to write in reverse order\n        config = configparser.RawConfigParser()\n        config.add_section('General')\n        config.set('General', 'version', '1.1')\n        config.add_section('Setup')\n        config.set('Setup', 'default_tsbd_secs', data.get('default_tsbd_secs', self.default_tsbd_secs))\n        config.set('Setup', 'segment_duration_s', data.get('segment_duration_s', self.segment_duration_s))\n        config.set('Setup', 'nr_segments_in_loop', data.get('nr_segments_in_loop', self.nr_segments_in_loop))\n        config.set('Setup', 'first_segment_in_loop', data.get('first_segment_in_loop', self.first_segment_in_loop))\n        for content_type in ('video', 'audio', 'subtitles'):\n            media_data = data.get('media_data', self.media_data)\n            if content_type in media_data:\n                config.add_section(content_type)\n                mdata = media_data[content_type]\n                config.set(content_type, 'representations', ','.join(mdata['representations']))\n                config.set(content_type, 'timescale', mdata['timescale'])\n                config.set(content_type, 'total_duration', mdata['totalDuration'])\n                config.set(content_type, 'dat_file', mdata['datFile'])\n        with open(config_file, 'w') as cfg_file:\n            config.write(cfg_file)\n\n    def content_type_for_rep(self, representation):\n        \"Find the ContentType for a representation.\"\n        for content_type in self.media_data.keys():\n            mdata = self.media_data[content_type]\n            if representation in mdata['representations']:\n                return content_type\n        return None\n\n\nclass ConfigProcessor(object):\n    \"Process the url and VoD config files and setup configuration.\"\n\n    url_cfg_keys = (\"start\", \"ast\", \"stop\", \"startrel\", \"stoprel\", \"dur\",\n                    \"timeoffset\", \"init\", \"tsbd\", \"mup\", \"modulo\", \"tfdt\",\n                    \"cont\", \"periods\", \"xlink\", \"etp\", \"etpDuration\",\n                    \"insertad\", \"mpdcallback\", \"continuous\", \"segtimeline\",\n                    \"segtimelinenr\", \"baseurl\", \"peroff\", \"scte35\", \"utc\",\n                    \"snr\", \"ato\", \"spd\", \"sidx\", \"segtimelineloss\",\n                    \"sts\", \"sid\", \"chunkdur\")\n\n    def __init__(self, vod_cfg_dir, base_url):\n        self.vod_cfg_dir = vod_cfg_dir\n        self.cfg = Config(vod_cfg_dir, base_url)\n\n    def getconfig(self):\n        \"Get the config object.\"\n        return self.cfg\n\n    def get_mpd_data(self):\n        \"Get data needed for generating the dynamic MPD.\"\n        mpd = {'segDuration': self.cfg.seg_duration,\n               'availability_start_time_in_s': self.cfg.availability_start_time_in_s,\n               'availability_time_offset_in_s':\n                   self.cfg.availability_time_offset_in_s,\n               'suggested_presentation_delay_in_s':\n                   self.cfg.suggested_presentation_delay_in_s,\n               'BaseURL': self.cfg.base_url,\n               'startNumber': None,\n               'periodsPerHour': self.cfg.periods_per_hour,\n               'xlinkPeriodsPerHour': self.cfg.xlink_periods_per_hour,\n               'etpPeriodsPerHour': self.cfg.etp_periods_per_hour,\n               'etpDuration': self.cfg.etp_duration,\n               'insertAd': self.cfg.insert_ad,\n               'mpdCallback': self.cfg.mpd_callback,\n               'continuous': self.cfg.cont_multiperiod,\n               'segtimeline': self.cfg.seg_timeline,\n               'segtimeline_nr': self.cfg.seg_timeline_nr,\n               'urls': self.cfg.multi_url,\n               'periodOffset': self.cfg.period_offset,\n               'publishTime': self.cfg.publish_time,\n               'mediaData': self.cfg.media_data,\n               'segtimelineloss': self.cfg.segtimelineloss}\n        if self.cfg.availability_end_time:\n            mpd['availabilityEndTime'] = self.cfg.availability_end_time\n        return mpd\n\n    def process_url(self, url_parts, now_int=0):\n        \"\"\"Extract config and calculate availabilityStartTimeInS and availabilityEndTime from URL.\"\"\"\n        # pylint: disable=too-many-branches, too-many-statements\n        start_time = None\n        stop_time = None\n        durations = []\n        timeoffset = None\n        cont_update_flag = False\n        modulo_period = None\n        cfg = self.cfg\n        add_location = False\n\n        url_pos = 0\n        for part in url_parts:  # Should be listed in self.configParts to make sure it works.\n            cfg_parts = part.split(\"_\", 1)\n            if cfg_parts[0] not in self.url_cfg_keys:  # Must handle content like testpic_2s\n                break\n            key, value = cfg_parts\n            if key == \"sts\":  # Non-used session_start_time\n                # session_start_time = int(value)\n                pass\n            elif key == \"sid\":  # Non-used session_id\n                # session_id = value\n                pass\n            elif key == \"start\" or key == \"ast\":  # Change availability start\n                # time in s.\n                start_time = int(value)\n            elif key == \"stop\":\n                stop_time = int(value)\n            elif key == \"startrel\":\n                start_time = now_int + int(value)\n                add_location = True\n            elif key == \"stoprel\":\n                stop_time = now_int + int(value)\n                add_location = True\n            elif key == \"dur\":  # Add a presentation duration for multiple periods\n                durations.append(int(value))\n            elif key == \"timeoffset\":\n                timeoffset = int(value)  # Time offset in seconds version epoch\n            elif key == \"init\":  # Make the init segment available earlier\n                cfg.init_seg_avail_offset = int(value)\n            elif key == \"tsbd\":\n                cfg.timeshift_buffer_depth_in_s = int(value)\n            elif key == \"mup\":  # Set the minimum update period (in s)\n                cfg.minimum_update_period_in_s = int(value)\n            elif key == \"modulo\":  # Make a number of time-limited sessions every hour\n                modulo_period = ModuloPeriod(int(value), now_int)\n            elif key == \"tfdt\":  # Use 32-bit tfdt (which means that AST must be more recent as well)\n                cfg.tfdt32_flag = True\n            elif key == \"cont\":  # Continuous update of MPD AST and seg_nr.\n                cont_update_flag = True\n            elif key == \"periods\":  # Make multiple periods\n                cfg.periods_per_hour = int(value)\n            elif key == \"xlink\":  # Make periods access via xlink.\n                cfg.xlink_periods_per_hour = int(value)\n            elif key == \"etp\":  # Make periods access via xlink.\n                cfg.etp_periods_per_hour = int(value)\n            elif key == \"etpDuration\":  # Add a presentation duration for multiple periods\n                cfg.etp_duration = int(value)\n            elif key == \"insertad\":  # Make periods access via xlink.\n                cfg.insert_ad = int(value)\n            elif key == \"mpdcallback\":  # Make periods access via xlink.\n                cfg.mpd_callback = int(value)\n            elif key == \"continuous\":  # Only valid when it's set to 1 and periods_per_hour is set\n                if int(value) == 1:\n                    cfg.cont_multiperiod = True\n            elif key == \"segtimeline\":  # Only valid when it's set to 1\n                if int(value) == 1:\n                    cfg.seg_timeline = True\n            elif key == \"segtimelinenr\":  # Only valid when it's set to 1\n                if int(value) == 1:\n                    cfg.seg_timeline_nr = True\n            elif key == \"baseurl\":  # Use multiple URLs, put all the configuration strings in multi_url\n                cfg.multi_url.append(value)\n            elif key == \"peroff\":  # Set the period offset\n                cfg.period_offset = int(value)\n            elif key == \"scte35\":  # Add SCTE-35 ad messages every minute\n                cfg.scte35_per_minute = int(value)\n            elif key == \"utc\":  # Get hyphen-separated list of utc-timing methods and make into list\n                cfg.utc_timing_methods = value.split(\"-\")\n            elif key == \"snr\":  # Segment startNumber\n                cfg.start_nr = self.interpret_start_nr(value)\n            elif key == \"ato\":  # availabilityTimeOffset\n                if value == \"inf\":\n                    cfg.availability_time_offset_in_s = -1  # Signal that the value is infinite\n                else:\n                    try:\n                        float(value)  # ignore the setting when the value is negative\n                        cfg.availability_time_offset_in_s = max(float(value), 0)\n                    except ValueError:  # wrong setting\n                        cfg.availability_time_offset_in_s = 0\n            elif key == \"spd\":  # suggestedPresentationDelay\n                cfg.suggested_presentation_delay_in_s = int(value)\n            elif key == \"sidx\":  # Insert sidx\n                if int(value) == 1:\n                    cfg.insert_sidx = True\n            elif key == \"segtimelineloss\":  # If segment timeline loss case signalled.\n                if int(value) == 1:\n                    cfg.segtimelineloss = True\n            elif key == \"chunkdur\":   # Chunkdur\n                try:\n                    chunk_duration = float(value)\n                    if chunk_duration > 0:\n                        cfg.chunk_duration_in_s = chunk_duration\n                        cfg.availability_time_complete = False\n                        print(cfg.chunk_duration_in_s)\n                except ValueError:\n                    pass\n            else:\n                raise ConfigProcessorError(\"Cannot interpret option %s properly\" % key)\n            url_pos += 1\n\n        cfg.update_with_filedata(url_parts, url_pos)\n        vod_cfg_file = join(self.vod_cfg_dir, cfg.content_name) + \".cfg\"\n        vod_cfg = VodConfig()\n        vod_cfg.read_config(vod_cfg_file)\n        cfg.update_with_reps(vod_cfg, url_parts, url_pos)\n        cfg.update_with_vodcfg(vod_cfg)\n\n        if start_time is not None:\n            if modulo_period is not None:\n                raise ConfigProcessorError(\"Cannot have both start_time and modulo_period set!\")\n            cfg.process_start_time(start_time, durations, now_int, stop_time)\n        if cfg.tfdt32_flag:\n            if cont_update_flag:\n                raise ConfigProcessorError(\"Cannot have continuous update with tfdt_32 (similar behavior)\")\n            cfg.update_for_tfdt32(now_int)\n        if cont_update_flag:\n            cfg.update_for_cont_update(now_int)\n        if modulo_period is not None:\n            cfg.update_with_modulo_period(modulo_period, cfg.seg_duration)\n        cfg.update_publish_time(now_int)\n        if add_location:\n            cfg.do_add_location()\n        if timeoffset is not None:\n            cfg.set_timeoffset(timeoffset)\n\n    # pylint: disable=no-self-use\n\n    def interpret_start_nr(self, value):\n        \"startNr should be 0 or greater. -1 means that it is put to 1, but absent in MPD (default value)\"\n        error_msg = \"startNr must be an integer >= 0. -1 means default value (=1).\"\n        try:\n            start_nr = int(value)\n        except ValueError:\n            raise ConfigProcessorError(error_msg)\n        if start_nr < -1:\n            raise ConfigProcessorError(error_msg)\n        return start_nr\n"
  },
  {
    "path": "dashlivesim/dashlib/dash_namespace.py",
    "content": "\"DASH namespace definition and prepender.\"\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.import re\n\nimport re\n\nRE_NAMESPACE_TAG = re.compile(r\"({.*})?(.*)\")\nDASH_NAMESPACE = \"{urn:mpeg:dash:schema:mpd:2011}\"\n\n\ndef add_ns(element):\n    \"Add DASH namespace to element or to path.\"\n    parts = element.split('/')\n    return \"/\".join([DASH_NAMESPACE + e for e in parts])\n"
  },
  {
    "path": "dashlivesim/dashlib/dash_proxy.py",
    "content": "\"\"\"\nMake a VoD file look like infinite live DASH content. The timing is synchronized with wall clock.\n\nThe rewrites which are done are\n\nMPD:\n    @MPD\n      remove mediaPresentationDuration\n      set type dynamic\n      set publishTime\n      set timeShiftBufferDepth\n      set availabilityStartTime\n      set minimumUpdatePeriod\n      set maxSegmentDuration\n      set/add availabilityEndTIme\n    @SegmentTemplate\n      set startNumber\n\ninitialization segments:\n   No change\n\nMedia segments\n   Mapped from live number to VoD number\n   tfdt and sidx updated to match live time (if KEEP_SIDX = true)\n   sequenceNumber updated to be continuous (and identical to the sequenceNumber asked for)\n\nThe numbering and timing is based on the epoch time, and is generally\n\n[time_in_epoch clipped to multiple of duration]/duration\n\nThus segNr corresponds to the interval [segNr*duration , (segNr+1)*duration]\n\nFor infinite content, the default is startNumber = 0, availabilityStartTime = 1970-01-01T00:00:00\n\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nfrom os.path import splitext, join\nfrom math import ceil\nfrom collections import namedtuple\n\nfrom dashlivesim.dashlib.initsegmentfilter import InitLiveFilter, InitFilter\nfrom dashlivesim.dashlib.mediasegmentfilter import MediaSegmentFilter\nfrom dashlivesim.dashlib import segmentmuxer\nfrom dashlivesim.dashlib.configprocessor import ConfigProcessor\nfrom dashlivesim.dashlib import chunker\n\nSECS_IN_DAY = 24 * 3600\nDEFAULT_MINIMUM_UPDATE_PERIOD = \"P100Y\"\nDEFAULT_PUBLISH_ADVANCE_IN_S = 7200\nEXTRA_TIME_AFTER_END_IN_S = 60\n\nUTC_HEAD_PATH = \"dash/time.txt\"\n\nPUBLISH_TIME = False\n\nChunkedSegment = namedtuple(\"ChunkedSegment\", \"seg_start chunks\")\n\n\ndef createProvider(host_name, url_parts, args, vod_conf_dir, content_dir, now=None, req=None, is_https=0):\n    \"Create DashProvider so that we can handle request later.\"\n    return DashProvider(host_name, url_parts, args, vod_conf_dir, content_dir, now, req, is_https)\n\n\nclass DashProxyError(Exception):\n    \"Error in DashProxy.\"\n\n\nclass DashSegmentNotAvailableError(DashProxyError):\n    \"Segment not available.\"\n\n\nclass DashProvider(object):\n    \"Provide DASH manifest and segments.\"\n\n    # pylint: disable=too-many-instance-attributes,too-many-arguments\n\n    def __init__(self, host_name, url_parts, url_args, vod_conf_dir, content_dir, now=None, req=None, is_https=0):\n        protocol = is_https and \"https\" or \"http\"\n        self.base_url = \"%s://%s/%s/\" % (protocol, host_name, url_parts[0])  # The start. Adding other parts later.\n        self.utc_head_url = \"%s://%s/%s\" % (protocol, host_name, UTC_HEAD_PATH)\n        self.url_parts = url_parts[1:]\n        self.url_args = url_args\n        self.vod_conf_dir = vod_conf_dir\n        self.content_dir = content_dir\n        self.now_float = now  # float\n        self.now = int(now)\n        self.req = req\n        self.new_tfdt_value = None\n        self.cfg_processor = ConfigProcessor(self.vod_conf_dir, self.base_url)\n        self.cfg_processor.process_url(self.url_parts, self.now)\n        self.cfg = self.cfg_processor.getconfig()\n\n\ndef error_response(dashProv, msg):\n    \"Return a mod_python error response.\"\n    if dashProv.req:\n        dashProv.req.log_error(\"dash_proxy: [%s] %s\" % (\"/\".join(dashProv.url_parts[-3:]), msg))\n    return {'ok': False, 'pl': msg + \"\\n\"}\n\n\ndef get_init(dashProv):\n    cfg = dashProv.cfg\n    if cfg.ext != \".mp4\":  # Init segment\n        raise ValueError(\"Bad extension for init segment\")\n    if dashProv.now < cfg.availability_start_time_in_s - cfg.init_seg_avail_offset:\n        diff = (cfg.availability_start_time_in_s - cfg.init_seg_avail_offset) - dashProv.now_float\n        response = error_response(dashProv, \"Request for %s was %.1fs too early\" % (cfg.filename, diff))\n    else:\n        response = process_init_segment(dashProv)\n    return response\n\n\ndef get_media(dashProv, chunk=False):\n    cfg = dashProv.cfg\n    if cfg.ext not in (\".m4s\", \".jpg\"):  # Media segment or thumbnail\n        raise ValueError(f\"Extension {cfg.ext} not for media\")\n    if cfg.availability_time_offset_in_s == -1:\n        first_segment_ast = cfg.availability_start_time_in_s\n    else:\n        first_segment_ast = cfg.availability_start_time_in_s + cfg.seg_duration - \\\n                            cfg.availability_time_offset_in_s\n\n    if dashProv.now_float < first_segment_ast:\n        diff = first_segment_ast - dashProv.now_float\n        response = error_response(dashProv, \"Request %s before first seg AST. %.1fs too early\" %\n                                            (cfg.filename, diff))\n    elif (cfg.availability_end_time is not None and\n            dashProv.now > cfg.availability_end_time + EXTRA_TIME_AFTER_END_IN_S):\n        diff = dashProv.now_float - (cfg.availability_end_time + EXTRA_TIME_AFTER_END_IN_S)\n        response = error_response(dashProv, \"Request for %s after AET. %.1fs too late\" % (cfg.filename, diff))\n    elif cfg.ext == \".m4s\":\n        response = None\n        if len(cfg.multi_url) == 1:  # There is one specific baseURL with losses specified\n            a_var, b_var = cfg.multi_url[0].split(\"_\")\n            dur1 = int(a_var[1:])\n            dur2 = int(b_var[1:])\n            total_dur = dur1 + dur2\n            num_loop = int(ceil(60.0 / (float(total_dur))))\n            now_mod_60 = dashProv.now % 60\n            if a_var[0] == 'u' and b_var[0] == 'd':  # parse server up or down information\n                for i in range(num_loop):\n                    if i * total_dur + dur1 < now_mod_60 <= (i + 1) * total_dur:\n                        response = error_response(dashProv, \"BaseURL server down at %d\" % (dashProv.now))\n                        break\n                    elif now_mod_60 == i * total_dur + dur1:\n                        # Just before down time starts, add emsg box to the segment.\n                        cfg.emsg_last_seg = True\n                        response = process_media_segment(dashProv, dashProv.now_float, chunk)\n                        cfg.emsg_last_seg = False\n            elif a_var[0] == 'd' and b_var[0] == 'u':\n                for i in range(num_loop):\n                    if i * (total_dur) < now_mod_60 <= i * (total_dur) + dur1:\n                        response = error_response(dashProv, \"BaseURL server down at %d\" % (dashProv.now))\n                        break\n        if response is None:\n            response = process_media_segment(dashProv, dashProv.now_float, chunk)\n    else:  # cfg.ext == \".jpg\"\n        response = process_thumbnail(dashProv, dashProv.now_float)\n    return response\n\n\ndef process_init_segment(dashProv):\n    \"Read non-multiplexed or create muxed init segments.\"\n    cfg = dashProv.cfg\n\n    nr_reps = len(cfg.reps)\n    if nr_reps == 1:  # Not muxed\n        init_file = \"%s/%s/%s/%s\" % (dashProv.content_dir, cfg.content_name, cfg.rel_path, cfg.filename)\n        ilf = InitLiveFilter(init_file)\n        data = ilf.filter()\n    elif nr_reps == 2:  # Something that can be muxed\n        com_path = \"/\".join(cfg.rel_path.split(\"/\")[:-1])\n        init1 = \"%s/%s/%s/%s/%s\" % (dashProv.content_dir, cfg.content_name, com_path, cfg.reps[0]['id'], cfg.filename)\n        init2 = \"%s/%s/%s/%s/%s\" % (dashProv.content_dir, cfg.content_name, com_path, cfg.reps[1]['id'], cfg.filename)\n        muxed_inits = segmentmuxer.MultiplexInits(init1, init2)\n        data = muxed_inits.construct_muxed()\n    else:\n        data = error_response(dashProv, \"Bad nr of representations: %d\" % nr_reps)\n    return data\n\n\ndef process_media_segment(dashProv, now_float, chunk):\n    \"\"\"Process media segment. Return error response if timing is not OK.\n\n    Assumes that segment_ast = (seg_nr+1-startNumber)*seg_dur + ast.\"\"\"\n\n    # pylint: disable=too-many-locals\n\n    def get_timescale(cfg):\n        \"Get timescale for the current representation.\"\n        timescale = None\n        curr_rep_id = cfg.rel_path\n        for rep in cfg.reps:\n            if rep['id'] == curr_rep_id:\n                timescale = rep['timescale']\n                break\n        return timescale\n    cfg = dashProv.cfg\n    seg_dur = cfg.seg_duration\n    seg_name = cfg.filename\n    seg_base, seg_ext = splitext(seg_name)\n    timescale = get_timescale(cfg)\n    if seg_base[0] == 't':\n        # TODO. Make a more accurate test here that the timestamp is a correct one\n        seg_nr = int(round(float(seg_base[1:]) / seg_dur / timescale))\n    else:\n        seg_nr = int(seg_base)\n    seg_start_nr = cfg.start_nr == -1 and 1 or cfg.adjusted_start_number\n    if seg_nr < seg_start_nr:\n        return error_response(dashProv, \"Request for segment %d before first %d\" % (seg_nr, seg_start_nr))\n    stop_number = cfg.stop_number\n    if stop_number and seg_nr >= stop_number:\n        return error_response(dashProv, \"Beyond last segment %d\" % stop_number)\n    if len(cfg.last_segment_numbers) > 0:\n        very_last_segment = cfg.last_segment_numbers[-1]\n        if seg_nr > very_last_segment:\n            return error_response(dashProv, \"Request for segment %d beyond last (%d)\" % (seg_nr, very_last_segment))\n    lmsg = seg_nr in cfg.last_segment_numbers\n    # print cfg.last_segment_numbers\n    timescale = 1\n    media_time_at_ast = cfg.adjusted_pto(0, timescale)\n    seg_time = (seg_nr - seg_start_nr) * seg_dur + media_time_at_ast\n    seg_ast = (seg_time + seg_dur - media_time_at_ast) + cfg.availability_start_time_in_s\n\n    if cfg.availability_time_offset_in_s != -1:  # - 1 is infinity\n        if now_float < seg_ast - cfg.availability_time_offset_in_s:\n            return error_response(dashProv, \"Request for %s was %.1fs too early\" % (seg_name, seg_ast - now_float))\n        # If stop_number is not None, the manifest will become static\n        if ((now_float > seg_ast + seg_dur +\n                cfg.timeshift_buffer_depth_in_s) and not stop_number):\n            diff = now_float - (seg_ast + seg_dur + cfg.timeshift_buffer_depth_in_s)\n            return error_response(dashProv, \"Request for %s was %.1fs too late\" % (seg_name, diff))\n\n    loop_duration = cfg.seg_duration * cfg.vod_nr_segments_in_loop\n    nr_loops_done, time_in_loop = divmod(seg_time, loop_duration)\n    offset_at_loop_start = nr_loops_done * loop_duration\n    seg_nr_in_loop = time_in_loop // seg_dur\n    vod_nr = seg_nr_in_loop + cfg.vod_first_segment_in_loop\n    assert 0 <= vod_nr - cfg.vod_first_segment_in_loop < cfg.vod_nr_segments_in_loop\n    rel_path = cfg.rel_path\n    nr_reps = len(cfg.reps)\n    if nr_reps == 1:  # Not muxed\n        if chunk:\n            trex_data = get_trex_data(dashProv, rel_path)\n            seg_content = filter_media_segment(dashProv, cfg.reps[0], rel_path, vod_nr, seg_nr, seg_ext,\n                                               offset_at_loop_start, lmsg, trex_data)\n            # Here we shall return seg_time (when the segment start to be produced)\n            # and then each chunk should be delivered at seg_time + (i+1) * chunk_dur\n            dur = int(cfg.chunk_duration_in_s * cfg.reps[0]['timescale'])\n            chunks = [chk for chk in chunker.chunk(seg_content, dur, trex_data)]\n            return ChunkedSegment(seg_time, chunks)\n        else:\n            seg_content = filter_media_segment(dashProv, cfg.reps[0], rel_path, vod_nr, seg_nr, seg_ext,\n                                               offset_at_loop_start, lmsg)\n    else:\n        rel_path_parts = rel_path.split(\"/\")\n        common_path_parts = rel_path_parts[:-1]\n        rel_path1 = \"/\".join(common_path_parts + [cfg.reps[0]['id']])\n        rel_path2 = \"/\".join(common_path_parts + [cfg.reps[1]['id']])\n        seg1 = filter_media_segment(dashProv, cfg.reps[0], rel_path1, vod_nr, seg_nr, seg_ext,\n                                    offset_at_loop_start, lmsg)\n        seg2 = filter_media_segment(dashProv, cfg.reps[1], rel_path2, vod_nr, seg_nr, seg_ext,\n                                    offset_at_loop_start, lmsg)\n        muxed = segmentmuxer.MultiplexMediaSegments(data1=seg1, data2=seg2)\n        seg_content = muxed.mux_on_sample_level()\n    return seg_content\n\n\ndef get_trex_data(dashProv, rel_path):\n    \"Get object which has default_sample_duration and other trex data.\"\n    cfg = dashProv.cfg\n    init_file = join(dashProv.content_dir, cfg.content_name, rel_path, \"init.mp4\")\n    init_filter = InitFilter(init_file)\n    init_filter.filter()\n    return init_filter\n\n\n# pylint: disable=too-many-arguments\ndef filter_media_segment(dashProv, rep, rel_path, vod_nr, seg_nr, seg_ext, offset_at_loop_start, lmsg, trex_data=None):\n    \"Filter an actual media segment by using time-scale from init segment.\"\n    cfg = dashProv.cfg\n    media_seg_file = join(dashProv.content_dir, cfg.content_name, rel_path, \"%d%s\" % (vod_nr, seg_ext))\n    timescale = rep['timescale']\n    scte35_per_minute = (rep['content_type'] == 'video') and cfg.scte35_per_minute or 0\n    is_ttml = rep['content_type'] == 'subtitles'\n    default_sample_duration = trex_data.default_sample_duration if trex_data is not None else None\n    seg_filter = MediaSegmentFilter(media_seg_file, seg_nr, cfg.seg_duration, offset_at_loop_start, lmsg, timescale,\n                                    scte35_per_minute, rel_path,\n                                    is_ttml,\n                                    default_sample_duration,\n                                    insert_sidx=cfg.insert_sidx, emsg_last_seg=cfg.emsg_last_seg,\n                                    now=dashProv.now)\n    seg_content = seg_filter.filter()\n    dashProv.new_tfdt_value = seg_filter.get_tfdt_value()  # Why set this in dashProv?? TODO\n    return seg_content\n\n\ndef process_thumbnail(dashProv, now_float):\n    \"\"\"Process thumbnail. Return error response if timing is not OK.\n\n    Assumes that segment_ast = (seg_nr+1-startNumber)*seg_dur.\"\"\"\n\n    # pylint: disable=too-many-locals\n\n    def get_timescale(cfg):\n        \"Get timescale for the current representation.\"\n        timescale = None\n        curr_rep_id = cfg.rel_path\n        for rep in cfg.reps:\n            if rep['id'] == curr_rep_id:\n                timescale = rep['timescale']\n                break\n        return timescale\n\n    cfg = dashProv.cfg\n    seg_dur = cfg.seg_duration\n    seg_name = cfg.filename\n    seg_base, seg_ext = splitext(seg_name)\n    timescale = get_timescale(cfg)\n    if seg_base[0] == 't':\n        # TODO. Make a more accurate test here that the timestamp is a correct one\n        seg_nr = int(round(float(seg_base[1:]) / seg_dur / timescale))\n    else:\n        seg_nr = int(seg_base)\n    seg_start_nr = cfg.start_nr == -1 and 1 or cfg.start_nr\n    if seg_nr < seg_start_nr:\n        return error_response(\"Request for segment %d before first %d\" % (seg_nr, seg_start_nr))\n    if len(cfg.last_segment_numbers) > 0:\n        very_last_segment = cfg.last_segment_numbers[-1]\n        if seg_nr > very_last_segment:\n            return error_response(\"Request for segment %d beyond last (%d)\" % (seg_nr, very_last_segment))\n    # lmsg = seg_nr in cfg.last_segment_numbers\n    # print cfg.last_segment_numbers\n    seg_time = (seg_nr - seg_start_nr) * seg_dur + cfg.availability_start_time_in_s\n    seg_ast = seg_time + seg_dur\n\n    if cfg.availability_time_offset_in_s != -1:  # -1 is infinity\n        if now_float < seg_ast - cfg.availability_time_offset_in_s:\n            return error_response(\"Request for %s was %.1fs too early\" % (seg_name, seg_ast - now_float))\n        if (now_float > seg_ast + seg_dur + cfg.timeshift_buffer_depth_in_s):\n            diff = now_float - (seg_ast + seg_dur + cfg.timeshift_buffer_depth_in_s)\n            return error_response(\"Request for %s was %.1fs too late\" % (seg_name, diff))\n\n    time_since_ast = seg_time - cfg.availability_start_time_in_s\n    loop_duration = cfg.seg_duration * cfg.vod_nr_segments_in_loop\n    nr_loops_done, time_in_loop = divmod(time_since_ast, loop_duration)\n    seg_nr_in_loop = time_in_loop // seg_dur\n    vod_nr = seg_nr_in_loop + cfg.vod_first_segment_in_loop\n    assert 0 <= vod_nr - cfg.vod_first_segment_in_loop < cfg.vod_nr_segments_in_loop\n    rel_path = cfg.rel_path\n    thumb_path = join(dashProv.content_dir, cfg.content_name, rel_path,\n                      \"%d%s\" % (vod_nr, seg_ext))\n    with open(thumb_path, 'rb') as ifh:\n        seg_content = ifh.read()\n    return seg_content\n"
  },
  {
    "path": "dashlivesim/dashlib/emsg.py",
    "content": "\"\"\"emsg box as defined in ISO_IEC_FDIS_23009-1_(E).pdf\n\naligned(8) class EventMessageBox extends FullBox('emsg', version = 0, flags = 0){\n   string \t\t\t scheme_id_uri;\n   string            value;\n   unsigned int(32)  timescale;\n   unsigned int(32)  presentation_time_delta;\n   unsigned int(32)  event_duration;\n   unsigned int(32)  id;\n   unsigned int(8)   message_data[];\n   }\n}\nThe strings are null-terminated.\n\nOne particular scheme_id_uri is defined for dash: \"urn:mpeg:dash:event:2012\"\nFor our own messages, we should use some other scheme_id_uri.\n\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nfrom dashlivesim.dashlib.structops import uint32_to_str\n\nDASH_SCHEME = \"urn:mpeg:dash:event:2012\"\n\n\nclass Emsg(object):\n    \"EMSG MP4 box.\"\n\n    def __init__(self, scheme_id_uri=\"\", value=\"\", timescale=1, presentation_time_delta=0, event_duration=0,\n                 emsg_id=0, messagedata=\"\"):\n        self.scheme_id_uri = scheme_id_uri\n        self.value = str(value)\n        self.timescale = timescale\n        self.presentation_time_delta = presentation_time_delta\n        self.event_duration = event_duration\n        self.emsg_id = emsg_id\n        self.messagedata = messagedata\n\n    def get_box(self):\n        \"Return emsg box as string.\"\n        size = 12 + 4*4 + len(self.scheme_id_uri) + 1 + len(self.value) + 1 + len(self.messagedata)\n        parts = []\n        parts.append(uint32_to_str(size))\n        parts.append(b\"emsg\")\n        parts.append(b\"\\x00\\x00\\x00\\x00\")\n        parts.append(self.scheme_id_uri.encode(\"utf-8\") + b\"\\x00\")\n        parts.append(self.value.encode('utf-8') + b\"\\x00\")\n        parts.append(uint32_to_str(self.timescale))\n        parts.append(uint32_to_str(self.presentation_time_delta))\n        parts.append(uint32_to_str(self.event_duration))\n        parts.append(uint32_to_str(self.emsg_id))\n        parts.append(self.messagedata.encode(\"utf-8\"))\n        return b\"\".join(parts)\n\n    def get_messagedata(self):\n        \"Return the message data of the box.\"\n        return self.messagedata\n\n    def __str__(self):\n        return (\"EMSG: %(scheme_id_uri)s %(value)s %(timescale)d %(presentation_time_delta)d %(event_duration)d\" +\n                \" %(emsg_id)d\" % self.__dict__)\n\n\ndef create_emsg(scheme_id_uri=\"\", value=\"\", timescale=1, presentation_time_delta=0, event_duration=0, emsg_id=0,\n                message_data=\"\"):\n    \"Create an emsg_box.\"\n    emsg = Emsg(scheme_id_uri, value, timescale, presentation_time_delta, event_duration, emsg_id, message_data)\n    return emsg.get_box()\n\n\ndef main():\n    \"Main function for testing.\"\n    print(\"Writing file emsg.mp4\")\n    ofh = open(\"emsg.mp4\", \"wb\")\n    emsg = create_emsg(DASH_SCHEME, \"1\", 2000, 100, 345, 1, \"xmldata\")\n    ofh.write(emsg)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "dashlivesim/dashlib/initsegmentfilter.py",
    "content": "\"\"\"Filter initialization segments (extract data and modify).\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nfrom dashlivesim.dashlib.structops import str_to_uint32\nfrom dashlivesim.dashlib.mp4filter import MP4Filter\n\n\nclass InitFilter(MP4Filter):\n    \"Filter init segment file and extract track timescale.\"\n\n    def __init__(self, filename=None, data=None):\n        MP4Filter.__init__(self, filename, data)\n        self.top_level_boxes_to_parse = [b'moov']\n        self.composite_boxes_to_parse = [b'moov', b'trak', b'mdia', b'mvex']\n        self._track_timescale = -1\n        self._track_id = None\n        self._handler_type = None\n\n    def process_hdlr(self, data):\n        \"Find the track type.\"\n        self._handler_type = data[16:20]\n        return data\n\n    def process_tkhd(self, data):\n        \"Filter track header box and find track_id.\"\n        assert self.track_id is None, \"Multiple tracks in init file %s. Not supported.\" % self.filename\n        version = data[8]\n        if version == 0:\n            self._track_id = str_to_uint32(data[20:24])\n        elif version == 1:\n            self._track_id = str_to_uint32(data[28:32])\n        return data\n\n    def process_mdhd(self, data):\n        \"Process mdhd to get track_timscale.\"\n        self._track_timescale = str_to_uint32(data[20:24])\n        return data\n\n    def process_trex(self, data):\n        # track_id = str_to_uint32(data[12:16])\n        self.default_sample_description_index = str_to_uint32(data[16:20])\n        self.default_sample_duration = str_to_uint32(data[20:24])\n        self.default_sample_size = str_to_uint32(data[24:28])\n        self.default_sample_flags = str_to_uint32(data[28:32])\n        return data\n\n    @property\n    def track_timescale(self):\n        \"Get timescale for track.\"\n        return self._track_timescale\n\n    @property\n    def handler_type(self):\n        \"Get handler type.\"\n        return self._handler_type\n\n    @property\n    def track_id(self):\n        \"Get trackID for the single track in file.\"\n        return self._track_id\n\n\nclass InitLiveFilter(MP4Filter):\n    \"Process an init segment file and set the durations to 0.\"\n\n    # pylint: disable=too-many-branches, no-self-use\n\n    def __init__(self, file_name=None, data=None):\n        MP4Filter.__init__(self, file_name, data)\n        self.top_level_boxes_to_parse = [b'moov']\n        self.composite_boxes_to_parse = [b'moov', b'trak', b'mdia', b'mvex']\n        self.movie_timescale = -1\n\n    def process_mvhd(self, data):\n        \"Set duration in mvhd.\"\n        version = data[8]\n        output = b\"\"\n        if version == 1:\n            self.movie_timescale = str_to_uint32(data[28:32])\n            output += data[:32]\n            output += b'\\x00' * 8  # duration\n            output += data[40:]\n        else:  # version = 0\n            self.movie_timescale = str_to_uint32(data[20:24])\n            output += data[:24]\n            output += b'\\x00' * 4  # duration\n            output += data[28:]\n        return output\n\n    def process_tkhd(self, data):\n        \"Set track duration.\"\n        version = data[8]\n        output = b\"\"\n        if version == 1:\n            output += data[:36]\n            output += b'\\x00' * 8  # duration\n            output += data[44:]\n        else:  # version = 0\n            output += data[:28]\n            output += b'\\x00' * 4  # duration\n            output += data[32:]\n        return output\n\n    def process_mdhd(self, data):\n        \"Set media duration.\"\n        output = b\"\"\n        version = data[8]\n        if version == 1:\n            output += data[:32]\n            output += b'\\x00' * 8  # duration\n            output += data[40:]\n        else:  # version = 0\n            output += data[:24]\n            output += b'\\x00' * 4  # duration\n            output += data[28:]\n        return output\n"
  },
  {
    "path": "dashlivesim/dashlib/mediasegmentfilter.py",
    "content": "\"\"\"Filter media segment for live streams.\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nfrom dashlivesim.dashlib import emsg\nfrom dashlivesim.dashlib import scte35\nfrom dashlivesim.dashlib.mp4filter import MP4Filter\nfrom dashlivesim.dashlib.structops import str_to_uint32, uint32_to_str, str_to_uint64,\\\n                                uint64_to_str, str_to_sint32, sint32_to_str\nfrom dashlivesim.dashlib.ttml_timing_offset import adjust_ttml_content\nfrom dashlivesim.dashlib.timeformatconversions import make_timestamp\n\nKEEP_SIDX = False\n\n\nclass MediaSegmentFilterError(Exception):\n    \"Error in MediaSegmentFilter.\"\n\n\nclass MediaSegmentFilter(MP4Filter):\n    \"\"\"Filter the fragment response to fill in the right seg_nr, tfdtTime and SCTE-35 cue.\n\n    Make sidx 64-bit if needed.\"\"\"\n\n    # pylint: disable=too-many-instance-attributes, too-many-arguments\n    def __init__(self, file_name, seg_nr=None, seg_duration=1, offset=0, lmsg=False, track_timescale=None,\n                 scte35_per_minute=0, rel_path=None, is_ttml=False,\n                 default_sample_duration=None, insert_sidx=False, emsg_last_seg=False, now=False):\n        MP4Filter.__init__(self, file_name)\n        self.top_level_boxes_to_parse = [b'styp', b'sidx', b'moof', b'mdat']\n        self.composite_boxes_to_parse = [b'moof', b'traf']\n        self.seg_nr = seg_nr\n        self.seg_duration = seg_duration\n        self.offset = offset\n        self.track_timescale = track_timescale\n        self.rel_path = rel_path\n        self.lmsg = lmsg\n        self.size_change = 0\n        self.new_saio_value = None\n        self.tfdt_value = None  # For testing\n        self.default_sample_duration = default_sample_duration\n        self.insert_sidx = insert_sidx\n        self.duration = None\n        self.scte35_per_minute = scte35_per_minute\n        self.is_ttml = is_ttml\n        self.ttml_size = None\n        self.emsg_last_seg = emsg_last_seg\n        self.now = now\n        if self.is_ttml:\n            self.data = self.find_and_process_mdat(self.data)\n\n    def finalize(self):\n        if self.insert_sidx:\n            seg_size = 0\n            pos = 0\n            moof_start = 0\n            for size, box in self.output_top_level_boxes:\n                if box == b'moof':\n                    moof_start = pos\n                    seg_size += size\n                elif box == b'mdat':\n                    seg_size += size\n                pos += size\n            sidx = self.create_sidx(seg_size)\n            self.output = (self.output[:moof_start] + sidx +\n                           self.output[moof_start:])\n        if self.emsg_last_seg:\n            pos = 0\n            moof_start = 0\n            for size, box in self.output_top_level_boxes:\n                if box == b'moof':\n                    moof_start = pos\n                pos += size\n            emsg_box = self.create_emsg()\n            self.output = (self.output[:moof_start] + emsg_box +\n                           self.output[moof_start:])\n\n    # pylint: disable=no-self-use\n\n    def process_styp(self, data):\n        \"Process styp and make sure lmsg presence follows the lmsg flag parameter. Add scte35 box if appropriate\"\n        lmsg = self.lmsg\n        output = b\"\"\n        size = str_to_uint32(data[:4])\n        pos = 8\n        brands = []\n        while pos < size:\n            brand = data[pos:pos+4]\n            if brand != b\"lmsg\":\n                brands.append(brand)\n            pos += 4\n        if lmsg:\n            brands.append(b\"lmsg\")\n        new_size = 8 + 4*len(brands)\n        output += uint32_to_str(new_size)\n        output += b\"styp\"\n        for brand in brands:\n            output += brand\n        scte35box = self.create_scte35box()\n        output += scte35box\n        return output\n\n    def process_tfhd(self, data):\n        \"Process tfhd (assuming that we know the ttml size size).\"\n        tf_flags = str_to_uint32(data[8:12]) & 0xffffff\n        pos = 16\n        if tf_flags & 0x01:\n            raise MediaSegmentFilterError(\"base-data-offset-present not supported in ttml segments\")\n        if tf_flags & 0x02:\n            pos += 4\n        if tf_flags & 0x08:\n            self.default_sample_duration = str_to_uint32(data[pos:pos+4])\n            pos += 4\n        elif self.ttml_size:\n            raise MediaSegmentFilterError(\"Cannot handle ttml segments with default_sample_duration absent\")\n        output = data[:pos]\n        if self.ttml_size:\n            if tf_flags & 0x10:\n                # old_ttml__size = str_to_uint32(data[pos:pos+4])\n                output += uint32_to_str(self.ttml_size)\n                # print(\"Changed ttml sample size from %d to %d\" % (old_ttml__size, self.ttml_size))\n                pos += 4\n            else:\n                raise MediaSegmentFilterError(\"Cannot handle ttml segments if default_sample_size_offset is absent\")\n        if self.ttml_size:\n            output += data[pos:]\n        else:\n            output = data\n        return output\n\n    def process_mfhd(self, data):\n        \"Process mfhd box and set segmentNumber if requested.\"\n        if self.seg_nr is None:\n            return data\n        else:\n            return data[0:12] + uint32_to_str(self.seg_nr)\n\n    def process_trun(self, data):\n        \"Get total duration from trun. Fix offset if self.size_change is non-zero.\"\n        flags = str_to_uint32(data[8:12]) & 0xffffff\n        sample_count = str_to_uint32(data[12:16])\n        pos = 16\n        data_offset_present = False\n        if flags & 0x1:  # Data offset present\n            data_offset_present = True\n            pos += 4\n        if flags & 0x4:\n            pos += 4  # First sample flags present\n        sample_duration_present = flags & 0x100\n        sample_size_present = flags & 0x200\n        sample_flags_present = flags & 0x400\n        sample_comp_time_present = flags & 0x800\n        duration = 0\n        for _ in range(sample_count):\n            if sample_duration_present:\n                duration += str_to_uint32(data[pos:pos+4])\n                pos += 4\n            elif self.default_sample_duration is not None:\n                duration += self.default_sample_duration\n            if sample_size_present:\n                pos += 4\n            if sample_flags_present:\n                pos += 4\n            if sample_comp_time_present:\n                pos += 4\n        self.duration = duration\n\n        # Modify data_offset\n        output = data[:16]\n        if data_offset_present and self.size_change > 0:\n            offset = str_to_sint32(data[16:20])\n            offset += self.size_change\n            output += sint32_to_str(offset)\n        else:\n            output += data[16:20]\n        output += data[20:]\n        return output\n\n    def process_saio(self, data):\n        \"Process saio and possibly change offset by size_change if needed.\"\n        version_flags = str_to_uint32(data[8:12])\n        version = version_flags >> 24\n        flags = version_flags & 0xffffff\n        pos = 12\n        if flags & 0x1:\n            pos += 8\n        entry_count = str_to_uint32(data[pos:pos + 4])\n        pos += 4\n        output = data[:pos]\n        delta_offset = self.size_change\n        if version == 0:\n            for i in range(entry_count):\n                offset = str_to_uint32(data[pos:pos + 4])\n                pos += 4\n                output += uint32_to_str(offset + delta_offset)\n                if i == 0:\n                    self.new_saio_value = offset + delta_offset\n        else:\n            for i in range(entry_count):\n                offset = str_to_uint64(data[pos:pos + 8])\n                pos += 8\n                output += uint64_to_str(offset + delta_offset)\n                if i == 0:\n                    self.new_saio_value = offset + delta_offset\n        return output\n\n    def process_sidx(self, data):\n        \"Process sidx data and add to output.\"\n        if not KEEP_SIDX:\n            return b\"\"\n        output = b\"\"\n        version = data[8]\n        timescale = str_to_uint32(data[16:20])\n        if version == 0:\n            # print(\"Changing sidx version to 1\")\n            size = str_to_uint32(data[0:4])\n            sidx_size_expansion = 8\n            output += uint32_to_str(size+sidx_size_expansion)\n            output += data[4:8]\n            output += b'\\x01'\n            output += data[9:20]\n            earliest_presentation_time = str_to_uint32(data[20:24])\n            first_offset = str_to_uint32(data[24:28])\n        else:\n            output += data[0:20]\n            earliest_presentation_time = str_to_uint64(data[20:28])\n            first_offset = str_to_uint64(data[28:36])\n        new_presentation_time = earliest_presentation_time + timescale*self.offset\n        output += uint64_to_str(new_presentation_time)\n        output += uint64_to_str(first_offset)\n        if version == 0:\n            output += data[28:]\n        else:\n            output += data[36:]\n        return output\n\n    def create_sidx(self, seg_size):\n        \"\"\"Return a sidx box which can be inserted right before the moof.\n\n        This is optional, but some clients require it to present.\"\"\"\n        output = uint32_to_str(52)  # Size of box\n        output += b'sidx\\x01\\x00\\x00\\x00'  # type, version and flags\n        output += b'\\x00\\x00\\x00\\x01'  # refID\n        output += uint32_to_str(self.track_timescale)\n        output += uint64_to_str(self.tfdt_value)  # decode_time for now\n        output += uint64_to_str(0)  # first_offset = 0\n        output += b'\\x00\\x00\\x00\\x01'  # reserved and reference_count\n        # Next 1 bit reference type + 31 bit size of segment\n        output += uint32_to_str(seg_size)\n        output += uint32_to_str(self.duration)\n        output += b'\\x90\\x00\\x00\\x00'\n        return output\n\n    def process_tfdt_to_64bit(self, data, output):\n        \"\"\"Generate new timestamps for tfdt and change size of boxes above if needed.\n\n        Note that the input output will be returned and can have another size.\"\"\"\n        version = data[8]\n        tfdt_offset = self.offset*self.track_timescale\n        if version == 0:  # 32-bit baseMediaDecodeTime\n            self.size_change = 4\n            output = uint32_to_str(str_to_uint32(data[:4]) + self.size_change)\n            output += data[4:8]\n            output += b'\\x01'\n            output += data[9:12]\n            base_media_decode_time = str_to_uint32(data[12:16])\n        else:  # 64-bit\n            output = data[:12]\n            base_media_decode_time = str_to_uint64(data[12:20])\n        new_base_media_decode_time = base_media_decode_time + tfdt_offset\n        output += uint64_to_str(new_base_media_decode_time)\n        self.tfdt_value = new_base_media_decode_time\n        return output\n\n    def process_tfdt(self, data):\n        \"\"\"Generate new timestamps for tfdt and change size of boxes above if needed.\n\n       Try to keep in 32 bits if possible.\"\"\"\n        version = data[8]\n        if self.track_timescale is not None:\n            tfdt_offset = self.offset*self.track_timescale\n        else:\n            tfdt_offset = 0\n        if version == 0:  # 32-bit baseMediaDecodeTime\n            base_media_decode_time = str_to_uint32(data[12:16])\n            new_base_media_decode_time = base_media_decode_time + tfdt_offset\n            if new_base_media_decode_time < 4294967296:\n                output = data[:12]\n                output += uint32_to_str(new_base_media_decode_time)\n            else:\n                # print \"Forced to change to 64-bit tfdt.\"\n                self.size_change = 4\n                output = uint32_to_str(str_to_uint32(data[:4]) + self.size_change)\n                output += data[4:8]\n                output += b'\\x01'\n                output += data[9:12]\n                output += uint64_to_str(new_base_media_decode_time)\n        else:  # 64-bit\n            # print \"Staying at 64-bit tfdt.\"\n            output = data[:12]\n            base_media_decode_time = str_to_uint64(data[12:20])\n            new_base_media_decode_time = base_media_decode_time + tfdt_offset\n            output += uint64_to_str(new_base_media_decode_time)\n        self.tfdt_value = new_base_media_decode_time\n        return output\n\n    def get_tfdt_value(self):\n        \"Get the earliest presentation time value from tfdt box.\"\n        return self.tfdt_value\n\n    def get_duration(self):\n        \"Get total duration from trun.\"\n        return self.duration\n\n    def create_scte35box(self):\n        \"\"\"Create an Scte35 emsg box if at the right instance.\n\n        Depending on scte35_per_minute, the splice inserts are as follows::\n        1: 10s after full minute\n        2: 10s and 40s after full minute\n        3: 10, 30, 50s after full minute\n        The SCTE35 message are coming in a segment that covers the time 8-6 s in advance.\n        \"\"\"\n        ad_duration = 10\n        if self.scte35_per_minute < 1 or self.scte35_per_minute > 8:\n            return b\"\"\n        seg_starttime = self.seg_nr*self.seg_duration  # StartTime in seconds\n        sec_modulo_minute = seg_starttime % 60\n        minute_start = seg_starttime - sec_modulo_minute\n        splice_insert_times = [minute_start + 10]\n        if self.scte35_per_minute == 2:\n            splice_insert_times.append(minute_start+40)\n        elif self.scte35_per_minute == 3:\n            splice_insert_times.append(minute_start+36)\n            splice_insert_times.append(minute_start+46)\n        elif self.scte35_per_minute == 8:\n            splice_insert_times.append(minute_start+30)\n            ad_duration = 20\n        found_splice_time = -1\n        splice_time = None\n        seg_endtime = seg_starttime + self.seg_duration\n        for splice_time in splice_insert_times:\n            # Assume that there are events 8s and 6s before the actual splice\n            for pre_warning_time in (splice_time - 6, splice_time-8):\n                if seg_starttime <= pre_warning_time <= seg_endtime:\n                    found_splice_time = splice_time\n                    break\n            if found_splice_time >= 0:\n                break\n        if found_splice_time < 0:\n            return b\"\"  # Nothing for this segment\n        timescale = 90000  # Timescale\n        emsg_id = splice_id = splice_time//10\n        emsg = scte35.create_scte35_emsg(timescale, seg_starttime*timescale, found_splice_time*timescale,\n                                         ad_duration*timescale, emsg_id, splice_id)\n        # print \"Made scte35 emsg %d\" % len(emsg)\n        return emsg\n\n    def find_and_process_mdat(self, data):\n        \"Change the ttml part of mdat and update mdat size. Return full new data.\"\n        pos = 0\n        output = b\"\"\n        while pos < len(data):\n            size = str_to_uint32(data[pos:pos+4])\n            boxtype = data[pos+4:pos+8]\n            if boxtype != b'mdat':\n                output += data[pos:pos+size]\n            else:\n                output += self.update_ttml_mdat(data[pos:pos+size])\n            pos += size\n        return output\n\n    def update_ttml_mdat(self, data):\n        \"Update the ttml payload of mdat and its size.\"\n        ttml_xml = data[8:]\n        ttml_out = adjust_ttml_content(ttml_xml, self.offset, self.seg_nr)\n        self.ttml_size = len(ttml_out)\n        out_size = self.ttml_size + 8\n        return uint32_to_str(out_size) + b'mdat' + ttml_out\n\n    def create_emsg(self):\n        emsg_box = emsg.create_emsg(scheme_id_uri=\"urn:mpeg:dash:event:2012\", value=\"1\", timescale=1,\n                                    presentation_time_delta=2, event_duration=0, emsg_id=0,\n                                    message_data=make_timestamp(self.now))\n        return emsg_box\n"
  },
  {
    "path": "dashlivesim/dashlib/moduloperiod.py",
    "content": "\"\"\"ModuloPeriod for dynamic MPD DASH service.\n\nThe phases depends on now wrt to modulo minutes\n\n    mup = 5% of the interval\n    0-10% of the interval, the mpd=20% of interval\n    10-30% of the interval, the mpd=40% of the interval\n    30-50% of the interval, the mpd=60% of the interval\n    50-90% of the interval, the mpd=80% of the interval\n    90-100% of the interval, the mpd=20% of the next interval\n\n    In the interval 80%-100%, no segments are available.\n\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\n\ndef quantize(number, step):\n    \"Quantize number to a multiple of step.\"\n    return (int(number)//step)*step\n\n\nclass ModuloPeriod(object):\n    \"Provide the timing data needed for the MPD which has periods of available data.\"\n\n    def __init__(self, modulo_minutes, now):\n        self.mod_secs = 60*modulo_minutes\n        self.now = now\n        self.percent = self.calc_percent()\n        self._availability_start_time = self.calc_availability_start_time()\n        self._minimum_update_period = self.mod_secs/20\n        self._media_presentation_duration = self.calc_media_pres_dur()\n        self._availability_end_time = (self._availability_start_time + self._media_presentation_duration +\n                                       self._minimum_update_period)\n\n    @property\n    def availability_start_time(self):\n        \"Get the AvailabilityStartTime for the MPD.\"\n        return self._availability_start_time\n\n    @property\n    def minimum_update_period(self):\n        \"Get the MinimumUpdatePeriod for the MPD.\"\n        return self._minimum_update_period\n\n    @property\n    def media_presentation_duration(self):\n        \"Get the MediaPresentationDuration for the MPD.\"\n        return self._media_presentation_duration\n\n    @property\n    def availability_end_time(self):\n        \"Get the AvailabilityEndTime for the MPD.\"\n        return self._availability_end_time\n\n    def calc_percent(self):\n        \"Return the percent in the current period.\"\n        seconds = self.now % self.mod_secs\n        return (seconds*100)/self.mod_secs\n\n    def calc_availability_start_time(self):\n        \"Get the availability startTime for this or coming period.\"\n        period_start = quantize(self.now, self.mod_secs)\n        if self.percent >= 90:\n            period_start += self.mod_secs  # Next period\n        return period_start\n\n    def calc_media_pres_dur(self):\n        \"Calculate the media presentation duration.\"\n        if self.percent < 10:\n            mpd = 2*self.mod_secs/10\n        elif self.percent < 30:\n            mpd = 4*self.mod_secs/10\n        elif self.percent < 50:\n            mpd = 6*self.mod_secs/10\n        elif self.percent < 90:\n            mpd = 8*self.mod_secs/10\n        else:\n            mpd = 2*self.mod_secs/10  # This is in the next period\n        return mpd\n\n    def get_start_number(self, segment_duration):\n        \"Get startnumber assuming that segment number 0 is at epoch start.\"\n        return self.availability_start_time/segment_duration\n\n    def compare_with_last_segment(self, segment_number, segment_duration):\n        \"\"\"Return -1 if before last, 0 at last, and +1 after last.\n\n        Set lmsg if the return value is 0.\"\"\"\n        segment_end_time = (segment_number+1)*segment_duration\n        presentation_end_time = self.availability_start_time + self._media_presentation_duration\n        return (segment_end_time - presentation_end_time)/segment_duration\n\n    def calc_last_segment_number(self, segment_duration):\n        \"Calculate the last segmentNumber given segmentDuration and mediaPresentationDuration.\"\n        presentation_end_time = self.availability_start_time + self._media_presentation_duration\n        last_segment_number = presentation_end_time/segment_duration - 1\n        return last_segment_number\n"
  },
  {
    "path": "dashlivesim/dashlib/mp4.py",
    "content": "\"\"\"\nMP4 box parser\n\nThis file originates from the DASH Industry Forum, downloaded from here:\nhttps://github.com/Dash-Industry-Forum/media-tools/tree/master/python/content_analyzers\n\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and\n# contributor rights, including patent rights, and no such rights are granted\n# under this license.\n#\n# Copyright (c) 2016, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without\n# modification, are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice,\n#  this list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation\n#  and/or other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this\n#  software without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS\n#  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n#  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n#  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n#  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n#  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n#  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n#  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n#  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\n\nimport base64\nimport bisect\nfrom collections import namedtuple\nimport functools\nimport itertools\nfrom struct import Struct\nimport struct\n\nfrom dashlivesim.dashlib import bitreader\n\nREGISTERED_BOXES = {}\nCONTAINER_BOXES = set([b'root',\n                       b'moov',\n                       b'moof',\n                       b'trak',\n                       b'traf',\n                       b'tfad',\n                       b'mvex',\n                       b'mdia',\n                       b'minf',\n                       b'dinf',\n                       b'stbl',\n                       b'mfra',\n                       b'udta',\n                       # b'meta',\n                       b'stsd',\n                       b'sinf',\n                       b'schi',\n                       b'encv',\n                       b'enca',\n                       b'avc1',\n                       b'hev1',\n                       b'hvc1',\n                       b'mp4a',\n                       b'ac_3',\n                       b'ec_3',\n                       b'vttc'])\n\n\nUNPACK_U32 = Struct('>I').unpack\nUNPACK_U64 = Struct('>Q').unpack\nUNPACK_SIZE_TYPE = Struct('>I4s').unpack\n\n\ndef parse_generator(data):\n    \"\"\" parse__generator \"\"\"\n    offset = 0\n    fmt = yield None\n    while offset < len(data):\n        ret = struct.unpack_from(fmt, data, offset)\n        offset += struct.calcsize(fmt)\n        fmt = (yield ret) or fmt\n\n\ndef fomrated_parse_generator(data, fmt=''):\n    \"\"\" parse__generator \"\"\"\n    offset = 0\n    while offset < len(data):\n        ret = struct.unpack_from(fmt, data, offset)\n        offset += struct.calcsize(fmt)\n        fmt = (yield ret) or fmt\n\n\ndef match_attribute(obj, crit):\n    \"\"\" match_attribute \"\"\"\n    key, value = crit.split(b'=')\n    obj_value = getattr(obj, key.decode())\n    return str(obj_value) == value.decode()\n\n\ndef match_box(obj, criteria='xxxx'):\n    \"\"\" match_box \"\"\"\n    if len(criteria) == 4:\n        return obj.type == criteria\n    elif criteria.find(b'[') != -1:\n        # assume 'atom[attr=val]' notation\n        return obj.type == criteria[:4] and match_attribute(obj,\n                                                            criteria[5:-1])\n\n\nclass box:\n    def __init__(self, fmap, box_type, size, offset, parent=None):\n        self.fmap = fmap\n        self.type = box_type\n        self.size = size\n        self.offset = offset\n        self.children = []\n        self.parent = parent\n\n    @property\n    def endpos(self):\n        return self.offset + self.size\n\n    @property\n    def childpos(self):\n        return self.offset + 8\n\n    @property\n    def raw_data(self):\n        \"\"\"Return the raw data for this box (including size and type).\"\"\"\n        return self.fmap[self.offset:self.offset + self.size]\n\n    @property\n    def is_container(self):\n        return self.type in CONTAINER_BOXES or self.__class__ == mp4\n\n    @property\n    def is_unparsed(self):\n        return self.is_container and not self.children and self.size >= 16\n\n    @property\n    def root(self):\n        root = self\n        while root.parent:\n            root = root.parent\n        return root\n\n    @property\n    def path(self):\n        if self.parent:\n            path = b'.'.join((self.parent.path, self.type))\n        else:\n            path = b''\n\n        if path.startswith(b'.'):\n            path = path[1:]\n\n        return path\n\n    def find_all(self, path):\n        return self.find(path, return_first=False)\n\n    def find(self, path, return_first=True):\n        # unrolled lookup for most common use-case\n        if len(path) == 4:\n            if (not self.children and self.size >= 16 and (\n                    self.type in CONTAINER_BOXES or self.__class__ == mp4)):\n                self.parse_children(recurse=False)\n\n            if return_first:\n                for child in self.children:\n                    if child.type == path:\n                        return child\n                return []\n            else:\n                return [c for c in self.children if c.type == path]\n\n        # general find algorithm\n        queue = [(self, path.split(b'.'))]\n        matches = []\n        while queue:\n            obj, parts = queue.pop(0)\n            # check if children are parsed\n            if obj.is_unparsed:\n                obj.parse_children(recurse=False)\n\n            # matching child?\n            if parts[0]:\n                if len(parts[0]) == 4:\n                    matching_children = [c for c in obj.children\n                                         if c.type == parts[0]]\n                else:\n                    matching_children = filter(functools.partial(\n                        match_box, criteria=parts[0]), obj.children)\n            else:\n                matching_children = [obj.parent]\n\n            if matching_children:\n                if len(parts) == 1:\n                    matches += matching_children\n\n                    if return_first:\n                        return matches[0]\n                else:\n                    new_items = [(child, parts[1:])\n                                 for child in matching_children]\n                    queue = new_items + queue\n                    # for child in matching_children:\n                    #     queue.append((child, parts[1:]))\n\n        return matches\n\n    def parse_children(self, stops=None, recurse=True):\n        if not self.is_container:\n            return\n\n        if not stops:\n            stops = []\n\n        next_offset = self.childpos\n        end_offset = self.offset + self.size\n\n        while True:\n            box_class = box\n            size, box_type = UNPACK_SIZE_TYPE(self.fmap[next_offset:\n                                                        next_offset + 8])\n\n            # Need to set allowed characters for some boxes\n            if box_type == b'ac-3':\n                box_type = b'ac_3'\n            elif box_type == b'ec-3':\n                box_type = b'ec_3'\n\n            if size == 1:  # Extended size\n                size = UNPACK_U64(self.fmap[next_offset + 8:\n                                            next_offset + 16])[0]\n            if size > self.size or size < 8:\n                print(f\"WARNING: Box '{box_type}' in '{self.path}' at offset \"\n                      f\"{next_offset} has faulty size {size} \"\n                      f\"(> {self.size - 7} or < 8)\")\n                # raise Exception\n                return\n\n            normalized_box_type = box_type.replace(b' ', b'_').decode()\n            box_class_name = f\"{normalized_box_type}_box\"\n            if box_class_name in REGISTERED_BOXES:\n                box_class = REGISTERED_BOXES[box_class_name]\n            else:\n                # print('no box:', box_class_name)\n                pass\n\n            new_box = box_class(self.fmap, box_type, size, next_offset, self)\n            self.children += [new_box]\n            # next_offset = new_box.endpos\n            next_offset += size\n\n            if recurse and new_box.is_container:\n                new_box.parse_children(stops, recurse)\n\n            for stop in stops:\n                if stop(new_box):\n                    return\n\n            if next_offset >= end_offset:\n                break\n\n    def __str__(self):\n        old = object.__str__(self)\n        replacement = f\"{self.path}' [{self.offset}:{self.size}] object at\"\n        return old.replace(\"object at\", replacement)\n\n\nclass full_box(box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        if self.type == b'uuid':\n            self.extended_type = self.fmap[self.offset + 8:self.offset + 24]\n            self.version = struct.unpack(\n                'B', self.fmap[self.offset + 24:self.offset + 25])[0]\n            self.flags = struct.unpack(\n                '>i', b'\\x00' +\n                self.fmap[self.offset + 25:self.offset + 28])[0]\n        else:\n            self.version = struct.unpack(\n                'B', self.fmap[self.offset + 8:self.offset + 9])[0]\n            self.flags = struct.unpack(\n                '>i', b'\\x00' + self.fmap[self.offset + 9:self.offset + 12])[0]\n\n\nclass bridged_box:\n    def __init__(self, start, end):\n        assert start.fmap == end.fmap\n\n        self.start = start\n        self.end = end\n        self.fmap = start.fmap\n        self.offset = start.offset\n        self.size = end.offset + end.size - start.offset\n        self.type = f\"{start.type}->{end.type}\"\n\n\nclass mp4(box):\n    def __init__(self,\n                 fmap,\n                 size=0,\n                 stops=None,\n                 recurse=True,\n                 offset=0,\n                 key=None,\n                 encrypted=False):\n        self.key = key\n        self.encrypted = encrypted\n\n        if not stops:\n            stops = []\n\n        if not size:\n            size = len(fmap)\n        super().__init__(fmap, b'root', size, offset)\n        if recurse:\n            self.parse_children(stops=stops, recurse=recurse)\n\n    def get_video_info(self):\n        box_ = self.find(b'moov.trak.mdia.minf.vmhd')\n        if not box_:\n            return None, 0\n        timescale = box_.parent.parent.find(b'mdhd').timescale\n        track = box_.parent.parent.parent.find(b'tkhd').track_id\n        return track, timescale\n\n    def get_audio_info(self):\n        box_ = self.find(b'moov.trak.mdia.minf.smhd')\n        if not box:\n            return None, 0\n        timescale = box_.parent.parent.find(b'mdhd').timescale\n        track = box_.parent.parent.parent.find(b'tkhd').track_id\n        return track, timescale\n\n    def get_timed_text_info(self):\n        box_ = self.find(b'moov.trak.mdia.minf.nmhd')\n        if not box:\n            return None, 0\n        timescale = box_.parent.parent.find(b'mdhd').timescale\n        track = box_.parent.parent.parent.find(b'tkhd').track_id\n        return track, timescale\n\n    @property\n    def childpos(self):\n        return self.offset\n\n\nclass moov_box(box):\n    def __init__(self, fmap, box_type, size, offset, parent=None):\n        super().__init__(fmap, box_type, size, offset, parent)\n\n\nclass mvhd_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        mvhd_format = Struct('>QQIQ' if self.version else '>IIII')\n        data = self.fmap[self.offset + 12:self.offset + 12 + mvhd_format.size]\n        (self.creation_time,\n         self.modification_time,\n         self.timescale,\n         self.duration) = mvhd_format.unpack(data)\n\n\nclass pssh_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n        self.system_id = self.fmap[self.offset + 12:self.offset + 28].hex()\n        o = 28\n\n        self.kids = []\n        if self.version > 0:\n            KID_count = UNPACK_U32(self.fmap[self.offset + o:\n                                             self.offset + o + 4])[0]\n            o += 4\n            for k in range(KID_count):\n                kid = self.fmap[self.offset + o:self.offset + o + 16].hex()\n                o += 16\n                self.kids.append(kid)\n\n        self.data_size = UNPACK_U32(self.fmap[self.offset + o:\n                                              self.offset + o + 4])[0]\n        o += 4\n\n    # NOTE: Uncomment this code if PSSH should be parsed as a box container\n    @property\n    def childpos(self):\n        return self.offset + 32\n\n\nclass saiz_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n    @property\n    def default_sample_info_size(self):\n        offset = 12\n        if self.flags and 1:\n            offset += 8\n\n        return struct.unpack('>B', self.fmap[self.offset + offset:\n                                             self.offset + offset + 1])[0]\n\n    @property\n    def sample_count(self):\n        offset = 13\n        if self.flags and 1:\n            offset += 8\n\n        return struct.unpack('>I', self.fmap[self.offset + offset:\n                                             self.offset + offset + 4])[0]\n\n    def sample_info_size(self, index):\n        if self.default_sample_info_size != 0:\n            return self.default_sample_info_size\n\n        info_offset_base = 17\n        if self.flags and 1:\n            info_offset_base += 8\n\n        sample_offset = self.offset + info_offset_base + index\n\n        return struct.unpack('>B', self.fmap[sample_offset:\n                                             sample_offset + 1])[0]\n\n\nclass saio_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n    @property\n    def entry_count(self):\n        offset = 12\n        if self.flags and 1:\n            offset += 8\n\n        return struct.unpack('>I', self.fmap[self.offset + offset:\n                                             self.offset + offset + 4])[0]\n\n    def entry_offset(self, index):\n        offset = 16\n        if self.flags and 1:\n            offset += 8\n            offset += index * 8\n            return struct.unpack('>Q', self.fmap[self.offset + offset:\n                                                 self.offset + offset + 8])[0]\n        else:\n            offset += index * 4\n            return struct.unpack('>I', self.fmap[self.offset + offset:\n                                                 self.offset + offset + 4])[0]\n\n\nclass sbgp_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n    @property\n    def grouping_type(self):\n        return self.fmap[self.offset + 12:self.offset + 16]\n\n    @property\n    def entries(self):\n        return struct.unpack('>I', self.fmap[self.offset + 16:\n                                             self.offset + 20])[0]\n\n    def group_entry(self, index):\n        base_offset = 20 + (self.version and 4 or 0)\n        entry_offset = base_offset + 8 * index\n        if entry_offset > self.size:\n            return 0, 0\n\n        offset = self.offset + entry_offset\n        sample_count = struct.unpack('>I', self.fmap[offset:offset + 4])[0]\n        group_description_index = struct.unpack(\n            '>I', self.fmap[offset + 4:offset + 8])[0]\n\n        return sample_count, group_description_index\n\n\nclass sgpd_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n    @property\n    def grouping_type(self):\n        return self.fmap[self.offset + 12:self.offset + 16]\n\n    @property\n    def entries(self):\n        o = (self.version and 4 or 0)\n        return struct.unpack('>I', self.fmap[self.offset + o + 16:\n                                             self.offset + o + 20])[0]\n\n    def entry(self, index):\n        base_offset = 20 + (self.version and 4 or 0)\n        entry_offset = base_offset + 20 * index\n        if entry_offset > self.size:\n            return 0, 0, ''\n\n        offset = self.offset + entry_offset\n\n        is_encrypted = struct.unpack('>i', b'\\x00' + self.fmap[offset:\n                                                               offset + 3])[0]\n        iv_size = struct.unpack('>b', self.fmap[offset + 3:offset + 4])[0]\n\n        kid = self.fmap[offset + 4:offset + 20]\n\n        return is_encrypted, iv_size, kid\n\n    def entry_data(self, index):\n        base_offset = 20 + (self.version and 4 or 0)\n        entry_offset = base_offset + 20 * index\n        if entry_offset > self.size:\n            return ''\n\n        offset = self.offset + entry_offset\n        return self.fmap[offset:offset + 20]\n\n\nclass senc_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n        self.sample_count = UNPACK_U32(self.fmap[self.offset + 12:\n                                                 self.offset + 16])[0]\n\n        struct = Struct(f'>{self.sample_count}Q')\n        sample_data = struct.unpack(self.fmap[self.offset + 16:\n                                              self.offset + 16 + struct.size])\n        self.samples = [hex(iv) for iv in sample_data]\n        # TODO: subsamples\n\n\nclass genc_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        self._sample_map = {}\n\n    def _init_sample_map_from_sbgp(self, tenc):\n        sbgp = self.get_sibling('sbgp')\n        if not sbgp:\n            return\n        sgpd = self.get_sibling('sgpd')\n\n        entry_index = 0\n        for i in range(sbgp.entries):\n            count, group_index = sbgp.group_entry(i)\n            if group_index == 0:\n                # No group. Use default tenc values\n                enc = tenc.is_encrypted\n                iv_size = tenc.iv_size\n                kid = tenc.key_id\n            else:\n                # group defined. use values from sgpd\n                enc, iv_size, kid = sgpd.entry(group_index - 1)\n\n            for sample_index in range(count):\n                self._sample_map[entry_index + sample_index] = (enc,\n                                                                iv_size,\n                                                                kid)\n            entry_index += count\n\n    def _init_sample_map(self):\n        self._sample_map = {}\n\n        tfhd = self.get_sibling('tfhd')\n        tenc = self.get_tenc_for_track_id(tfhd.track_id)\n\n        self._init_sample_map_from_sbgp(tenc)\n\n        saiz = self.get_sibling('saiz')\n\n        # saio = self.get_sibling('saio')\n        # moof = self.get_ancestor('moof')\n        # sample_offset = moof.offset + saio.entry_offset(0)\n\n        for i in range(saiz.sample_count):\n            #  sample_info_size = saiz.sample_info_size(i)\n            if i not in self._sample_map:\n                self._sample_map[i] = (tenc.is_encrypted,\n                                       tenc.iv_size,\n                                       tenc.key_id)\n            #  sample_offset += sample_info_size\n\n    def sample_encrypted_info(self, index):\n        if index in self._sample_map:\n            is_enc, iv_size, kid = self._sample_map[index]\n            return is_enc, iv_size, kid\n\n        return (0, 0, '')\n\n    def get_sibling(self, type_):\n        box_list = self.parent.children\n        for box_ in box_list:\n            if box_.type == type_:\n                return box_\n        return None\n\n    def get_ancestor(self, type_):\n        p = self\n        while p.parent:\n            p = p.parent\n            if p.type == type_:\n                return p\n        return None\n\n    def get_tenc_for_track_id(self, track_id):\n        trak_boxes = self.root.find_all(b'moov.trak')\n        for box_ in trak_boxes:\n            tkhd = box_.find(b'tkhd')\n            if tkhd.track_id == track_id:\n                return box_.find(b'mdia.minf.stbl.stsd.sinf.schi.tenc')\n        return None\n\n\nclass SampleEntry(box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n    @property\n    def data_reference_index(self):\n        return struct.unpack('>H', self.fmap[self.offset + 14:\n                                             self.offset + 16])[0]\n\n\ndef getDescriptorLen(i):\n    tmp = i.send('>B')[0]\n    len_ = 0\n    while tmp & 0x80:\n        len_ = ((len_ << 7) | (tmp & 0x7f))\n        tmp = i.send('>B')[0]\n\n    len_ = ((len_ << 7) | (tmp & 0x7f))\n\n    return len_\n\n\nclass esds_box(box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n        self.cfg = ''\n        self.obj_type = b''\n        self.stream_type = b''\n        self.es_id = ''\n\n        i = parse_generator(self.fmap[self.offset + 8:\n                                      self.offset + self.size])\n        next(i)  # prime\n        i.send('>I')[0]\n        tag1 = i.send('>B')[0]\n\n        if tag1 == 3:\n            descriptor_len = getDescriptorLen(i)\n            self.es_id = i.send('>B')[0] << 8\n            self.es_id |= i.send('>B')[0]\n            i.send('>B')[0]\n\n            tag2 = i.send('>B')[0]\n\n            if tag2 == 4:\n                descriptor_len = getDescriptorLen(i)\n\n                self.obj_type = i.send('>B')[0]\n                self.stream_type = i.send('>B')[0]\n\n                i.send('>B')[0]\n                i.send('>B')[0]\n\n                i.send('>I')[0]\n                i.send('>I')[0]\n                i.send('>B')[0]\n\n                tag3 = i.send('>B')[0]\n\n                if tag3 == 5:\n\n                    descriptor_len = getDescriptorLen(i)\n                    cfg = bytearray()\n                    for _ in range(descriptor_len):\n                        X = i.send('>B')[0]\n                        cfg.append(X)\n\n                    cfg_str = '0x' + cfg.hex()\n                    self.cfg = cfg_str\n\n\nclass mp4a_box(SampleEntry):\n    def __init__(self, *args):\n        super().__init__(*args)\n        self.channels = struct.unpack(\n            '>h', self.fmap[self.offset + 24:self.offset + 26])[0]\n        self.sample_size = struct.unpack(\n            '>h', self.fmap[self.offset + 26:self.offset + 28])[0]\n        self.sample_rate = struct.unpack(\n            '>I', self.fmap[self.offset + 32:self.offset + 36])[0] >> 16\n\n    @property\n    def childpos(self):\n        return self.offset + 36\n\n\nclass ac_3_box(SampleEntry):\n    def __init__(self, *args):\n        super().__init__(*args)\n        self.channels = struct.unpack(\n            '>h', self.fmap[self.offset + 24:self.offset + 26])[0]\n        self.sample_size = struct.unpack(\n            '>h', self.fmap[self.offset + 26:self.offset + 28])[0]\n        self.sample_rate = struct.unpack(\n            '>I', self.fmap[self.offset + 32:self.offset + 36])[0] >> 16\n\n    @property\n    def childpos(self):\n        return self.offset + 36\n\n\nclass ec_3_box(SampleEntry):\n    def __init__(self, *args):\n        super().__init__(*args)\n        self.channels = struct.unpack(\n            '>h', self.fmap[self.offset + 24:self.offset + 26])[0]\n        self.sample_size = struct.unpack(\n            '>h', self.fmap[self.offset + 26:self.offset + 28])[0]\n        self.sample_rate = struct.unpack(\n            '>I', self.fmap[self.offset + 32:self.offset + 36])[0] >> 16\n\n    @property\n    def childpos(self):\n        return self.offset + 36\n\n\nclass dac3_box(SampleEntry):\n    def __init__(self, *args):\n        super().__init__(*args)\n        self.dec_info = self.fmap[self.offset + 8:self.offset + self.size]\n        self.dec_info_hex = self.dec_info.hex()\n\n        reader = bitreader(self.dec_info)\n\n        self.fscod = reader.get_bits(2)\n        self.bsid = reader.get_bits(5)\n        self.bsmod = reader.get_bits(3)\n        self.acmod = reader.get_bits(3)\n        self.lfeon = reader.get_bits(1)\n        self.bit_rate_code = reader.get_bits(5)\n\n\nDEC3SubstreamEntry = namedtuple('DEC3SubstreamEntry',\n                                ['fscod',\n                                 'bsid',\n                                 'asvc',\n                                 'bsmod',\n                                 'acmod',\n                                 'lfeon',\n                                 'num_dep_sub',\n                                 'chan_loc'])\n\n\nclass dec3_box(SampleEntry):\n    def __init__(self, *args):\n        super().__init__(*args)\n        self.dec_info = self.fmap[self.offset + 8:self.offset + self.size]\n        self.dec_info_hex = self.dec_info.hex()\n\n        reader = bitreader(self.dec_info)\n\n        self.data_rate = reader.get_bits(13)\n\n        # num_ind_sub shall be equal to the substreamID value of the last\n        # independent substream of the bit stream.\n        self.num_ind_sub = reader.get_bits(3)\n        self.ind_sub_streams = []\n\n        for i in range(self.num_ind_sub + 1):\n            fscod = reader.get_bits(2)\n            bsid = reader.get_bits(5)\n            reader.get_bits(1)  # reserved\n            asvc = reader.get_bits(1)\n            bsmod = reader.get_bits(3)\n            acmod = reader.get_bits(3)\n            lfeon = reader.get_bits(1)\n            reader.get_bits(3)  # reserved\n            num_dep_sub = reader.get_bits(4)\n            if num_dep_sub > 0:\n                chan_loc = reader.get_bits(9)\n            else:\n                chan_loc = 0\n                reader.get_bits(1)  # reserved\n\n            self.ind_sub_streams.append(\n                DEC3SubstreamEntry(fscod,\n                                   bsid,\n                                   asvc,\n                                   bsmod,\n                                   acmod,\n                                   lfeon,\n                                   num_dep_sub,\n                                   chan_loc))\n\n\nclass enca_box(mp4a_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n\nclass mp4v_box(SampleEntry):\n    def __init__(self, *args):\n        super().__init__(*args)\n        self.width = struct.unpack(\n            '>h', self.fmap[self.offset + 32:self.offset + 34])[0]\n        self.height = struct.unpack(\n            '>h', self.fmap[self.offset + 34:self.offset + 36])[0]\n\n\nclass avcx_box(SampleEntry):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n        self.width = struct.unpack(\n            '>h', self.fmap[self.offset + 32:self.offset + 34])[0]\n        self.height = struct.unpack(\n            '>h', self.fmap[self.offset + 34:self.offset + 36])[0]\n        self.res_hori = struct.unpack(\n            '>I', self.fmap[self.offset + 36:self.offset + 40])[0]\n        self.res_vert = struct.unpack(\n            '>I', self.fmap[self.offset + 40:self.offset + 44])[0]\n        self.frame_count = struct.unpack(\n            '>h', self.fmap[self.offset + 48:self.offset + 50])[0]\n        self.compressor = str(self.fmap[self.offset + 50:self.offset + 82])\n        self.depth = struct.unpack(\n            '>h', self.fmap[self.offset + 82:self.offset + 84])[0]\n\n    @property\n    def childpos(self):\n        return self.offset + 86\n\n\nclass avc1_box(avcx_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n\nclass avc3_box(avcx_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n\nclass hev1_box(avcx_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n\nclass hvc1_box(avcx_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n\nclass encv_box(avc1_box):\n    def __init__(self, *args):\n        # look at format box to see which box to parse here\n        # mp4v_box.__init__(self, *args)\n        super().__init__(*args)\n\n\nclass avcC_box(box):\n    \"\"\"Extract SPS and PPS. Note, multiple PS are concatenated (not good).\"\"\"\n\n    def __init__(self, *args):\n        super().__init__(*args)\n        i = parse_generator(self.fmap[self.offset + 8:self.offset + self.size])\n        next(i)  # prime\n\n        self.version = i.send('>B')[0]\n        self.profile_ind = i.send('>B')[0]\n        self.profile_compat = i.send('>B')[0]\n        self.level = i.send('>B')[0]\n        self.dummy1 = i.send('>B')[0]\n        tmp1 = i.send('>B')[0]\n        self.num_sps = tmp1 & 0x1f\n\n        sps_vec = bytearray()\n\n        for j in range(0, self.num_sps):\n            spsSize = i.send('>H')[0]\n            for k in range(0, spsSize):\n                x = i.send('>B')[0]\n                sps_vec.append(x)\n\n        sps_bin_str = sps_vec.hex()\n        self.spsb64 = base64.b64encode(bytes.fromhex(sps_bin_str))\n\n        tmp2 = i.send('>B')[0]\n        self.num_pps = tmp2 & 0x1f\n        pps_vec = bytearray()\n\n        for j in range(0, self.num_pps):\n            ppsSize = i.send('>H')[0]\n            for k in range(ppsSize):\n                x = i.send('>B')[0]\n                pps_vec.append(x)\n\n        pps_bin_str = pps_vec.hex()\n        self.ppsb64 = base64.b64encode(bytes.fromhex(pps_bin_str))\n\n        self.sps = sps_bin_str  # Hex string\n        self.pps = pps_bin_str  # Hex string\n        self.sps_bin = sps_vec  # Array of bytes\n        self.pps_bin = pps_vec  # Array of bytes\n\n\ndef read_hex(reader, bytes):\n    vec = bytearray()\n    for i in range(bytes):\n        vec.append(reader.send('>B')[0])\n    hex_str = vec.hex()\n    return hex_str\n\n\nclass hvcC_box(box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        i = parse_generator(self.fmap[self.offset + 8:self.offset + self.size])\n        next(i)  # prime\n\n        self.c = {}\n        self.c['configuration_version'] = i.send('>B')[0]\n\n        tmp = i.send('>B')[0]\n\n        self.c['general_profile_space'] = (tmp >> 6) & 3\n        self.c['general_tier_flag'] = (tmp >> 5) & 1\n        self.c['general_profile_idc'] = tmp & 0x1f\n\n        self.c['general_profile_compatibility_flags'] = read_hex(i, 4)\n        self.c['general_constraint_indicator_flags'] = read_hex(i, 6)\n\n        self.c['general_level_idc'] = i.send('>B')[0]\n\n        tmp = i.send('>H')[0]\n        self.c['min_spatial_segmentation_idc'] = tmp & 0xfff\n\n        tmp = i.send('>B')[0]\n        self.c['parallelismType'] = tmp & 0x3\n\n        tmp = i.send('>B')[0]\n        self.c['chromaFormat'] = tmp & 3\n\n        tmp = i.send('>B')[0]\n        self.c['bitDepthLumaMinus8'] = tmp & 7\n\n        tmp = i.send('>B')[0]\n        self.c['bitDepthChromaMinus8'] = tmp & 7\n\n        self.c['avgFrameRate'] = i.send('>H')[0]\n\n        tmp = i.send('>B')[0]\n\n        self.c['constantFrameRate'] = (tmp >> 6) & 0x3\n        self.c['numTemporalLayers'] = (tmp >> 3) & 0x7\n        self.c['temporalIdNested'] = (tmp >> 2) & 0x1\n        self.c['lengthSizeMinusOne'] = (tmp & 0x3)\n\n        num_arrays = i.send('>B')[0]\n        self.c['num_arrays'] = num_arrays\n        self.c['array'] = []\n\n        for j in range(num_arrays):\n            tmp = i.send('>B')[0]\n            a = {}\n            a['array_completeness'] = (tmp >> 7) & 1\n            a['NAL_unit_type'] = (tmp & 0x3f)\n            a['NAL_units'] = []\n\n            num_nal_units = i.send('>H')[0]\n            for k in range(num_nal_units):\n                nal_unit_length = i.send('>H')[0]\n                nal_unit = read_hex(i, nal_unit_length)\n                a['NAL_units'].append({'NAL_unit': nal_unit})\n\n            self.c['array'].append(a)\n\n\nclass stsd_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n    @property\n    def entry_count(self):\n        return struct.unpack(\n            '>I', self.fmap[self.offset + 12:self.offset + 16])[0]\n\n    @property\n    def childpos(self):\n        return self.offset + 16\n\n\nclass sinf_box(box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n\nclass frma_box(box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n\nclass schm_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        self.type = self.fmap[self.offset + 12:self.offset + 16]\n        self.major_version = struct.unpack(\n            '>H', self.fmap[self.offset + 16:self.offset + 18])[0]\n        self.minor_version = struct.unpack(\n            '>H', self.fmap[self.offset + 18:self.offset + 20])[0]\n\n\nclass schi_box(box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n\nclass tenc_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n    @property\n    def is_encrypted(self):\n        return struct.unpack('>i', b'\\x00' + self.fmap[self.offset + 12:\n                                                       self.offset + 15])[0]\n\n    @property\n    def iv_size(self):\n        return struct.unpack('>b', self.fmap[self.offset + 15:\n                                             self.offset + 16])[0]\n\n    @property\n    def key_id(self):\n        return self.fmap[self.offset + 16:self.offset + 32]\n\n\nclass tkhd_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        i = parse_generator(self.fmap[self.offset + 12:\n                                      self.offset + self.size])\n        next(i)  # prime\n        self.creation_time = i.send(self.version and '>Q' or '>I')[0]\n        self.modification_time = i.send(self.version and '>Q' or '>I')[0]\n        self._track_id = i.send('>I')[0]\n        i.send('>I')  # reserved\n        self.duration = i.send(self.version and '>Q' or '>I')[0]\n\n        for j in range(0, 13):\n            # reserved, matrix etc\n            i.send('>I')\n\n        self.width = i.send('>I')[0] >> 16\n        self.height = i.send('>I')[0] >> 16\n\n    @property\n    def track_id(self):\n        return self._track_id\n\n\nclass mdhd_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        i = parse_generator(self.fmap[self.offset + 12:\n                                      self.offset + self.size])\n        next(i)  # prime\n        self.creation_time = i.send(self.version and '>Q' or '>I')[0]\n        self.modification_time = i.send(self.version and '>Q' or '>I')[0]\n        self.timescale = i.send('>I')[0]\n        self.duration = i.send(self.version and '>Q' or '>I')[0]\n        lang = i.send('>H')[0]\n        lang_1 = ((lang >> 10) & 0x1f) + 0x60\n        lang_2 = ((lang >> 5) & 0x1f) + 0x60\n        lang_3 = (lang & 0x1f) + 0x60\n        self.language = bytes((lang_1, lang_2, lang_3)).decode()\n\n\nclass hdlr_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        i = parse_generator(self.fmap[self.offset + 12:\n                                      self.offset + self.size])\n        next(i)  # prime\n        i.send('>I')[0]  # pre_defined\n        handler_type = ''\n        for k in range(4):\n            handler_type += chr(i.send('>B')[0])  # handler_type\n        i.send('>I')[0]  # reserved\n        i.send('>I')[0]  # reserved\n        i.send('>I')[0]  # reserved\n\n        rest = self.size - 12 - 5 * 4\n        encoding_name = ''\n        for k in range(rest):\n            encoding_name += chr(i.send('>B')[0])\n\n        self.handler_type = handler_type\n        self.encoding_name = encoding_name\n\n\nclass moof_box(box):\n    def __init__(self, fmap, box_type, size, offset, parent=None):\n        super().__init__(fmap, box_type, size, offset, parent)\n\n    def get_mdat(self):\n        box_list = self.parent.children\n        pindex = self.parent.children.index(self)\n        while pindex < len(box_list):\n            box = box_list[pindex]\n            if box.type == b'mdat':\n                return box\n            pindex += 1\n\n        return None\n\n\nclass trex_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        data = self.fmap[self.offset + 12:self.offset + 32]\n        (self.track_id,\n         self.default_sample_description_index,\n         self.default_sample_duration,\n         self.default_sample_size,\n         self.default_sample_flags) = struct.unpack('>IIIII', data)\n\n\nclass mfhd_box(box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        self.seqno = UNPACK_U32(self.fmap[self.offset + 12:\n                                          self.offset + 16])[0]\n\n    def get_track_duration(self, track_id, timescale):\n        truns = self.find(b'.traf.tfhd[track_id=%d]..trun' % track_id,\n                          return_first=False)\n        dur = sum([trun.total_duration for trun in truns])\n        return dur / float(timescale)\n\n    @property\n    def video_duration(self):\n        video_track, video_timescale = self.root.get_video_info()\n        return self.get_track_duration(video_track, video_timescale)\n\n    @property\n    def audio_duration(self):\n        audio_track, audio_timescale = self.root.get_audio_info()\n        return self.get_track_duration(audio_track, audio_timescale)\n\n    def get_track_sample_count(self, track_id):\n        truns = self.find(b'.traf.tfhd[track_id=%d]..trun' % track_id,\n                          return_first=False)\n        return sum([trun.sample_count for trun in truns])\n\n    @property\n    def video_sample_count(self):\n        track, timescale = self.root.get_video_info()\n        return self.get_track_sample_count(track)\n\n    @property\n    def audio_sample_count(self):\n        track, timescale = self.root.get_audio_info()\n        return self.get_track_sample_count(track)\n\n\nclass tfhd_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n        self.has_base_data_offset = self.flags & 0x0001\n        self.has_sample_description_index = self.flags & 0x0002\n        self.has_default_sample_duration = self.flags & 0x0008\n        self.has_default_sample_size = self.flags & 0x0010\n        self.has_default_sample_flags = self.flags & 0x0020\n\n        self.base_data_offset = 0\n        self.sample_description_index = 0\n        self.default_sample_duration = 0\n        self.default_sample_size = 0\n        self.default_sample_flags = 0\n\n        offset = 16\n\n        if self.has_base_data_offset:\n            self.base_data_offset = struct.unpack(\n                '>Q', self.fmap[self.offset + offset:\n                                self.offset + offset + 8])[0]\n            offset = offset + 8\n\n        if self.has_sample_description_index:\n            self.sample_description_index = struct.unpack(\n                '>I', self.fmap[self.offset + offset:\n                                self.offset + offset + 4])[0]\n            offset = offset + 4\n\n        if self.has_default_sample_duration:\n            self.default_sample_duration = struct.unpack(\n                '>I', self.fmap[self.offset + offset:\n                                self.offset + offset + 4])[0]\n            offset = offset + 4\n\n        if self.has_default_sample_size:\n            self.default_sample_size = struct.unpack(\n                '>I', self.fmap[self.offset + offset:\n                                self.offset + offset + 4])[0]\n            offset = offset + 4\n\n        if self.has_default_sample_flags:\n            self.default_sample_flags = struct.unpack(\n                '>I', self.fmap[self.offset + offset:\n                                self.offset + offset + 4])[0]\n            offset = offset + 4\n\n    @property\n    def track_id(self):\n        return struct.unpack(\n            '>I', self.fmap[self.offset + 12:self.offset + 16])[0]\n\n\nclass trun_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n        self.has_data_offset = self.flags & 0x0001\n        self.has_first_sample_flags = self.flags & 0x0004\n        self.has_sample_duration = self.flags & 0x0100\n        self.has_sample_size = self.flags & 0x0200\n        self.has_sample_flags = self.flags & 0x0400\n        self.has_sample_composition_time_offset = self.flags & 0x0800\n        self.first_cto = 0\n\n        # self.sample_count = struct.unpack(\n        #    '>I', self.fmap[self.offset + 12:self.offset + 16])[0]\n        self.data_offset = 0\n        self.first_sample_flags = 0\n        # self.decorators = {'size':self.sample_count}\n\n        self.sample_array_offset = 16\n        if self.has_data_offset:\n            self.data_offset = struct.unpack(\n                '>i', self.fmap[self.offset + self.sample_array_offset:\n                                self.offset + self.sample_array_offset + 4])[0]\n            self.sample_array_offset += 4\n\n        if self.has_first_sample_flags:\n            self.first_sample_flags = struct.unpack(\n                '>I', self.fmap[self.offset + self.sample_array_offset:\n                                self.offset + self.sample_array_offset + 4])[0]\n            self.sample_array_offset += 4\n\n        self.sample_row_size = (\n            (self.has_sample_duration and 4) +\n            (self.has_sample_size and 4) +\n            (self.has_sample_flags and 4) +\n            (self.has_sample_composition_time_offset and 4))\n\n        if self.has_sample_duration:\n            self.total_duration = 0\n            for i in range(self.sample_count):\n                offset = (self.offset + self.sample_array_offset +\n                          i * self.sample_row_size)\n                self.total_duration += struct.unpack(\n                    '>I', self.fmap[offset:offset + 4])[0]\n        else:\n            sample_duration = self.parent.find(b'tfhd').default_sample_duration\n            self.total_duration = sample_duration * self.sample_count\n\n        if self.has_sample_composition_time_offset:\n            offset = (self.offset + self.sample_array_offset +\n                      (self.has_sample_duration and 4) +\n                      (self.has_sample_size and 4) +\n                      (self.has_sample_flags and 4))\n            self.first_cto = (struct.unpack('>i',  # always read as unsigned\n                                            self.fmap[offset:offset + 4])[0])\n\n    def get_durations(self, default_sample_duration):\n        \"\"\"Returns total duration of samples and presentation range as lowest\n        and highest presentation time of samples.\n        Returned presentation times values are relative to base media decode\n        time of a segment.\n        \"\"\"\n        if self.has_sample_duration:\n            first_duration_offset = (self.offset + self.sample_array_offset)\n            last_duration_offset = (first_duration_offset +\n                                    self.sample_count * self.sample_row_size)\n            durations = [struct.unpack('>I', self.fmap[offset:offset + 4])[0]\n                         for offset in range(first_duration_offset,\n                                             last_duration_offset,\n                                             self.sample_row_size)]\n            total_duration = sum(durations)\n\n        else:\n            if default_sample_duration is None:\n                # We don't calculate without sample durations\n                return 0, 0, 0\n\n            total_duration = default_sample_duration * self.sample_count\n\n        if self.has_sample_composition_time_offset:\n            first_cto_offset = (self.offset + self.sample_array_offset +\n                                (self.has_sample_duration and 4) +\n                                (self.has_sample_size and 4) +\n                                (self.has_sample_flags and 4))\n            last_cto_offset = (first_cto_offset +\n                               self.sample_count * self.sample_row_size)\n            ctos = [struct.unpack('>i', self.fmap[offset:offset + 4])[0]\n                    for offset in range(first_cto_offset,\n                                        last_cto_offset,\n                                        self.sample_row_size)]\n\n            if self.has_sample_duration:\n                first_duration = durations[0]\n            else:\n                first_duration = default_sample_duration\n                durations = itertools.repeat(default_sample_duration)\n\n            presentation_min = ctos[0]\n            presentation_max = ctos[0] + first_duration\n            decode_time = 0\n            for duration, cto in zip(durations, ctos):\n                presentation_time = decode_time + cto\n                decode_time += duration\n                if presentation_time < presentation_min:\n                    presentation_min = presentation_time\n                if presentation_time + duration > presentation_max:\n                    presentation_max = presentation_time + duration\n\n        else:\n            presentation_min = 0\n            presentation_max = total_duration\n\n        return total_duration, presentation_min, presentation_max\n\n    # @property\n    # def has_data_offset(self):\n    #    return self.flags & 0x0001\n\n    # @property\n    # def data_offset(self):\n    #    return struct.unpack('>i',\n    #        self.fmap[self.offset + self.sample_array_offset:\n    #                  self.offset + self.sample_array_offset + 4])[0]\n\n    @property\n    def sample_count(self):\n        return struct.unpack('>I', self.fmap[self.offset + 12:\n                                             self.offset + 16])[0]\n\n    def sample_entry(self, i):\n        row = {}\n        offset = (self.offset + self.sample_array_offset +\n                  i * self.sample_row_size)\n        if self.has_sample_duration:\n            row['duration'] = struct.unpack(\n                '>I', self.fmap[offset:offset + 4])[0]\n            offset += 4\n        if self.has_sample_size:\n            row['size'] = struct.unpack(\n                '>I', self.fmap[offset:offset + 4])[0]\n            offset += 4\n        if self.has_sample_flags:\n            flags = struct.unpack('>I', self.fmap[offset:offset + 4])[0]\n            row['flags'] = f\"0x{flags:x}\"\n            offset += 4\n        if self.has_sample_composition_time_offset:\n            # Using >i to support v0 & v1 assuming small enough numbers\n            row['time_offset'] = struct.unpack(\n                '>i', self.fmap[offset:offset + 4])[0]\n            offset += 4\n\n        return row\n\n\nclass tfra_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        self.random_access_time = []\n        self.random_access_moof_offset = []\n\n    @property\n    def track_id(self):\n        return struct.unpack('>I',\n                             self.fmap[self.offset + 12:self.offset + 16])[0]\n\n    @property\n    def length_size_of_traf_num(self):\n        return (struct.unpack('>B',\n                              self.fmap[self.offset + 19:\n                                        self.offset + 20])[0] & 0x30) >> 4\n\n    @property\n    def length_size_of_trun_num(self):\n        return (struct.unpack('>B',\n                              self.fmap[self.offset + 19:\n                                        self.offset + 20])[0] & 0x0C) >> 2\n\n    @property\n    def length_size_of_sample_num(self):\n        return struct.unpack('>B',\n                             self.fmap[self.offset + 19:\n                                       self.offset + 20])[0] & 0x03\n\n    @property\n    def number_of_entry(self):\n        return struct.unpack('>I',\n                             self.fmap[self.offset + 20:self.offset + 24])[0]\n\n    @property\n    def end_time(self):\n        if self.number_of_entry == 0:\n            return 0\n\n        # This is an approx. Assumes a full GOP.\n        last_keyframe_time = self.entry(self.number_of_entry - 1)[0]\n        prev_keyframe_time = self.entry(self.number_of_entry - 2)[0]\n        return last_keyframe_time + (last_keyframe_time - prev_keyframe_time)\n\n    def entry(self, index):\n        intro_format, intro_length = self.version and ('>Q', 16) or ('>I', 8)\n        row_length = (intro_length +\n                      1 + self.length_size_of_traf_num +\n                      1 + self.length_size_of_trun_num +\n                      1 + self.length_size_of_sample_num)\n        row_start = self.offset + 24 + (row_length * index)\n\n        p = fomrated_parse_generator(\n            self.fmap[row_start:row_start + row_length], intro_format)\n        time = next(p)[0]\n        moof_offset = next(p)[0]\n        traf = p.send(['>B', '>H', '>BH', '>I']\n                      [self.length_size_of_traf_num])[-1]\n        trun = p.send(['>B', '>H', '>BH', '>I']\n                      [self.length_size_of_trun_num])[-1]\n        sample = p.send(['>B', '>H', '>BH', '>I']\n                        [self.length_size_of_sample_num])[-1]\n\n        return time, moof_offset, traf, trun, sample\n\n    def parse_random_access_table(self):\n        intro_format, intro_length = self.version and ('>QQ', 16) or ('>II', 8)\n        row_length = (intro_length +\n                      1 + self.length_size_of_traf_num +\n                      1 + self.length_size_of_trun_num +\n                      1 + self.length_size_of_sample_num)\n\n        self.random_access_time = []\n        self.random_access_moof_offset = []\n        for i in range(self.number_of_entry):\n            row_start = self.offset + 24 + (row_length * i)\n            time, moof_offset = struct.unpack(\n                intro_format, self.fmap[row_start:row_start + intro_length])\n\n            if (not self.random_access_moof_offset or\n                    self.random_access_moof_offset[-1] != moof_offset):\n                self.random_access_time.append(time)\n                self.random_access_moof_offset.append(moof_offset)\n\n    def time_for_fragment(self, fragment):\n        if not self.random_access_time:\n            self.parse_random_access_table()\n\n        if len(self.random_access_time) < fragment:\n            return None\n\n        return self.random_access_time[fragment - 1]\n\n    def moof_offset_for_fragment(self, fragment):\n        if not self.random_access_moof_offset:\n            self.parse_random_access_table()\n\n        if len(self.random_access_moof_offset) < fragment:\n            return None, None\n\n        offset = self.random_access_moof_offset[fragment - 1]\n        size = 0\n\n        if len(self.random_access_moof_offset) > fragment:\n            size = self.random_access_moof_offset[fragment] - offset\n\n        return offset, size\n\n    def moof_offset_for_time(self, seek_time):\n        if not self.random_access_moof_offset:\n            self.parse_random_access_table()\n\n        # float_time = seek_time/90000.0\n        index = bisect.bisect_left(self.random_access_time, seek_time)\n        index = max(index - 1, 0)\n        return self.random_access_moof_offset[index]\n\n    def time_for_moof_offset(self, offset):\n        if not self.random_access_moof_offset:\n            self.parse_random_access_table()\n\n        index = self.random_access_moof_offset.index(offset)\n        return self.random_access_time[index]\n\n    @property\n    def fragment_count(self):\n        if not self.random_access_moof_offset:\n            self.parse_random_access_table()\n\n        return len(self.random_access_moof_offset)\n\n\nclass mfro_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n        i = parse_generator(self.fmap[self.offset + 12:\n                                      self.offset + self.size])\n        next(i)  # prime\n\n        self.mfra_size = i.send('>I')[0]\n\n\nclass stbl_box(box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n\nSTTSEntry = namedtuple('STTSEntry', ['sample_count',\n                                     'sample_delta',\n                                     'cumulative_delta'])\n\n\nclass stts_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n        self.entry_count = UNPACK_U32(self.fmap[self.offset + 12:\n                                                self.offset + 16])[0]\n\n        self.entries = []\n        self.lookup = []\n        last_entry = None\n        sample_index = 1\n        cumulative_delta = 0\n\n        struct = Struct(f'>{2 * self.entry_count}I')\n        data = iter(struct.unpack(self.fmap[self.offset + 16:\n                                            self.offset + 16 + struct.size]))\n\n        for sample_count, sample_delta in zip(data, data):\n            if last_entry:\n                sample_index += last_entry.sample_count\n                cumulative_delta += (last_entry.sample_count *\n                                     last_entry.sample_delta)\n\n            entry = STTSEntry(sample_count, sample_delta, cumulative_delta)\n\n            self.entries.append(entry)\n            self.lookup.append(sample_index)\n\n            last_entry = entry\n\n    def sample_time_and_duration(self, sample_number):\n        # lookup entry, essentially the same as\n        # entry_index = bisect.bisect_right(self.lookup, sample_number) - 1\n        entry_index = 0\n        upper_bound = self.entry_count\n        while entry_index < upper_bound:\n            index = (entry_index + upper_bound) // 2\n            if sample_number < self.lookup[index]:\n                upper_bound = index\n            else:\n                entry_index = index + 1\n        entry_index -= 1\n\n        start_sample = self.lookup[entry_index]\n        entry = self.entries[entry_index]\n\n        # calculate sample time based on constant sample durations from\n        # looked-up entry\n        sample_diff = sample_number - start_sample\n        time = entry.cumulative_delta + sample_diff * entry.sample_delta\n        duration = entry.sample_delta\n\n        return time, duration\n\n\nCTSSEntry = namedtuple('CTSSEntry', 'sample_count sample_offset')\n\n\nclass ctts_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n        self.entry_count = UNPACK_U32(self.fmap[self.offset + 12:\n                                                self.offset + 16])[0]\n\n        self.entries = []\n        self.lookup = []\n        last_entry = None\n        sample_index = 1\n\n        struct = Struct(f'>{2 * self.entry_count}I')\n        data = iter(struct.unpack(self.fmap[self.offset + 16:\n                                            self.offset + 16 + struct.size]))\n\n        for sample_count, sample_offset in zip(data, data):\n            entry = CTSSEntry(sample_count, sample_offset)\n\n            if last_entry:\n                sample_index += last_entry.sample_count\n\n            self.entries.append(entry)\n            self.lookup.append(sample_index)\n\n            last_entry = entry\n\n    def sample_offset(self, sample_number):\n        # lookup entry, essentially the same as\n        # entry_index = bisect.bisect_right(self.lookup, sample_number) - 1\n        entry_index = 0\n        upper_bound = self.entry_count\n        while entry_index < upper_bound:\n            index = (entry_index + upper_bound) // 2\n            if sample_number < self.lookup[index]:\n                upper_bound = index\n            else:\n                entry_index = index + 1\n        entry_index -= 1\n\n        return self.entries[entry_index].sample_offset\n\n\nclass stss_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n        self.entry_count = UNPACK_U32(self.fmap[self.offset + 12:\n                                                self.offset + 16])[0]\n\n        struct = Struct(f'>{self.entry_count}I')\n        self.entries = struct.unpack(self.fmap[self.offset + 16:\n                                               self.offset + 16 + struct.size])\n\n    def has_index(self, index):\n        return index in self.entries\n\n\nclass stsz_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n        self.sample_size = UNPACK_U32(self.fmap[self.offset + 12:\n                                                self.offset + 16])[0]\n\n        self.sample_count = UNPACK_U32(self.fmap[self.offset + 16:\n                                                 self.offset + 20])[0]\n\n        if self.sample_size == 0:\n            struct = Struct(f'>{self.sample_count}I')\n            self.sample_sizes = struct.unpack(\n                self.fmap[self.offset + 20:\n                          self.offset + 20 + struct.size])\n\n            def accumulate(sample_sizes):\n                total = 0\n                for x in sample_sizes:\n                    yield total\n                    total += x\n\n            self.sample_sizes_sum = list(accumulate(self.sample_sizes))\n\n        else:\n            self.sample_sizes = ()\n            self.sample_sizes_sum = ()\n\n    def sample_size_and_offset(self, sample_number, index_in_chunk,\n                               chunk_offset):\n        if self.sample_size:\n            offset = chunk_offset + self.sample_size * index_in_chunk\n            size = self.sample_size\n        else:\n            offset_in_chunk = (self.sample_sizes_sum[sample_number - 1] -\n                               self.sample_sizes_sum[sample_number -\n                                                     index_in_chunk - 1])\n            offset = chunk_offset + offset_in_chunk\n            size = self.sample_sizes[sample_number - 1]\n\n        return size, offset\n\n\nSTSCEntry = namedtuple('STSCEntry', ['first_chunk',\n                                     'samples_per_chunk',\n                                     'sample_description_index'])\n\n\nclass stsc_box(full_box):\n\n    def __init__(self, *args):\n        super().__init__(*args)\n\n        self.entry_count = UNPACK_U32(self.fmap[self.offset + 12:\n                                                self.offset + 16])[0]\n\n        self.entries = []\n        self.lookup = []\n        last_entry = None\n        sample_index = 1\n\n        struct = Struct(f'>{3 * self.entry_count}I')\n        data = iter(struct.unpack(self.fmap[self.offset + 16:\n                                            self.offset + 16 + struct.size]))\n\n        for entry_tuple in zip(data, data, data):\n            entry = STSCEntry(*entry_tuple)\n\n            if last_entry:\n                chunk_delta = entry.first_chunk - last_entry.first_chunk\n                sample_index += chunk_delta * last_entry.samples_per_chunk\n\n            self.entries.append(entry)\n            self.lookup.append(sample_index)\n\n            last_entry = entry\n\n    def chunk_and_index(self, sample_number):\n        # lookup entry, essentially the same as\n        # entry_index = bisect.bisect_right(self.lookup, sample_number) - 1\n        entry_index = 0\n        upper_bound = self.entry_count\n        while entry_index < upper_bound:\n            index = (entry_index + upper_bound) // 2\n            if sample_number < self.lookup[index]:\n                upper_bound = index\n            else:\n                entry_index = index + 1\n        entry_index -= 1\n\n        start_sample = self.lookup[entry_index]\n        entry = self.entries[entry_index]\n        sample_diff = sample_number - start_sample\n        chunk = entry.first_chunk + sample_diff // entry.samples_per_chunk\n        index = sample_diff % entry.samples_per_chunk\n        return chunk, index\n\n\nclass stco_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n        self.entry_count = UNPACK_U32(self.fmap[self.offset + 12:\n                                                self.offset + 16])[0]\n\n        struct = Struct(f'>{self.entry_count}I')\n        self.entries = struct.unpack(self.fmap[self.offset + 16:\n                                               self.offset + 16 + struct.size])\n\n    def chunk_offset(self, chunk):\n        try:\n            return self.entries[chunk - 1]\n        except IndexError:\n            return 0\n\n\nclass co64_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n        self.entry_count = UNPACK_U32(self.fmap[self.offset + 12:\n                                                self.offset + 16])[0]\n\n        struct = Struct(f'>{self.entry_count}Q')\n        self.entries = struct.unpack(self.fmap[self.offset + 16:\n                                               self.offset + 16 + struct.size])\n\n    def chunk_offset(self, chunk):\n        try:\n            return self.entries[chunk - 1]\n        except IndexError:\n            return 0\n\n\nclass ftyp_box(box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n        i = parse_generator(self.fmap[self.offset + 8:self.offset + self.size])\n        next(i)  # prime\n\n        self.major_brand = (i.send('>c')[0] + i.send('>c')[0] +\n                            i.send('>c')[0] + i.send('>c')[0])\n        self.minor_version = i.send('>I')[0]\n        self.brands = []\n\n        num_brands = (self.size - 16) // 4\n        for j in range(num_brands):\n            self.brands.append(i.send('>c')[0] + i.send('>c')[0] +\n                               i.send('>c')[0] + i.send('>c')[0])\n\n\nclass styp_box(box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n        i = parse_generator(self.fmap[self.offset + 8:self.offset + self.size])\n        next(i)  # prime\n\n        self.major_brand = (i.send('>c')[0] + i.send('>c')[0] +\n                            i.send('>c')[0] + i.send('>c')[0])\n        self.minor_version = i.send('>I')[0]\n        self.brands = []\n\n        num_brands = (self.size - 16) // 4\n        for j in range(num_brands):\n            self.brands.append(i.send('>c')[0] + i.send('>c')[0] +\n                               i.send('>c')[0] + i.send('>c')[0])\n\n\nclass tfma_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        i = parse_generator(self.fmap[self.offset + 12:\n                                      self.offset + self.size])\n        next(i)  # prime\n\n        self.entry_count = i.send('>I')[0]\n\n        self.entries = []\n        for j in range(self.entry_count):\n            segment_duration = i.send(self.version and '>Q' or '>I')[0]\n            media_time = i.send(self.version and '>q' or '>i')[0]\n            media_rate_integer = i.send('>H')[0]\n            media_rate_fraction = i.send('>H')[0]\n            self.entries.append({'segment-duration': segment_duration,\n                                 'media-time': media_time,\n                                 'media-rate-integer': media_rate_integer,\n                                 'media-rate-fraction': media_rate_fraction})\n\n\nclass tfad_box(box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n\nclass sidx_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        i = parse_generator(self.fmap[self.offset + 12:\n                                      self.offset + self.size])\n        next(i)  # prime\n\n        self.reference_track_id = i.send('>I')[0]\n        self.timescale = i.send('>I')[0]\n        self.first_pres_time = i.send(self.version and '>Q' or '>I')[0]\n        self.first_offset = i.send(self.version and '>Q' or '>I')[0]\n        self.reserved = i.send('>H')[0]\n        self.reference_count = i.send('>H')[0]\n\n        self.references = []\n        for j in range(self.reference_count):\n            byte_1 = i.send('>I')[0]\n            referenced_type = (int(byte_1) >> 31) & 0x01\n            referenced_size = int(byte_1) & 0x7fffffff\n            subsegment_duration = i.send('>I')[0]\n            byte_3 = i.send('>I')[0]\n            starts_with_sap = (int(byte_3) >> 31) & 0x01\n            sap_type = (int(byte_3) >> 28) & 0x07\n            sap_delta_time = int(byte_3) & 0x0fffffff\n\n            ref_type = b'moof'\n            if int(referenced_type) == 0:  # moof reference\n                ref_type = b'moof'\n            else:\n                ref_type = b'sidx'\n\n            self.references.append({'referenced-type': ref_type,\n                                    'referenced-size': referenced_size,\n                                    'subsegment-duration': subsegment_duration,\n                                    'starts-with-sap': starts_with_sap,\n                                    'sap-type': sap_type,\n                                    'sap-delta-time': sap_delta_time})\n\n\nclass udta_box(box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n\nclass meta_box(box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n\nclass tfdt_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        i = parse_generator(self.fmap[self.offset + 12:\n                                      self.offset + self.size])\n        next(i)  # prime\n\n        self.decode_time = i.send(self.version and '>Q' or '>I')[0]\n\n\nclass afra_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        i = parse_generator(self.fmap[self.offset + 12:\n                                      self.offset + self.size])\n        next(i)  # prime\n\n        byte1 = i.send('>B')[0]\n        self.long_ids = (byte1 >> 7) & 0x01\n        self.long_offsets = (byte1 >> 6) & 0x01\n        self.global_entries = (byte1 >> 5) & 0x01\n        self.reserved = (byte1 & 0x1f)\n        self.time_scale = i.send('>I')[0]\n        self.entry_count = i.send('>I')[0]\n        self.entries = []\n        for j in range(0, self.entry_count):\n            time = i.send('>Q')[0]\n            offset = i.send(self.long_offsets and '>Q' or '>I')[0]\n            self.entries.append({'time': time, 'offset': offset})\n\n        self.global_entry_count = 0\n        self.global_entries_list = []\n        if self.global_entries:\n            self.global_entry_count = i.send('>I')[0]\n        for j in range(0, self.global_entry_count):\n            time = i.send('>Q')[0]\n            segment = i.send(self.long_ids and '>I' or '>H')[0]\n            fragment = i.send(self.long_ids and '>I' or '>H')[0]\n            afra_offset = i.send(self.long_ids and '>Q' or '>I')[0]\n            offset_from_afra = i.send(self.long_ids and '>Q' or '>I')[0]\n            self.global_entries_list.append({\n                'time': time,\n                'segment': segment,\n                'fragment': fragment,\n                'afra_offset': afra_offset,\n                'offset_from_afra': offset_from_afra})\n\n\nclass asrt_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        i = parse_generator(self.fmap[self.offset + 12:\n                                      self.offset + self.size])\n        next(i)  # prime\n\n        self.quality_entry_count = i.send('>B')[0]\n        self.qualities = []\n        for j in range(0, self.quality_entry_count):\n            self.qualities.append(read_string(i))\n\n        self.segment_run_entry_count = i.send('>I')[0]\n        self.segments = []\n        for j in range(0, self.segment_run_entry_count):\n            f_seg = i.send('>I')[0]\n            frag_per_seg = i.send('>I')[0]\n            self.segments.append((f_seg, frag_per_seg))\n\n\nclass afrt_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        i = parse_generator(self.fmap[self.offset + 12:\n                                      self.offset + self.size])\n        next(i)  # prime\n\n        self.time_scale = i.send('>I')[0]\n\n        self.quality_entry_count = i.send('>B')[0]\n        self.qualities = []\n        for j in range(0, self.quality_entry_count):\n            self.qualities.append(read_string(i))\n\n        self.fragment_run_entry_count = i.send('>I')[0]\n        self.fragments = []\n        for j in range(0, self.fragment_run_entry_count):\n            first_fragment = i.send('>I')[0]\n            first_fragment_timestamp = i.send('>Q')[0]\n            fragment_duration = i.send('>I')[0]\n            discontinuity_value = ''\n            if fragment_duration == 0:\n                discontinuity_indicator = i.send('>B')[0]\n                if discontinuity_indicator == 0:\n                    discontinuity_value = (\"discontinuity_indicator: \"\n                                           \"end of pres\")\n                elif discontinuity_indicator == 1:\n                    discontinuity_value = (\"discontinuity_indicator: \"\n                                           \"frag numbering\")\n                elif discontinuity_indicator == 2:\n                    discontinuity_value = (\"discontinuity_indicator: \"\n                                           \"timestamps\")\n                elif discontinuity_indicator == 3:\n                    discontinuity_value = (\"discontinuity_indicator: \"\n                                           \"timestamps + frag numbering\")\n                else:\n                    discontinuity_value = (f\"unknown \"\n                                           f\"({discontinuity_indicator})\")\n            self.fragments.append(\n                f\"first_fragment: {first_fragment} \"\n                f\"first_fragment_timestamp: {first_fragment_timestamp} \"\n                f\"fragment_duration: {fragment_duration} \"\n                f\"{discontinuity_value}\")\n\n\ndef read_string(parser):\n    msg = ''\n    byte = parser.send('>B')[0]\n    while byte != 0:\n        msg = msg + chr(byte)\n        byte = parser.send('>B')[0]\n    return msg\n\n\nclass abst_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        i = parse_generator(self.fmap[self.offset + 12:\n                                      self.offset + self.size])\n        next(i)  # prime\n\n        self.bootstrap_info_version = i.send('>I')[0]\n        byte2 = i.send('>B')[0]\n        self.profile = (byte2 >> 6) & 0x03\n        self.live = (byte2 >> 5) & 0x01\n        self.update = (byte2 >> 4) & 0x01\n        self.time_scale = i.send('>I')[0]\n        self.current_media_time = i.send('>Q')[0]\n        self.smtp_time_code_offset = i.send('>Q')[0]\n        self.movie_identifier = read_string(i)\n\n        o = 38 + len(self.movie_identifier)\n\n        self.server_entry_count = i.send('>B')[0]\n        o = o + 1\n        self.servers = []\n        for j in range(0, self.server_entry_count):\n            server = read_string(i)\n            self.servers.append(server)\n            o = o + 1 + len(server)\n\n        self.quality_entry_count = i.send('>B')[0]\n        o = o + 1\n        self.qualities = []\n        for j in range(0, self.server_entry_count):\n            quality = read_string(i)\n            self.qualities.append(quality)\n            o = o + 1 + len(quality)\n\n        self.drm_data = read_string(i)\n        self.meta_data = read_string(i)\n        o = o + 2 + len(self.drm_data) + len(self.meta_data)\n\n        # Segment run\n        self.segment_run_table_count = i.send('>B')[0]\n        o = o + 1\n        self.segment_boxes = []\n        for j in range(0, self.segment_run_table_count):\n            box_size = i.send('>I')[0]\n            box_type = i.send('>4s')[0]\n            olas_box = asrt_box(self.fmap, box_type, box_size,\n                                self.offset + o, self)\n            self.segment_boxes.append(olas_box)\n            o = o + box_size\n\n            for k in range(0, box_size - 8):\n                i.send('>B')[0]\n\n        # Fragment run\n        self.fragment_run_table_count = i.send('>B')[0]\n        o = o + 1\n        self.fragment_boxes = []\n        for j in range(0, self.fragment_run_table_count):\n            box_size = i.send('>I')[0]\n            box_type = i.send('>4s')[0]\n            olas_box = afrt_box(self.fmap, box_type, box_size,\n                                self.offset + o, self)\n            self.fragment_boxes.append(olas_box)\n            o = o + box_size\n\n            for _ in range(0, box_size - 8):\n                i.send('>B')[0]\n\n\nclass mdat_box(box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n\nclass payl_box(box):\n    def __init__(self, *args):\n        super().__init__(*args)\n        self.cue_text = self.fmap[self.offset + 8:self.offset + self.size]\n\n\nclass tfxd_box:\n    def __init__(self, data, version, flags):\n        self.data = data\n        self.version = version\n        self.flags = flags\n\n        i = parse_generator(data)\n        next(i)  # prime\n\n        self.time = i.send(self.version and '>Q' or '>I')[0]\n        self.duration = i.send(self.version and '>Q' or '>I')[0]\n\n\nclass tfrf_box:\n    def __init__(self, data, version, flags):\n        self.data = data\n        self.version = version\n        self.flags = flags\n        self.times = []\n        self.durations = []\n\n        i = parse_generator(data)\n        next(i)  # prime\n\n        self.num_entries = i.send('>B')[0]\n\n        for k in range(self.num_entries):\n            self.times.append(i.send(self.version and '>Q' or '>I')[0])\n            self.durations.append(i.send(self.version and '>Q' or '>I')[0])\n\n\nclass sampleEncryption_box:\n    def __init__(self, data, version, flags, iv_size=8):\n        self.data = data\n        self.version = version\n        self.flags = flags\n        self.iv_size = iv_size\n\n\nclass trackEncryption_box:\n    def __init__(self, data, version, flags):\n        self.data = data\n        self.version = version\n        self.flags = flags\n\n\nclass pssh_uuid_box:\n    def __init__(self, data, version, flags):\n        self.data = data\n        self.version = version\n        self.flags = flags\n\n\ntfxdGuid = '6D1D9B0542D544E680E2141DAFF757B2'\ntfrfGuid = 'D4807EF2CA3946958E5426CB9E46A79F'\nsampleEncryptionGuid = 'A2394F525A9B4F14A2446C427C648DF4'\ntrackEncryptionGuid = \"8974DBCE7BE74C5184F97148F9882554\"\npsshGuid = \"D08A4F1810F34A82B6C832D8ABA183D3\"\n\n\nclass uuid_box(full_box):\n    def __init__(self, *args):\n        full_box.__init__(self, *args)\n\n\nclass sdtp_box(full_box):\n    def __init__(self, *args):\n        full_box.__init__(self, *args)\n\n    def lead(self, il):\n        if il == 0:\n            return 'unknown'\n        elif il == 1:\n            return 'yes, not decodable'\n        elif il == 2:\n            return 'no'\n        elif il == 3:\n            return 'yes, decodable'\n\n    def depends(self, v):\n        if v == 0:\n            return 'unknown'\n        elif v == 1:\n            return 'yes'\n        elif v == 2:\n            return 'no'\n        elif v == 3:\n            return 'reserved'\n\n    def dependend(self, v):\n        if 0 == v == 0:\n            return 'unknown'\n        elif 1 == v == 1:\n            return 'yes'\n        elif 2 == v == 2:\n            return 'no'\n        elif 3 == v == 3:\n            return 'reserved'\n\n    def redundancy(self, v):\n        if v == 0:\n            return 'unknown'\n        elif v == 1:\n            return 'yes'\n        elif v == 2:\n            return 'no'\n        elif v == 3:\n            return 'reserved'\n\n\nclass emsg_box(full_box):\n    def __init__(self, *args):\n        super().__init__(*args)\n\n        i = parse_generator(self.fmap[self.offset + 12:\n                                      self.offset + self.size])\n        next(i)  # prime\n\n        assert self.version == 0 or self.version == 1\n\n        if self.version == 0:\n            # emsg version 0\n            self.scheme_id_uri = read_string(i)\n            self.value = read_string(i)\n            self.timescale = i.send('>I')[0]\n            self.presentation_time_delta = i.send('>I')[0]\n            self.event_duration = i.send('>I')[0]\n            self.id = i.send('>I')[0]\n        elif self.version == 1:\n            # emsg version 1\n            self.timescale = i.send('>I')[0]\n            self.presentation_time = i.send('>Q')[0]\n            self.event_duration = i.send('>I')[0]\n            self.id = i.send('>I')[0]\n            self.scheme_id_uri = read_string(i)\n            self.value = read_string(i)\n\n        self.message_data = []\n        x = False\n        try:\n            while not x:\n                self.message_data.append(i.send('>B')[0])\n        except BaseException:\n            pass\n\n    @property\n    def message(self):\n        return self.message_data.hex()\n\n\nREGISTERED_BOXES = {key: box for key, box in globals().items()\n                    if key.endswith('_box')}\n"
  },
  {
    "path": "dashlivesim/dashlib/mp4filter.py",
    "content": "\"\"\"Filter MP4 files and produce modified versions.\n\nThe filter is streamlined for DASH or other content with one track per file.\n\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nfrom dashlivesim.dashlib.structops import str_to_uint32, uint32_to_str\n\n\nclass MP4FilterError(BaseException):\n    \"Error in MP4Filter or subclass.\"\n\n\nclass MP4Filter(object):\n    \"\"\"Base class for filters.\n\n    Call filter() to get a filtered version of the file.\"\"\"\n\n    # pylint: disable=no-self-use, unused-argument, too-many-instance-attributes\n\n    def __init__(self, filename=None, data=None):\n        self.filename = filename\n        if filename is not None:\n            with open(filename, 'rb') as ifh:\n                self.data = ifh.read()\n        else:\n            self.data = data\n        self.emsg = None\n        self.output = b\"\"\n        self.top_level_boxes_to_parse = []  # Boxes at top-level to filter\n        self.composite_boxes_to_parse = []  # Composite boxes to look into\n        self.next_phase_data = {}\n        self.nr_iterations_done = 0\n        self.output_top_level_boxes = []  # Boxes with size and type\n        # print \"MP4Filter with %s\" % filename\n\n    def check_box(self, data):\n        \"Check the type of box starting at position pos.\"\n        size = str_to_uint32(data[:4])\n        boxtype = data[4:8]\n        return (size, boxtype)\n\n    def filter(self):\n        \"Top level box parsing. The lower-level parsing is done in self.filter_box(). \"\n        self.output = b\"\"\n        pos = 0\n        prev_output_pos = 0\n        while pos < len(self.data):\n            size, boxtype = self.check_box(self.data[pos:pos+8])\n            boxdata = self.data[pos:pos+size]\n            if boxtype in self.top_level_boxes_to_parse:\n                self.output += self.filter_box(boxtype, boxdata, len(self.output))\n            else:\n                self.output += boxdata\n            output_len = len(self.output)\n            if output_len > prev_output_pos:\n                output_box_len = output_len - prev_output_pos\n                self.output_top_level_boxes.append((output_box_len, boxtype))\n                prev_output_pos = output_len\n            pos += size\n        if self.next_phase_data:\n            self.nr_iterations_done += 1\n            self.data = self.output\n            self.output = self.filter()\n        self.finalize()\n        return self.output\n\n    def filter_box(self, boxtype, data, file_pos, path=b\"\"):\n        \"Filter box or tree of boxes recursively.\"\n\n        if boxtype == b\"moof\":\n            self.moof_start = file_pos\n        elif boxtype == b\"mdat\":\n            self.mdat_start = file_pos\n\n        if path == b\"\":\n            path = boxtype\n        else:\n            path = b\"%s.%s\" % (path, boxtype)\n\n        if boxtype in self.composite_boxes_to_parse:\n            # print(\"Parsing %s\" % path)\n            output = data[:8]\n            pos = 8\n            while pos < len(data):\n                child_size, child_box_type = self.check_box(data[pos:pos+8])\n                output_child_box = self.filter_box(child_box_type, data[pos:pos+child_size], file_pos+pos, path)\n                output += output_child_box\n                pos += child_size\n            if len(output) != len(data):\n                output = uint32_to_str(len(output)) + output[4:]\n        else:\n            method_name = \"process_%s\" % boxtype.decode('utf-8')\n            method = getattr(self, method_name, None)\n            if method is not None:\n                output = method(data)\n            else:\n                output = data\n        return output\n\n    def finalize(self):\n        \"Do any final adjustments, if needed.\"\n        pass\n"
  },
  {
    "path": "dashlivesim/dashlib/mpd_proxy.py",
    "content": "from re import findall\nfrom math import ceil\nfrom xml.etree import ElementTree as ET\n\nfrom dashlivesim.dashlib.dash_proxy import DEFAULT_MINIMUM_UPDATE_PERIOD\nfrom dashlivesim.dashlib import mpdprocessor\nfrom dashlivesim.dashlib.timeformatconversions import make_timestamp, seconds_to_iso_duration\n\n\ndef get_mpd(dashProv):\n    \"Get the MPD corresponding to parameters in dashProv\"\n    cfg = dashProv.cfg\n    if cfg.ext == \".period\":\n        mpd_filename = \"%s/%s/%s\" % (dashProv.content_dir, cfg.content_name, cfg.filename.split('+')[0])\n        # Get the first part of the string only, which is the .manifest file name.\n    elif cfg.ext == \".mpd\":\n        mpd_filename = \"%s/%s/%s\" % (dashProv.content_dir, cfg.content_name, cfg.filename)\n    else:\n        raise ValueError(\"Not a valid extension for manifest generation\")\n    mpd_input_data = dashProv.cfg_processor.get_mpd_data()\n    nr_xlink_periods_per_hour = min(mpd_input_data['xlinkPeriodsPerHour'], 60)\n    nr_periods_per_hour = min(mpd_input_data['periodsPerHour'], 60)\n    # See exception description for explanation.\n    if nr_xlink_periods_per_hour > 0:\n        if nr_periods_per_hour == -1:\n            raise Exception(\"Xlinks can only be created for a multiperiod service.\")\n        one_xlinks_for_how_many_periods = float(nr_periods_per_hour) / nr_xlink_periods_per_hour\n        if one_xlinks_for_how_many_periods != int(one_xlinks_for_how_many_periods):\n            raise Exception(\"(Number of periods per hour/ Number of xlinks per hour should be an integer.\")\n    if mpd_input_data['insertAd'] > 0 and nr_xlink_periods_per_hour < 0:\n        raise Exception(\"Insert ad option can only be used in conjuction with the xlink option. To use the \"\n                        \"insert ad option, also set use xlink_m in your url.\")\n    response = generate_dynamic_mpd(dashProv, mpd_filename, mpd_input_data, dashProv.now)\n    # The following 'if' is for IOP 4.11.4.3 , deployment scenario when segments not found.\n    if len(cfg.multi_url) > 0 and cfg.segtimelineloss:  # There is one specific baseURL with losses specified\n        a_var, b_var = cfg.multi_url[0].split(\"_\")\n        dur1 = int(a_var[1:])\n        dur2 = int(b_var[1:])\n        total_dur = dur1 + dur2\n        num_loop = int(ceil(60.0 / (float(total_dur))))\n        now_mod_60 = dashProv.now % 60\n        if a_var[0] == 'u' and b_var[0] == 'd':  # parse server up or down information\n            for i in range(num_loop):\n                if i * total_dur + dur1 < now_mod_60 <= (i + 1) * total_dur:\n                    # Generate and provide mpd with the latest up time, so that last generated segment is shown\n                    # and no new S element added to SegmentTimeline.\n                    latestUptime = dashProv.now - now_mod_60 + (i * total_dur + dur1)\n                    response = generate_dynamic_mpd(dashProv, mpd_filename, mpd_input_data, latestUptime)\n                    break\n                elif now_mod_60 == i * total_dur + dur1:\n                    # Just before down time starts, add InbandEventStream to the MPD.\n                    cfg.emsg_last_seg = True\n                    response = generate_dynamic_mpd(dashProv, mpd_filename, mpd_input_data, dashProv.now)\n                    cfg.emsg_last_seg = False\n\n    if nr_xlink_periods_per_hour > 0:\n        response = generate_response_with_xlink(response, cfg.ext, cfg.filename, nr_periods_per_hour,\n                                                nr_xlink_periods_per_hour, mpd_input_data['insertAd'])\n    return response\n\n\ndef generate_dynamic_mpd(dashProv, mpd_filename, in_data, now):\n    \"Generate the dynamic MPD.\"\n    cfg = dashProv.cfg\n    mpd_data = in_data.copy()\n    if cfg.minimum_update_period_in_s is not None:\n        mpd_data['minimumUpdatePeriod'] = seconds_to_iso_duration(cfg.minimum_update_period_in_s)\n    else:\n        mpd_data['minimumUpdatePeriod'] = DEFAULT_MINIMUM_UPDATE_PERIOD\n    if cfg.media_presentation_duration is not None:\n        mpd_data['mediaPresentationDuration'] = seconds_to_iso_duration(cfg.media_presentation_duration)\n    mpd_data['timeShiftBufferDepth'] = seconds_to_iso_duration(cfg.timeshift_buffer_depth_in_s)\n    mpd_data['timeShiftBufferDepthInS'] = cfg.timeshift_buffer_depth_in_s\n    mpd_data['startNumber'] = cfg.adjusted_start_number\n    mpd_data['publishTime'] = '%s' % make_timestamp(in_data['publishTime'])\n    mpd_data['availabilityStartTime'] = '%s' % make_timestamp(in_data['availability_start_time_in_s'])\n    mpd_data['duration'] = '%d' % in_data['segDuration']\n    mpd_data['maxSegmentDuration'] = 'PT%dS' % in_data['segDuration']\n    timescale = 1\n    pto = 0\n    mpd_data['presentationTimeOffset'] = cfg.adjusted_pto(pto, timescale)\n    if mpd_data['suggested_presentation_delay_in_s'] is not None:\n        spd = in_data['suggested_presentation_delay_in_s']\n        mpd_data['suggestedPresentationDelay'] = \\\n            seconds_to_iso_duration(spd)\n    if 'availabilityEndTime' in in_data:\n        mpd_data['availabilityEndTime'] = make_timestamp(in_data['availabilityEndTime'])\n    if cfg.stop_time is not None and (now > cfg.stop_time):\n        mpd_data['type'] = \"static\"\n    mpd_proc_cfg = {'scte35Present': (cfg.scte35_per_minute > 0),\n                    'continuous': in_data['continuous'],\n                    'segtimeline': in_data['segtimeline'],\n                    'segtimeline_nr': in_data['segtimeline_nr'],\n                    'utc_timing_methods': cfg.utc_timing_methods,\n                    'utc_head_url': dashProv.utc_head_url,\n                    'now': now}\n    ll_data = {}  # Low-latency data\n    if cfg.chunk_duration_in_s is None:\n        mpd_data['availabilityTimeOffset'] = '%f' % in_data['availability_time_offset_in_s']\n        if not cfg.availability_time_complete:\n            mpd_data['availabilityTimeComplete'] = 'false'\n    else:  # Set these values in the ll_data\n        ll_data['availabilityTimeOffset'] = '%f' % in_data['availability_time_offset_in_s']\n        ll_data['availabilityTimeComplete'] = 'false'\n\n    if cfg.chunk_duration_in_s is not None and cfg.chunk_duration_in_s > 0:\n        if len(mpd_proc_cfg['utc_timing_methods']) == 0:\n            mpd_proc_cfg['utc_timing_methods'].append('httpiso')\n        mpd_data['add_profiles'] = ['http://www.dashif.org/guidelines/low-latency-live-v5']\n    full_url = dashProv.base_url + '/'.join(dashProv.url_parts)\n    mpmod = mpdprocessor.MpdProcessor(mpd_filename, mpd_proc_cfg, cfg,\n                                      full_url)\n    period_data = generate_period_data(mpd_data, now, cfg)\n    mpmod.process(mpd_data, period_data, ll_data)\n    return mpmod.get_full_xml()\n\n\ndef generate_response_with_xlink(response, cfg, filename, nr_periods_per_hour, nr_xlink_periods_per_hour, insert_ad):\n    \"Convert the normally created response into a response which has xlinks\"\n    # This functions has two functionality : 1.For MPD and 2.For PERIOD.\n    # 1. When the normally created .mpd file is fed to this function, it removes periods and inserts xlink for the\n    # corresponding periods at that place.\n    # 2. When the xlink period is accessed, it extracts the corresponding period from .mpd file this function generates,\n    # adds some information and returns the appropriate .xml document to the java client.\n    # pylint: disable=too-many-locals, too-many-statements\n    if cfg == \".mpd\":\n        root = ET.fromstring(response)\n        period_id_all = []\n        for child in root.findall('{urn:mpeg:dash:schema:mpd:2011}Period'):\n            period_id_all.append(child.attrib['id'])\n        # period_id_all = findall('Period id=\"([^\"]*)\"', response)\n        # Find all period ids in the response file.\n        one_xlinks_for_how_many_periods = nr_periods_per_hour // nr_xlink_periods_per_hour\n        period_id_xlinks = [x for x in period_id_all if int(x[1:]) % one_xlinks_for_how_many_periods == 0]\n        # Periods that will be replaced with links.\n        base_url = findall('<BaseURL>([^\"]*)</BaseURL>', response)\n        counter = 0\n        for period_id in period_id_all:\n            # Start replacing only if this condition is met.\n            start_pos_period = response.find(period_id) - 12\n            # Find the position in the string file of the period that has be replaced\n            end_pos_period = response.find(\"</Period>\", start_pos_period) + 9\n            # End position of the corresponding period.\n            if period_id in period_id_xlinks:\n                counter += 1\n                original_period = response[start_pos_period:end_pos_period]\n                if insert_ad == 4:\n                    xlink_period = '<Period xlink:href=\"http://vm1.dashif.org/dynamicxlink/invalid' \\\n                                   'url.php\" xlink:actuate=\"onLoad\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">' \\\n                                   '</Period>'\n                elif insert_ad == 3:\n                    xlink_period = '<Period xlink:href=\"http://vm1.dashif.org/dynamicxlink/ad.php' \\\n                                   '?id=6_ad_twoperiods_withremote\" xlink:actuate=\"onLoad\" xmlns:xlink=\"http://www.' \\\n                                   'w3.org/1999/xlink\"></Period>'\n                elif insert_ad == 2:\n                    xlink_period = '<Period xlink:href=\"http://vm1.dashif.org/dynamicxlink/ad.php' \\\n                                   '?id=6_ad_twoperiods\" xlink:actuate=\"onLoad\" xmlns:xlink=\"http://www.w3.org/1999/' \\\n                                   'xlink\"></Period>'\n                elif insert_ad == 1 or insert_ad == 5:\n                    xlink_period = '<Period xlink:href=\"http://vm1.dashif.org/dynamicxlink/ad.php?' \\\n                                   'id=6_ad\" xlink:actuate=\"onLoad\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">' \\\n                                   '</Period>'\n                else:\n                    xlink_period = '<Period xlink:href=\"%s%s+%s.period\" xlink:actuate=\"onLoad\" ' \\\n                                   'xmlns:xlink=\"http://www.w3.org/1999/xlink\"></Period>' % (\n                                       base_url[0], filename, period_id)\n                if insert_ad > 0 and counter == 1:  # This condition ensures that the first period in the mpd is not\n                    # replaced when the ads are enabled.\n                    response = insert_asset_identifier(response, start_pos_period)\n                    # Insert asset identifier, if the period is not replaced.\n                    continue\n                if insert_ad == 5:  # Add additional content for the default content\n                    start_pos_period_contents = original_period.find('>') + 1\n                    xlink_period = xlink_period[:-9] + '\\n<!--Default content that will be played if the xlink is not' \\\n                                                       ' able to load.-->' + original_period[start_pos_period_contents:]\n                response = response.replace(original_period, xlink_period)\n            else:\n                if insert_ad > 0:\n                    response = insert_asset_identifier(response, start_pos_period)\n    else:\n        # This will be done when \".period\" file is being requested\n        # Start manipulating the original period so that it looks like .period in the static xlink file.\n        filename = filename.split('+')[1]\n        # Second part of string has the period id.\n        start_pos_xmlns = response.find(\"xmlns=\")\n        end_pos_xmlns = response.find('\"', start_pos_xmlns + 7) + 1\n        start_pos_period = response.find(filename[:-7]) - 12\n        # Find the position in the string file of the period that has be replaced.\n        end_pos_period = response.find(\"</Period>\", start_pos_period) + 9\n        # End position of the corresponding period.\n        original_period = response[start_pos_period:end_pos_period]\n        original_period = original_period.replace('\">', '\" ' + response[start_pos_xmlns:end_pos_xmlns] + '>', 1)\n        # xml_intro = '<?xml version=\"1.0\" encoding=\"utf-8\"?>\\n'\n        # response = xml_intro + original_period\n        response = original_period\n    return response\n\n\ndef generate_period_data(mpd_data, now, cfg):\n    \"\"\"Generate an array of period data depending on current time (now) and tsbd. 0 gives one period with start=1000h.\n\n    mpd_data is changed (minimumUpdatePeriod).\"\"\"\n    # pylint: disable=too-many-locals\n\n    nr_periods_per_hour = min(mpd_data['periodsPerHour'], 60)\n    if nr_periods_per_hour not in (-1, 0, 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60):\n        raise Exception(\"Bad nr of periods per hour %d\" % nr_periods_per_hour)\n\n    seg_dur = mpd_data['segDuration']\n    period_data = []\n    ad_frequency = -1\n    if mpd_data['insertAd'] > 0:\n        ad_frequency = nr_periods_per_hour // mpd_data['xlinkPeriodsPerHour']\n\n    if nr_periods_per_hour == -1:  # Just one period starting at at time start relative AST\n        start = 0\n        start_number = mpd_data['startNumber'] + start // seg_dur\n        data = {'id': \"p0\", 'start': 'PT%dS' % start, 'startNumber': str(start_number),\n                'duration': seg_dur, 'presentationTimeOffset': \"%d\" % mpd_data['presentationTimeOffset'],\n                'start_s': start}\n        period_data.append(data)\n    elif nr_periods_per_hour == 0:  # nrPeriodsPerHour == 0, make one old period but starting 1000h after AST\n        start = 3600 * 1000\n        data = {'id': \"p0\", 'start': 'PT%dS' % start, 'startNumber': \"%d\" % (start // seg_dur),\n                'duration': seg_dur, 'presentationTimeOffset': \"%d\" % start, 'start_s': start}\n        period_data.append(data)\n    else:  # nr_periods_per_hour > 0\n        period_duration = 3600 // nr_periods_per_hour\n        half_period_duration = period_duration // 2\n        minimum_update_period_s = (half_period_duration - 5)\n        if cfg.seg_timeline or cfg.seg_timeline_nr:\n            minimum_update_period_s = cfg.seg_duration\n        minimum_update_period = \"PT%dS\" % minimum_update_period_s\n        mpd_data['minimumUpdatePeriod'] = minimum_update_period\n        # this_period_nr = now // period_duration\n        last_period_nr = (now + half_period_duration) // period_duration\n        # this_period_start = this_period_nr * period_duration\n        first_period_nr = (now - mpd_data['timeShiftBufferDepthInS'] - seg_dur) // period_duration\n        counter = 0\n        for period_nr in range(first_period_nr, last_period_nr+1):\n            start_time = period_nr * period_duration\n            data = {'id': \"p%d\" % period_nr, 'start': 'PT%dS' % start_time,\n                    'startNumber': \"%d\" % (start_time//seg_dur), 'duration': seg_dur,\n                    'presentationTimeOffset': period_nr*period_duration,\n                    'start_s': start_time}\n            if mpd_data['etpPeriodsPerHour'] > 0:\n                # Check whether the early terminated feature is enabled or not.\n                # If yes, then proceed.\n                nr_etp_periods_per_hour = min(mpd_data['etpPeriodsPerHour'], 60)\n                # Limit the maximum value to 60, same as done for the period.\n                fraction_nr_periods_to_nr_etp = float(nr_periods_per_hour)/nr_etp_periods_per_hour\n                if fraction_nr_periods_to_nr_etp != int(fraction_nr_periods_to_nr_etp):\n                    raise Exception(\"(Number of periods per hour/ Number of etp periods per hour) \"\n                                    \"should be an integer.\")\n                etp_duration = mpd_data['etpDuration']\n                if etp_duration == -1:\n                    etp_duration = period_duration // 2\n                    # Default value\n                    # If no etpDuration is specified, then we take a default values, i.e, half of period duration.\n                if etp_duration > period_duration:\n                    raise Exception(\"Duration of the early terminated period should be less that the duration of a \"\n                                    \"regular period\")\n                if period_nr % fraction_nr_periods_to_nr_etp == 0:\n                    data['etpDuration'] = etp_duration\n                    data['period_duration_s'] = etp_duration\n\n            if mpd_data['mpdCallback'] > 0:\n                # Check whether the mpdCallback feature is enabled or not.\n                # If yes, then proceed.\n                nr_callback_periods_per_hour = min(mpd_data['mpdCallback'], 60)\n                # Limit the maximum value to 60, same as done for the period.\n                fraction_nr_periods_to_nr_callback = float(nr_periods_per_hour)/nr_callback_periods_per_hour\n                if fraction_nr_periods_to_nr_callback != int(fraction_nr_periods_to_nr_callback):\n                    raise Exception(\"(Number of periods per hour/ Number of callback periods per hour) \"\n                                    \"should be an integer.\")\n                if period_nr % fraction_nr_periods_to_nr_callback == 0:\n                    data['mpdCallback'] = 1\n                    # If this period meets the condition, we raise a flag.\n                    # We use the flag later to decide to put a mpdCallback element or not.\n\n            period_data.append(data)\n            if ad_frequency > 0 and ((period_nr % ad_frequency) == 0) and counter > 0:\n                period_data[counter - 1]['periodDuration'] = 'PT%dS' % period_duration\n                period_data[counter - 1]['period_duration_s'] = period_duration\n            counter = counter + 1\n            # print period_data\n        for i, pdata in enumerate(period_data):\n            if i != len(period_data) - 1:  # not last periodDuration\n                if 'period_duration_s' not in pdata:\n                    pdata['period_duration_s'] = period_duration\n    return period_data\n\n\ndef insert_asset_identifier(response, start_pos_period):\n    ad_pos = response.find(\">\", start_pos_period) + 1\n    response = response[:ad_pos] + \"\\n<AssetIdentifier schemeIdUri=\\\"urn:org:dashif:asset-id:2013\\\" value=\\\"md:cid:\" \\\n                                   \"EIDR:10.5240%2f0EFB-02CD-126E-8092-1E49-W\\\"></AssetIdentifier>\" + response[ad_pos:]\n    return response\n"
  },
  {
    "path": "dashlivesim/dashlib/mpdprocessor.py",
    "content": "\"\"\"Modify MPD from VoD to live (static to dynamic).\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport re\nimport copy\nfrom xml.etree import ElementTree\nfrom io import StringIO\nimport time\n\nfrom dashlivesim.dashlib.timeformatconversions import make_timestamp\nfrom dashlivesim.dashlib.segtimeline import SegmentTimeLineGenerator\nfrom dashlivesim.dashlib.dash_namespace import add_ns\nfrom dashlivesim.dashlib import scte35\n\nSET_BASEURL = True\n\nUTC_TIMING_NTP_SERVER = '1.de.pool.ntp.org'\nUTC_TIMING_SNTP_SERVER = 'time.kfki.hu'\nUTC_TIMING_HTTP_SERVER = 'http://time.akamai.com/?iso'\n\n\ndef set_value_from_dict(element, key, data):\n    \"Set attribute key of element to value data[key], if present.\"\n    if key in data:\n        element.set(key, str(data[key]))\n\n\ndef set_values_from_dict(element, keys, data):\n    \"Set attribute key of element to value data[key] for all keys (if present).\"\n    for key in keys:\n        if key in data:\n            element.set(key, str(data[key]))\n\n\nclass MpdModifierError(Exception):\n    \"Generic MpdModifier error.\"\n    pass\n\n\nclass MpdProcessor(object):\n    \"Process a VoD MPD. Analyze and convert it to a live (dynamic) session.\"\n    # pylint: disable=no-self-use, too-many-locals, too-many-instance-attributes\n\n    def __init__(self, infile, mpd_proc_cfg, cfg=None, full_url=None):\n        self.tree = ElementTree.parse(infile)\n        self.scte35_present = mpd_proc_cfg['scte35Present']\n        self.utc_timing_methods = mpd_proc_cfg['utc_timing_methods']\n        self.utc_head_url = mpd_proc_cfg['utc_head_url']\n        self.continuous = mpd_proc_cfg['continuous']\n        self.segtimeline = mpd_proc_cfg['segtimeline']\n        self.segtimeline_nr = mpd_proc_cfg['segtimeline_nr']\n        self.mpd_proc_cfg = mpd_proc_cfg\n        self.cfg = cfg\n        self.full_url = full_url\n        self.root = self.tree.getroot()\n        self.availability_start_time_in_s = None\n        self.emsg_last_seg = cfg.emsg_last_seg if cfg is not None else False\n        self.segtimelineloss = cfg.segtimelineloss if cfg is not None else False\n\n    def process(self, mpd_data, period_data, ll_data={}):\n        \"Top-level call to process the XML.\"\n        mpd = self.root\n        self.availability_start_time_in_s = mpd_data[\n            'availability_start_time_in_s']\n        self.process_mpd(mpd, mpd_data)\n        self.process_mpd_children(mpd, mpd_data, period_data, ll_data)\n\n    def process_mpd(self, mpd, mpd_data):\n        \"\"\"Process the root element (MPD)\"\"\"\n        assert mpd.tag == add_ns('MPD')\n        mpd.set('type', mpd_data.get('type', 'dynamic'))\n        if self.scte35_present:\n            old_profiles = mpd.get('profiles')\n            if not old_profiles.find(scte35.PROFILE) >= 0:\n                new_profiles = old_profiles + \",\" + scte35.PROFILE\n                mpd.set('profiles', new_profiles)\n        if self.segtimelineloss:\n            old_profiles = mpd.get('profiles')\n            if old_profiles.find(\"dash-if-simple\") >= 0:\n                new_profiles = old_profiles.replace(\"dash-if-simple\", \"dash-if-main\")\n                mpd.set('profiles', new_profiles)\n        if 'add_profiles' in mpd_data:\n            profiles = mpd.get('profiles').split(\",\")\n            for prof in mpd_data['add_profiles']:\n                if prof not in profiles:\n                    profiles.append(prof)\n            mpd.set('profiles', \",\".join(profiles))\n\n        key_list = ['availabilityStartTime', 'availabilityEndTime', 'timeShiftBufferDepth',\n                    'minimumUpdatePeriod', 'maxSegmentDuration',\n                    'mediaPresentationDuration', 'suggestedPresentationDelay']\n        if mpd_data.get('type', 'dynamic') == 'static':\n            key_list.remove('minimumUpdatePeriod')\n        if (mpd_data.get('type', 'dynamic') == 'static' or mpd_data.get('mediaPresentationDuration')):\n            key_list.remove('timeShiftBufferDepth')\n        set_values_from_dict(mpd, key_list, mpd_data)\n        if 'mediaPresentationDuration' in mpd.attrib and 'mediaPresentationDuration' not in mpd_data:\n            del mpd.attrib['mediaPresentationDuration']\n        mpd.set('publishTime', make_timestamp(self.mpd_proc_cfg['now']))  # TODO Correlate time with change in MPD\n        mpd.set('id', 'Config part of url maybe?')\n        if self.segtimeline or self.segtimeline_nr:\n            if 'maxSegmentDuration' in mpd.attrib:\n                del mpd.attrib['maxSegmentDuration']\n            if mpd_data.get('type', 'dynamic') != 'static':\n                mpd.set('minimumUpdatePeriod', \"PT0S\")\n\n    # pylint: disable = too-many-branches\n\n    def process_mpd_children(self, mpd, data, period_data, ll_data):\n        \"\"\"Process the children of the MPD element.\n        They should be in order ProgramInformation, BaseURL, Location, ServiceDescription,\n        Period, UTCTiming, Metrics.\"\"\"\n        ato = 0\n        atc = 'true'\n        if 'availabilityTimeOffset' in data:\n            ato = data['availabilityTimeOffset']\n        if 'availabilityTimeComplete' in data:\n            atc = data['availabilityTimeComplete']\n        children = list(mpd)\n        pos = 0\n        for child in children:\n            if child.tag != add_ns('ProgramInformation'):\n                break\n            pos += 1\n        next_child = list(mpd)[pos]\n        set_baseurl = SET_BASEURL\n        if self.cfg and self.cfg.add_location:\n            set_baseurl = False  # Cannot have both BASEURL and Location\n        if next_child.tag == add_ns('BaseURL'):\n            if 'BaseURL' not in data or not set_baseurl:\n                self.root.remove(next_child)\n            else:\n                self.modify_baseurl(next_child, data['BaseURL'])\n                pos += 1\n        elif ('BaseURL' in data) and set_baseurl:\n            if 'urls' in data and data['urls']:  # check if we have to set multiple URLs\n                url_header, url_body = data['BaseURL'].split('//')\n                url_parts = url_body.split('/')\n                i = -1\n                for part in url_parts:\n                    i += 1\n                    if part.find(\"_\") < 0:  # Not a configuration\n                        continue\n                    cfg_parts = part.split(\"_\", 1)\n                    key, _ = cfg_parts\n                    if key == \"baseurl\":\n                        url_parts[i] = \"\"  # Remove all the baseurl elements\n                url_parts = [p for p in url_parts if p is not None]\n                for url in data['urls']:\n                    url_parts.insert(-1, \"baseurl_\" + url)\n                    self.insert_baseurl(mpd, pos, url_header + \"//\" + \"/\".join(url_parts) + \"/\", ato, atc)\n                    del url_parts[-2]\n                    pos += 1\n            else:\n                self.insert_baseurl(mpd, pos, data['BaseURL'], ato, atc)\n                pos += 1\n        if self.cfg and self.cfg.add_location and self.full_url is not None:\n            loc_url = re.sub(r\"/startrel_[-\\d]+\", \"/start_%d\" %\n                             self.cfg.start_time, self.full_url)\n            loc_url = re.sub(r\"/stoprel_[-\\d]+\", \"/stop_%d\" %\n                             self.cfg.stop_time, loc_url)\n            self.insert_location(mpd, pos, loc_url)\n            pos += 1\n\n        if ll_data:\n            self.insert_service_description(mpd, pos)\n            pos += 1\n\n        children = list(mpd)\n        for ch_nr in range(pos, len(children)):\n            if children[ch_nr].tag == add_ns(\"Period\"):\n                period = list(mpd)[pos]\n                pos = ch_nr\n                break\n        else:\n            raise MpdModifierError(\"No period found.\")\n        for i in range(1, len(period_data)):\n            new_period = copy.deepcopy(period)\n            mpd.insert(pos+i, new_period)\n        self.insert_utc_timings(mpd, pos+len(period_data))\n        self.update_periods(mpd, period_data, data['periodOffset'] >= 0, ll_data)\n\n    def insert_baseurl(self, mpd, pos, new_baseurl, new_ato, new_atc):\n        \"Create and insert a new <BaseURL> element.\"\n        baseurl_elem = ElementTree.Element(add_ns('BaseURL'))\n        baseurl_elem.text = new_baseurl\n        baseurl_elem.tail = \"\\n\"\n        if float(new_ato) == -1:\n            self.insert_ato(baseurl_elem, 'INF')\n        elif float(new_ato) > 0:  # don't add this attribute when the value is 0\n            self.insert_ato(baseurl_elem, new_ato)\n        if new_atc in ('False', 'false', '0'):\n            baseurl_elem.set('availabilityTimeComplete', new_atc)\n        mpd.insert(pos, baseurl_elem)\n\n    def modify_baseurl(self, baseurl_elem, new_baseurl):\n        \"Modify the text of an existing BaseURL\"\n        baseurl_elem.text = new_baseurl\n\n    def insert_ato(self, baseurl_elem, new_ato):\n        \"Add availabilityTimeOffset to BaseURL element\"\n        baseurl_elem.set('availabilityTimeOffset', new_ato)\n\n    def insert_location(self, mpd, pos, location_url):\n        location_elem = ElementTree.Element(add_ns('Location'))\n        location_elem.text = location_url\n        location_elem.tail = \"\\n\"\n        mpd.insert(pos, location_elem)\n\n    def insert_service_description(self, mpd, pos):\n        sd_elem = ElementTree.Element(add_ns('ServiceDescription'))\n        sd_elem.set(\"id\", \"0\")\n        sd_elem.text = \"\\n\"\n        lat_elem = ElementTree.Element(add_ns('Latency'))\n        lat_elem.set(\"min\", \"2000\")\n        lat_elem.set(\"max\", \"6000\")\n        lat_elem.set(\"target\", \"4000\")\n        lat_elem.set(\"referenceId\", \"0\")\n        lat_elem.tail = \"\\n\"\n        sd_elem.insert(0, lat_elem)\n        pr_elem = ElementTree.Element(add_ns('PlaybackRate'))\n        pr_elem.set(\"min\", \"0.96\")\n        pr_elem.set(\"max\", \"1.04\")\n        pr_elem.tail = \"\\n\"\n        sd_elem.insert(1, pr_elem)\n        sd_elem.tail = \"\\n\"\n        mpd.insert(pos, sd_elem)\n\n    def insert_producer_reference(self, ad_set, pos):\n        prt_elem = ElementTree.Element(add_ns('ProducerReferenceTime'))\n        prt_elem.set(\"id\", \"0\")\n        prt_elem.set(\"type\", \"encoder\")\n        prt_elem.set(\"wallClockTime\", \"1970-01-01T00:00:00\")\n        prt_elem.set(\"presentationTime\", \"0\")\n        utc_elem = self.create_descriptor_elem('UTCTiming', 'urn:mpeg:dash:utc:http-iso:2014',\n                                               UTC_TIMING_HTTP_SERVER)\n        prt_elem.insert(0, utc_elem)\n        prt_elem.text = \"\\n\"\n        prt_elem.tail = \"\\n\"\n        ad_set.insert(pos, prt_elem)\n\n    def update_periods(self, mpd, period_data, offset_at_period_level, ll_data):\n        \"Update periods to provide appropriate values.\"\n        # pylint: disable = too-many-statements\n\n        def set_attribs(elem, keys, data):\n            \"Set element attributes from data.\"\n            for key in keys:\n                if key in data:\n                    if key == \"presentationTimeOffset\" and str(data[key]) == \"0\":  # Remove default value\n                        if key in elem:\n                            del elem[key]\n                        continue\n                    elem.set(key, str(data[key]))\n\n        def remove_attribs(elem, keys):\n            \"Remove attributes from elem.\"\n            for key in keys:\n                if key in elem.attrib:\n                    del elem.attrib[key]\n\n        def insert_segmentbase(period, presentation_time_offset):\n            \"Insert SegmentBase element.\"\n            segmentbase_elem = ElementTree.Element(add_ns('SegmentBase'))\n            if presentation_time_offset != 0:\n                segmentbase_elem.set('presentationTimeOffset', str(presentation_time_offset))\n            period.insert(0, segmentbase_elem)\n\n        def create_inband_scte35stream_elem():\n            \"Create an InbandEventStream element for SCTE-35.\"\n            return self.create_descriptor_elem(\"InbandEventStream\", scte35.SCHEME_ID_URI, value=str(scte35.PID))\n\n        def create_inband_stream_elem():\n            \"\"\"Create an InbandEventStream element for signalling emsg in Rep when encoder fails to generate new segments\n\n            IOP 4.11.4.3 scenario.\"\"\"\n            return self.create_descriptor_elem(\"InbandEventStream\", \"urn:mpeg:dash:event:2012\", value=str(1))\n\n        def create_inline_mpdcallback_elem(BaseURLSegmented):\n            \"Create an EventStream element for MPD Callback.\"\n            return self.create_descriptor_elem(\"EventStream\", \"urn:mpeg:dash:event:callback:2015\", value=str(1),\n                                               elem_id=None, messageData=BaseURLSegmented)\n        if self.segtimeline or self.segtimeline_nr:\n            segtimeline_generators = {}\n            for content_type in ('video', 'audio'):\n                segtimeline_generators[content_type] = SegmentTimeLineGenerator(self.cfg.media_data[content_type],\n                                                                                self.cfg)\n        periods = mpd.findall(add_ns('Period'))\n        BaseURL = mpd.findall(add_ns('BaseURL'))\n        if len(BaseURL) > 0:\n            BaseURLParts = BaseURL[0].text.split('/')\n            if len(BaseURLParts) > 3:\n                BaseURLSegmented = BaseURLParts[0] + '//' + BaseURLParts[2] + '/' + BaseURLParts[3] + '/mpdcallback/'\n        # From the Base URL\n        last_period_id = '-1'\n        for (period, pdata) in zip(periods, period_data):\n            set_attribs(period, ('id', 'start'), pdata)\n            if 'etpDuration' in pdata:\n                period.set('duration', \"PT%dS\" % pdata['etpDuration'])\n            if 'periodDuration' in pdata:\n                period.set('duration', pdata['periodDuration'])\n            segmenttemplate_attribs = ['startNumber']\n            pto = pdata['presentationTimeOffset']\n            if pto:\n                if offset_at_period_level:\n                    insert_segmentbase(period, pto)\n                else:\n                    segmenttemplate_attribs.append('presentationTimeOffset')\n            if 'mpdCallback' in pdata:\n                # Add the mpdCallback element only if the flag is raised.\n                mpdcallback_elem = create_inline_mpdcallback_elem(BaseURLSegmented)\n                period.insert(0, mpdcallback_elem)\n            adaptation_sets = period.findall(add_ns('AdaptationSet'))\n            for ad_set in adaptation_sets:\n                ad_pos = 0\n                content_type = ad_set.get('contentType')\n                if self.emsg_last_seg:\n                    inband_event_elem = create_inband_stream_elem()\n                    ad_set.insert(0, inband_event_elem)\n                if content_type == 'video' and self.scte35_present:\n                    scte35_elem = create_inband_scte35stream_elem()\n                    ad_set.insert(0, scte35_elem)\n                    ad_pos += 1\n                if self.continuous and last_period_id != '-1':\n                    supplementalprop_elem = self.create_descriptor_elem(\"SupplementalProperty\",\n                                                                        \"urn:mpeg:dash:period_continuity:2014\",\n                                                                        last_period_id)\n                    ad_set.insert(ad_pos, supplementalprop_elem)\n                if ll_data:\n                    self.insert_producer_reference(ad_set, ad_pos)\n                seg_templates = ad_set.findall(add_ns('SegmentTemplate'))\n                for seg_template in seg_templates:\n                    set_attribs(seg_template, segmenttemplate_attribs, pdata)\n                    if ll_data:\n                        set_attribs(seg_template,\n                                    ('availabilityTimeOffset', 'availabilityTimeComplete'),\n                                    ll_data)\n                    if pdata.get('startNumber') == '-1':  # Default to 1\n                        remove_attribs(seg_template, ['startNumber'])\n\n                    if self.segtimeline or self.segtimeline_nr:\n                        # add SegmentTimeline block in SegmentTemplate with timescale and window.\n                        segtime_gen = segtimeline_generators[content_type]\n                        now = self.mpd_proc_cfg['now']\n                        tsbd = self.cfg.timeshift_buffer_depth_in_s\n                        ast = self.cfg.availability_start_time_in_s\n                        start_time = max(ast + pdata['start_s'], now - tsbd)\n                        if 'period_duration_s' in pdata:\n                            end_time = min(ast + pdata['start_s'] + pdata['period_duration_s'], now)\n                        else:\n                            end_time = now\n                        start_time -= self.cfg.availability_start_time_in_s\n                        end_time -= self.cfg.availability_start_time_in_s\n                        use_closest = False\n                        if self.cfg.stop_time and self.cfg.timeoffset == 0:\n                            start_time = self.cfg.start_time\n                            end_time = min(now, self.cfg.stop_time)\n                            use_closest = True\n                        seg_timeline = segtime_gen.create_segtimeline(\n                            start_time, end_time, use_closest)\n                        remove_attribs(seg_template, ['duration'])\n                        seg_template.set('timescale', str(self.cfg.media_data[content_type]['timescale']))\n                        if pto != \"0\" and not offset_at_period_level:\n                            # rescale presentationTimeOffset based on the local timescale\n                            seg_template.set('presentationTimeOffset',\n                                             str(int(pto) * int(self.cfg.media_data[content_type]['timescale'])))\n                        media_template = seg_template.attrib['media']\n                        if self.segtimeline:\n                            media_template = media_template.replace('$Number$', 't$Time$')\n                            remove_attribs(seg_template, ['startNumber'])\n                        elif self.segtimeline_nr:\n                            # Set number to the first number listed\n                            set_attribs(seg_template,\n                                        ('startNumber',),\n                                        {'startNumber': segtime_gen.start_number})\n                        seg_template.set('media', media_template)\n                        seg_template.text = \"\\n\"\n                        seg_template.insert(0, seg_timeline)\n            last_period_id = pdata.get('id')\n\n    def create_descriptor_elem(self, name, scheme_id_uri, value=None, elem_id=None, messageData=None):\n        \"Create an element of DescriptorType.\"\n        elem = ElementTree.Element(add_ns(name))\n        elem.set(\"schemeIdUri\", scheme_id_uri)\n        if value:\n            elem.set(\"value\", value)\n        if elem_id:\n            elem.set(\"id\", elem_id)\n        if name == \"EventStream\" and messageData:\n            eventElem = ElementTree.Element(add_ns(\"Event\"))\n            eventElem.set(\"messageData\", messageData)\n            elem.append(eventElem)\n        elem.tail = \"\\n\"\n        return elem\n\n    def insert_utc_timings(self, mpd, start_pos):\n        \"\"\"Insert UTCTiming elements right after program information in order given by self.utc_timing_methods.\n\n        The version of DASH should also be updated, but that is not done yet.\"\"\"\n\n        pos = start_pos\n        for utc_method in self.utc_timing_methods:\n            if utc_method == \"direct\":\n                direct_time = time.strftime(\"%Y-%m-%dT%H:%M:%SZ\", time.gmtime(time.time()))\n                time_elem = self.create_descriptor_elem('UTCTiming', 'urn:mpeg:dash:utc:direct:2014', direct_time)\n            elif utc_method == \"head\":\n                time_elem = self.create_descriptor_elem('UTCTiming', 'urn:mpeg:dash:utc:http-head:2014',\n                                                        self.utc_head_url)\n            elif utc_method == \"ntp\":\n                time_elem = self.create_descriptor_elem('UTCTiming', 'urn:mpeg:dash:utc:ntp:2014',\n                                                        UTC_TIMING_NTP_SERVER)\n            elif utc_method == \"sntp\":\n                time_elem = self.create_descriptor_elem('UTCTiming', 'urn:mpeg:dash:utc:sntp:2014',\n                                                        UTC_TIMING_SNTP_SERVER)\n            elif utc_method == \"httpxsdate\":\n                time_elem = self.create_descriptor_elem('UTCTiming', 'urn:mpeg:dash:utc:http-xsdate:2014',\n                                                        UTC_TIMING_HTTP_SERVER)\n            elif utc_method == \"httpiso\":\n                time_elem = self.create_descriptor_elem('UTCTiming', 'urn:mpeg:dash:utc:http-iso:2014',\n                                                        UTC_TIMING_HTTP_SERVER)\n            else:  # Unknown or un-implemented UTCTiming method\n                raise MpdModifierError(\"Unknown UTCTiming method: %s\" % utc_method)\n            mpd.insert(pos, time_elem)\n            pos += 1\n        return pos\n\n    def get_full_xml(self, clean=True):\n        \"Get a string of all XML cleaned (no ns0 namespace)\"\n        ofh = StringIO()\n        self.tree.write(ofh, encoding=\"unicode\")\n        value = ofh.getvalue()\n        if clean:\n            value = value.replace(\"ns0:\", \"\").replace(\"xmlns:ns0=\", \"xmlns=\")\n        xml_intro = '<?xml version=\"1.0\" encoding=\"utf-8\"?>\\n'\n        return xml_intro + value\n"
  },
  {
    "path": "dashlivesim/dashlib/scte35.py",
    "content": "\"\"\"SCTE-35 splice cues in emsg format.\n\n Follows the DASH-IF guidelines.\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nfrom dashlivesim.dashlib import emsg\n\n# The scheme_id_uri is a bit unsure. There is also a binary format, which may be preferred (...:2014:bin)\nSCHEME_ID_URI = \"urn:scte:scte35:2013:xml\"\nPID = 999\nPROFILE = \"http://dashif.org/guidelines/adin/app\"\n\nPTS_MOD = 2**33\n\n\ndef make_xml_bool(value):\n    \"Return a true or false string.\"\n    return value and \"true\" or \"false\"\n\n\nclass Scte35Error(Exception):\n    \"Error in SCTE-35 context.\"\n\n\ndef create_scte35_insert_message(pts_adjustment, tier, splice_event_id, splice_event_cancel_indicator,\n                                 out_of_network_indicator, unique_program_id, avail_num, avails_expected,\n                                 splice_immediate_flag, pts_time, auto_return, duration):\n    \"Create the emsg message data for an SCTE-35 Insert Event.\"\n    # pylint: disable=too-many-arguments, too-many-locals\n    splice_insert_attribs = {'spliceEventId': splice_event_id,\n                             'spliceEventCancelIndicator': make_xml_bool(splice_event_cancel_indicator),\n                             'outOfNetworkIndicator': make_xml_bool(out_of_network_indicator),\n                             'uniqueProgramId': unique_program_id,\n                             'availNum': avail_num,\n                             'availsExpected': avails_expected,\n                             'spliceImmediateFlag': make_xml_bool(splice_immediate_flag)}\n    splice_insert_attr_keys = ('spliceEventId', 'spliceEventCancelIndicator', 'outOfNetworkIndicator',\n                               'uniqueProgramId', 'availNum', 'availsExpected', 'spliceImmediateFlag')\n    splice_event_cancel_indicator = make_xml_bool(splice_event_cancel_indicator)\n    splice_immediate_flag = make_xml_bool(splice_immediate_flag)\n    lines = []\n    lines.append('<SpliceInfoSection ptsAdjustment=\"%s\" scte35:tier=\"%s\">' % (pts_adjustment, tier))\n    if splice_event_cancel_indicator == \"false\":\n        attributes = \" \".join(['%s=\"%s\"' % (k, splice_insert_attribs[k]) for k in splice_insert_attr_keys])\n        lines.append('<SpliceInsert %s >' % attributes)\n        if splice_immediate_flag == \"false\":\n            lines.append('<Program><SpliceTime ptsTime=\"%s\"/></Program>' % pts_time)\n        if duration:\n            lines.append('<BreakDuration autoReturn=\"%s\" duration=\"%s\"/>' % (make_xml_bool(auto_return), duration))\n    else:\n        lines.append('<SpliceInsert spliceEventId=\"%s\" spliceEventCancelIndicator=\"%s\">'\n                     % (splice_event_id, splice_event_cancel_indicator))\n    lines.append(\"</SpliceInsert>\")\n    lines.append(\"</SpliceInfoSection>\")\n    return \"\\n\".join(lines)\n\n\nclass Scte35Emsg(emsg.Emsg):\n    \"Class providing an SCTE-35 Insert EMSG box.\"\n\n    def __init__(self, timescale, presentation_time_offset, presentation_time, duration, message_id, splice_id):\n        # pylint: disable=too-many-locals\n        if timescale != 90000:\n            raise Scte35Error(\"Only supports timescale=90000\")\n        presentation_time_delta = presentation_time - presentation_time_offset\n        pts_adjustment = 0\n        tier = 4095\n        splice_event_id = splice_id\n        splice_event_cancel_indicator = False\n        out_of_network_indicator = False\n        unique_program_id = 0\n        avail_num = 0\n        avails_expected = 0\n        splice_immediate_flag = False\n        pts_time = presentation_time % PTS_MOD\n        auto_return = True\n        message_data = create_scte35_insert_message(pts_adjustment, tier, splice_event_id,\n                                                    splice_event_cancel_indicator, out_of_network_indicator,\n                                                    unique_program_id, avail_num, avails_expected,\n                                                    splice_immediate_flag, pts_time, auto_return, duration)\n        emsg.Emsg.__init__(self, SCHEME_ID_URI, PID, timescale, presentation_time_delta, duration,\n                           message_id, message_data)\n\n\ndef create_scte35_emsg(timescale, presentation_time_offset, presentation_time, duration, message_id, splice_id):\n    \"Create the Emsg DASH box for SCTE35 splice_insert.\"\n    scte35emsg = Scte35Emsg(timescale, presentation_time_offset, presentation_time, duration, message_id, splice_id)\n    return scte35emsg.get_box()\n"
  },
  {
    "path": "dashlivesim/dashlib/segmentmuxer.py",
    "content": "\"\"\"Segment Muxer. Can multiplex DASH init and media segments (of some kinds).\n\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nfrom dashlivesim.dashlib.mp4filter import MP4Filter\nfrom dashlivesim.dashlib.structops import uint32_to_str, str_to_uint32\n\n\nclass InitSegmentStructure(MP4Filter):\n    \"\"\"Holds the structure of an initsegment.\n\n    Stores ftyp, mvhd, trex, and trak box data.\"\"\"\n\n    def __init__(self, filename=None, data=None):\n        MP4Filter.__init__(self, filename, data)\n        self.top_level_boxes_to_parse = [b'ftyp', b'moov']\n        self.composite_boxes_to_parse = [b'moov', b'mvex']\n        self._ftyp = None\n        self._mvhd = None\n        self._trex = None\n        self._trak = None\n\n    def process_ftyp(self, data):\n        \"Get a handle to ftyp.\"\n        self._ftyp = data\n        return data\n\n    def process_mvhd(self, data):\n        \"Get a handle to mvhd.\"\n        self._mvhd = data\n        return data\n\n    def process_trex(self, data):\n        \"Get a handle to trex.\"\n        self._trex = data\n        return data\n\n    def process_trak(self, data):\n        \"Get a handle to trak.\"\n        self._trak = data\n        return data\n\n    @property\n    def ftyp(self):\n        \"Get the ftyp box.\"\n        return self._ftyp\n\n    @property\n    def trak(self):\n        \"Get the trak box.\"\n        return self._trak\n\n    @property\n    def mvhd(self):\n        \"Get the mvhd box.\"\n        return self._mvhd\n\n    @property\n    def trex(self):\n        \"Get the trex box.\"\n        return self._trex\n\n\nclass MultiplexInits(object):\n    \"Takes two init segments and multiplexes them. The ftyp and mvhd is taken from the first.\"\n    # pylint: disable=too-few-public-methods\n\n    def __init__(self, filename1=None, filename2=None, data1=None, data2=None):\n        self.istruct1 = InitSegmentStructure(filename1, data1)\n        self.istruct1.filter()\n        self.istruct2 = InitSegmentStructure(filename2, data2)\n        self.istruct2.filter()\n\n    def construct_muxed(self):\n        \"Construct a multiplexed init segment.\"\n        data = []\n\n        data.append(self.istruct1.ftyp)\n        mvex_size = 8 + len(self.istruct1.trex) + len(self.istruct2.trex)\n        moov_size = 8 + len(self.istruct1.mvhd) + mvex_size + len(self.istruct1.trak) + len(self.istruct2.trak)\n\n        data.append(uint32_to_str(moov_size))\n        data.append(b'moov')\n        data.append(self.istruct1.mvhd)\n        data.append(uint32_to_str(mvex_size))\n        data.append(b'mvex')\n        data.append(self.istruct1.trex)\n        data.append(self.istruct2.trex)\n        data.append(self.istruct1.trak)\n        data.append(self.istruct2.trak)\n\n        return b\"\".join(data)\n\n\nclass MediaSegmentStructure(MP4Filter):\n    \"Holds the box structure of a media segment.\"\n    # pylint: disable=too-many-instance-attributes\n\n    def __init__(self, filename=None, data=None):\n        MP4Filter.__init__(self, filename, data)\n        self.top_level_boxes_to_parse = [b'styp', b'moof', b'mdat']\n        self.trun_data_offset = None\n        self.trun_data_offset_in_traf = None\n        self.traf_start = None\n        self.styp = None\n        self.mfhd = None\n        self.traf = None\n        self.moof = None\n        self.mdat = None\n\n    def parse_trun(self, data, pos):\n        \"Parse trun box and find position of data_offset.\"\n        flags = str_to_uint32(data[8:12]) & 0xffffff\n        data_offset_present = flags & 1\n        if data_offset_present:\n            self.trun_data_offset = str_to_uint32(data[16:20])\n            self.trun_data_offset_in_traf = pos + 16 - self.traf_start\n\n    def filter_box(self, boxtype, data, file_pos, path=b\"\"):\n        \"Filter box or tree of boxes recursively.\"\n        if boxtype == b\"styp\":\n            self.styp = data\n        elif boxtype == b\"moof\":\n            self.moof = data\n        elif boxtype == b\"mdat\":\n            self.mdat = data\n        elif boxtype == b\"mfhd\":\n            self.mfhd = data\n        elif boxtype == b\"traf\":\n            self.traf = data\n            self.traf_start = file_pos\n        elif boxtype == b\"trun\":\n            self.parse_trun(data, file_pos)\n        if path == b\"\":\n            path = boxtype\n        else:\n            path = b\"%s.%s\" % (path, boxtype)\n        output = b\"\"\n        if path in (b\"moof\", b\"moof.traf\"):  # Go deeper\n            output += data[:8]\n            pos = 8\n            while pos < len(data):\n                size, boxtype = self.check_box(data[pos:pos+8])\n                output += self.filter_box(boxtype, data[pos:pos+size], file_pos + len(output), path)\n                pos += size\n        else:\n            output = data\n        return output\n\n\nclass MultiplexMediaSegments(object):\n    \"\"\"Takes two media segments and multiplexes them like [mdat1][moof1][mdat2][moof2].\n\n    The styp and is taken from the first.\"\"\"\n\n    def __init__(self, filename1=None, filename2=None, data1=None, data2=None):\n        self.mstruct1 = MediaSegmentStructure(filename1, data1)\n        self.mstruct1.filter()\n        self.mstruct2 = MediaSegmentStructure(filename2, data2)\n        self.mstruct2.filter()\n\n    def mux_on_fragment_level(self):\n        \"Multiplex on frgment level.\"\n        data = []\n        data.append(self.mstruct1.styp)\n        data.append(self.mstruct1.moof)\n        data.append(self.mstruct1.mdat)\n        data.append(self.mstruct2.moof)\n        data.append(self.mstruct2.mdat)\n        return b\"\".join(data)\n\n    def mux_on_sample_level(self):\n        \"Mux media samples into one mdata. This is done by simple concatenation.\"\n\n        def get_traf_with_mod_offset(mstruct, delta_offset):\n            \"Get a traf box but with modified offset.\"\n            if mstruct.trun_data_offset is None:\n                return mstruct.traf\n            new_data_offset = mstruct.trun_data_offset + delta_offset\n            traf = mstruct.traf\n            offset = mstruct.trun_data_offset_in_traf\n            return traf[:offset] + uint32_to_str(new_data_offset) + traf[offset+4:]\n\n        delta_offset1 = len(self.mstruct2.traf)\n        delta_offset2 = len(self.mstruct1.traf) + len(self.mstruct1.mdat) - 8\n        traf1 = get_traf_with_mod_offset(self.mstruct1, delta_offset1)\n        traf2 = get_traf_with_mod_offset(self.mstruct2, delta_offset2)\n\n        moof_size = 8 + len(self.mstruct1.mfhd) + len(self.mstruct1.traf) + len(self.mstruct2.traf)\n        mdat_size = len(self.mstruct1.mdat) + len(self.mstruct2.mdat) - 8\n\n        data = []\n        data.append(self.mstruct1.styp)\n        data.append(uint32_to_str(moof_size))\n        data.append(b'moof')\n        data.append(self.mstruct1.mfhd)\n        data.append(traf1)\n        data.append(traf2)\n        data.append(uint32_to_str(mdat_size))\n        data.append(b'mdat')\n        data.append(self.mstruct1.mdat[8:])\n        data.append(self.mstruct2.mdat[8:])\n\n        return b\"\".join(data)\n"
  },
  {
    "path": "dashlivesim/dashlib/segtimeline.py",
    "content": "\"\"\"SegmentTimeLine XML entry generator.\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport os\nfrom struct import unpack\nfrom xml.etree import ElementTree\nimport bisect\n\nfrom dashlivesim.dashlib.configprocessor import SEGTIMEFORMAT, SegTimeEntry\nfrom dashlivesim.dashlib.dash_namespace import add_ns\n\n\nclass SegmentTimeLineGeneratorError(Exception):\n    \"Something strange happened.\"\n    pass\n\n\nclass SegmentTimeLineGenerator(object):\n    \"Generate SegmentTimeline Object with times relative to availabilityStartTime.\"\n\n    def __init__(self, media_data, cfg):\n        self.timescale = media_data['timescale']\n        self.cfg = cfg\n        try:\n            dat_file = media_data['dat_file']\n        except KeyError as e:\n            print(\"Error for %s: %s\" % (media_data, e))\n        dat_file_path = os.path.join(self.cfg.vod_cfg_dir, dat_file)\n        self.segtimedata = []  # Tuples corresponding to SegTimeEntry\n        with open(dat_file_path, \"rb\") as ifh:\n            data = ifh.read(12)\n            while data:\n                ste = SegTimeEntry(*unpack(SEGTIMEFORMAT, data))\n                self.segtimedata.append(ste)\n                data = ifh.read(12)\n        self.interval_starts = [std.start_time for std in self.segtimedata]\n        self.wrap_duration = cfg.vod_wrap_seconds * self.timescale\n        self.nr_segments_per_wrap = cfg.vod_nr_segments_in_loop\n        self.first_segment_number = cfg.vod_first_segment_in_loop\n        self.start_number = None\n\n    def create_segtimeline(self, start_time, end_time, use_closest=False):\n        \"Create and insert a new <SegmentTimeline> element and S entries.\"\n        seg_timeline = ElementTree.Element(add_ns('SegmentTimeline'))\n        seg_timeline.text = \"\\n\"\n        seg_timeline.tail = \"\\n\"\n\n        start = start_time * self.timescale\n        end = end_time * self.timescale\n\n        # The start segment is the latest one that starts before or at start\n        # The end segment is the latest one that ends before or at end.\n\n        (end_index, end_repeats, end_wraps) = self.find_latest_starting_before(end)\n        if end_index is None:\n            raise SegmentTimeLineGeneratorError(\"No end_index for %d %d. Before AST\" % (start_time, end_time))\n        end_tics = self.get_seg_endtime(end_wraps, end_index, end_repeats)\n        # print(\"end_time %d %d\" % (end, end_tics))\n\n        while end_tics > end:\n            if end_repeats > 0:\n                end_repeats -= 1  # Just move one segment back in the repeat\n            elif end_index > 0:\n                end_index -= 1\n                end_repeats = self.segtimedata[end_index].repeats\n            else:\n                end_wraps -= 1\n                end_index = len(self.segtimedata) - 1\n                end_repeats = self.segtimedata[end_index].repeats\n                if (end_wraps < 0):\n                    return (None, None, None)\n            end_tics = self.get_seg_endtime(end_wraps, end_index, end_repeats)\n\n        # print \"end_time2 %d %d %d\" % (end, end_tics, (end-end_tics)/(self.timescale*1.0))\n        # print \"end time %d %d %d\" % (end_index, end_repeats, end_wraps)\n\n        if use_closest:\n            result = self.find_closest_start(start)\n        else:\n            result = self.find_latest_starting_before(start)\n        (start_index, start_repeats, start_wraps) = result\n        # print(\"start %d %d %d\" % (start_index, start_repeats, start_wraps))\n        start_tics = self.get_seg_starttime(start_wraps, start_index, start_repeats)\n        start_tics_end = self.get_seg_starttime(end_wraps, end_index, end_repeats)\n        if (start_tics_end < start_tics):\n            return seg_timeline  # Empty timeline in this case\n        # print(\"start time %d %d %d\" % (start_tics, start, start - start_tics))\n        repeat_index = end_index\n        nr_wraps = end_wraps\n        # Create the S elements in backwards order\n        while repeat_index != start_index or nr_wraps != start_wraps:\n            seg_data = self.segtimedata[repeat_index]\n            # print(repeat_index, start_index, nr_wraps, start_wraps)\n            if repeat_index == end_index:\n                s_elem = self.generate_s_elem(None, seg_data.duration, end_repeats)\n            else:\n                s_elem = self.generate_s_elem(None, seg_data.duration, seg_data.repeats)\n            seg_timeline.insert(0, s_elem)\n            repeat_index -= 1\n            if repeat_index < 0:\n                nr_wraps -= 1\n                repeat_index = len(self.segtimedata) - 1\n        # Now at first entry corresponding to start_index and start_wraps\n        seg_data = self.segtimedata[start_index]\n        seg_start_time = self.get_seg_starttime(nr_wraps, start_index, start_repeats)\n        if start_index != end_index:\n            nr_repeats = seg_data.repeats - start_repeats\n        elif len(self.segtimedata) == 1 and end_repeats < start_repeats:\n            nr_repeats = (self.segtimedata[0].repeats + end_repeats -\n                          start_repeats)\n        else:  # There was only one entry which was repeated\n            nr_repeats = end_repeats - start_repeats\n        s_elem = self.generate_s_elem(seg_start_time, seg_data.duration, nr_repeats)\n        seg_timeline.insert(0, s_elem)\n        self.start_number = self.get_seg_number(nr_wraps, start_index,\n                                                start_repeats)\n        return seg_timeline\n\n    def get_seg_starttime(self, nr_wraps, index, repeats):\n        \"Get the segment starttime given repeats.\"\n        seg_data = self.segtimedata[index]\n        return nr_wraps*self.wrap_duration + seg_data.start_time + repeats*seg_data.duration\n\n    def get_seg_number(self, nr_wraps, index, repeats):\n        \"Get the segment number given repeats.\"\n        seg_data = self.segtimedata[index]\n        return (nr_wraps*self.nr_segments_per_wrap + seg_data.start_nr +\n                repeats - self.first_segment_number)\n\n    def get_seg_endtime(self, nr_wraps, index, repeats):\n        \"Get the end of a segment.\"\n        seg_data = self.segtimedata[index]\n        return nr_wraps*self.wrap_duration + seg_data.start_time + (repeats+1)*seg_data.duration\n\n    def find_latest_starting_before(self, act_time):\n        \"Find the latest segment starting before act_time.\"\n        nr_wraps, rel_time = divmod(act_time, self.wrap_duration)\n        if nr_wraps < 0:\n            return (None, None, None)  # This is before AST\n        index = bisect.bisect(self.interval_starts, rel_time) - 1\n        seg_data = self.segtimedata[index]\n        repeats = 0\n        accumulated_end_time = seg_data.start_time + seg_data.duration\n        while accumulated_end_time < rel_time:\n            accumulated_end_time += seg_data.duration\n            repeats += 1\n        return index, repeats, nr_wraps\n\n    def find_closest_start(self, act_time):\n        nr_wraps, rel_time = divmod(act_time, self.wrap_duration)\n        if nr_wraps < 0:\n            return (None, None, None)  # This is before AST\n        index = bisect.bisect(self.interval_starts, rel_time) - 1\n        seg_data = self.segtimedata[index]\n        repeats = 0\n        start = seg_data.start_time\n        if abs(rel_time - start) <= (seg_data.duration // 2):\n            return index, repeats, nr_wraps\n\n        while repeats < seg_data.repeats:\n            repeats += 1\n            start += seg_data.duration\n\n            if abs(rel_time - start) <= (seg_data.duration // 2):\n                return index, repeats, nr_wraps\n\n        index += 1\n        if index >= len(self.interval_starts):\n            index = 0\n            nr_wraps += 1\n        return index, self.segtimedata[index].repeats, nr_wraps\n\n    def find_closest_end(self, act_time):\n        \"Find \"\n        nr_wraps, rel_time = divmod(act_time, self.wrap_duration)\n        if nr_wraps < 0:\n            return (None, None, None)  # This is before AST\n        index = bisect.bisect(self.interval_starts, rel_time) - 1\n        seg_data = self.segtimedata[index]\n        repeats = 0\n        start = seg_data.start_time\n        if abs(act_time, start) < (seg_data.duration // 2):\n            return index, repeats, nr_wraps\n\n        while repeats < seg_data.repeats:\n            repeats += 1\n            start += seg_data.duration\n            if abs(act_time, start) < (seg_data.duration // 2):\n                return index, repeats, nr_wraps\n\n        index += 1\n        if index >= self.interval_starts:\n            index = 0\n            nr_wraps += 1\n        return index, self.segtimedata[index].repeats, nr_wraps\n\n    def generate_s_elem(self, start_time, duration, repeat):\n        \"Generate the S elements for the SegmentTimeline.\"\n        s_elem = ElementTree.Element(add_ns('S'))\n        if start_time is not None:\n            s_elem.set(\"t\", str(start_time))\n        s_elem.set(\"d\", str(duration))\n        if repeat > 0:\n            s_elem.set('r', str(repeat))\n        s_elem.tail = \"\\n\"\n        return s_elem\n"
  },
  {
    "path": "dashlivesim/dashlib/sessionid.py",
    "content": "\"\"\"Session IDs to allow for tracing sessions.\"\"\"\n\nimport random\n\nMAX_NUMBER = 2**32 - 1\n\n\ndef generate_session_id():\n    \"Generate a session ID as hex string.\"\n    return \"%08x\" % random.randint(0, MAX_NUMBER)\n"
  },
  {
    "path": "dashlivesim/dashlib/stpp_generator/__init__.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "dashlivesim/dashlib/stpp_generator/make_stpp_segments.py",
    "content": "\"\"\"Generator of TTML/stpp mp4 media segments with fixed duration according to a template.\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport os\nfrom argparse import ArgumentParser\nfrom jinja2 import Template\n\nfrom stpp_creator import StppInitFilter, create_media_segment, TTML_TEMPLATE\n\nBODY_TEMPLATE = '''\n    <div region=\"r0\">\n      {% for p in paragraph %}\n      <p xml:id=\"{{p.id}}\" begin=\"{{p.begin}}\" end=\"{{p.end}}\" >\n        <span style=\"s1\">{{p.text}}</span>\n      </p>\n      {% endfor %}\n    </div>\n'''\n\n\"\"\"\n    <!--div region=\"r1\">\n      <p xml:id=\"{{r1_id}}\" begin=\"{{r1_begin}}\" end=\"{{r1_end}}\" >\n        <span style=\"s2\">{{r1_text}}</span>\n      </p>\n    </div-->\n\"\"\"\n\nTTML_XML = TTML_TEMPLATE.format(BODY_TEMPLATE)\n\n\nclass SegmentCreator(object):\n    \"Creator of both init and media segments.\"\n    def __init__(self, number_of_segments, segment_duration, resolution, segment_name_format,\n                 language, trackid, output_path):\n        self.number_of_segments = number_of_segments\n        self.segment_duration = segment_duration\n        self.segment_name_format = segment_name_format\n        self.language = language\n        self.trackid = trackid\n        self.output_path = output_path\n        self.resolution = resolution\n\n    # pylint: disable=too-many-locals\n    def create_segments(self):\n        \"Create init and media segments.\"\n        print(\"Creating: %dx%d\"%(self.number_of_segments, self.segment_duration))\n\n        # Create output directory if it doesn't exist\n        if not os.path.exists(self.output_path):\n            os.mkdir(self.output_path)\n\n        # Create init segment\n        init_segment_path = os.path.join(self.output_path, \"init.mp4\")\n        with open(init_segment_path, 'wb') as iof:\n            initfilter = StppInitFilter(self.language, self.trackid, self.resolution)\n            initseg = initfilter.filter()\n            iof.write(initseg)\n\n        # Create jinja2 template\n        ttml_template = Template(TTML_XML.strip())\n\n        # Create media segments\n        time = 0\n        for seg_nr in range(1, self.number_of_segments + 1):\n            media_segment_path = (os.path.join(self.output_path, self.segment_name_format)+\".m4s\") % (seg_nr)\n\n            r1_start_time = self.create_time_string(time)\n            r1_end_time = self.create_time_string(time + self.segment_duration)\n            r1_text = \"Segment: %d\" % (seg_nr)\n            # Create paragraph info\n            pars = []\n            for rel_time in range(0, self.segment_duration, self.resolution):\n                start_time = self.create_time_string(time + rel_time)\n                end_time = self.create_time_string(time + rel_time + self.resolution)\n\n                id_str = \"sub%05d\" % (time+rel_time)\n\n                text = '%s : %s' % (self.language, start_time)\n\n                pars.append({'begin':start_time, 'end':end_time, 'id':id_str, 'text':text})\n\n            ttml_data = ttml_template.render(paragraph=pars, r1_id=\"%010d\" % (time), r1_begin=r1_start_time,\n                                             r1_end=r1_end_time, r1_text=r1_text, lang=self.language)\n            #print ttml_data.encode('utf-8')\n\n            with open(media_segment_path, \"wb\") as mof:\n                output = create_media_segment(self.trackid, seg_nr, self.segment_duration, time,\n                                              ttml_data.encode('utf-8'))\n                mof.write(output)\n\n            time += self.segment_duration\n\n\n    #pylint: disable=no-self-use\n    def create_time_string(self, time_ms):\n        \"Create time string from number of milliseconds.\"\n        hours, time_ms = divmod(time_ms, 3600000)\n        minutes, time_ms = divmod(time_ms, 60000)\n        seconds, milliseconds = divmod(time_ms, 1000)\n        return \"%02d:%02d:%02d.%03d\"%(hours, minutes, seconds, milliseconds)\n\n\ndef main():\n    \"Parse command line and run script.\"\n    parser = ArgumentParser()\n    parser.add_argument(\"-d\", \"--segment_duration\", dest=\"segment_duration\", type=int,\n                        help=\"duration of segment in ms\", required=True)\n    parser.add_argument(\"-n\", \"--number_of_segments\", dest=\"number_of_segments\", type=int,\n                        help=\"number of segments to generate\", required=True)\n    parser.add_argument(\"-o\", \"--output_path\", dest=\"output_path\", type=str,\n                        help=\"path to output folder\", required=True)\n    parser.add_argument(\"-f\", \"--segment_name_format\", dest=\"segment_name_format\", type=str,\n                        help=\"format of media segment w/o extension (default %%d).\", default=\"%d\")\n    parser.add_argument(\"-r\", \"--resolution\", dest=\"resolution\", type=int,\n                        help=\"subtitle time stamp resolution (default = 1000)\", default=1000)\n    parser.add_argument(\"-l\", \"--language\", dest=\"language\", type=str, help=\"language (3 letters, default eng)\",\n                        default=\"eng\")\n    parser.add_argument(\"-t\", \"--trackid\", dest=\"trackid\", type=int, help=\"trackID (default 3)\", default=3)\n    args = parser.parse_args()\n    output_path = os.path.abspath(args.output_path)\n    seg_creator = SegmentCreator(args.number_of_segments, args.segment_duration, args.resolution,\n                                 args.segment_name_format, args.language, args.trackid, output_path)\n    seg_creator.create_segments()\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "dashlivesim/dashlib/stpp_generator/stpp_creator.py",
    "content": "\"\"\"Generate TTML init and media segments.\n\nStart from template (which has timescale=1000).\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nfrom dashlivesim.dashlib.mp4filter import MP4Filter\nfrom dashlivesim.dashlib.structops import uint32_to_str, str_to_uint32, uint64_to_str\n\n\nTTML_MEDIA_TMPL = '\\x00\\x00\\x00\\x18stypmsdh\\x00\\x00\\x00\\x00msdhdash\\x00\\x00\\x00`moof\\x00\\x00\\x00\\x10mfhd\\x00\\x00\\\n\\x00\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00Htraf\\x00\\x00\\x00\\x18tfhd\\x00\\x02\\x00\\x18\\x00\\x00\\x00\\x03\\x00\\x00\\x03\\xe8\\x00\\\n\\x00\\x00\\t\\x00\\x00\\x00\\x14tfdt\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x14trun\\x00\\x00\\x00\\\n\\x01\\x00\\x00\\x00\\x01\\x00\\x00\\x00h\\x00\\x00\\x00\\x08mdat'\n\nTIMESCALE = 1000  # This is the units for tfdt time and durations.\nTRACK_ID = 3\n# The init has sample_time_scale and trackID according to the values above\nTTML_INIT = '\\x00\\x00\\x00\\x18ftypiso6\\x00\\x00\\x00\\x01isomdash\\x00\\x00\\x02\\x9dmoov\\x00\\x00\\x00lmvhd\\x00\\x00\\x00\\x00\\\n\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\xc8\\x00\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\\n\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\\n\\x00\\x00\\x00\\x00\\x00\\x00@\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\\n\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x02\\x00\\x00\\x00(mvex\\x00\\x00\\x00 trex\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x01\\x00\\\n\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x02\\x01trak\\x00\\x00\\x00\\\\tkhd\\x00\\x00\\x00\\x07\\x00\\x00\\x00\\x00\\x00\\\n\\x00\\x00\\x00\\x00\\x00\\x00\\x03\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\\n\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\\n\\x00\\x00\\x00\\x00\\x00@\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\\x9dmdia\\x00\\x00\\x00 mdhd\\x00\\x00\\x00\\\n\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x03\\xe8\\x00\\x00\\x00\\x00\\x15\\xc7\\x00\\x00\\x00\\x00\\x00-hdlr\\x00\\x00\\x00\\x00\\\n\\x00\\x00\\x00\\x00subt\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00DASH-IF TTML\\x00\\x00\\x00\\x01Hminf\\x00\\x00\\x00\\x0c\\\nsthd\\x00\\x00\\x00\\x00\\x00\\x00\\x00$dinf\\x00\\x00\\x00\\x1cdref\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x0curl \\x00\\x00\\\n\\x00\\x01\\x00\\x00\\x01\\x10stbl\\x00\\x00\\x00\\xc4stsd\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\xb4stpp\\x00\\x00\\x00\\x00\\\n\\x00\\x00\\x00\\x01http://www.w3.org/ns/ttml#parameter http://www.w3.org/ns/ttml http://www.w3.org/ns/ttml#styling http:\\\n//www.w3.org/ns/ttml#metadata urn:ebu:metadata urn:ebu:style\\x00\\x00\\x00\\x00\\x00\\x00\\x10stts\\x00\\x00\\x00\\x00\\x00\\x00\\\n\\x00\\x00\\x00\\x00\\x00\\x10stsc\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x14stsz\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\\n\\x00\\x00\\x00\\x00\\x00\\x00\\x10stco\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00'\n\n\n# EBU-TT-D sample\nTTML_TEMPLATE = '''\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<tt xmlns:ttp=\"http://www.w3.org/ns/ttml#parameter\" xmlns=\"http://www.w3.org/ns/ttml\"\n    xmlns:tts=\"http://www.w3.org/ns/ttml#styling\" xmlns:ttm=\"http://www.w3.org/ns/ttml#metadata\"\n    xmlns:ebuttm=\"urn:ebu:metadata\" xmlns:ebutts=\"urn:ebu:style\"\n    xml:lang=\"en\" xml:space=\"default\"\n    ttp:timeBase=\"media\"\n    ttp:cellResolution=\"32 15\">\n  <head>\n    <metadata>\n      <ttm:title>DASH-IF Live Simulator</ttm:title>\n      <ebuttm:documentMetadata>\n        <ebuttm:conformsToStandard>urn:ebu:distribution:2014-01</ebuttm:conformsToStandard>\n        <ebuttm:authoredFrameRate>30</ebuttm:authoredFrameRate>\n      </ebuttm:documentMetadata>\n    </metadata>\n    <styling>\n      <style xml:id=\"s0\" tts:fontStyle=\"normal\" tts:fontFamily=\"sansSerif\" tts:fontSize=\"100%\" tts:lineHeight=\"normal\"\n      tts:color=\"#FFFFFF\" tts:wrapOption=\"noWrap\" tts:textAlign=\"center\" />\n      <style xml:id=\"s1\" tts:color=\"#00FF00\" tts:backgroundColor=\"#000000\" ebutts:linePadding=\"0.5c\"/>\n    </styling>\n    <layout>\n      <region xml:id=\"r0\" tts:origin=\"15% 80%\" tts:extent=\"70% 20%\" tts:overflow=\"visible\" tts:displayAlign=\"before\"/>\n    </layout>\n  </head>\n  <body style=\"s0\">\n  {0}\n  </body>\n</tt>\n'''\n\nBODY_TEMPLATE = '''\n    <div region=\"r0\">\n      <p xml:id=\"s0\" begin=\"00:00:00.00\" end=\"00:00:01.00\">\n        <span style=\"s2\">The time is 00:00:00</span>\n      </p>\n      <p xml:id=\"s1\" begin=\"00:00:01.00\" end=\"00:00:02.80\">\n        <span>The time is 00:00:01</span>\n      </p>\n    </div>\n'''\n\nTTML_XML = TTML_TEMPLATE.format(BODY_TEMPLATE)\n\n\nclass StppSegmentCreatorError(Exception):\n    \"Error in TtmlSegmentGenerator.\"\n\n\nclass StppMediaFilter(MP4Filter):\n    \"Generate a TTML media segment with the limitation that there can only be one sample (<tt>).\"\n\n    def __init__(self, track_id, sequence_nr, sample_duration, tfdt_time, ttml_data):\n        MP4Filter.__init__(self, data=TTML_MEDIA_TMPL)\n        self.track_id = track_id\n        self.sequence_nr = sequence_nr\n        self.default_sample_duration = sample_duration\n        self.tfdt_time = tfdt_time\n        self.ttml_data = ttml_data\n        self.top_level_boxes_to_parse = [b'styp', b'moof', b'mdat', b'sidx']\n        self.composite_boxes_to_parse = [b'moof', b'traf']\n\n    # pylint: disable=unused-argument, no-self-use\n    def process_sidx(self, data):\n        \"SIDX not supported.\"\n        raise StppSegmentCreatorError(\"SIDX presence not supported\")\n\n    def process_mfhd(self, data):\n        \"Set sequence number.\"\n        return data[:12] + uint32_to_str(self.sequence_nr)\n\n    def process_tfhd(self, data):\n        \"Process a tfhd box and set trackID, defaultSampleDuration and defaultSampleSize\"\n        tf_flags = str_to_uint32(data[8:12]) & 0xffffff\n        assert tf_flags == 0x020018, \"Can only handle certain tf_flags combinations\"\n        output = data[:12]\n        output += uint32_to_str(self.track_id)\n        output += uint32_to_str(self.default_sample_duration)\n        output += uint32_to_str(len(self.ttml_data))\n        return output\n\n    def process_tfdt(self, data):\n        \"Process a tfdt box and set the baseMediaDecodeTime.\"\n        version = ord(data[8])\n        assert version == 1, \"Can only handle tfdt version 1 (64-bit tfdt).\"\n        output = data[:12]\n        output += uint64_to_str(self.tfdt_time)\n        return output\n\n    def process_mdat(self, data):\n        \"Make an mdat box with the right size to contain the one-and-only ttml sample.\"\n        size = len(self.ttml_data) + 8\n        return uint32_to_str(size) + b'mdat' + self.ttml_data\n\n\nclass StppInitFilter(MP4Filter):\n    \"Generate a TTML init segment from template by changing some values.\"\n\n    def __init__(self, lang=\"eng\", track_id=TRACK_ID, timescale=TIMESCALE, creation_modfication_time=None,\n                 hdlr_name=None):\n        \"Filter to create an appropriate init segment.\"\n        MP4Filter.__init__(self, data=TTML_INIT)\n        self.lang = lang\n        self.track_id = track_id\n        self.timescale = timescale\n        self.creation_modfication_time = creation_modfication_time  # Measured from 1904-01-01 in seconds\n        self.handler_name = hdlr_name\n        self.top_level_boxes_to_parse = [b'moov']\n        self.composite_boxes_to_parse = [b'moov', b'trak', b'mdia', b'minf', b'dinf']\n\n    def process_mvhd(self, data):\n        \"Set nextTrackId and time and movie timescale.\"\n        output = self._insert_timing_data(data)\n        pos = len(output)\n        output += data[pos:-4]\n        output += uint32_to_str(self.track_id + 1)  # next_track_ID\n        return output\n\n    def process_tkhd(self, data):\n        \"Set trackID and time.\"\n        version = data[8]\n        output = data[:12]\n        if version == 1:\n            if self.creation_modfication_time:\n                output += uint64_to_str(self.creation_modfication_time)\n                output += uint64_to_str(self.creation_modfication_time)\n            else:\n                output += data[12:28]\n            output += uint32_to_str(self.track_id)\n            output += uint32_to_str(0)\n            output += uint64_to_str(0)  # duration\n            pos = 44\n        else:\n            if self.creation_modfication_time:\n                output += uint32_to_str(self.creation_modfication_time)\n                output += uint32_to_str(self.creation_modfication_time)\n            else:\n                output += data[12:20]\n            output += uint32_to_str(self.track_id)\n            output += uint32_to_str(0)\n            output += uint32_to_str(0)  # duration\n            pos = 32\n        output += data[pos:]\n        return output\n\n    def process_mdhd(self, data):\n        \"Set the timescale for the trak, language and time.\"\n\n        def get_char_bits(char):\n            \"Each character in the language is smaller case and offset at 0x60.\"\n            return ord(char) - 96\n\n        output = self._insert_timing_data(data)\n        assert len(self.lang) == 3\n        lang = self.lang\n        lang_bits = (get_char_bits(lang[0]) << 10) + (get_char_bits(lang[1]) << 5) + get_char_bits(lang[2])\n        output += uint32_to_str(lang_bits << 16)\n        return output\n\n    def process_hdlr(self, data):\n        \"Set handler name, if desired.\"\n        hdlr = data[16:20]\n        hdlr_name = data[32:-1]  # Actually UTF-8 encoded\n        print(\"Found hdlr %s: %s\" % (hdlr, hdlr_name))\n        if self.handler_name:\n            output = uint32_to_str(len(self.handler_name) + 33) + data[4:32] + self.handler_name + '\\x00'\n            print(\"Wrote hdlr %s\" % self.handler_name)\n        else:\n            output = data\n        return output\n\n    def _insert_timing_data(self, data):\n        \"Help function to insert timestamps and timescale in similar boxes.\"\n        version = data[8]\n        output = data[:12]\n        if version == 1:\n            if self.creation_modfication_time:\n                output += uint64_to_str(self.creation_modfication_time)\n                output += uint64_to_str(self.creation_modfication_time)\n            else:\n                output += data[12:28]\n            output += uint32_to_str(self.timescale)\n            output += uint64_to_str(0)  # duration\n        else:\n            if self.creation_modfication_time:\n                output += uint32_to_str(self.creation_modfication_time)\n                output += uint32_to_str(self.creation_modfication_time)\n            else:\n                output += data[12:20]\n            output += uint32_to_str(self.timescale)\n            output += uint32_to_str(0)\n        return output\n\n\ndef create_media_segment(track_id, sequence_nr, sample_duration, tfdt_time, ttml_data):\n    \"Create a media segment.\"\n    ttml_seg = StppMediaFilter(track_id, sequence_nr, sample_duration, tfdt_time, ttml_data)\n    return ttml_seg.filter()\n\n\ndef create_init_segment(lang=\"eng\", track_id=TRACK_ID, timescale=TIMESCALE, creation_modfication_time=None,\n                        hdlr_name=None):\n    \"Create an init segment.\"\n    init_seg = StppInitFilter(lang, track_id, timescale, creation_modfication_time, hdlr_name)\n    return init_seg.filter()\n"
  },
  {
    "path": "dashlivesim/dashlib/structops.py",
    "content": "\"\"\"Simple struct operations to pack and unpack numbers to strings.\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nfrom struct import pack, unpack\n\n\ndef str_to_uint32(string4):\n    \"4-character string to unsigned int32.\"\n    return unpack(\">I\", string4)[0]\n\n\ndef str_to_sint32(string4):\n    \"4-character string to signed int32.\"\n    return unpack(\">i\", string4)[0]\n\n\ndef str_to_uint64(string8):\n    \"8-character string to unsigned int64.\"\n    return unpack(\">Q\", string8)[0]\n\n\ndef uint32_to_str(uint32):\n    \"Unsigned int32 to string.\"\n    return pack(\">I\", uint32)\n\n\ndef sint32_to_str(sint32):\n    \"Signed int32 to string.\"\n    return pack(\">i\", sint32)\n\n\ndef uint64_to_str(uint64):\n    \"Unsigned int64 to string.\"\n    return pack(\">Q\", uint64)\n"
  },
  {
    "path": "dashlivesim/dashlib/timeformatconversions.py",
    "content": "\"\"\"Helper functions for time conversions.\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport time\nimport re\n\nRE_DURATION = re.compile(r\"PT((?P<hours>\\d+)H)?((?P<minutes>\\d+)M)?((?P<seconds>\\d+)S)?\")\n\n\nclass TimeFormatConversionError(Exception):\n    \"Generic timeformatconversion error.\"\n\n\ndef iso_duration_to_seconds(duration):\n    \"Convert a time duration in ISO 8601 format to seconds (only integer parts).\"\n    match_obj = RE_DURATION.match(duration)\n    if not match_obj:\n        raise TimeFormatConversionError(\"%s does not match a duration\" % duration)\n    secs = 0\n    if match_obj.group(\"hours\"):\n        secs += int(match_obj.group(\"hours\"))*3600\n    if match_obj.group(\"minutes\"):\n        secs += int(match_obj.group(\"minutes\"))*60\n    if match_obj.group(\"seconds\"):\n        secs += int(match_obj.group(\"seconds\"))\n    return secs\n\n\ndef seconds_to_iso_duration(nr_secs):\n    \"Make interval string in format PT... from time in seconds.\"\n    days, rest = divmod(nr_secs, 3600*24)\n    hours, rest = divmod(rest, 3600)\n    minutes, seconds = divmod(rest, 60)\n    period = \"P\"\n    if days > 0:\n        period += \"%dD\" % days\n    period += \"T\"\n    if hours > 0:\n        period += \"%dH\" % hours\n    if minutes > 0:\n        period += \"%dM\" % minutes\n    if seconds > 0 or period == \"PT\":\n        period += \"%dS\" % seconds\n    return period\n\n\ndef make_timestamp(time_in_s):\n    \"Return timestamp as string.\"\n    return time.strftime(\"%Y-%m-%dT%H:%M:%SZ\", time.gmtime(time_in_s))\n"
  },
  {
    "path": "dashlivesim/dashlib/ttml_timing_offset.py",
    "content": "\"\"\"Add an offset in seconds to TTML timing elements.\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport re\nimport time\n\nTIME_PATTERN_S = re.compile(rb'(?P<attr>(begin|end))=\"(?P<hours>\\d\\d):(?P<minutes>\\d\\d):(?P<seconds>\\d\\d)')\nCONTENT_PATTERN_S = re.compile(rb'(?P<lang>\\w+) : (?P<hours>\\d\\d):(?P<minutes>\\d\\d):(?P<seconds>\\d\\d)(\\.\\d+)?')\nCONTENT_PATTERN_SEGMENT = re.compile(rb'(?P<intro>Segment # )(?P<seg_nr>\\d+)')\n\n\ndef adjust_ttml_content(xml_str, offset_in_s, output_seg_nr):\n    \"Add offset in seconds to begin and end elements in xml bytestring.\"\n\n    def replace(match_obj):\n        \"Match and replace time for begin and end attributes.\"\n        matches = match_obj.groupdict()\n        attr = matches['attr']\n        hours = int(matches['hours'])\n        minutes = int(matches['minutes'])\n        seconds = int(matches['seconds'])\n        total_seconds = seconds + 60 * minutes + 3600 * hours + offset_in_s\n        hours, seconds = divmod(total_seconds, 3600)\n        minutes, seconds = divmod(seconds, 60)\n        return b'%s=\"%02d:%02d:%02d' % (attr, hours, minutes, seconds)\n\n    def replace_content(match_obj):\n        \"Match and replace time with UTC time in lang time pattern.\"\n        matches = match_obj.groupdict()\n        hours = int(matches['hours'])\n        minutes = int(matches['minutes'])\n        seconds = int(matches['seconds'])\n        total_seconds = seconds + 60 * minutes + 3600 * hours + offset_in_s\n        time_str = time.strftime(\"%Y-%m-%dT%H:%M:%SZ\", time.gmtime(total_seconds)).encode('utf-8')\n        return b'%s : UTC = %s' % (matches['lang'], time_str)\n\n    def replace_segment_nr(match_obj):\n        \"Match and replace segment number.\"\n        matches = match_obj.groupdict()\n        return b'%s%d' % (matches['intro'], output_seg_nr)\n\n    xml_str = re.sub(TIME_PATTERN_S, replace, xml_str)\n    xml_str = re.sub(CONTENT_PATTERN_S, replace_content, xml_str)\n    xml_str = re.sub(CONTENT_PATTERN_SEGMENT, replace_segment_nr, xml_str)\n    return xml_str\n"
  },
  {
    "path": "dashlivesim/mod_wsgi/__init__.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "dashlivesim/mod_wsgi/mod_dashlivesim.py",
    "content": "\"WSGI Module for dash-live-source-simulator\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\n# Note that VOD_CONF_DIR and CONTENT_ROOT directories must be set in environment\n# For Apache mod_wsgi, this is done using setEnv\n\nimport traceback\nfrom os.path import splitext\nfrom urllib.parse import urlparse, parse_qs\nfrom time import time, sleep\n\nfrom dashlivesim.dashlib import dash_proxy, sessionid, mpd_proxy\nfrom dashlivesim.dashlib.dash_proxy import ChunkedSegment\nfrom dashlivesim import SERVER_AGENT\n\nMAX_SESSION_LENGTH = 0  # If non-zero,  limit sessions via redirect\n\n# Helper for HTTP responses\n# pylint: disable=dangerous-default-value\n\nstatus_string = {\n    200: 'OK',\n    206: 'Partial Content',\n    302: 'Found',\n    404: 'Not Found',\n    410: 'Gone'\n    }\n\n\ndef start_reply(status_code, response, length=-1, headers={}):\n    \"Start reply by writing headers reply.\"\n    status = \"%d %s\" % (status_code, status_string[status_code])\n\n    # Add default headers to all requests\n    headers['Accept-Ranges'] = 'bytes'\n    headers['Pragma'] = 'no-cache'\n    headers['Cache-Control'] = 'no-cache'\n    headers['Expires'] = '-1'\n    headers['DASH-Live-Simulator'] = SERVER_AGENT\n    headers['Access-Control-Allow-Headers'] = 'origin,range,accept-encoding,referer'\n    headers['Access-Control-Allow-Methods'] = 'GET,HEAD,OPTIONS'\n    headers['Access-Control-Allow-Origin'] = '*'\n    headers['Access-Control-Expose-Headers'] = 'Server,range,Content-Length,Content-Range,Date'\n\n    if length >= 0:\n        headers['Content-Length'] = str(length)\n\n    if 'Content-Type' not in headers:\n        headers['Content-Type'] = 'text/plain'\n\n    response(status, list(headers.items()))\n\n\ndef full_reply(status_code, response, body=b\"\", headers={}):\n    \"A full reply including body and content-length.\"\n    start_reply(status_code, response, len(body), headers)\n    return [body]\n\n\n# pylint: disable=too-many-branches, too-many-locals\ndef application(environment, start_response):\n    \"WSGI Entrypoint\"\n\n    hostname = environment['HTTP_HOST']\n    url = urlparse(environment['REQUEST_URI'])\n    vod_conf_dir = environment['VOD_CONF_DIR']\n    content_root = environment['CONTENT_ROOT']\n    is_https = environment.get('wsgi.url_scheme', False) and environment['wsgi.url_scheme'] == 'https'\n    path_parts = url.path.split('/')\n    ext = splitext(path_parts[-1])[1]\n    query = url.query if url.query else environment.get('QUERY_STRING', '')\n    args = parse_qs(query)\n\n    now = time()\n\n    body = None\n\n    if MAX_SESSION_LENGTH:  # Redirect and do limit sessions in time\n        # Check if there is a sts_xxx parameter.\n        start_time = None\n        for part in path_parts:\n            if part.startswith('sts_'):\n                try:\n                    start_time = int(part[4:])\n                except Exception:\n                    pass\n\n        if ext == \".mpd\" and start_time is None:\n            new_url = 'https://' if is_https else 'http://'\n            start_part = \"sts_%d\" % int(now)\n            session_id_path = \"sid_%s\" % sessionid.generate_session_id()\n            path_parts = (path_parts[:2] + [start_part] +\n                          [session_id_path] + path_parts[2:])\n            new_url += hostname + '/'.join(path_parts)\n            if query:\n                new_url += '?' + query\n            body = b\"\"\n            start_reply(302, start_response, len(body), {'Location': new_url})\n            body = b\"\"\n        elif start_time is None:\n            body = b'No start_time in non-manifest request'\n            start_reply(404, start_response, len(body))\n        elif now > start_time + MAX_SESSION_LENGTH:\n            msg = \"Maximum session length %ds passed\" % MAX_SESSION_LENGTH\n            body = msg.encode('utf-8')\n            start_reply(410, start_response, len(body))\n        elif start_time > now + 5:  # Give some margin\n            body = b'start_time is in future'\n            start_reply(404, start_response, len(body))\n\n    if body is not None:\n        yield body\n    else:\n        range_line = None\n        if 'HTTP_RANGE' in environment:\n            range_line = environment['HTTP_RANGE']\n\n        success = True\n        mimetype = get_mime_type(ext)\n        status_code = 200\n        payload_in = None\n        chunk = chunk_out = False\n\n        try:\n            dashProv = dash_proxy.createProvider(hostname, path_parts[1:], args,\n                                                 vod_conf_dir, content_root, now,\n                                                 None, is_https)\n            cfg = dashProv.cfg\n            ext = cfg.ext\n            if ext == \".m4s\":\n                if cfg.chunk_duration_in_s is not None and cfg.chunk_duration_in_s > 0:\n                    chunk = True\n                response = dash_proxy.get_media(dashProv, chunk)\n                if isinstance(response, ChunkedSegment):\n                    chunk_out = True\n            elif ext in (\".mpd\", \".period\"):\n                response = mpd_proxy.get_mpd(dashProv)\n            elif ext == \".mp4\":\n                response = dash_proxy.get_init(dashProv)\n            elif ext == \".jpg\":\n                response = dash_proxy.get_media(dashProv)\n            if isinstance(response, bytes) or isinstance(response, str) or chunk_out:\n                if isinstance(response, str):\n                    response = response.encode('utf-8')\n                payload_in = response\n                if not payload_in:\n                    success = False\n            else:\n                if not response['ok']:\n                    success = False\n                payload_in = response['pl']\n\n        # pylint: disable=broad-except\n        except Exception as exc:\n            success = False\n            traceback.print_exc()\n            payload_in = \"DASH Proxy Error: {0}\\n URL={1}\".format(exc, url)\n\n        if not success:\n            if not payload_in:\n                payload_in = \"Not found (now)\"\n\n            status_code = 404\n            mimetype = \"text/plain\"\n\n        if isinstance(payload_in, str):\n            payload_in = payload_in.encode('utf-8')\n        payload_out = payload_in\n\n        # Setup response headers\n        headers = {'Content-Type': mimetype}\n\n        if status_code != 404:\n            if range_line and not chunk_out:\n                payload_out, range_out = handle_byte_range(payload_in, range_line)\n                if range_out != \"\":  # OK\n                    headers['Content-Range'] = range_out\n                    status_code = 206\n                else:  # Bad range, drop it\n                    print(\"mod_dash_handler: Bad range {0}\".format(range_line))\n\n        if not chunk_out:\n            start_reply(status_code, start_response, len(payload_out), headers)\n            yield payload_out\n        else:\n            start_reply(status_code, start_response, -1, headers)\n            now_float = now\n            seg_start = payload_out.seg_start\n            chunk_dur = cfg.chunk_duration_in_s\n            margin = 0.1  # Make available 100ms before the formal time\n            for i, chunk in enumerate(payload_out.chunks, start=1):\n                now_float = time()  # Update time\n                chunk_availability_time = seg_start + i * chunk_dur - margin\n                time_until_available = chunk_availability_time - now_float\n                # print(\"%d time_until_available %.3f\" % (i, time_until_available))\n                if time_until_available > 0:\n                    # print(\"Sleeping for %.3f\" % time_until_available)\n                    sleep(time_until_available)\n                yield chunk\n\n\ndef get_mime_type(ext):\n    \"Get mime-type depending on extension.\"\n    if ext == \".mpd\":\n        return \"application/dash+xml\"\n    elif ext == \".m4s\":\n        return \"video/iso.segment\"\n    elif ext == \".mp4\":\n        return \"video/mp4\"\n\n    return \"text/plain\"\n\n\ndef handle_byte_range(payload, range_line):\n    \"\"\"Handle byte range and return data and range-header value.\n    If range is strange, return empty string.\"\"\"\n    range_parts = range_line.split(\"=\")[-1]\n    ranges = range_parts.split(\",\")\n    if len(ranges) > 1:\n        return (payload, None)\n    length = len(payload)\n    range_interval = ranges[0]\n    range_start, range_end = range_interval.split(\"-\")\n    bad_range = False\n    if range_start == \"\" and range_end != \"\":\n        # This is the rangeStart lasts bytes\n        range_start = length - int(range_end)\n        range_end = length - 1\n    elif range_start != \"\":\n        range_start = int(range_start)\n        if range_end != \"\":\n            range_end = min(int(range_end), length-1)\n        else:\n            range_end = length-1\n    else:\n        bad_range = True\n    if range_end < range_start:\n        bad_range = True\n    if bad_range:\n        return (payload, \"\")\n    ranged_payload = payload[range_start: range_end+1]\n    range_response = \"bytes %d-%d/%d\" % (range_start, range_end, len(payload))\n    return (ranged_payload, range_response)\n\n\ndef main():\n    \"Local stand-alone wsgi server for testing.\"\n    from argparse import ArgumentParser\n    parser = ArgumentParser()\n    parser.add_argument(\"-d\", \"--config_dir\", dest=\"vod_conf_dir\", type=str,\n                        help=\"configuration root directory\", required=True)\n    parser.add_argument(\"-c\", \"--content_dir\", dest=\"content_dir\", type=str,\n                        help=\"content root directory\", required=True)\n    parser.add_argument(\"--host\", dest=\"host\", type=str, help=\"IPv4 host\", default=\"0.0.0.0\")\n    parser.add_argument(\"--port\", dest=\"port\", type=int, help=\"IPv4 port\", default=8059)\n    args = parser.parse_args()\n\n    def application_wrapper(env, resp):\n        \"Wrapper around application for local webserver.\"\n        env['REQUEST_URI'] = env['PATH_INFO']  # Set REQUEST_URI from PATH_INFO\n        env['VOD_CONF_DIR'] = args.vod_conf_dir\n        env['CONTENT_ROOT'] = args.content_dir\n        return application(env, resp)\n\n    def run_local_webserver(wrapper, host, port):\n        \"Local webserver.\"\n        from wsgiref.simple_server import make_server\n        print('Waiting for requests at \"{0}:{1}\"'.format(host, port))\n        httpd = make_server(host, port, wrapper)\n        httpd.serve_forever()\n\n    run_local_webserver(application_wrapper, args.host, args.port)\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "dashlivesim/pylintrc",
    "content": "[MASTER]\n\n# Specify a configuration file.\n#rcfile=\n\n# Python code to execute, usually for sys.path manipulation such as\n# pygtk.require().\n#init-hook=\n\n# Profiled execution.\nprofile=no\n\n# Add files or directories to the blacklist. They should be base names, not\n# paths.\nignore=CVS\n\n# Pickle collected data for later comparisons.\npersistent=yes\n\n# List of plugins (as comma separated values of python modules names) to load,\n# usually to register additional checkers.\nload-plugins=\n\n# Use multiple processes to speed up Pylint.\njobs=1\n\n# Allow loading of arbitrary C extensions. Extensions are imported into the\n# active Python interpreter and may run arbitrary code.\nunsafe-load-any-extension=no\n\n# A comma-separated list of package or module names from where C extensions may\n# be loaded. Extensions are loading into the active Python interpreter and may\n# run arbitrary code\nextension-pkg-whitelist=\n\n# Allow optimization of some AST trees. This will activate a peephole AST\n# optimizer, which will apply various small optimizations. For instance, it can\n# be used to obtain the result of joining multiple strings with the addition\n# operator. Joining a lot of strings can lead to a maximum recursion error in\n# Pylint and this flag can prevent that. It has one side effect, the resulting\n# AST will be different than the one from reality.\noptimize-ast=no\n\n\n[MESSAGES CONTROL]\n\n# Only show warnings with the listed confidence levels. Leave empty to show\n# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED\nconfidence=\n\n# Enable the message, report, category or checker with the given id(s). You can\n# either give multiple identifier separated by comma (,) or put this option\n# multiple time. See also the \"--disable\" option for examples.\n#enable=\n\n# Disable the message, report, category or checker with the given id(s). You\n# can either give multiple identifiers separated by comma (,) or put this\n# option multiple times (only on the command line, not in the configuration\n# file where it should appear only once).You can also use \"--disable=all\" to\n# disable everything first and then reenable specific checks. For example, if\n# you want to run only the similarities checker, you can use \"--disable=all\n# --enable=similarities\". If you want to run only the classes checker, but have\n# no Warning level messages displayed, use\"--disable=all --enable=classes\n# --disable=W\"\ndisable=E1608,W1627,E1601,E1603,E1602,E1605,E1604,E1607,E1606,W1621,W1620,W1623,W1622,W1625,W1624,W1609,W1608,W1607,W1606,W1605,W1604,W1603,W1602,W1601,W1639,W1640,I0021,W1638,I0020,W1618,W1619,W1630,W1626,W1637,W1634,W1635,W1610,W1611,W1612,W1613,W1614,W1615,W1616,W1617,W1632,W1633,W0704,W1628,W1629,W1636\n\n\n[REPORTS]\n\n# Set the output format. Available formats are text, parseable, colorized, msvs\n# (visual studio) and html. You can also give a reporter class, eg\n# mypackage.mymodule.MyReporterClass.\noutput-format=text\n\n# Put messages in a separate file for each module / package specified on the\n# command line instead of printing them on stdout. Reports (if any) will be\n# written in a file name \"pylint_global.[txt|html]\".\nfiles-output=no\n\n# Tells whether to display a full report or only the messages\nreports=yes\n\n# Python expression which should return a note less than 10 (10 is the highest\n# note). You have access to the variables errors warning, statement which\n# respectively contain the number of errors / warnings messages and the total\n# number of statements analyzed. This is used by the global evaluation report\n# (RP0004).\nevaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)\n\n# Add a comment according to your evaluation note. This is used by the global\n# evaluation report (RP0004).\ncomment=no\n\n# Template used to display messages. This is a python new-style format string\n# used to format the message information. See doc for all details\n#msg-template=\n\n\n[BASIC]\n\n# Required attributes for module, separated by a comma\nrequired-attributes=\n\n# List of builtins function names that should not be used, separated by a comma\nbad-functions=map,filter,input\n\n# Good variable names which should always be accepted, separated by a comma\ngood-names=i,j,k,ex,Run,_\n\n# Bad variable names which should always be refused, separated by a comma\nbad-names=foo,bar,baz,toto,tutu,tata\n\n# Colon-delimited sets of names that determine each other's naming style when\n# the name regexes allow several styles.\nname-group=\n\n# Include a hint for the correct naming format with invalid-name\ninclude-naming-hint=no\n\n# Regular expression matching correct function names\nfunction-rgx=[a-z_][a-z0-9_]{2,30}$\n\n# Naming hint for function names\nfunction-name-hint=[a-z_][a-z0-9_]{2,30}$\n\n# Regular expression matching correct variable names\nvariable-rgx=[a-z_][a-z0-9_]{2,30}$\n\n# Naming hint for variable names\nvariable-name-hint=[a-z_][a-z0-9_]{2,30}$\n\n# Regular expression matching correct constant names\nconst-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$\n\n# Naming hint for constant names\nconst-name-hint=(([A-Z_][A-Z0-9_]*)|(__.*__))$\n\n# Regular expression matching correct attribute names\nattr-rgx=[a-z_][a-z0-9_]{2,30}$\n\n# Naming hint for attribute names\nattr-name-hint=[a-z_][a-z0-9_]{2,30}$\n\n# Regular expression matching correct argument names\nargument-rgx=[a-z_][a-z0-9_]{2,30}$\n\n# Naming hint for argument names\nargument-name-hint=[a-z_][a-z0-9_]{2,30}$\n\n# Regular expression matching correct class attribute names\nclass-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$\n\n# Naming hint for class attribute names\nclass-attribute-name-hint=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$\n\n# Regular expression matching correct inline iteration names\ninlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$\n\n# Naming hint for inline iteration names\ninlinevar-name-hint=[A-Za-z_][A-Za-z0-9_]*$\n\n# Regular expression matching correct class names\nclass-rgx=[A-Z_][a-zA-Z0-9]+$\n\n# Naming hint for class names\nclass-name-hint=[A-Z_][a-zA-Z0-9]+$\n\n# Regular expression matching correct module names\nmodule-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$\n\n# Naming hint for module names\nmodule-name-hint=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$\n\n# Regular expression matching correct method names\nmethod-rgx=[a-z_][a-z0-9_]{2,30}$\n\n# Naming hint for method names\nmethod-name-hint=[a-z_][a-z0-9_]{2,30}$\n\n# Regular expression which should only match function or class names that do\n# not require a docstring.\nno-docstring-rgx=__.*__\n\n# Minimum line length for functions/classes that require docstrings, shorter\n# ones are exempt.\ndocstring-min-length=-1\n\n\n[FORMAT]\n\n# Maximum number of characters on a single line.\nmax-line-length=120\n\n# Regexp for a line that is allowed to be longer than the limit.\nignore-long-lines=^\\s*(# )?<?https?://\\S+>?$\n\n# Allow the body of an if to be on the same line as the test if there is no\n# else.\nsingle-line-if-stmt=no\n\n# List of optional constructs for which whitespace checking is disabled\nno-space-check=trailing-comma,dict-separator\n\n# Maximum number of lines in a module\nmax-module-lines=1000\n\n# String used as indentation unit. This is usually \" \" (4 spaces) or \"\\t\" (1\n# tab).\nindent-string='    '\n\n# Number of spaces of indent required inside a hanging or continued line.\nindent-after-paren=4\n\n# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.\nexpected-line-ending-format=\n\n\n[LOGGING]\n\n# Logging modules to check that the string format arguments are in logging\n# function parameter format\nlogging-modules=logging\n\n\n[MISCELLANEOUS]\n\n# List of note tags to take in consideration, separated by a comma.\nnotes=FIXME,XXX,TODO\n\n\n[SIMILARITIES]\n\n# Minimum lines number of a similarity.\nmin-similarity-lines=4\n\n# Ignore comments when computing similarities.\nignore-comments=yes\n\n# Ignore docstrings when computing similarities.\nignore-docstrings=yes\n\n# Ignore imports when computing similarities.\nignore-imports=no\n\n\n[SPELLING]\n\n# Spelling dictionary name. Available dictionaries: none. To make it working\n# install python-enchant package.\nspelling-dict=\n\n# List of comma separated words that should not be checked.\nspelling-ignore-words=\n\n# A path to a file that contains private dictionary; one word per line.\nspelling-private-dict-file=\n\n# Tells whether to store unknown words to indicated private dictionary in\n# --spelling-private-dict-file option instead of raising a message.\nspelling-store-unknown-words=no\n\n\n[TYPECHECK]\n\n# Tells whether missing members accessed in mixin class should be ignored. A\n# mixin class is detected if its name ends with \"mixin\" (case insensitive).\nignore-mixin-members=yes\n\n# List of module names for which member attributes should not be checked\n# (useful for modules/projects where namespaces are manipulated during runtime\n# and thus existing member attributes cannot be deduced by static analysis\nignored-modules=\n\n# List of classes names for which member attributes should not be checked\n# (useful for classes with attributes dynamically set).\nignored-classes=SQLObject\n\n# When zope mode is activated, add a predefined set of Zope acquired attributes\n# to generated-members.\nzope=no\n\n# List of members which are set dynamically and missed by pylint inference\n# system, and so shouldn't trigger E0201 when accessed. Python regular\n# expressions are accepted.\ngenerated-members=REQUEST,acl_users,aq_parent\n\n\n[VARIABLES]\n\n# Tells whether we should check for unused import in __init__ files.\ninit-import=no\n\n# A regular expression matching the name of dummy variables (i.e. expectedly\n# not used).\ndummy-variables-rgx=_$|dummy\n\n# List of additional names supposed to be defined in builtins. Remember that\n# you should avoid to define new builtins when possible.\nadditional-builtins=\n\n# List of strings which can identify a callback function by name. A callback\n# name must start or end with one of those strings.\ncallbacks=cb_,_cb\n\n\n[CLASSES]\n\n# List of interface methods to ignore, separated by a comma. This is used for\n# instance to not check methods defines in Zope's Interface base class.\nignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by\n\n# List of method names used to declare (i.e. assign) instance attributes.\ndefining-attr-methods=__init__,__new__,setUp\n\n# List of valid names for the first argument in a class method.\nvalid-classmethod-first-arg=cls\n\n# List of valid names for the first argument in a metaclass class method.\nvalid-metaclass-classmethod-first-arg=mcs\n\n# List of member names, which should be excluded from the protected access\n# warning.\nexclude-protected=_asdict,_fields,_replace,_source,_make\n\n\n[DESIGN]\n\n# Maximum number of arguments for function / method\nmax-args=8\n\n# Argument names that match this expression will be ignored. Default to name\n# with leading underscore\nignored-argument-names=_.*\n\n# Maximum number of locals for function / method body\nmax-locals=15\n\n# Maximum number of return / yield for function / method body\nmax-returns=6\n\n# Maximum number of branch for function / method body\nmax-branches=12\n\n# Maximum number of statements in function / method body\nmax-statements=50\n\n# Maximum number of parents for a class (see R0901).\nmax-parents=7\n\n# Maximum number of attributes for a class (see R0902).\nmax-attributes=7\n\n# Minimum number of public methods for a class (see R0903).\nmin-public-methods=2\n\n# Maximum number of public methods for a class (see R0904).\nmax-public-methods=20\n\n\n[IMPORTS]\n\n# Deprecated modules which should not be used, separated by a comma\ndeprecated-modules=regsub,TERMIOS,Bastion,rexec\n\n# Create a graph of every (i.e. internal and external) dependencies in the\n# given file (report RP0402 must not be disabled)\nimport-graph=\n\n# Create a graph of external dependencies in the given file (report RP0402 must\n# not be disabled)\next-import-graph=\n\n# Create a graph of internal dependencies in the given file (report RP0402 must\n# not be disabled)\nint-import-graph=\n\n\n[EXCEPTIONS]\n\n# Exceptions that will emit a warning when being caught. Defaults to\n# \"Exception\"\novergeneral-exceptions=Exception\n"
  },
  {
    "path": "dashlivesim/tests/__init__.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "dashlivesim/tests/dash_test_util.py",
    "content": "\"\"\"Utilities for testing.\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nfrom os import unlink, makedirs\nfrom os.path import join, abspath, dirname, exists\nthisDir = abspath(dirname(__file__))\nVOD_CONFIG_DIR = join(thisDir, \"vod_cfg\")\nCONTENT_ROOT = thisDir\nOUT_DIR = join(thisDir, \"out_test\")\n\n\ndef rm_outfile(filename):\n    \"Remove file from OUT_DIR if it exists.\"\n    path = join(OUT_DIR, filename)\n    if exists(path):\n        unlink(path)\n\n\ndef write_data_to_outfile(data, filename):\n    \"Write data to a file in OUT_DIR.\"\n    if not exists(OUT_DIR):\n        makedirs(OUT_DIR)\n    ofh = open(join(OUT_DIR, filename), \"wb\")\n    ofh.write(data)\n    ofh.close()\n\n\ndef findAllIndexes(needle, haystack):\n    \"\"\"Find the index for the beginning of each occurrence of ``needle`` in ``haystack``. Overlaps are allowed.\"\"\"\n    indexes = []\n    last_index = haystack.find(needle)\n    while -1 != last_index:\n        indexes.append(last_index)\n        last_index = haystack.find(needle, last_index + 1)\n    return indexes\n"
  },
  {
    "path": "dashlivesim/tests/test_adinsertion.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport unittest\nimport xml.etree.ElementTree as ET\n\nfrom dashlivesim.tests.dash_test_util import VOD_CONFIG_DIR, CONTENT_ROOT\nfrom dashlivesim.dashlib import dash_proxy, mpd_proxy\nfrom dashlivesim.dashlib import mpdprocessor\n\n\nclass TestXlinkPeriod(unittest.TestCase):\n\n    def setUp(self):\n        self.old_set_baseurl_value = mpdprocessor.SET_BASEURL\n        mpdprocessor.SET_BASEURL = True\n\n    def tearDown(self):\n        mpdprocessor.SET_BASEURL = self.old_set_baseurl_value\n\n    def testMpdPeriodReplaced(self):\n        \"Check whether before every xlink period, duration attribute has been inserted.\"\n        collect_result = []\n        urlParts = ['livesim', 'periods_60', 'xlink_30', 'insertad_1', 'testpic_2s', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"10.4.247.98\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=10000)\n        d = mpd_proxy.get_mpd(dp)\n        xml = ET.fromstring(d)\n        # Make the string as a xml document.\n        # In the following, we will check if for every period before every xlink period, duration attribute has been\n        # added or not.\n        prev_child = []\n        for child in xml.findall('{urn:mpeg:dash:schema:mpd:2011}Period'):  # Collect all period elements first\n            if '{http://www.w3.org/1999/xlink}actuate' in child.attrib:\n                # If the period element has the duration attribute.\n                collect_result.append('duration' in prev_child.attrib)  # Then collect its period id in this\n            prev_child = child\n        # Ideally, at the periods should have a duration attribute, if no then the test fails.\n        self.assertFalse(False in collect_result)\n"
  },
  {
    "path": "dashlivesim/tests/test_availabilitytimeoffset.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport unittest\n\nfrom dashlivesim.tests.dash_test_util import VOD_CONFIG_DIR, CONTENT_ROOT, rm_outfile, write_data_to_outfile\nfrom dashlivesim.dashlib import dash_proxy, mpd_proxy\nfrom dashlivesim.dashlib import mpdprocessor\n\n\ndef isMediaSegment(data):\n    \"Check if response is a segment.\"\n    return isinstance(data, bytes) and data[4:8] == b'styp'\n\n\nclass TestMPDwithATO(unittest.TestCase):\n    \"Test of MPDs with availability offset. Note that BASEURL must be set.\"\n\n    def setUp(self):\n        self.oldBaseUrlState = mpdprocessor.SET_BASEURL\n        mpdprocessor.SET_BASEURL = True\n\n    def tearDown(self):\n        mpdprocessor.SET_BASEURL = self.oldBaseUrlState\n\n    def testMpdGeneration(self):\n        \"Check if availabilityTimeOffset is added correctly to the MPD file.\"\n        testOutputFile = \"ato.mpd\"\n        rm_outfile(testOutputFile)\n        urlParts = ['livesim', 'ato_30', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0)\n        d = mpd_proxy.get_mpd(dp)\n        write_data_to_outfile(d.encode('utf-8'), testOutputFile)\n        self.assertEqual(d.find('availabilityTimeOffset=\"30')-d.find('<BaseURL'), len('<BaseURL')+1)\n\n    def testMpdGenerationHttps(self):\n        \"Check if availabilityTimeOffset works with https\"\n        urlParts = ['livesim', 'ato_2.5', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0,\n                                     is_https=True)\n        d = mpd_proxy.get_mpd(dp)\n        self.assertEqual(d.find('availabilityTimeOffset=\"2.5')-d.find('<BaseURL'), len('<BaseURL')+1)\n\n    def testMpdGenerationInf(self):\n        \"Check if availabilityTimeOffset works with https\"\n        urlParts = ['livesim', 'ato_inf', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0)\n        d = mpd_proxy.get_mpd(dp)\n        self.assertEqual(d.find('availabilityTimeOffset=\"INF')-d.find('<BaseURL'), len('<BaseURL')+1)\n\n    def testMpdAtoSettings(self):\n        \"availabilityTimeOffset shouldn't appear if the setting is invalid\"\n        testelem = ['ato_0', 'ato_-10', 'ato_aa']\n        for test in testelem:\n            urlParts = ['livesim', test, 'testpic', 'Manifest.mpd']\n            dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0)\n            d = mpd_proxy.get_mpd(dp)\n            self.assertTrue(d.find('availabilityTimeOffset') < 0)\n\n    def testCheckAvailabilityTime(self):\n        \"Check if timing is correct with availabilityTimeOffset.\"\n        urlParts = ['livesim', 'start_60', 'ato_30', 'testpic', 'A1', '0.m4s']\n        expected_results = [False, True, True]  # should be available from 60+6-30=36s(default segment duration is 6s)\n        times = [28, 38, 48]\n        for (exp, now) in zip(expected_results, times):\n            dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n            d = dash_proxy.get_media(dp)\n            self.assertEqual(isMediaSegment(d), exp, \"Did not match for time %s\" % now)\n\n    def testCheckAvailabilityTimeFractional(self):\n        \"Check if timing with fractional seconds is correct with availabilityTimeOffset.\"\n        urlParts = ['livesim', 'start_60', 'ato_1.5', 'testpic', 'A1', '0.m4s']\n        expected_results = [False, True, True]  # should be available from 60+6-1.5=64.5s (segment duration is 6s)\n        times = [64.3, 64.6, 64.9]\n        for (exp, now) in zip(expected_results, times):\n            dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n            d = dash_proxy.get_media(dp)\n            self.assertEqual(isMediaSegment(d), exp, \"Did not match for time %s\" % now)\n\n    def testCheckAvailabilityTimeInf(self):\n        \"Check if timing with fractional seconds is correct with availabilityTimeOffset.\"\n        urlParts = ['livesim', 'start_60', 'ato_inf', 'testpic', 'A1', '0.m4s']\n        expected_results = [False, True, True]  # should be available from 60s(AST)\n        times = [59, 60, 61]\n        for (exp, now) in zip(expected_results, times):\n            dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n            d = dash_proxy.get_media(dp)\n            self.assertEqual(isMediaSegment(d), exp, \"Did not match for time %s\" % now)\n\n    def testCheckAvailabilityTimeErrorMsg(self):\n        \"Check if error message is correct with availabilityTimeOffset.\"\n        testelem = ['ato_30', 'ato_1.5', 'ato_inf']\n        expected_results = ['1.0s', '29.5s', '25.0s']\n        for (exp, elem) in zip(expected_results, testelem):\n            urlParts = ['livesim', 'start_60', elem, 'testpic', 'A1', '0.m4s']\n            dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=35)\n            d = dash_proxy.get_media(dp)\n            self.assertEqual(str(d), \"{'ok': False, 'pl': 'Request 0.m4s before first seg AST. \" +\n                             exp + \" too early\\\\n'}\")\n"
  },
  {
    "path": "dashlivesim/tests/test_cenc.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2019, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport unittest\nfrom os.path import join\n\nfrom dashlivesim.tests.dash_test_util import CONTENT_ROOT\nfrom dashlivesim.dashlib import mediasegmentfilter\n\n\nclass TestSaioUpdate(unittest.TestCase):\n    input_saio_offset = 1157\n\n    def testSaioInput(self):\n        \"Test that saio offset is according to what file analysis shows.d\"\n        fileName = join(CONTENT_ROOT, \"testpic_2s/cenc1.m4s\")\n        self.f = mediasegmentfilter.MediaSegmentFilter(fileName)\n        self.f.filter()\n        self.assertEqual(self.f.size_change, 0)\n        self.assertEqual(self.f.new_saio_value, self.input_saio_offset)\n\n    def testSaioChanged(self):\n        \"Test that saio offset changed by 4 (tfdt box size increase).\"\n        fileName = join(CONTENT_ROOT, \"testpic_2s/cenc1.m4s\")\n        self.f = mediasegmentfilter.MediaSegmentFilter(fileName,\n                                                       offset=1564997232,\n                                                       track_timescale=90000)\n        self.f.filter()\n        self.assertEqual(self.f.size_change, 4)\n        self.assertEqual(self.f.new_saio_value, self.input_saio_offset + 4)\n"
  },
  {
    "path": "dashlivesim/tests/test_configprocessor.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport os\nimport unittest\nfrom dashlivesim.tests.dash_test_util import VOD_CONFIG_DIR\n\nfrom dashlivesim.dashlib import configprocessor\n\n\nclass TestConfigProcessor(unittest.TestCase):\n\n    def testReadVodConfigFile(self):\n        cfg_file = os.path.join(VOD_CONFIG_DIR, 'testpic.cfg')\n        vod_cfg = configprocessor.VodConfig()\n        vod_cfg.read_config(cfg_file)\n"
  },
  {
    "path": "dashlivesim/tests/test_dash_proxy.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport unittest\nfrom os.path import join\n\nfrom dashlivesim.tests.dash_test_util import VOD_CONFIG_DIR, CONTENT_ROOT\nfrom dashlivesim.tests.dash_test_util import rm_outfile, write_data_to_outfile, findAllIndexes, OUT_DIR\nfrom dashlivesim.dashlib import dash_proxy, mpd_proxy\nfrom dashlivesim.dashlib import mpdprocessor\nfrom dashlivesim.dashlib.mediasegmentfilter import MediaSegmentFilter\n\n\nclass TestMPDProcessing(unittest.TestCase):\n    \"Test of MPD parsing\"\n\n    def setUp(self):\n        self.oldBaseUrlState = mpdprocessor.SET_BASEURL\n        mpdprocessor.SET_BASEURL = False\n\n    def tearDown(self):\n        mpdprocessor.SET_BASEURL = self.oldBaseUrlState\n\n    def testMPDhandling(self):\n        mpdprocessor.SET_BASEURL = True\n        urlParts = ['pdash', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0)\n        d = mpd_proxy.get_mpd(dp)\n        self.assertTrue(d.find(\"<BaseURL>http://streamtest.eu/pdash/testpic/</BaseURL>\") > 0)\n\n    def testMPDwithChangedAST(self):\n        \"Put AST to 1200s later than epoch start. There should be no PTO and startNumber=0 still.\"\n        testOutputFile = \"start.mpd\"\n        rm_outfile(testOutputFile)\n        urlParts = ['pdash', 'start_1200', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0)\n        d = mpd_proxy.get_mpd(dp)\n        write_data_to_outfile(d.encode('utf-8'), testOutputFile)\n        self.assertTrue(d.find('availabilityStartTime=\"1970-01-01T00:20:00Z\"') > 0)\n        self.assertTrue(d.find('startNumber=\"0\"') > 0)\n        self.assertTrue(d.find('presentationTimeOffset') < 0)\n\n    def testMPDwithStartandDur(self):\n        urlParts = ['pdash', 'start_1200', 'dur_600', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=900)\n        d = mpd_proxy.get_mpd(dp)\n        if dash_proxy.PUBLISH_TIME:\n            self.assertTrue(d.find('publishTime=\"1970-01-01T00:15:00Z\"') > 0)\n        self.assertTrue(d.find('availabilityEndTime=\"1970-01-01T00:30:00Z\"') > 0)\n\n    def testMPDwithStartand2Durations(self):\n        urlParts = ['pdash', 'start_1200', 'dur_600', 'dur_300', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=900)\n        d = mpd_proxy.get_mpd(dp)\n        if dash_proxy.PUBLISH_TIME:\n            self.assertTrue(d.find('publishTime=\"1970-01-01T00:15:00Z\"') > 0)\n        self.assertTrue(d.find('availabilityEndTime=\"1970-01-01T00:30:00Z\"') > 0)\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=1795)\n        d = mpd_proxy.get_mpd(dp)\n        if dash_proxy.PUBLISH_TIME:\n            self.assertTrue(d.find('publishTime=\"1970-01-01T00:29:00Z\"') > 0)\n        self.assertTrue(d.find('availabilityEndTime=\"1970-01-01T00:35:00Z\"') > 0)\n\n    def testHttpsBaseURL(self):\n        \"Check that protocol is set to https if signalled to DashProvider.\"\n        mpdprocessor.SET_BASEURL = True\n        urlParts = ['pdash', 'testpic', 'Manifest.mpd']\n        is_https = 1\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0,\n                                     is_https=is_https)\n        d = mpd_proxy.get_mpd(dp)\n        self.assertTrue(d.find(\"<BaseURL>https://streamtest.eu/pdash/testpic/</BaseURL>\") > 0)\n\n    def test_location_for_rel_times(self):\n        mpdprocessor.SET_BASEURL = True\n        urlParts = ['pdash', 'startrel_-20', 'stoprel_40', 'testpic',\n                    'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None,\n                                     VOD_CONFIG_DIR, CONTENT_ROOT, now=1000)\n        d = mpd_proxy.get_mpd(dp)\n        self.assertTrue(d.find(\n            'availabilityStartTime=\"1970-01-01T00:16:18Z\"') > 0)\n        self.assertTrue(d.find('startNumber=\"0\"') > 0)\n        self.assertTrue(d.find(\"<BaseURL>\") < 0)\n        self.assertTrue(\n            d.find('<Location>http://streamtest.eu/pdash/start_978/stop_1044/'\n                   'testpic/Manifest.mpd</Location>') > 0)\n\n    def test_location_for_rel_times_zero_offset(self):\n        mpdprocessor.SET_BASEURL = True\n        urlParts = ['pdash', 'startrel_-20', 'stoprel_40', 'timeoffset_0',\n                    'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None,\n                                     VOD_CONFIG_DIR, CONTENT_ROOT, now=1000)\n        d = mpd_proxy.get_mpd(dp)\n        self.assertTrue(d.find(\n            'availabilityStartTime=\"1970-01-01T00:16:18Z\"') > 0)\n        self.assertTrue(d.find('startNumber=\"163\"') > 0)\n        self.assertTrue(d.find('presentationTimeOffset=\"978\"') > 0)\n        self.assertTrue(d.find(\"<BaseURL>\") < 0)\n        self.assertTrue(\n            d.find('<Location>http://streamtest.eu/pdash/start_978/stop_1044/'\n                   'timeoffset_0/testpic/Manifest.mpd</Location>') > 0)\n\n    def test_absolute_times(self):\n        mpdprocessor.SET_BASEURL = True\n        urlParts = ['pdash', 'start_978', 'stop_1044', 'testpic',\n                    'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None,\n                                     VOD_CONFIG_DIR, CONTENT_ROOT, now=1000)\n        d = mpd_proxy.get_mpd(dp)\n        self.assertTrue(d.find(\n            'availabilityStartTime=\"1970-01-01T00:16:18Z\"') > 0)\n        self.assertTrue(d.find(\"<BaseURL>\") > 0)\n        self.assertTrue(d.find('<Location>') < 0)\n        self.assertTrue(d.find('type=\"dynamic\"') > 0)\n        self.assertTrue(d.find('mediaPresentationDuration=\"PT1M6S') > 0)\n        self.assertTrue(d.find('minimumUpdatePeriod') > 0)\n\n    def test_absolute_times_after_stop(self):\n        mpdprocessor.SET_BASEURL = True\n        urlParts = ['pdash', 'start_978', 'stop_1044', 'testpic',\n                    'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None,\n                                     VOD_CONFIG_DIR, CONTENT_ROOT, now=1046)\n        d = mpd_proxy.get_mpd(dp)\n        self.assertTrue(d.find(\n            'availabilityStartTime=\"1970-01-01T00:16:18Z\"') > 0)\n        self.assertTrue(d.find('type=\"static\"') > 0)\n        self.assertTrue(d.find('mediaPresentationDuration=\"PT1M6S') > 0)\n        self.assertTrue(d.find('minimumUpdatePeriod') < 0)\n\n\nclass TestInitSegmentProcessing(unittest.TestCase):\n    def testInit(self):\n        urlParts = ['pdash', 'testpic', 'A1', 'init.mp4']\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0)\n        d = dash_proxy.get_init(dp)\n        self.assertEqual(len(d), 651)\n\n\nclass TestMediaSegments(unittest.TestCase):\n\n    def testMediaSegmentForTfdt32(self):\n        testOutputFile = \"t1.m4s\"\n        rm_outfile(testOutputFile)\n        now = 2101  # 1s after start of segment 350\n        segment = \"349.m4s\"\n        urlParts = ['pdash', 'tfdt_32', 'testpic', 'A1', segment]\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n        d = dash_proxy.get_media(dp)\n        write_data_to_outfile(d, testOutputFile)\n        self.assertEqual(len(d), 39517)\n\n    def testMediaSegmentTooEarly(self):\n        urlParts = ['pdash', 'testpic', 'A1', '5.m4s']  # Should be available after 36s\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=34)\n        d = dash_proxy.get_media(dp)\n        self.assertEqual(d['ok'], False)\n\n    def testMediaSegmentTooEarlyWithAST(self):\n        urlParts = ['pdash', 'start_6', 'testpic', 'A1', '0.m4s']  # Should be available after 12s\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=10)\n        d = dash_proxy.get_media(dp)\n        self.assertEqual(d['ok'], False)\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=14)\n        d = dash_proxy.get_media(dp)\n        self.assertEqual(len(d), 40346)  # A full media segment\n\n    def testMediaSegmentBeforeTimeShiftBufferDepth(self):\n        now = 1356999060\n        segment = \"%d.m4s\" % ((now-330)/6)\n        urlParts = ['pdash', 'testpic', 'A1', segment]\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n        d = dash_proxy.get_media(dp)\n        self.assertEqual(d['ok'], False)\n\n    def testLastMediaSegment(self):\n        \"\"\"With total duration of 2100, the last segment shall be 349\n        (independent of start) and available at 4101 start+dur_1800+dur_300.\"\"\"\n        urlParts = ['pdash', 'start_2000', 'dur_1800', 'dur_300', 'testpic', 'A1', '349.m4s']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None,\n                                     VOD_CONFIG_DIR, CONTENT_ROOT, now=4101)\n        d = dash_proxy.get_media(dp)\n        # print \"LMSG at %d\" % d.find(\"lmsg\")\n        self.assertEqual(d.find(b\"lmsg\"), 24)\n\n    def testMultiPeriod(self):\n        testOutputFile = \"multiperiod.mpd\"\n        rm_outfile(testOutputFile)\n        urlParts = ['pdash', 'periods_10', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=3602)\n        d = mpd_proxy.get_mpd(dp)\n        write_data_to_outfile(d.encode('utf-8'), testOutputFile)\n        periodPositions = findAllIndexes(\"<Period\", d)\n        self.assertEqual(len(periodPositions), 2)\n\n    def testContinuous(self):\n        testOutputFile = \"ContMultiperiod.mpd\"\n        rm_outfile(testOutputFile)\n        urlParts = ['pdash', 'continuous_1', 'periods_10', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=3602)\n        d = mpd_proxy.get_mpd(dp)\n        write_data_to_outfile(d.encode('utf-8'), testOutputFile)\n        periodPositions = findAllIndexes(\"urn:mpeg:dash:period_continuity:2014\", d)\n        self.assertGreater(len(periodPositions), 1)\n\n    def testUtcTiming(self):\n        \"Test that direct and head works.\"\n        urlParts = ['pdash', 'utc_direct-head', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0)\n        d = mpd_proxy.get_mpd(dp)\n        head_pos = d.find('<UTCTiming schemeIdUri=\"urn:mpeg:dash:utc:http-head:2014\" '\n                          'value=\"http://streamtest.eu/dash/time.txt\" />')\n        direct_pos = d.find('<UTCTiming schemeIdUri=\"urn:mpeg:dash:utc:direct:2014\"')\n        self.assertLess(direct_pos, head_pos)\n\n    def testMediaSegmentInIntervalWithoutOffset(self):\n        \"Check that segment 5 is available after an hour.\"\n        urlParts = ['pdash', 'start_3600', 'stop_3660',\n                    'testpic', 'A1', '5.m4s']\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None,\n                                     VOD_CONFIG_DIR, CONTENT_ROOT, now=3650)\n        d = dash_proxy.get_media(dp)\n        self.assertEqual(d[4:8], b'styp')\n\n    def testMediaSegmentInIntervalWithOffset(self):\n        \"Check that segment 605 is available after an hour.\"\n        urlParts = ['pdash', 'start_3540', 'stop_3660',\n                    'timeoffset_0', 'testpic', 'A1', '605.m4s']\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None,\n                                     VOD_CONFIG_DIR, CONTENT_ROOT, now=3650)\n        d = dash_proxy.get_media(dp)\n        self.assertEqual(d[4:8], b'styp')\n\n    def testMediaSegmentWithSidx(self):\n        testOutputFile = \"t1_sidx.m4s\"\n        rm_outfile(testOutputFile)\n        now = 2101  # 1s after start of segment 350\n        segment = \"349.m4s\"\n        urlParts = ['pdash', 'sidx_1', 'testpic', 'A1', segment]\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n        d = dash_proxy.get_media(dp)\n        write_data_to_outfile(d, testOutputFile)\n\n    def testMediaIntervalWithOffset(self):\n        \"Test that only segments 590-609 are available\"\n\n        def get_segment(nr, now):\n            urlParts = ['pdash', 'start_3540', 'stop_3660',\n                        'timeoffset_0', 'testpic', 'A1', '%d.m4s' % nr]\n            dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None,\n                                         VOD_CONFIG_DIR, CONTENT_ROOT, now)\n            return dash_proxy.get_media(dp)\n        res = get_segment(589, 3600)\n        self.assertEqual(res['ok'], False)\n        res = get_segment(590, 3600)\n        self.assertEqual(res[4:8], b'styp')\n        res = get_segment(609, 3670)\n        self.assertEqual(res[4:8], b'styp')\n        res = get_segment(610, 3670)\n        self.assertEqual(res['ok'], False)\n\n\nclass TestMorePathLevels(unittest.TestCase):\n    \"Test when representations are further down in\"\n\n    def setUp(self):\n        self.oldBaseUrlState = mpdprocessor.SET_BASEURL\n        mpdprocessor.SET_BASEURL = False\n\n    def tearDown(self):\n        mpdprocessor.SET_BASEURL = self.oldBaseUrlState\n\n    def testMPDGet(self):\n        mpdprocessor.SET_BASEURL = True\n        urlParts = ['pdash', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0)\n        d = mpd_proxy.get_mpd(dp)\n        self.assertGreater(d.find(\"<BaseURL>http://streamtest.eu/pdash/testpic/</BaseURL>\"), 0)\n\n    def testInit(self):\n        urlParts = ['pdash', 'testpic', 'en', 'A1', 'init.mp4']\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0)\n        d = dash_proxy.get_init(dp)\n        self.assertEqual(len(d), 617)\n\n    def testMediaSegment(self):\n        testOutputFile = \"t2.m4s\"\n        rm_outfile(testOutputFile)\n        now = 1356998460\n        segment = \"%d.m4s\" % ((now-60)//6)\n        urlParts = ['pdash', 'testpic', 'en', 'A1', segment]\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n        d = dash_proxy.get_media(dp)\n        write_data_to_outfile(d, testOutputFile)\n\n\nclass TestTfdt(unittest.TestCase):\n    \"Test that the tfdt rewrite is working correctly\"\n\n    def testMediaSegment(self):\n        testOutputFile = \"tfdt.m4s\"\n        rm_outfile(testOutputFile)\n        now = 1356998460\n        segment = \"%d.m4s\" % ((now-60)//6)\n        urlParts = ['pdash', 'testpic', 'A1', segment]\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n        d = dash_proxy.get_media(dp)\n        write_data_to_outfile(d, testOutputFile)\n\n    def testTfdtValueFromZero(self):\n        \"Tfdt value = mediaPresentationTime which corresponds to segmentNr*duration\"\n        now = 1393936560\n        segNr = 232322749\n        segment = \"%d.m4s\" % segNr\n        urlParts = ['pdash', 'testpic', 'V1', segment]\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n        d = dash_proxy.get_media(dp)\n        rm_outfile('tmp.m4s')\n        tmp_name = join(OUT_DIR, 'tmp.m4s')\n        with open(tmp_name, 'wb') as ofh:\n            ofh.write(d)\n        mf = MediaSegmentFilter(tmp_name)\n        mf.filter()\n        rm_outfile('tmp.m4s')\n        tfdtValue = mf.tfdt_value\n        presentationTime = tfdtValue // 90000\n        segmentTime = segNr * 6\n        self.assertEqual(presentationTime, segmentTime)\n\n    def testThatNoPresentationTimeOffsetForTfdt32(self):\n        now = 1393936560\n        # segNr = 232322749\n        urlParts = ['pdash', 'tfdt_32', 'testpic', 'V1', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n        d = mpd_proxy.get_mpd(dp)\n        self.assertFalse(d.find('presentationTimeOffset') > 0)\n\n\nclass TestInitMux(unittest.TestCase):\n\n    def testInitMux(self):\n        testOutputFile = \"test_mux_init.mp4\"\n        rm_outfile(testOutputFile)\n        now = 1356998460\n        urlParts = ['pdash', 'testpic', 'V1__A1', \"init.mp4\"]\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n        d = dash_proxy.get_init(dp)\n        write_data_to_outfile(d, testOutputFile)\n\n    def testMediaMux(self):\n        testOutputFile = \"test_mux.m4s\"\n        rm_outfile(testOutputFile)\n        now = 1356998460\n        segment = \"%d.m4s\" % ((now-60)//6)\n        urlParts = ['pdash', 'testpic', 'V1__A1', segment]\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n        d = dash_proxy.get_media(dp)\n        write_data_to_outfile(d, testOutputFile)\n\n\nclass TestScte35Manifest(unittest.TestCase):\n\n    def setUp(self):\n        now = 1356998460\n        urlParts = ['pdash', 'scte35_1', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n        self.mpd = mpd_proxy.get_mpd(dp)\n\n    def test_scte35_profile_presence(self):\n        self.assertTrue(self.mpd.find(\",http://dashif.org/guidelines/adin/app\") > 0)\n\n    def test_inband_stream_signal(self):\n        self.assertTrue(self.mpd.find('<InbandEventStream schemeIdUri=\"urn:scte:scte35:2013:xml\"') > 0)\n\n\nclass TestScte35Segments(unittest.TestCase):\n\n    def testScte35Event(self):\n        testOutputFile = \"seg_scte35.m4s\"\n        rm_outfile(testOutputFile)\n        segDur = 6\n        segNr = 1800000\n        now = segNr*segDur+50\n        segment = \"%d.m4s\" % segNr\n        urlParts = ['pdash', 'scte35_3', 'testpic', 'V1', segment]\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n        d = dash_proxy.get_media(dp)\n        self.assertEqual(d.find(b'emsg'), 28)\n        write_data_to_outfile(d, testOutputFile)\n\n    def testNoScte35Event(self):\n        segDur = 6\n        segNr = 1800001\n        now = segNr*segDur+50\n        segment = \"%d.m4s\" % segNr\n        urlParts = ['pdash', 'scte35_1', 'testpic', 'V1', segment]\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n        d = dash_proxy.get_media(dp)\n        self.assertEqual(d.find(b'emsg'), -1)\n"
  },
  {
    "path": "dashlivesim/tests/test_earlyterminatedperiod.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport unittest\n\nfrom dashlivesim.tests.dash_test_util import VOD_CONFIG_DIR, CONTENT_ROOT\nfrom dashlivesim.dashlib import dash_proxy, mpd_proxy\nfrom dashlivesim.dashlib import mpdprocessor\nimport xml.etree.ElementTree as ET\n\n\nclass TestXlinkPeriod(unittest.TestCase):\n\n    def setUp(self):\n        self.old_set_baseurl_value = mpdprocessor.SET_BASEURL\n        mpdprocessor.SET_BASEURL = True\n\n    def tearDown(self):\n        mpdprocessor.SET_BASEURL = self.old_set_baseurl_value\n\n    def testMpdPeriodReplaced(self):\n        \" Check whether appropriate periods have been replaced by in .mpd file\"\n        collectresult = 0\n        for k in [1, 2, 5, 10, 20, 30]:\n            nr_period_per_hour = 60\n            nr_etp_periods_per_hour = k\n            urlParts = ['livesim', 'periods_%s' % nr_period_per_hour, 'etp_%s' % nr_etp_periods_per_hour,\n                        'testpic_2s', 'Manifest.mpd']\n            dp = dash_proxy.DashProvider(\"10.4.247.98\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=10000)\n            d = mpd_proxy.get_mpd(dp)\n            xml = ET.fromstring(d)\n            # Make the string as a xml document.\n            periods_containing_duration_attribute = []\n            # This array would contain all the period id that have duration attributes.\n            # In the following, we will check if the correct period element have been assigned duration attributes.\n            for child in xml.findall('{urn:mpeg:dash:schema:mpd:2011}Period'):  # Collect all period elements first\n                if 'duration' in child.attrib:  # If the period element has the duration attribute.\n                    periods_containing_duration_attribute.append(child.attrib['id'])\n                    # Then collect its period id in this array\n            one_etp_for_how_many_periods = nr_period_per_hour/nr_etp_periods_per_hour\n            checker_array = [int(x[1:]) % one_etp_for_how_many_periods for x in periods_containing_duration_attribute]\n            # In the above line, we check if each period id evaluates to zero or not.\n            # Ideally, if everything worked well, then the checker array would be all zero.\n            collectresult = collectresult + sum(checker_array)\n            # Here, we keep collecting the sum of checker array. Even if one element evaluates to non zero values, then\n            # the whole test will fail.\n        self.assertTrue(collectresult == 0)\n"
  },
  {
    "path": "dashlivesim/tests/test_initsegmentfilter.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport unittest\nfrom os.path import join\n\nfrom dashlivesim.tests.dash_test_util import CONTENT_ROOT\nfrom dashlivesim.dashlib import initsegmentfilter\n\n\nclass TestInitParsing(unittest.TestCase):\n\n    def setUp(self):\n        fileName = join(CONTENT_ROOT, \"testpic/A1/init.mp4\")\n        self.f = initsegmentfilter.InitFilter(fileName)\n        self.f.filter()\n\n    def testTrackTimeScale(self):\n        self.assertEqual(self.f.track_timescale, 48000)\n\n    def testTrackHdlrType(self):\n        self.assertEqual(self.f.handler_type, b'soun')\n"
  },
  {
    "path": "dashlivesim/tests/test_lowlatency.py",
    "content": "import unittest\n\nfrom dashlivesim.tests.dash_test_util import VOD_CONFIG_DIR, CONTENT_ROOT\nfrom dashlivesim.dashlib import mpd_proxy, dash_proxy\nfrom dashlivesim.dashlib import mpdprocessor\n\n\nclass TestLowLatencyMPD(unittest.TestCase):\n    \"Test that low-latency MPD has the right attributes\"\n\n    def setUp(self):\n        self.oldBaseUrlState = mpdprocessor.SET_BASEURL\n        mpdprocessor.SET_BASEURL = False\n\n    def tearDown(self):\n        mpdprocessor.SET_BASEURL = self.oldBaseUrlState\n\n    def testCorrectFieldsInMPD(self):\n        mpdprocessor.SET_BASEURL = True\n        urlParts = ['livesim', 'chunkdur_1', 'ato_7', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0)\n        d = mpd_proxy.get_mpd(dp)\n        # print(d)\n        self.assertTrue(d.find('UTCTiming') > 0,\n                        \"Should find UTC-timing element\")\n        self.assertTrue(d.find('http://www.dashif.org/guidelines/low-latency-live-v5') > 0,\n                        \"Should find low-latency profile\")\n        self.assertTrue(d.find(\"<BaseURL>http://streamtest.eu/livesim/chunkdur_1/ato_7/testpic/</BaseURL>\") > 0,\n                        \"Should not have availabilityTimeComplete here\")\n        self.assertTrue(d.find('availabilityTimeComplete=\"false\"') > 0,\n                        \"Should find availabilityTimeComplete in SegmentTemplate\")\n        self.assertTrue(d.find('availabilityTimeOffset=\"7.000000\"') > 0,\n                        \"Should find availabilityTimeOffset in SegmentTemplate\")\n        self.assertTrue(d.find('<ServiceDescription') > 0,\n                        \"Should find ServiceDescription in MPD\")\n        self.assertTrue(d.find('<ProducerReferenceTime') > 0,\n                        \"Should find ProducerReferenceTime in MPD\")\n"
  },
  {
    "path": "dashlivesim/tests/test_moduloperiod.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport unittest\nfrom dashlivesim.dashlib.moduloperiod import ModuloPeriod\n\n\nclass TestModuloCalculations(unittest.TestCase):\n\n    def testMiddlePeriod(self):\n        mp = ModuloPeriod(10, 2000)\n        self.assertEqual(mp._minimum_update_period, 30)\n        self.assertEqual(mp._availability_start_time, 1800)\n        self.assertEqual(mp._media_presentation_duration, 360)\n        self.assertEqual(mp._availability_end_time, 2190)\n\n    def testEndOfMediaInPeriod(self):\n        mp = ModuloPeriod(5, 540)\n        self.assertEqual(mp._minimum_update_period, 15)\n        self.assertEqual(mp._availability_start_time, 300)\n        self.assertEqual(mp._media_presentation_duration, 240)\n        self.assertEqual(mp._availability_end_time, 555)\n        self.assertEqual(mp.compare_with_last_segment(269, 2), 0)\n\n    def testFuturePeriod(self):\n        mp = ModuloPeriod(5, 575)\n        self.assertEqual(mp._minimum_update_period, 15)\n        self.assertEqual(mp._availability_start_time, 600)\n        self.assertEqual(mp._media_presentation_duration, 60)\n        self.assertEqual(mp._availability_end_time, 675)\n"
  },
  {
    "path": "dashlivesim/tests/test_mpdcallback.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport unittest\n\nfrom dashlivesim.tests.dash_test_util import VOD_CONFIG_DIR, CONTENT_ROOT\nfrom dashlivesim.dashlib import dash_proxy, mpd_proxy\nfrom dashlivesim.dashlib import mpdprocessor\nimport xml.etree.ElementTree as ET\n\n\nclass TestXlinkPeriod(unittest.TestCase):\n\n    def setUp(self):\n        self.old_set_baseurl_value = mpdprocessor.SET_BASEURL\n        mpdprocessor.SET_BASEURL = True\n\n    def tearDown(self):\n        mpdprocessor.SET_BASEURL = self.old_set_baseurl_value\n\n    def testMpdPeriodReplaced(self):\n        \" Check whether appropriate periods have been replaced by in .mpd file\"\n        collectresult = 0\n        for k in [1, 2, 5, 10, 20, 30]:\n            nr_period_per_hour = 60\n            nr_callback_periods_per_hour = k\n            urlParts = ['livesim', 'periods_%s' % nr_period_per_hour, 'mpdcallback_%s' % nr_callback_periods_per_hour,\n                        'testpic_2s', 'Manifest.mpd']\n            dp = dash_proxy.DashProvider(\"10.4.247.98\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=10000)\n            d = mpd_proxy.get_mpd(dp)\n            xml = ET.fromstring(d)\n            # Make the string as a xml document.\n            periods_containing_callback_element = []\n            # This array would contain all the period id that have duration attributes.\n            # In the following, we will check if the correct period element have been assigned duration attributes.\n            for child in xml.findall('{urn:mpeg:dash:schema:mpd:2011}Period'):  # Collect all period elements first\n                eventStream = child.find('{urn:mpeg:dash:schema:mpd:2011}EventStream')\n                if eventStream is None:\n                    continue\n                periods_containing_callback_element.append(child.attrib['id'])\n                event = eventStream.find('{urn:mpeg:dash:schema:mpd:2011}Event')\n                self.assertIsNotNone(event, \"there should be an Event inside EventStream\")\n                self.assertTrue(\"/mpdcallback/\" in event.attrib['messageData'])\n                # Then collect its period id in this array\n            one_callback_for_how_many_periods = nr_period_per_hour/nr_callback_periods_per_hour\n            checker_array = [int(x[1:]) % one_callback_for_how_many_periods for x in periods_containing_callback_element]\n            # In the above line, we check if each period id evaluates to zero or not.\n            # Ideally, if everything worked well, then the checker array would be all zero.\n            collectresult = collectresult + sum(checker_array)\n            # Here, we keep collecting the sum of checker array. Even if one element evaluates to non zero values, then\n            # the whole test will fail.\n        self.assertTrue(collectresult == 0)\n"
  },
  {
    "path": "dashlivesim/tests/test_mpdprocessor.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport unittest\nfrom os.path import join\n\nfrom dashlivesim.tests.dash_test_util import CONTENT_ROOT\nfrom dashlivesim.dashlib import mpdprocessor\n\nvodMPD = join(CONTENT_ROOT, \"testpic\", \"Manifest.mpd\")\n\n\nclass FakeConfig(object):\n\n    def __init__(self):\n        pass\n\n\nclass TestMpdProcessor(unittest.TestCase):\n    \"Test of MPD parsing and writing\"\n\n    def setUp(self):\n        self.mpd_cfg = {'scte35Present': False, 'utc_timing_methods': [],\n                        'utc_head_url': \"\", 'continuous': False,\n                        'segtimeline': False, 'segtimeline_nr': False,\n                        'now': 100000}\n\n    def test_mpd_in_out(self):\n        mp = mpdprocessor.MpdProcessor(vodMPD, self.mpd_cfg)\n        mp.process({'availabilityStartTime': \"1971\", 'availability_start_time_in_s': 31536000,\n                    'BaseURL': \"http://india/\", 'minimumUpdatePeriod': \"0\", 'periodOffset': 100000},\n                   [{'id': \"p0\", 'startNumber': \"0\", 'presentationTimeOffset': 0},\n                    {'id': \"p1\", 'startNumber': \"3600\", 'presentationTimeOffset': 100000}])\n        xml = mp.get_full_xml()\n\n    def test_utc_timing_head(self):\n        self.mpd_cfg['utc_timing_methods'] = [\"head\"]\n        mp = mpdprocessor.MpdProcessor(vodMPD, self.mpd_cfg)\n        mp.process({'availabilityStartTime': \"1971\", 'availability_start_time_in_s': 31536000,\n                    'BaseURL': \"http://india/\", 'minimumUpdatePeriod': \"0\", 'periodOffset': 100000},\n                   [{'id': \"p0\", 'startNumber': \"0\", 'presentationTimeOffset': 0}])\n        xml = mp.get_full_xml()\n        head_pos = xml.find('<UTCTiming schemeIdUri=\"urn:mpeg:dash:utc:http-head:2014\"')\n        self.assertGreater(head_pos, 0, \"UTCTiming for head method not found.\")\n\n    def test_utc_timing_direct_and_head(self):\n        self.mpd_cfg['utc_timing_methods'] = [\"direct\", \"head\"]\n        mp = mpdprocessor.MpdProcessor(vodMPD, self.mpd_cfg)\n        mp.process({'availabilityStartTime': \"1971\", 'availability_start_time_in_s': 31536000,\n                    'BaseURL': \"http://india/\", 'minimumUpdatePeriod': \"0\", 'periodOffset': 100000},\n                   [{'id': \"p0\", 'startNumber': \"0\", 'presentationTimeOffset': 0}])\n        xml = mp.get_full_xml()\n        head_pos = xml.find('<UTCTiming schemeIdUri=\"urn:mpeg:dash:utc:http-head:2014\"')\n        direct_pos = xml.find('<UTCTiming schemeIdUri=\"urn:mpeg:dash:utc:direct:2014\"')\n        self.assertLess(direct_pos, head_pos, \"UTCTiming direct method does not come before head method.\")\n"
  },
  {
    "path": "dashlivesim/tests/test_multi_baseurl.py",
    "content": "import unittest\n\nfrom dashlivesim.tests.dash_test_util import VOD_CONFIG_DIR, CONTENT_ROOT\nfrom dashlivesim.tests.dash_test_util import rm_outfile, write_data_to_outfile, findAllIndexes\n\nfrom dashlivesim.dashlib import dash_proxy, mpd_proxy\nfrom dashlivesim.dashlib import mpdprocessor\n\n\ndef isMediaSegment(data):\n    \"Check if response is a segment.\"\n    return isinstance(data, bytes) and data[4:8] == b\"styp\"\n\n\nclass TestMultipleBaseUrls(unittest.TestCase):\n    \"Test of redundant baseURLs with failing availability. Note that BASEURL must be set.\"\n\n    def setUp(self):\n        self.oldBaseUrlState = mpdprocessor.SET_BASEURL\n        mpdprocessor.SET_BASEURL = True\n\n    def tearDown(self):\n        mpdprocessor.SET_BASEURL = self.oldBaseUrlState\n\n    def testMpdGeneration(self):\n        testOutputFile = \"MultiURL.mpd\"\n        rm_outfile(testOutputFile)\n        urlParts = ['livesim', 'baseurl_u40_d20', 'baseurl_d40_u20', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0)\n        d = mpd_proxy.get_mpd(dp)\n        write_data_to_outfile(d.encode('utf-8'), testOutputFile)\n        baseURLindexes = findAllIndexes(\"<BaseURL>\", d)\n        ud_indexes = findAllIndexes(\"baseurl_u40_d20\", d)\n        du_indexes = findAllIndexes(\"baseurl_d40_u20\", d)\n        self.assertEqual(len(baseURLindexes), 2)\n        self.assertEqual(len(ud_indexes), 1)\n        self.assertEqual(len(du_indexes), 1)\n\n    def testMpdGenerationHttps(self):\n        urlParts = ['livesim', 'baseurl_u40_d20', 'baseurl_d40_u20', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0,\n                                     is_https=True)\n        d = mpd_proxy.get_mpd(dp)\n        httpsIndexes = findAllIndexes(\"<BaseURL>https://\", d)\n        self.assertEqual(len(httpsIndexes), 2)\n\n    def testCheckUpAndDownDependingOnTime(self):\n        urlParts = ['livesim', 'ato_inf', 'baseurl_u40_d20', 'testpic', 'A1', '0.m4s']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=68)\n        self.assertTrue(isMediaSegment(dash_proxy.get_media(dp)))\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=108)\n        self.assertFalse(isMediaSegment(dash_proxy.get_media(dp)))\n\n    def testCheckDowAndUpDependingOnTime(self):\n        urlParts = ['livesim', 'ato_inf', 'baseurl_d40_u20', 'testpic', 'A1', '0.m4s']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=68)\n        self.assertFalse(isMediaSegment(dash_proxy.get_media(dp)))\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=108)\n        self.assertTrue(isMediaSegment(dash_proxy.get_media(dp)))\n\n    def testCheckDowAndUpDependingOnTime30sPeriod(self):\n        urlParts = ['livesim', 'ato_inf', 'baseurl_d20_u10', 'testpic', 'A1', '0.m4s']\n        expected_results = [False, False, True, False, False, True]\n        times = [7, 17, 27, 37, 47, 57]\n        for (exp, now) in zip(expected_results, times):\n            dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n            self.assertEqual(isMediaSegment(dash_proxy.get_media(dp)), exp, \"Did not match for time %s\" % now)\n\n    def testCheckUpAndDownDependingOnTime30sPeriod(self):\n        urlParts = ['livesim', 'ato_inf', 'baseurl_u20_d10', 'testpic', 'A1', '0.m4s']\n        expected_results = [True, True, False, True, True, False]\n        times = [7, 17, 27, 37, 47, 57]\n        for (exp, now) in zip(expected_results, times):\n            dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n            self.assertEqual(isMediaSegment(dash_proxy.get_media(dp)), exp, \"Did not match for time %s\" % now)\n\n    def testOtherOrderOfOptions(self):\n        urlParts = ['livesim', 'baseurl_u20_d10', 'ato_inf', 'testpic', 'A1', '0.m4s']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=10)\n        d = dash_proxy.get_media(dp)\n        self.assertTrue(isMediaSegment(d), \"Not a media segment, but %r\" % d)\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=25)\n        self.assertFalse(isMediaSegment(dash_proxy.get_media(dp)), \"Is a media segment, but should not be\")\n"
  },
  {
    "path": "dashlivesim/tests/test_scte35.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport unittest\n\nfrom dashlivesim.dashlib import scte35\n\ntestMessage = \"\"\"\\\n<SpliceInfoSection ptsAdjustment=\"0\" scte35:tier=\"4095\">\n<SpliceInsert spliceEventId=\"22\" spliceEventCancelIndicator=\"false\" outOfNetworkIndicator=\"false\" uniqueProgramId=\"0\" availNum=\"0\" availsExpected=\"0\" spliceImmediateFlag=\"false\" >\n<Program><SpliceTime ptsTime=\"1234\"/></Program>\n<BreakDuration autoReturn=\"true\" duration=\"900000\"/>\n</SpliceInsert>\n</SpliceInfoSection>\"\"\"\n\ncancelMessage = \"\"\"\\\n<SpliceInfoSection ptsAdjustment=\"0\" scte35:tier=\"4095\">\n<SpliceInsert spliceEventId=\"22\" spliceEventCancelIndicator=\"true\">\n</SpliceInsert>\n</SpliceInfoSection>\"\"\"\n\n\nclass TestScte35(unittest.TestCase):\n\n    def testScte35MessageData(self):\n        ptsAdjustment = 0\n        tier = 4095\n        spliceEventId = 22\n        spliceEventCancelIndicator = False\n        outOfNetworkIndicator = False\n        uniqueProgramId = 0\n        availNum = 0\n        availsExpected = 0\n        spliceImmediateFlag = False\n        ptsTime = 1234\n        autoReturn = True\n        duration = 900000\n        message_data = scte35.create_scte35_insert_message(ptsAdjustment, tier, spliceEventId,\n                                                           spliceEventCancelIndicator, outOfNetworkIndicator,\n                                                           uniqueProgramId, availNum, availsExpected,\n                                                           spliceImmediateFlag, ptsTime, autoReturn, duration)\n        self.assertEqual(message_data, testMessage)\n\n    def testScteCancelMessage(self):\n        ptsAdjustment = 0\n        tier = 4095\n        spliceEventId = 22\n        spliceEventCancelIndicator = True\n        outOfNetworkIndicator = False\n        uniqueProgramId = 0\n        availNum = 0\n        availsExpected = 0\n        spliceImmediateFlag = False\n        ptsTime = 1234\n        autoReturn = True\n        duration = 900000\n        message_data = scte35.create_scte35_insert_message(ptsAdjustment, tier, spliceEventId,\n                                                           spliceEventCancelIndicator, outOfNetworkIndicator,\n                                                           uniqueProgramId, availNum, availsExpected,\n                                                           spliceImmediateFlag, ptsTime, autoReturn, duration)\n        self.assertEqual(message_data, cancelMessage)\n\n\nclass TestEmsgMessage(unittest.TestCase):\n\n    def testEmsgMessage(self):\n        timeScale = 90000\n        presentationTimeOffset = 1000000000000\n        presentationTime = 1000001800000\n        duration = 900000\n        messageId = 18\n        spliceId = 13\n        emsgBox = scte35.Scte35Emsg(timeScale, presentationTimeOffset, presentationTime, duration, messageId, spliceId)\n        self.assertEqual(emsgBox.presentation_time_delta, presentationTime-presentationTimeOffset)\n        self.assertEqual(emsgBox.emsg_id, messageId)\n\n    def testNonAllowedTimescale(self):\n        timeScale = 36000\n        presentationTimeOffset = 1000000000000\n        presentationTime = 1000001800000\n        duration = 900000\n        messageId = 18\n        spliceId = 13\n        self.assertRaises(scte35.Scte35Error, scte35.Scte35Emsg, timeScale, presentationTimeOffset, presentationTime,\n                          duration, messageId, spliceId)\n"
  },
  {
    "path": "dashlivesim/tests/test_segment_duration_ms.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2018, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport os\nimport unittest\n\nfrom dashlivesim.tests.dash_test_util import VOD_CONFIG_DIR\nfrom dashlivesim.dashlib import configprocessor\n\n\nclass TestConfigProcessor(unittest.TestCase):\n\n    def testReadVodConfigFile(self):\n        cfg_file = os.path.join(VOD_CONFIG_DIR, 'testpic.cfg')\n        vod_cfg = configprocessor.VodConfig()\n        vod_cfg.read_config(cfg_file)\n"
  },
  {
    "path": "dashlivesim/tests/test_segmentloss_mainlive.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport unittest\n\nfrom dashlivesim.tests.dash_test_util import VOD_CONFIG_DIR, CONTENT_ROOT\nfrom dashlivesim.tests.dash_test_util import write_data_to_outfile\nfrom dashlivesim.dashlib import dash_proxy, mpd_proxy\n# from dashlivesim.dashlib import mpdprocessor\n\n\ndef isEmsgPresentInSegment(data):\n    \"Check if emsg box is present in segment.\"\n    return data.find(b\"emsg\") >= 0\n\n\nclass TestSegTimelineLossMainLive(unittest.TestCase):\n    \"Test of Segment timeline loss signalling in MPD and segments for main live case\"\n    # def setUp(self):\n    #   self.oldBaseUrlState = mpdprocessor.SET_BASEURL\n    #   mpdprocessor.SET_BASEURL = True\n\n    # def tearDown(self):\n    #   mpdprocessor.SET_BASEURL = self.oldBaseUrlState\n\n    def testNoInbandStreamElemInMPD(self):\n        urlParts = ['livesim', 'baseurl_u10_d20', 'segtimeline_1', 'segtimelineloss_1', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=60)\n        d = mpd_proxy.get_mpd(dp)\n        inbandEventElement = d.find('<InbandEventStream')\n        self.assertLess(inbandEventElement, 0)\n\n    def testInbandStreamElemInMPD(self):\n        urlParts = ['livesim', 'baseurl_u10_d20', 'segtimeline_1', 'segtimelineloss_1', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=10)\n        d = mpd_proxy.get_mpd(dp)\n        inbandEventElement = d.find(\"<InbandEventStream\")\n        self.assertGreater(inbandEventElement, 0)\n\n    def testNoEmsgInSegment(self):\n        urlParts = ['livesim', 'baseurl_u10_d20', 'segtimeline_1', 'segtimelineloss_1', 'testpic', 'A1', '0.m4s']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=60)\n        d = dash_proxy.get_media(dp)\n        self.assertFalse(isEmsgPresentInSegment(d))\n\n    def testEmsgInSegment(self):\n        urlParts = ['livesim', 'baseurl_u10_d20', 'segtimeline_1', 'segtimelineloss_1', 'testpic', 'A1', '0.m4s']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=10)\n        d = dash_proxy.get_media(dp)\n        self.assertTrue(isEmsgPresentInSegment(d))\n\n    def testNoNewSegmentsAdded(self):\n        urlParts = ['livesim', 'baseurl_u10_d20', 'segtimeline_1', 'segtimelineloss_1', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=10)\n        d = mpd_proxy.get_mpd(dp)\n        start = d.find('<SegmentTimeline>')\n        end = d.find('</SegmentTimeline>')\n        testOutputFile = \"SegTimeline1.txt\"\n        segTimeline = d[start:end+18]\n        write_data_to_outfile(d[start:end+18].encode('utf-8'), testOutputFile)\n        dp2 = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=15)\n        d2 = mpd_proxy.get_mpd(dp2)\n        start2 = d2.find('<SegmentTimeline>')\n        end2 = d2.find('</SegmentTimeline>')\n        testOutputFile = \"SegTimeline2.txt\"\n        segTimeline2 = d2[start2:end2+18]\n        write_data_to_outfile(d2[start2:end2+18].encode('utf-8'), testOutputFile)\n        self.assertEqual(segTimeline, segTimeline2)\n\n    def testNewSegmentsAdded(self):\n        urlParts = ['livesim', 'baseurl_u10_d20', 'segtimeline_1', 'segtimelineloss_1', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=10)\n        d = mpd_proxy.get_mpd(dp)\n        start = d.find('<SegmentTimeline>')\n        end = d.find('</SegmentTimeline>')\n        testOutputFile = \"SegTimeline3.txt\"\n        write_data_to_outfile(d[start:end+18].encode('utf-8'), testOutputFile)\n        segTimeline = d[start:end+18]\n        dp2 = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=31)\n        d2 = mpd_proxy.get_mpd(dp2)\n        start2 = d2.find('<SegmentTimeline>')\n        end2 = d2.find('</SegmentTimeline>')\n        testOutputFile = \"SegTimeline4.txt\"\n        write_data_to_outfile(d2[start2:end2+18].encode('utf-8'), testOutputFile)\n        segTimeline2 = d2[start2:end2+18]\n        self.assertNotEqual(segTimeline, segTimeline2)\n"
  },
  {
    "path": "dashlivesim/tests/test_segmentmuxer.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport unittest\nfrom os.path import join\n\nfrom dashlivesim.tests.dash_test_util import rm_outfile, write_data_to_outfile, CONTENT_ROOT\nfrom dashlivesim.dashlib import segmentmuxer\n\nV1_INIT = join(CONTENT_ROOT, \"testpic/V1/init.mp4\")\nA1_INIT = join(CONTENT_ROOT, \"testpic/A1/init.mp4\")\nV1_1 = join(CONTENT_ROOT, \"testpic/V1/1.m4s\")\nA1_1 = join(CONTENT_ROOT, \"testpic/A1/1.m4s\")\n\n\nclass TestInitMuxing(unittest.TestCase):\n\n    def testInitMuxing(self):\n        testOutputFile = \"init_muxed.mp4\"\n        rm_outfile(testOutputFile)\n        mi = segmentmuxer.MultiplexInits(V1_INIT, A1_INIT)\n        muxed = mi.construct_muxed()\n        write_data_to_outfile(muxed, testOutputFile)\n\n\nclass TestSegmentMuxing(unittest.TestCase):\n\n    def testFragmentMuxing(self):\n        testOutputFile = \"1_fmux.mp4s\"\n        rm_outfile(testOutputFile)\n        ml = segmentmuxer.MultiplexMediaSegments(V1_1, A1_1)\n        fmux = ml.mux_on_fragment_level()\n        write_data_to_outfile(fmux, testOutputFile)\n\n    def testSampleMuxing(self):\n        testOutputFile = \"1_smux.m4s\"\n        rm_outfile(testOutputFile)\n        ml = segmentmuxer.MultiplexMediaSegments(V1_1, A1_1)\n        smux = ml.mux_on_sample_level()\n        write_data_to_outfile(smux, testOutputFile)\n"
  },
  {
    "path": "dashlivesim/tests/test_segmenttimeline.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport unittest\nfrom xml.etree import ElementTree\n\nfrom dashlivesim.tests.dash_test_util import VOD_CONFIG_DIR, CONTENT_ROOT, rm_outfile, write_data_to_outfile\nfrom dashlivesim.dashlib import dash_proxy, mpd_proxy\n\nNAMESPACE = 'urn:mpeg:dash:schema:mpd:2011'\n\n\ndef node_ns(name):\n    return '{%s}%s' % (NAMESPACE, name)\n\n\nclass TestMPDWithSegmentTimeline(unittest.TestCase):\n    \"Test that the MPD looks correct when segtimeline_1 is defined.\"\n\n    def setUp(self):\n        self.now = 6003\n        self.tsbd = 30\n        urlParts = ['livesim', 'segtimeline_1', 'tsbd_%d' % self.tsbd, 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"server.org\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=self.now)\n        self.d = mpd_proxy.get_mpd(dp)\n        self.root = ElementTree.fromstring(self.d)\n\n    def testThatNumberTemplateFeaturesAreAbsent(self):\n        testOutputFile = \"segtimeline.mpd\"\n        rm_outfile(testOutputFile)\n        write_data_to_outfile(self.d.encode('utf-8'), testOutputFile)\n        self.assertTrue(self.d.find(\"startNumber\") == -1)  # There should be no startNumber in the MPD\n        self.assertTrue(self.d.find(\"duration\") == -1)  # There should be no duration in the segmentTemplate\n        self.assertTrue(self.d.find(\"$Number$\") == -1)  # There should be no $Number$ in template\n        self.assertTrue(self.d.find(\"maxSegmentDuration\") == -1)  # There should be no maxSegmentDuration in MPD\n\n    def testThatSegmentTimeLineDataIsPresent(self):\n        testOutputFile = \"segtimeline.mpd\"\n        rm_outfile(testOutputFile)\n        write_data_to_outfile(self.d.encode('utf-8'), testOutputFile)\n        self.assertTrue(self.d.find(\"$Time$\") > 0)  # There should be $Time$ in the MPD\n\n    def testThatTheLastSegmentReallyIsTheLatest(self):\n        \"Check that the last segment's end is less than one duration from now.\"\n        period = self.root.find(node_ns('Period'))\n        for adaptation_set in period.findall(node_ns('AdaptationSet')):\n            segment_template = adaptation_set.find(node_ns('SegmentTemplate'))\n            timescale = int(segment_template.attrib['timescale'])\n            segment_timeline = segment_template.find(node_ns('SegmentTimeline'))\n            s_elements = segment_timeline.findall(node_ns('S'))\n            seg_start_time = None\n            seg_end_time = None\n            for s_elem in s_elements:\n                if seg_start_time is None:\n                    seg_start_time = int(s_elem.attrib['t'])\n                else:\n                    seg_start_time = seg_end_time\n                nr_repeat = int(s_elem.attrib.get('r', 0))\n                duration = int(s_elem.attrib['d'])\n                seg_end_time = seg_start_time + duration * (1 + nr_repeat)\n            last_end_time = seg_end_time / timescale\n            self.assertLess(last_end_time, self.now)\n            last_end_time_plus_duration = (seg_end_time + duration)/timescale\n            self.assertGreater(last_end_time_plus_duration, self.now)\n\n    def testThatTheLastSegmentReallyIsTheLatestAtWrapAround(self):\n        \"Check that the last segment's end is less than one duration from now at wraparound.\"\n        self.now = 3603\n        self.tsbd = 30\n        urlParts = ['livesim', 'segtimeline_1', 'tsbd_%d' % self.tsbd, 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"server.org\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=self.now)\n        self.d = mpd_proxy.get_mpd(dp)\n        self.root = ElementTree.fromstring(self.d)\n        period = self.root.find(node_ns('Period'))\n        for adaptation_set in period.findall(node_ns('AdaptationSet')):\n            segment_template = adaptation_set.find(node_ns('SegmentTemplate'))\n            timescale = int(segment_template.attrib['timescale'])\n            segment_timeline = segment_template.find(node_ns('SegmentTimeline'))\n            s_elements = segment_timeline.findall(node_ns('S'))\n            seg_start_time = None\n            seg_end_time = None\n            for s_elem in s_elements:\n                if seg_start_time is None:\n                    seg_start_time = int(s_elem.attrib['t'])\n                else:\n                    seg_start_time = seg_end_time\n                nr_repeat = int(s_elem.attrib.get('r', 0))\n                duration = int(s_elem.attrib['d'])\n                seg_end_time = seg_start_time + duration * (1 + nr_repeat)\n            last_end_time = seg_end_time / timescale\n            self.assertLess(last_end_time, self.now)\n            last_end_time_plus_duration = (seg_end_time + duration)/timescale\n            self.assertGreater(last_end_time_plus_duration, self.now)\n\n    def testThatFirstSegmentStartsJustBeforeTsbd(self):\n        \"Check that the first segment starts less than one period before now-tsbd.\"\n        period = self.root.find(node_ns('Period'))\n        for adaptation_set in period.findall(node_ns('AdaptationSet')):\n            segment_template = adaptation_set.find(node_ns('SegmentTemplate'))\n            timescale = int(segment_template.attrib['timescale'])\n            segment_timeline = segment_template.find(node_ns('SegmentTimeline'))\n            first_s_elem = segment_timeline.find(node_ns('S'))\n            first_start = int(first_s_elem.attrib['t'])\n            duration = int(first_s_elem.attrib['d'])\n            start_time = first_start / timescale\n            start_time_plus_duration = (first_start + duration) / timescale\n            self.assertLess(start_time, self.now - self.tsbd)\n            self.assertGreater(start_time_plus_duration, self.now - self.tsbd)\n\n\ndef find_first_audio_t(root):\n    \"\"\"Return t and d from the first audio segment.\"\"\"\n    period = root.find(node_ns('Period'))\n    for adaptation_set in period.findall(node_ns('AdaptationSet')):\n        content_type = adaptation_set.attrib['contentType']\n        if content_type != 'audio':\n            continue\n        segment_template = adaptation_set.find(node_ns('SegmentTemplate'))\n        # timescale = int(segment_template.attrib['timescale'])\n        segment_timeline = segment_template.find(node_ns('SegmentTimeline'))\n        first_s_elem = segment_timeline.find(node_ns('S'))\n        first_t = int(first_s_elem.attrib['t'])\n        first_d = int(first_s_elem.attrib['d'])\n        return first_t, first_d\n    raise ValueError(\"Could not find audio adaptation set\")\n\n\nclass TestAvoidJump(unittest.TestCase):\n\n    def testThatTimesDontJump(self):\n        \"Test that times don't jump as reported in ISSUE #91.\"\n\n        # First get the MPD corresponding to 5.mpd.txt\n        now = 1578681199\n        urlParts = ['livesim', 'segtimeline_1', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"server.org\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n        d = mpd_proxy.get_mpd(dp)\n        root = ElementTree.fromstring(d)\n        first_t, first_d = find_first_audio_t(root)\n        # tsbd = 300 # TimeShiftBufferDepth\n        self.assertTrue(now - first_t/48000 > 300, \"Did not get before timeshift window start\")\n\n        later = now + 6\n        urlParts = ['livesim', 'segtimeline_1', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"server.org\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=later)\n        d = mpd_proxy.get_mpd(dp)\n        root = ElementTree.fromstring(d)\n        second_t, second_d = find_first_audio_t(root)\n        self.assertEqual(second_t, first_t + first_d, \"Second t is not first t + first d \")\n\n\nclass TestMPDWithSegmentTimelineWrap(unittest.TestCase):\n    \"Test that the MPD looks correct when wrapping.\"\n\n    def testAfterWrap(self):\n        self.now = 3610\n        self.tsbd = 60\n        urlParts = ['livesim', 'segtimeline_1', 'tsbd_%d' % self.tsbd, 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"server.org\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=self.now)\n        self.d = mpd_proxy.get_mpd(dp)\n        self.root = ElementTree.fromstring(self.d)\n        nrSegments = self.getNrSegments(self.root)\n        self.assertEqual(2*10, nrSegments)\n        write_data_to_outfile(self.d.encode('utf-8'), \"AfterWrap.mpd\")\n\n    def testBefore(self):\n        self.now = 3590\n        self.tsbd = 60\n        urlParts = ['livesim', 'segtimeline_1', 'tsbd_%d' % self.tsbd,\n                    'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"server.org\", urlParts, None,\n                                     VOD_CONFIG_DIR, CONTENT_ROOT,\n                                     now=self.now)\n        self.d = mpd_proxy.get_mpd(dp)\n        self.root = ElementTree.fromstring(self.d)\n        nrSegments = self.getNrSegments(self.root)\n        self.assertEqual(2*10, nrSegments)\n        write_data_to_outfile(self.d.encode('utf-8'), \"BeforeWrap.mpd\")\n\n    def getNrSegments(self, root):\n        nrSegments = 0\n        period = root.find(node_ns('Period'))\n        aSets = period.findall(node_ns('AdaptationSet'))\n        for aSet in aSets:\n            sTempl = aSet.find(node_ns('SegmentTemplate'))\n            sLines = sTempl.findall(node_ns('SegmentTimeline'))\n            for sLine in sLines:\n                sElems = sLine.findall(node_ns('S'))\n                for sElem in sElems:\n                    if 'r' in sElem.attrib:\n                        nrSegments += int(sElem.attrib['r']) + 1\n                    else:\n                        nrSegments += 1\n        return nrSegments\n\n\nclass TestSegmentTimelineInterval(unittest.TestCase):\n    \"\"\"SegmentTimeline with start, stop, timeoffset\"\"\"\n\n    def setUp(self):\n        self.now = 100\n        urlParts = ['livesim', 'segtimeline_1', 'start_60', 'stop_120',\n                    'timeoffset_0', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"server.org\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=self.now)\n        self.d = mpd_proxy.get_mpd(dp)\n        self.root = ElementTree.fromstring(self.d)\n\n    def testSegmentList(self):\n        period = self.root.find(node_ns('Period'))\n        for adaptation_set in period.findall(node_ns('AdaptationSet')):\n            content_type = adaptation_set.attrib['contentType']\n            if content_type != \"video\":\n                continue\n            segment_template = adaptation_set.find(node_ns('SegmentTemplate'))\n            timescale = int(segment_template.attrib['timescale'])\n            segment_timeline = segment_template.find(node_ns('SegmentTimeline'))\n            s_elements = segment_timeline.findall(node_ns('S'))\n            seg_start_time = None\n            seg_end_time = None\n            for s_elem in s_elements:\n                if seg_start_time is None:\n                    seg_start_time = int(s_elem.attrib['t'])\n                    self.assertEqual(60 * timescale, seg_start_time)\n                else:\n                    seg_start_time = seg_end_time\n                nr_repeat = int(s_elem.attrib.get('r', 0))\n                duration = int(s_elem.attrib['d'])\n                seg_end_time = seg_start_time + duration * (1 + nr_repeat)\n            last_end_time = seg_end_time / timescale\n            self.assertLess(last_end_time, self.now)\n            last_end_time_plus_duration = (seg_end_time + duration)/timescale\n            self.assertGreater(last_end_time_plus_duration, self.now)\n\n\nclass TestMultiPeriodSegmentTimeline(unittest.TestCase):\n    \"Test that the MPD looks correct when segtimeline_1 and periods_60 are both defined.\"\n\n    def setUp(self):\n        self.now = 6003\n        self.tsbd = 90\n        urlParts = ['livesim', 'segtimeline_1', 'periods_60', 'tsbd_%d' % self.tsbd, 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"server.org\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=self.now)\n        self.d = mpd_proxy.get_mpd(dp)\n\n    def testThatThereAreMultiplePeriods(self):\n        \"Check that the first segment starts less than one period before now-tsbd.\"\n        testOutputFile = \"segtimeline_periods.mpd\"\n        rm_outfile(testOutputFile)\n        write_data_to_outfile(self.d.encode('utf-8'), testOutputFile)\n        self.root = ElementTree.fromstring(self.d)\n        periods = self.root.findall(node_ns('Period'))\n        self.assertGreater(len(periods), 1)\n\n\nclass TestMediaSegments(unittest.TestCase):\n    \"Test that media segments are served properly.\"\n\n    def setUp(self):\n        self.seg_nr = 349\n        self.timescale = 48000\n        self.duration = 6\n        self.seg_time = self.seg_nr * self.duration * self.timescale\n        self.now = (self.seg_nr+2)*self.duration\n\n    def testThatTimeLookupWorks(self):\n        urlParts = ['livesim', 'segtimeline_1', 'testpic', 'A1', 't%d.m4s' % self.seg_time]\n        dp = dash_proxy.DashProvider(\"server.org\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=self.now)\n        d = dash_proxy.get_media(dp)\n        self.assertTrue(isinstance(d, bytes), \"A segment is returned\")\n\n    def testThatTimeSegmentIsSameAsNumber(self):\n        urlParts = ['livesim', 'segtimeline_1', 'testpic', 'A1', 't%d.m4s' % self.seg_time]\n        dp = dash_proxy.DashProvider(\"server.org\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=self.now)\n        time_seg = dash_proxy.get_media(dp)\n        urlParts = ['livesim', 'segtimeline_1', 'testpic', 'A1', '%d.m4s' % self.seg_nr]\n        dp = dash_proxy.DashProvider(\"server.org\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=self.now)\n        nr_seg = dash_proxy.get_media(dp)\n        self.assertEqual(len(time_seg), len(nr_seg))\n        self.assertEqual(time_seg, nr_seg)\n\n\nclass TestMPDWithSegmentTimelineNumber(unittest.TestCase):\n    \"Test that the MPD looks correct when segtimelinenr_1 is defined.\"\n\n    def setUp(self):\n        self.now = 6003\n        self.tsbd = 30\n        urlParts = ['livesim', 'segtimelinenr_1', 'tsbd_%d' % self.tsbd,\n                    'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"server.org\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=self.now)\n        self.d = mpd_proxy.get_mpd(dp)\n        self.root = ElementTree.fromstring(self.d)\n\n    def testThatSomeFeaturesAreAbsent(self):\n        testOutputFile = \"segtimelinenr.mpd\"\n        rm_outfile(testOutputFile)\n        write_data_to_outfile(self.d.encode('utf-8'), testOutputFile)\n        self.assertTrue(self.d.find(\"duration\") == -1)  # There should be no duration in the segmentTemplate\n        self.assertTrue(self.d.find(\"$Time$\") == -1)  # There should be no\n        # $Number$ in template\n        self.assertTrue(self.d.find(\"maxSegmentDuration\") == -1)  # There should be no maxSegmentDuration in MPD\n\n    def testThatSegmentTimeLineDataIsPresent(self):\n        testOutputFile = \"segtimelinenr.mpd\"\n        rm_outfile(testOutputFile)\n        write_data_to_outfile(self.d.encode('utf-8'), testOutputFile)\n        self.assertTrue(self.d.find(\"$Number$\") > 0, \"$Number$ missing\")\n\n    def testThatFirstSegmentHasRightNumber(self):\n        \"Check that the first segment has the right number.\"\n        duration_in_s = 6\n        period = self.root.find(node_ns('Period'))\n        for adaptation_set in period.findall(node_ns('AdaptationSet')):\n            segment_template = adaptation_set.find(node_ns('SegmentTemplate'))\n            timescale = int(segment_template.attrib['timescale'])\n            start_number = int(segment_template.attrib['startNumber'])\n            segment_timeline = segment_template.find(node_ns('SegmentTimeline'))\n            first_s_elem = segment_timeline.find(node_ns('S'))\n            first_start = int(first_s_elem.attrib['t'])\n            duration = duration_in_s * timescale\n            start_nr_from_time = int(round(1.0 * first_start / duration))\n            self.assertEqual(start_number, start_nr_from_time)\n"
  },
  {
    "path": "dashlivesim/tests/test_startnr.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport unittest\nfrom os.path import join\n\nfrom dashlivesim.tests.dash_test_util import OUT_DIR\nfrom dashlivesim.dashlib import dash_proxy, mpd_proxy\nfrom dashlivesim.tests.dash_test_util import VOD_CONFIG_DIR, CONTENT_ROOT\nfrom dashlivesim.tests.dash_test_util import findAllIndexes\n\n\nclass TestMpdChange(unittest.TestCase):\n    \"Test that MPD gets startNr changed in an appropriate way\"\n\n    def testMpdWithNormalStartNr(self):\n        \"Check that startNumber=0.\"\n        urlParts = ['pdash', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0)\n        d = mpd_proxy.get_mpd(dp)\n        with open(join(OUT_DIR, 'tmp.mpd'), 'wb') as ofh:\n            ofh.write(d.encode('utf-8'))\n        self.assertEqual(len(findAllIndexes('startNumber=\"0\"', d)), 2)\n        self.assertTrue(d.find('availabilityStartTime=\"1970-01-01T00:00:00Z\"') > 0)\n\n    def testMpdWitdStartNrIs111(self):\n        \"Check that startNumber=111.\"\n        urlParts = ['pdash', 'snr_111', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0)\n        d = mpd_proxy.get_mpd(dp)\n        self.assertEqual(len(findAllIndexes('startNumber=\"111\"', d)), 2)\n        self.assertTrue(d.find('availabilityStartTime=\"1970-01-01T00:00:00Z\"') > 0)\n\n    def testMpdWithStartNrIs1(self):\n        \"Check that startNumber=1.\"\n        urlParts = ['pdash', 'snr_1', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0)\n        d = mpd_proxy.get_mpd(dp)\n        self.assertEqual(len(findAllIndexes('startNumber=\"1\"', d)), 2)\n        self.assertTrue(d.find('availabilityStartTime=\"1970-01-01T00:00:00Z\"') > 0)\n\n    def testMpdWithImplicitStartNr(self):\n        \"Check that startNumber is not present in MPD.\"\n        urlParts = ['pdash', 'snr_-1', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0)\n        d = mpd_proxy.get_mpd(dp)\n        self.assertTrue(d.find('startNumber=') < 0)\n        self.assertTrue(d.find('availabilityStartTime=\"1970-01-01T00:00:00Z\"') > 0)\n\n# Could add tests to check availability time of segments depending on startNr\n# Add test to check if segmentNumber and tfdt are OK depending on startNr.\n# Just running the reference player with different values seems to show that it is working properly, though.\n"
  },
  {
    "path": "dashlivesim/tests/test_subtitles.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport unittest\n\nfrom dashlivesim.tests.dash_test_util import rm_outfile, write_data_to_outfile, VOD_CONFIG_DIR, CONTENT_ROOT\nfrom dashlivesim.dashlib import ttml_timing_offset\nfrom dashlivesim.dashlib import dash_proxy, mpd_proxy\n\nTEST_STRING_1 = b'< begin=\"01:02:03.1234\" end=\"10:59:43:29\" >'\nTEST_STRING_SEG_NR = b'... Segment # 12 ...'\n\n\nclass TestTtmlTimingChange(unittest.TestCase):\n    \"Test that TTML string is changed properly.\"\n\n    def testNoChange(self):\n        \"Offset is 0 seconds.\"\n        outString = ttml_timing_offset.adjust_ttml_content(TEST_STRING_1, 0, None)\n        self.assertEqual(outString, TEST_STRING_1)\n\n    def testAdd1Hour(self):\n        \"Offset is 3600.\"\n        outString = ttml_timing_offset.adjust_ttml_content(TEST_STRING_1, 3600, None)\n        outGoal = b'< begin=\"02:02:03.1234\" end=\"11:59:43:29\" >'\n        self.assertEqual(outString, outGoal)\n\n    def testWrap(self):\n        \"Add an offset that wraps.\"\n        outString = ttml_timing_offset.adjust_ttml_content(TEST_STRING_1, 360050, None)\n        outGoal = b'< begin=\"101:02:53.1234\" end=\"111:00:33:29\" >'\n        self.assertEqual(outString, outGoal)\n\n\nclass TestTtmlSegmentNrChange(unittest.TestCase):\n    \"Test that TTML string is changed properly.\"\n\n    def testSetToRightNr(self):\n        \"Output Nr should be what is input.\"\n        outString = ttml_timing_offset.adjust_ttml_content(TEST_STRING_SEG_NR, 360050, 22)\n        outGoal = b'... Segment # 22 ...'\n        self.assertEqual(outString, outGoal)\n\n\nclass TestSegmentModification(unittest.TestCase):\n\n    def testTtmlSegment(self):\n        testOutputFile = \"sub.m4s\"\n        rm_outfile(testOutputFile)\n        segmentNr = 718263000\n        segment = \"%d.m4s\" % segmentNr\n        now = segmentNr * 2 + 10\n        urlParts = ['livsim', 'ato_inf', 'testpic_stpp', 'S1', segment]\n        dp = dash_proxy.DashProvider(\"127.0.0.1\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=now)\n        d = dash_proxy.get_media(dp)\n        write_data_to_outfile(d, testOutputFile)\n        self.assertTrue(d.find(b'begin=\"399035:00:00.000\"') > 0)\n        self.assertTrue(d.find(b'eng : UTC = 2015-07-10T11:00:00Z') > 0)\n\n\nclass TestMpdExtraction(unittest.TestCase):\n\n    def testStartNumber(self):\n        \"Check that all 3 media components have startNumber=0\"\n        urlParts = ['livesim', 'testpic_stpp', 'Manifest_stpp.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0)\n        d = mpd_proxy.get_mpd(dp)\n        self.assertEqual(d.count('startNumber=\"0'), 3)\n"
  },
  {
    "path": "dashlivesim/tests/test_suggested_presentation_delay.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2018, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport unittest\n\nfrom dashlivesim.dashlib import dash_proxy, mpd_proxy\nfrom dashlivesim.tests.dash_test_util import VOD_CONFIG_DIR, CONTENT_ROOT\n\n\nclass TestSuggestedPresentationDelay(unittest.TestCase):\n    \"Test that MPD gets startNr changed in an appropriate way\"\n\n    def testSuggestedPresentationDelayNotPresent(self):\n        \"Check that suggestedPresentationDelayIsNotPresent.\"\n        urlParts = ['pdash', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0)\n        d = mpd_proxy.get_mpd(dp)\n        self.assertTrue(d.find('suggestedPresentationDelay') < 0)\n\n    def testSuggestedPresentationDelayPresent(self):\n        \"Check that suggestedPresentationDelay get the right value.\"\n        urlParts = ['pdash', 'spd_10', 'testpic', 'Manifest.mpd']\n        dp = dash_proxy.DashProvider(\"streamtest.eu\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=0)\n        d = mpd_proxy.get_mpd(dp)\n        self.assertTrue(d.find('suggestedPresentationDelay=\"PT10S\"') > 0)\n"
  },
  {
    "path": "dashlivesim/tests/test_ttml_update.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2020, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport unittest\n\nfrom dashlivesim.dashlib import ttml_timing_offset\n\n\nTTML_IN = b'<p begin=\"00:00:00\" end=\"01:00:00.25>Segment # 12 swe : 00:00:30</p>'\nTTML_OUT = b'<p begin=\"00:00:22\" end=\"01:00:22.25>Segment # 24 swe : UTC = 1970-01-01T00:00:52Z</p>'\n\n# TIME_PATTERN_S = re.compile(rb'(?P<attr>(begin|end))=\"(?P<hours>\\d\\d):(?P<minutes>\\d\\d):(?P<seconds>\\d\\d)')\n# CONTENT_PATTERN_S = re.compile(rb'(?P<lang>\\w+) : (?P<hours>\\d\\d):(?P<minutes>\\d\\d):(?P<seconds>\\d\\d)(\\.\\d+)?')\n# CONTENT_PATTERN_SEGMENT = re.compile(rb'(?P<intro>Segment # )(?P<seg_nr>\\d+)')\n\n\nclass TestTTMLTimeUpdate(unittest.TestCase):\n\n    def testUpdateTTMLTime(self):\n        outbytes = ttml_timing_offset.adjust_ttml_content(TTML_IN, 22, 24)\n        self.assertEqual(outbytes, TTML_OUT)\n"
  },
  {
    "path": "dashlivesim/tests/test_xlinkperiod.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport unittest\nfrom re import findall\nfrom operator import mul\nfrom functools import reduce\n\nfrom dashlivesim.tests.dash_test_util import VOD_CONFIG_DIR, CONTENT_ROOT\nfrom dashlivesim.dashlib import dash_proxy, mpd_proxy\n\nfrom dashlivesim.dashlib import mpdprocessor\n\n\nclass TestXlinkPeriod(unittest.TestCase):\n\n    def setUp(self):\n        self.old_set_baseurl = mpdprocessor.SET_BASEURL\n        mpdprocessor.SET_BASEURL = True\n\n    def tearDown(self):\n        mpdprocessor.SET_BASEURL = self.old_set_baseurl\n\n    def testMpdPeriodReplaced(self):\n        \" Check whether appropriate periods have been replaced by in .mpd file\"\n        collectresult = 1\n        for k in [1, 2, 5, 10]:\n            nr_period_per_hour = 10\n            nr_xlink_periods_per_hour = k\n            urlParts = ['livesim', 'periods_%s' % nr_period_per_hour, 'xlink_%s' % nr_xlink_periods_per_hour,\n                        'testpic_2s', 'Manifest.mpd']\n            dp = dash_proxy.DashProvider(\"10.4.247.98\", urlParts, None, VOD_CONFIG_DIR, CONTENT_ROOT, now=10000)\n            d = mpd_proxy.get_mpd(dp)\n            period_id_all = findall('Period id=\"([^\"]*)\"', d)\n            # Find all period ids in the .mpd file returned.\n            # We will check whether the correct periods have been xlinked here.\n            one_xlinks_for_how_many_periods = nr_period_per_hour/nr_xlink_periods_per_hour\n            period_id_xlinks = [int(x[1:]) % one_xlinks_for_how_many_periods for x in period_id_all]\n            # All the period ids.\n            # If there were any periods, that were not supposed to be there,\n            # then one of the elements in period_id_xlinks would be zero.\n            result = reduce(mul, period_id_xlinks, 1)\n            collectresult = result * collectresult\n        self.assertTrue(collectresult != 0)\n"
  },
  {
    "path": "dashlivesim/tests/testpic/Manifest.mpd",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<MPD xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"urn:mpeg:dash:schema:mpd:2011\" xsi:schemaLocation=\"urn:mpeg:dash:schema:2011 DASH-MPD.xsd\" profiles=\"urn:mpeg:dash:profile:isoff-live:2011,urn:com:dashif:dash264\" maxSegmentDuration=\"PT6S\" availabilityStartTime=\"1970-01-01T00:00:00\" minBufferTime=\"PT2S\" publishTime=\"2013-04-19T13:58:32\" type=\"static\" mediaPresentationDuration=\"PT1H5M\">\n   <ProgramInformation>\n      <Title>Media Presentation Description by MobiTV. Powered by MDL Team@Sweden.</Title>\n   </ProgramInformation>\n   <Period id=\"precambrian\">\n      <AdaptationSet contentType=\"audio\" mimeType=\"audio/mp4\" lang=\"en\" segmentAlignment=\"true\" startWithSAP=\"1\">\n         <SegmentTemplate initialization=\"$RepresentationID$/init.mp4\" media=\"$RepresentationID$/$Number$.m4s\" duration=\"6\" startNumber=\"1\"/>\n         <Representation id=\"A1\" codecs=\"mp4a.40.2\" bandwidth=\"48000\" audioSamplingRate=\"32000\">\n            <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n         </Representation>\n      </AdaptationSet>\n      <AdaptationSet contentType=\"video\" mimeType=\"video/mp4\" segmentAlignment=\"true\" startWithSAP=\"1\" minWidth=\"320\" maxWidth=\"640\" minHeight=\"180\" maxHeight=\"360\" maxFrameRate=\"30\" par=\"16:9\">\n         <SegmentTemplate initialization=\"$RepresentationID$/init.mp4\" media=\"$RepresentationID$/$Number$.m4s\" duration=\"6\" startNumber=\"1\"/>\n         <Representation id=\"V1\" codecs=\"avc1.42000b\" bandwidth=\"100000\" width=\"320\" height=\"180\" frameRate=\"30\" sar=\"1:1\"/>\n         <Representation id=\"V2\" codecs=\"avc1.42000b\" bandwidth=\"200000\" width=\"640\" height=\"360\" frameRate=\"30\" sar=\"1:1\"/>\n      </AdaptationSet>\n   </Period>\n</MPD>\n"
  },
  {
    "path": "dashlivesim/tests/testpic_2s/Manifest.mpd",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<MPD xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"urn:mpeg:dash:schema:mpd:2011\" xsi:schemaLocation=\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\" profiles=\"urn:mpeg:dash:profile:isoff-live:2011,urn:com:dashif:dash264\" maxSegmentDuration=\"PT2S\" minBufferTime=\"PT2S\" type=\"static\" mediaPresentationDuration=\"PT1H\">\n   <ProgramInformation>\n      <Title>Media Presentation Description by MobiTV. Powered by MDL Team@Sweden.</Title>\n   </ProgramInformation>\n   <Period id=\"precambrian\" start=\"PT0S\">\n      <AdaptationSet contentType=\"audio\" mimeType=\"audio/mp4\" lang=\"eng\" segmentAlignment=\"true\" startWithSAP=\"1\">\n         <Role schemeIdUri=\"urn:mpeg:dash:role:2011\" value=\"main\"/>\n         <SegmentTemplate startNumber=\"1\" initialization=\"$RepresentationID$/init.mp4\" duration=\"2\" media=\"$RepresentationID$/$Number$.m4s\"/>\n         <Representation id=\"A48\" codecs=\"mp4a.40.2\" bandwidth=\"48000\" audioSamplingRate=\"48000\">\n            <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n         </Representation>\n      </AdaptationSet>\n      <AdaptationSet contentType=\"video\" mimeType=\"video/mp4\" segmentAlignment=\"true\" startWithSAP=\"1\" par=\"16:9\" minWidth=\"640\" maxWidth=\"640\" minHeight=\"360\" maxHeight=\"360\" maxFrameRate=\"60/2\">\n         <Role schemeIdUri=\"urn:mpeg:dash:role:2011\" value=\"main\"/>\n         <SegmentTemplate startNumber=\"1\" initialization=\"$RepresentationID$/init.mp4\" duration=\"2\" media=\"$RepresentationID$/$Number$.m4s\"/>\n         <Representation id=\"V300\" codecs=\"avc1.64001e\" bandwidth=\"300000\" width=\"640\" height=\"360\" frameRate=\"60/2\" sar=\"1:1\"/>\n      </AdaptationSet>\n   </Period>\n</MPD>\n"
  },
  {
    "path": "dashlivesim/tests/testpic_stpp/Manifest_stpp.mpd",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<MPD xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"urn:mpeg:dash:schema:mpd:2011\" xsi:schemaLocation=\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\" profiles=\"urn:mpeg:dash:profile:isoff-live:2011,urn:com:dashif:dash264\" maxSegmentDuration=\"PT2S\" minBufferTime=\"PT2S\" type=\"static\" mediaPresentationDuration=\"PT1H5M\">\n   <ProgramInformation>\n      <Title>Media Presentation Description by MobiTV. Powered by MDL Team@Sweden.</Title>\n   </ProgramInformation>\n   <Period id=\"precambrian\" start=\"PT0S\">\n      <AdaptationSet contentType=\"audio\" mimeType=\"audio/mp4\" lang=\"eng\" segmentAlignment=\"true\" startWithSAP=\"1\">\n         <Role schemeIdUri=\"urn:mpeg:dash:role:2011\" value=\"main\"/>\n         <SegmentTemplate startNumber=\"1\" initialization=\"$RepresentationID$/init.mp4\" duration=\"2\" media=\"$RepresentationID$/$Number$.m4s\"/>\n         <Representation id=\"A48\" codecs=\"mp4a.40.2\" bandwidth=\"48000\" audioSamplingRate=\"48000\">\n            <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n         </Representation>\n      </AdaptationSet>\n      <AdaptationSet contentType=\"video\" mimeType=\"video/mp4\" segmentAlignment=\"true\" startWithSAP=\"1\" par=\"16:9\" minWidth=\"640\" maxWidth=\"640\" minHeight=\"360\" maxHeight=\"360\" maxFrameRate=\"60/2\">\n         <Role schemeIdUri=\"urn:mpeg:dash:role:2011\" value=\"main\"/>\n         <SegmentTemplate startNumber=\"1\" initialization=\"$RepresentationID$/init.mp4\" duration=\"2\" media=\"$RepresentationID$/$Number$.m4s\"/>\n         <Representation id=\"V300\" codecs=\"avc1.64001e\" bandwidth=\"300000\" width=\"640\" height=\"360\" frameRate=\"60/2\" sar=\"1:1\"/>\n      </AdaptationSet>\n      <AdaptationSet contentType=\"text\" mimeType=\"application/mp4\" segmentAlignment=\"true\" lang=\"en\">\n\t <Role schemeIdUri=\"urn:mpeg:dash:role:2011\" value=\"subtitle\"/>\n         <SegmentTemplate media=\"S1/$Number$.m4s\" startNumber=\"1\" duration=\"2\" initialization=\"S1/init.mp4\"/>\n         <Representation id=\"3\" codecs=\"stpp\" startWithSAP=\"1\" bandwidth=\"5367\"/>\n      </AdaptationSet>\n   </Period>\n</MPD>\n"
  },
  {
    "path": "dashlivesim/tests/vod_cfg/testpic.cfg",
    "content": "[General]\nversion = 1.1\n\n[Setup]\nfirst_segment_in_loop = 1\nnr_segments_in_loop = 600\nsegment_duration_s = 6\ndefault_tsbd_secs = 300\n\n[video]\nrepresentations = V1\ntimescale = 90000\ntotal_duration = 324000000\ndat_file = testpic_video.dat\n\n\n[audio]\nrepresentations = A1\ntimescale = 48000\ntotal_duration = 172800000\ndat_file = testpic_audio.dat\n"
  },
  {
    "path": "dashlivesim/tests/vod_cfg/testpic_2s.cfg",
    "content": "[Setup]\ndefault_tsbd_secs = 300\nsegment_duration_s = 2\nfirst_segment_in_loop = 1\nnr_segments_in_loop = 1800\n\n[audio]\nrepresentations = A48\ntimescale = 48000\n\n[video]\nrepresentations = V300\ntimescale = 90000\n\n[subtitles]\nrepresentations = S1,sub_eng,sub_swe,sub_eng_cap,S1_one_region,S1_two_regions,sub_ttml_qbb,sub_nor, S1_two_regions_multi_color\ntimescale = 1000\n\n[General]\nversion = 1.0\n\n"
  },
  {
    "path": "dashlivesim/tests/vod_cfg/testpic_stpp.cfg",
    "content": "[General]\nversion = 1.0\n\n[Setup]\nfirst_segment_in_loop = 1\nnr_segments_in_loop = 1800\nsegment_duration_s = 2\ndefault_tsbd_secs = 300\n\n[video]\nrepresentations = V1\ntimescale = 90000\n\n[audio]\nrepresentations = A1\ntimescale = 48000\n\n[subtitles]\nrepresentations = S1\ntimescale = 1000\n"
  },
  {
    "path": "dashlivesim/vodanalyzer/__init__.py",
    "content": "# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "dashlivesim/vodanalyzer/dashanalyzer.py",
    "content": "\"\"\"Analyze DASH content in live profile and extract parameters for VoD-config file for live source simulator.\n\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nimport sys\nimport os\nimport time\nimport re\nfrom struct import pack\nfrom dashlivesim.dashlib import configprocessor\nfrom dashlivesim.dashlib import initsegmentfilter, mediasegmentfilter\nfrom dashlivesim.vodanalyzer.mpdprocessor import MpdProcessor\n\nDEFAULT_DASH_NAMESPACE = \"urn:mpeg:dash:schema:mpd:2011\"\nMUX_TYPE_NONE = 0\nMUX_TYPE_FRAGMENT = 1\nMUX_TYPE_SAMPLES = 2\n\n## Utility functions\n\n\ndef makeTimeStamp(t):\n    return time.strftime(\"%Y-%m-%dT%H:%M:%SZ\", time.gmtime(t))\n\n\ndef makeDurationFromS(nrSeconds):\n    return \"PT%dS\" % nrSeconds\n\n\nclass DashAnalyzerError(Exception):\n    \"\"\"Error in DashAnalyzer.\"\"\"\n\n\nclass DashAnalyzer(object):\n\n    def __init__(self, mpd_filepath, verbose=1):\n        self.mpd_filepath = mpd_filepath\n        path_parts = mpd_filepath.split('/')\n        self.base_name = 'content'\n        if len(path_parts) >= 2:\n            self.base_name = path_parts[-2]\n        self.config_filename = self.base_name + \".cfg\"\n        self.base_path = os.path.split(mpd_filepath)[0]\n        self.verbose = verbose\n        self.as_data = {} # List of adaptation sets (one for each media)\n        self.muxedRep = None\n        self.muxedPaths = {}\n        self.mpdSegStartNr = -1\n        self.segDuration = None\n        self.firstSegmentInLoop = -1\n        self.lastSegmentInLoop = -1\n        self.nrSegmentsInLoop = -1\n        self.mpdProcessor = MpdProcessor(self.mpd_filepath)\n        self.loopTime = self.mpdProcessor.media_presentation_duration_in_s\n\n    def analyze(self):\n        self.initMedia()\n        self.checkAndUpdateMediaData()\n        self.write_config(self.config_filename)\n\n    def initMedia(self):\n        \"Init media by analyzing the MPD and the media files.\"\n        for adaptation_set in self.mpdProcessor.get_adaptation_sets():\n            content_type = adaptation_set.content_type\n            if content_type is None:\n                print(\"No contentType for adaptation set\")\n                sys.exit(1)\n            if content_type in self.as_data:\n                raise DashAnalyzerError(\"Multiple adaptation sets for contentType \" + content_type)\n            as_data = {'as' : adaptation_set, 'reps' : []}\n            as_data['presentationDurationInS'] = self.mpdProcessor.media_presentation_duration_in_s\n            self.as_data[content_type] = as_data\n            for rep in adaptation_set.representations:\n                rep_data = {'representation' : rep, 'id' : rep.rep_id}\n                as_data['reps'].append(rep_data)\n                initPath = rep.initialization_path\n                rep_data['relInitPath'] = initPath\n                rep_data['absInitPath'] = os.path.join(self.base_path, initPath)\n                init_filter = initsegmentfilter.InitFilter(rep_data['absInitPath'])\n                init_filter.filter()\n                rep_data['trackID'] = init_filter.track_id\n                print(\"%s trackID = %d\" % (content_type, rep_data['trackID']))\n                rep_data['relMediaPath'] = rep.get_media_path()\n                rep_data['absMediaPath'] = os.path.join(self.base_path, rep.get_media_path())\n                rep_data['default_sample_duration'] = \\\n                    init_filter.default_sample_duration\n\n                self.getSegmentRange(rep_data)\n                track_timescale = init_filter.track_timescale\n                if 'track_timescale' not in as_data:\n                    as_data['track_timescale'] = track_timescale\n                elif track_timescale != as_data['track_timescale']:\n                    raise DashAnalyzerError(\"Timescales not consistent between %s tracks\" % content_type)\n                if self.verbose:\n                    print(\"%s data: \" % content_type)\n                    for (k, v) in rep_data.items():\n                        print(\"  %s=%s\" % (k, v))\n\n    def getSegmentRange(self, rep_data):\n        \"Search the directory for the first and last segment and set firstNumber and lastNumber for this MediaType.\"\n        rep_id = rep_data['id']\n        mediaDir, mediaName = os.path.split(rep_data['absMediaPath'])\n        mediaRegexp = mediaName.replace(\"%d\", \"(\\d+)\").replace(\".\", \"\\.\")\n        mediaReg = re.compile(mediaRegexp)\n        files = os.listdir(mediaDir)\n        numbers = []\n        for f in files:\n            matchObj = mediaReg.match(f)\n            if matchObj:\n                number = int(matchObj.groups(1)[0])\n                numbers.append(number)\n        numbers.sort()\n        for i in range(1, len(numbers)):\n            if numbers[i] != numbers[i-1] + 1:\n                raise DashAnalyzerError(\"%s segment missing between %d and %d\" % (rep_id, numbers[i-1], numbers[i]))\n        print(\"Found %s segments %d - %d\" % (rep_id, numbers[0], numbers[-1]))\n        rep_data['firstNumber'] = numbers[0]\n        rep_data['lastNumber'] = numbers[-1]\n\n    def checkAndUpdateMediaData(self):\n        \"\"\"Check all segments for good values and return startTimes and total duration.\"\"\"\n        lastGoodSegments = []\n\n        print(\"Checking all the media segment durations for deviations.\")\n\n        def writeSegTiming(ofh, firstSegmentInRepeat, firstStartTimeInRepeat, duration, repeatCount):\n            data = pack(configprocessor.SEGTIMEFORMAT, firstSegmentInRepeat, repeatCount,\n                        firstStartTimeInRepeat, duration)\n            ofh.write(data)\n\n        for content_type in self.as_data.keys():\n            as_data = self.as_data[content_type]\n            as_data['datFile'] = \"%s_%s.dat\" % (self.base_name, content_type)\n            adaptation_set = as_data['as']\n            print(\"Checking %s with timescale %d\" % (content_type, as_data['track_timescale']))\n            if self.segDuration is None:\n                self.segDuration = adaptation_set.duration\n            else:\n                assert self.segDuration == adaptation_set.duration\n\n            track_timescale = as_data['track_timescale']\n\n            with open(as_data['datFile'], \"wb\") as ofh:\n                for (rep_nr, rep_data) in enumerate(as_data['reps']):\n                    rep_id = rep_data['id']\n                    rep_data['endNr'] = None\n                    rep_data['startTick'] = None\n                    rep_data['endTick'] = None\n                    if self.firstSegmentInLoop >= 0:\n                        assert rep_data['firstNumber'] == self.firstSegmentInLoop\n                    else:\n                        self.firstSegmentInLoop = rep_data['firstNumber']\n                    if self.mpdSegStartNr >= 0:\n                        assert adaptation_set.start_number == self.mpdSegStartNr\n                    else:\n                        self.mpdSegStartNr = adaptation_set.start_number\n                    segTicks = self.segDuration*track_timescale\n                    maxDiffInTicks = int(track_timescale*0.1) # Max 100ms\n                    segNr = rep_data['firstNumber']\n                    repeatCount = -1\n                    firstSegmentInRepeat = -1\n                    firstStartTimeInRepeat = -1\n                    lastDuration = 0\n                    while (True):\n                        segmentPath = rep_data['absMediaPath'] % segNr\n                        if not os.path.exists(segmentPath):\n                            if self.verbose:\n                                print(\"\\nLast good %s segment is %d, endTime=%.3fs, totalTime=%.3fs\" % (\n                                      rep_id, rep_data['endNr'], rep_data['endTime'],\n                                      rep_data['endTime']-rep_data['startTime']))\n                            break\n                        msf = mediasegmentfilter.MediaSegmentFilter(\n                            segmentPath, default_sample_duration = rep_data[\n                                'default_sample_duration'])\n                        msf.filter()\n                        tfdt = msf.get_tfdt_value()\n                        duration = msf.get_duration()\n                        print(\"{0} {1:8d} {2}  {3}\".format(content_type, segNr, tfdt, duration))\n                        if duration == lastDuration:\n                            repeatCount += 1\n                        else:\n                            if lastDuration != 0 and rep_nr == 0:\n                                writeSegTiming(ofh, firstSegmentInRepeat,\n                                               firstStartTimeInRepeat,\n                                               lastDuration, repeatCount)\n                            repeatCount = 0\n                            lastDuration = duration\n                            firstSegmentInRepeat = segNr\n                            firstStartTimeInRepeat = tfdt\n                        if rep_data['startTick'] is None:\n                            rep_data['startTick'] = tfdt\n                            rep_data['startTime'] = rep_data['startTick']/float(track_timescale)\n                            print(\"First %s segment is %d starting at time %.3fs\" % (rep_id, segNr,\n                                                                                     rep_data['startTime']))\n                        # Check that there is not too much drift. We want to end with at most maxDiffInTicks\n                        endTick = tfdt + duration\n                        idealTicks = (segNr - rep_data['firstNumber'] + 1)*segTicks + rep_data['startTick']\n                        absDiffInTicks = abs(idealTicks - endTick)\n                        if absDiffInTicks < maxDiffInTicks:\n                            # This is a good wrap point\n                            rep_data['endTick'] = tfdt + duration\n                            rep_data['endTime'] = rep_data['endTick']/float(track_timescale)\n                            rep_data['endNr'] = segNr\n                        else:\n                            raise DashAnalyzerError(\"Too much drift in the duration of the segments\")\n                        segNr += 1\n                        if self.verbose:\n                            sys.stdout.write(\".\")\n                    if rep_nr == 0:\n                        writeSegTiming(ofh, firstSegmentInRepeat, firstStartTimeInRepeat, duration, repeatCount)\n                        lastGoodSegments.append(rep_data['endNr'])\n                        as_data['totalTicks'] = rep_data['endTick'] - rep_data['startTick']\n        self.lastSegmentInLoop = min(lastGoodSegments)\n        self.nrSegmentsInLoop = self.lastSegmentInLoop-self.firstSegmentInLoop+1\n        self.loopTime = self.nrSegmentsInLoop*self.segDuration\n        if self.verbose:\n            print(\"\")\n        print(\"Will loop segments %d-%d with loop time %ds\" % (self.firstSegmentInLoop, self.lastSegmentInLoop,\n                                                               self.loopTime))\n\n    def write_config(self, config_file):\n        \"\"\"Write a config file for the analyzed content, that can then be used to serve it efficiently.\"\"\"\n        cfg_data = {'version' : '1.1', 'first_segment_in_loop' : self.firstSegmentInLoop,\n                    'nr_segments_in_loop' : self.nrSegmentsInLoop, 'segment_duration_s' : self.segDuration}\n        media_data = {}\n        for content_type in ('video', 'audio'):\n            if content_type in self.as_data:\n                mdata = self.as_data[content_type]\n                media_data[content_type] = {'representations' : [rep['id'] for rep in mdata['reps']],\n                                            'timescale' : mdata['track_timescale'],\n                                            'totalDuration' : mdata['totalTicks'],\n                                            'datFile' : mdata['datFile']}\n        cfg_data['media_data'] = media_data\n        vod_cfg = configprocessor.VodConfig()\n        vod_cfg.write_config(config_file, cfg_data)\n\n    def processMpd(self):\n        \"\"\"Process the MPD and make an appropriate live version.\"\"\"\n        mpdData = {\"availabilityStartTime\" :makeTimeStamp(self.mpdAvailabilityStartTIme),\n                   \"timeShiftBufferDepth\" : makeDurationFromS(self.timeShiftBufferDepthInS),\n                   \"minimumUpdatePeriod\" : \"PT30M\"}\n        if not self.muxType != MUX_TYPE_NONE:\n            self.mpdProcessor.makeLiveMpd(mpdData)\n        else:\n            self.mpdProcessor.makeLiveMultiplexedMpd(mpdData, self.media_data)\n            self.muxedRep = self.mpdProcessor.getMuxedRep()\n        targetMpdNamespace = None\n        if self.fixNamespace:\n            targetMpdNamespace = DEFAULT_DASH_NAMESPACE\n        self.mpd = self.mpdProcessor.getCleanString(True, targetMpdNamespace)\n\n\ndef main():\n    from optparse import OptionParser\n    verbose = 0\n    usage = \"usage: %prog [options] mpdPath\"\n    parser = OptionParser(usage)\n    parser.add_option(\"-v\", \"--verbose\", dest=\"verbose\", action=\"store_true\")\n\n    (options, args) = parser.parse_args()\n    if options.verbose:\n        verbose = 1\n    if len(args) != 1:\n        parser.error(\"incorrect number of arguments\")\n    mpdFile = args[0]\n    dashAnalyzer = DashAnalyzer(mpdFile, verbose)\n    dashAnalyzer.analyze()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "dashlivesim/vodanalyzer/mpdprocessor.py",
    "content": "\"\"\"DASH MPD processor and classes for MPD elements.\"\"\"\n\n# The copyright in this software is being made available under the BSD License,\n# included below. This software may be subject to other third party and contributor\n# rights, including patent rights, and no such rights are granted under this license.\n#\n# Copyright (c) 2015, Dash Industry Forum.\n# All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without modification,\n# are permitted provided that the following conditions are met:\n#  * Redistributions of source code must retain the above copyright notice, this\n#  list of conditions and the following disclaimer.\n#  * Redistributions in binary form must reproduce the above copyright notice,\n#  this list of conditions and the following disclaimer in the documentation and/or\n#  other materials provided with the distribution.\n#  * Neither the name of Dash Industry Forum nor the names of its\n#  contributors may be used to endorse or promote products derived from this software\n#  without specific prior written permission.\n#\n#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n#  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n#  POSSIBILITY OF SUCH DAMAGE.\n\nfrom xml.etree import ElementTree\nimport io\nimport re\n\nfrom dashlivesim.dashlib import timeformatconversions as tfc\n\nRE_DURATION = re.compile(r\"PT((?P<hours>\\d+)H)?((?P<minutes>\\d+)M)?((?P<seconds>\\d+)S)?\")\nRE_NAMESPACE_TAG = re.compile(r\"({.*})?(.*)\")\n\n\nclass MpdElementError(Exception):\n    \"\"\"General MpdElement Error.\"\"\"\n\n\nclass MpdElement(object):\n    \"\"\"BaseClass for MPD elements.\"\"\"\n\n    def __init__(self, node):\n        self.node = node\n        self.attribs = {}\n\n    # pylint: disable=no-self-use\n    def parse(self):\n        \"\"\"Parse the node and its children.\"\"\"\n        raise MpdElementError(\"Not implemented\")\n\n    # pylint: disable=no-self-use, unused-argument\n    def make_live(self, data):\n        \"\"\"Change attributes and values to make this MPD live. Use the data dictionary for this.\"\"\"\n        raise MpdElementError(\"Not implemented\")\n\n    #pylint: disable=no-self-use, unused-variable\n    def tag_and_namespace(self, full_tag):\n        \"\"\"Extract tag and namespace.\"\"\"\n        match_obj = RE_NAMESPACE_TAG.match(full_tag)\n        tag = match_obj.group(2)\n        namespace = match_obj.group(1)\n        return (tag, namespace)\n\n    def compare_tag(self, full_tag, string):\n        \"\"\"Compare tag to see if it is equal.\"\"\"\n        tag, namespace = self.tag_and_namespace(full_tag)\n        return tag == string\n\n    def check_and_add_attributes(self, node, attribs):\n        \"\"\"Check if node has attributes and add them to self.attribs.\"\"\"\n        for attr in attribs:\n            if attr in node.attrib:\n                self.attribs[attr] = node.attrib[attr]\n            else:\n                if not attr in self.attribs:\n                    self.attribs[attr] = None\n\n    def set_value(self, element, key, data):\n        \"\"\"Set attribute key of element to value data[key], if present.\"\"\"\n        if key in data:\n            element.set(key, str(data[key]))\n\n\nclass Mpd(MpdElement):\n    \"\"\"Top level MPD element.\"\"\"\n\n    def __init__(self, node):\n        MpdElement.__init__(self, node)\n        self.periods = []\n\n    def parse(self):\n        \"\"\"Parse the node and its children.\"\"\"\n        self.check_and_add_attributes(self.node, ('profiles', 'maxSegmentDuration', 'minBufferTime',\n                                                  'type', 'mediaPresentationDuration'))\n        for child in self.node:\n            if self.compare_tag(child.tag, 'Period'):\n                period = Period(child)\n                period.parse()\n                self.periods.append(period)\n\n    def make_live(self, data):\n        \"\"\"Change attributes and values to make this MPD live. Use the data dictionary for this.\"\"\"\n        self.set_value(self.node, 'type', 'dynamic')\n        for attr in ('availabilityStartTime', 'availabilityEndTime'):\n            self.set_value(self.node, attr, data[attr])\n        for period in self.periods:\n            period.make_live(data)\n\n\nclass Period(MpdElement):\n    \"Period element in MPD.\"\n\n    def __init__(self, node):\n        MpdElement.__init__(self, node)\n        self.adaptation_sets = []\n\n    def parse(self):\n        \"Parse the node and its children.\"\n        self.check_and_add_attributes(self.node, ('id', 'start'))\n        for child in self.node:\n            if self.compare_tag(child.tag, 'AdaptationSet'):\n                adaptation_set = AdaptationSet(child)\n                adaptation_set.parse()\n                self.adaptation_sets.append(adaptation_set)\n\n    def make_live(self, data):\n        for attr in ('start'):\n            self.set_value(self.node, attr, data[attr])\n        for adaptation_set in self.adaptation_sets:\n            adaptation_set.make_live(data)\n\n\nclass AdaptationSet(MpdElement):\n    \"AdaptationSet element in a Period.\"\n\n    def __init__(self, node):\n        MpdElement.__init__(self, node)\n        self.segment_template = None\n        self.representations = []\n\n    @property\n    def content_type(self):\n        \"Get the contentType for the AdaptationSet.\"\n        return self.attribs['contentType']\n\n    @property\n    def media_pattern(self):\n        \"Get the media pattern from SegmentTemplate.\"\n        return self.attribs['media']\n\n    @property\n    def initialization_pattern(self):\n        \"Get the initialization pattern from SegmentTemplate.\"\n        return self.attribs['initialization']\n\n    @property\n    def start_number(self):\n        \"StartNumber for segments (from SegmentTemplate).\"\n        return int(self.attribs['startNumber'])\n\n    @property\n    def timescale(self):\n        \"Timescale in units per seconds to be used for the derivation of different real-time duration values in the Segment Information\"\n        return int(self.attribs['timescale'] or 1)\n\n    @property\n    def duration(self):\n        \"Segment duration (in whole seconds).\"\n        return int(self.attribs['duration']) // self.timescale\n\n    def parse(self):\n        \"Parse the node and its children.\"\n        self.check_and_add_attributes(self.node, ('contentType', 'mimeType'))\n        for child in self.node:\n            if self.compare_tag(child.tag, 'SegmentTemplate'):\n                self.check_and_add_attributes(child, ('initialization', 'startNumber', 'media',\n                                                      'duration', 'timescale'))\n            elif self.compare_tag(child.tag, 'Representation'):\n                rep = Representation(self, child)\n                rep.parse()\n                self.representations.append(rep)\n\n    def make_live(self, data):\n        for attr in ('startNr'):\n            self.set_value(self.node, attr, data[attr])\n        for adaptation_set in self.adaptation_sets:\n            adaptation_set.make_live(data)\n\n\nclass Representation(MpdElement):\n    \"Representation element in an AdaptationSet.\"\n\n    def __init__(self, adaptation_set, node):\n        MpdElement.__init__(self, node)\n        self.adaptation_set = adaptation_set\n\n    @property\n    def initialization_path(self):\n        \"The initialization path of this representation.\"\n        return self.get_initialization_path()\n\n    @property\n    def rep_id(self):\n        \"Id of this representation.\"\n        return self.attribs['id']\n\n    def parse(self):\n        \"Parse the node and its children.\"\n        self.check_and_add_attributes(self.node, ('id', 'bandwidth'))\n\n    def get_initialization_path(self):\n        \"The initialization path of this representation.\"\n        init_pattern = self.adaptation_set.initialization_pattern\n        rep_id = self.attribs['id']\n        bandwidth = self.attribs['bandwidth']\n        init_path = init_pattern.replace(\"$RepresentationID$\", rep_id).replace(\"$bandwidth$\", bandwidth)\n        return init_path\n\n    def get_media_path(self, segNr=\"%d\"):\n        \"Return the media path for this representation and given segNr.\"\n        media_pattern = self.adaptation_set.media_pattern\n        rep_id = self.attribs['id']\n        bandwidth = self.attribs['bandwidth']\n        media_path = media_pattern.replace(\"$RepresentationID$\", rep_id).replace(\"$bandwidth$\", bandwidth)\n        media_path = media_path.replace(\"$Number$\", str(segNr))\n        return media_path\n\n\nclass MpdProcessor(MpdElement):\n    \"\"\"Modify the mpd to become live. Whatever is input in data is set to these values.\"\"\"\n\n    def __init__(self, infile):\n        self.tree = ElementTree.parse(infile)\n        self.mpd_namespace = None\n        self.root = self.tree.getroot()\n        self.is_base_url_set = False\n        self.adaptation_sets = []\n        self.media_presentation_duration = None\n        self.media_presentation_duration_in_s = None\n        self.muxed_rep = None\n        self.parse()\n\n    def parse(self):\n        \"Parse and find all the adaptation sets and their representations.\"\n        mpd = self.root\n        tag, self.mpd_namespace = self.tag_and_namespace(mpd.tag)\n        assert tag == \"MPD\"\n        if 'mediaPresentationDuration' in mpd.attrib:\n            self.media_presentation_duration = mpd.attrib['mediaPresentationDuration']\n            self.media_presentation_duration_in_s = tfc.iso_duration_to_seconds(self.media_presentation_duration)\n            print(\"Found mediaPresentationDuration = %ds\" % self.media_presentation_duration_in_s)\n        for child in mpd:\n            if self.compare_tag(child.tag, 'Period'):\n                for grand_child in child:\n                    if self.compare_tag(grand_child.tag, 'AdaptationSet'):\n                        AS = AdaptationSet(grand_child)\n                        AS.parse()\n                        self.adaptation_sets.append(AS)\n\n    def get_adaptation_sets(self):\n        return self.adaptation_sets\n\n    def getMuxedRep(self):\n        return self.muxed_rep\n\n    def getMuxedInitPath(self):\n        initPath = None\n        for AS in self.adaptation_sets:\n            if AS.contentType == \"video\":\n                print(AS.initialization)\n                initPath = AS.initialization.replace(\"$RepresentationID$\", self.muxed_rep)\n        return initPath\n\n    def getMuxedMediaPath(self):\n        mediaPath = None\n        for AS in self.adaptation_sets:\n            if AS.contentType == \"video\":\n                mediaPath = AS.media.replace(\"$RepresentationID$\", self.muxed_rep).replace(\"$Number$\", \"%d\")\n        return mediaPath\n\n    def process(self, mpdData={}):\n        MPD = self.root\n        self.processMPD(MPD, mpdData)\n\n    def makeLiveMpd(self, data):\n        \"\"\"Process the root element (MPD) and set values from data dictionary.\n\n        Typical keys are: availabilityStartTime, timeShiftBufferDepth, minimumUpdatePeriod.\"\"\"\n        MPD = self.root\n        MPD.set('type', \"dynamic\")\n        for key in data.keys():\n            self.setValue(MPD, key, data)\n        if 'mediaPresentationDuration' in MPD.attrib:\n            del MPD.attrib['mediaPresentationDuration']\n        for child in MPD:\n            if self.compare_tag(child.tag, 'Period'):\n                child.set(\"start\", \"PT0S\") # Set Period start to 0\n\n    def makeLiveMultiplexedMpd(self, data, mediaData):\n        self.makeLiveMpd(data)\n        MPD = self.root\n        audioAS = None\n        videoAS = None\n        period = None\n        audioRep = None\n        vidoeRep = None\n        for child in MPD:\n            if self.compare_tag(child.tag, 'Period'):\n                period = child\n                for grandChild in child:\n                    if self.compare_tag(grandChild.tag, 'AdaptationSet'):\n                        AS = AdaptationSet(grandChild)\n                        AS.parse()\n                        if AS.contentType == \"audio\":\n                            audioAS = grandChild\n                        elif AS.contentType == \"video\":\n                            videoAS = grandChild\n\n        for contentType, mData in mediaData.items():\n            trackID = mData['trackID']\n            cc = self.makeContentComponent(contentType, trackID)\n            videoAS.insert(0, cc)\n\n        del videoAS.attrib['contentType']\n        audioRep = audioAS.find(self.mpd_namespace+\"Representation\")\n        videoRep = videoAS.find(self.mpd_namespace+\"Representation\")\n        videoRep.set(\"id\", self.muxed_rep)\n        try:\n            audioCodec = audioRep.attrib[\"codecs\"]\n            videoCodec = videoRep.attrib[\"codecs\"]\n            combinedCodecs = \"%s,%s\" % (audioCodec, videoCodec)\n            videoRep.set(\"codecs\", combinedCodecs)\n        except KeyError:\n            print(\"Could not combine codecs\")\n        period.remove(audioAS)\n\n    def makeContentComponent(self, contentType, trackID):\n        \"Create and insert a contentComponent element.\"\n        elem = ElementTree.Element('%sContentComponent' % self.mpd_namespace)\n        elem.set(\"id\", str(trackID))\n        elem.set(\"contentType\", contentType)\n        elem.tail = \"\\n\"\n        return elem\n\n    def getCleanString(self, clean=True, targetMpdNameSpace=None):\n        \"Get a string of all XML cleaned (no ns0 namespace)\"\n        ofh = io.StringIO()\n        self.tree.write(ofh)#, default_namespace=NAMESPACE)\n        value = ofh.getvalue()\n        if clean:\n            value = value.replace(\"ns0:\", \"\").replace(\"xmlns:ns0=\", \"xmlns=\")\n        if targetMpdNameSpace is not None:\n            newStr = 'xmlns=\"%s\"' % targetMpdNameSpace\n            value = re.sub('xmlns=\"[^\"]+\"', newStr, value)\n        xmlIntro = '<?xml version=\"1.0\" encoding=\"utf-8\"?>\\n'\n        return xmlIntro + value\n"
  },
  {
    "path": "dashlivesim/vodanalyzer/parse_dat_file.py",
    "content": "import sys\nfrom struct import unpack\n\nimport argparse\n\nfrom dashlivesim.dashlib.configprocessor import SEGTIMEFORMAT, SegTimeEntry\n\ndef parse_dat_file(infile_handle, verbosity_level):\n    data = infile_handle.read(12)\n    lste = None\n    while data:\n        ste = SegTimeEntry(*unpack(SEGTIMEFORMAT, data))\n        if lste:\n            last_end = lste.start_time + lste.duration * (lste.repeats + 1)\n            if last_end != ste.start_time:\n                print(\"Mismatch in end vs start time %d %d\" % (ste.start_time, last_end))\n        if verbosity_level > 0:\n            print(ste)\n        lste = ste\n        data = infile_handle.read(12)\n\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(description='Check segment datfile')\n    parser.add_argument('infile', nargs=1, type=argparse.FileType('rb'))\n    parser.add_argument('--verbose', '-v', action='count', default=0)\n\n    args = parser.parse_args()\n    parse_dat_file(args.infile[0], args.verbose)"
  },
  {
    "path": "doc/content.mdown",
    "content": "DASH-IF live source simulator test content.\n=========================================\n\n\"Live\" content from test server\n---------------------\n\n**Test live content with clock synchronized to wall clock (modulo hour)**\n\n* [livesim/testpic_2s/Manifest.mpd](pdash/testpic_2s/Manifest.mpd) A live stream synchronized with wall clock with 2s segments. Max video bitrate: 348kbps, audio: 60kbps\n\nVoD\n---\nVoD content used for the live content above (generated by MobiTV VoD segmenter).\n\n* [dash/vod/testpic_2s/Manifest.mpd](dash/vod/testpic_2s/Manifest.mpd) A VoD test stream for AV sync (one representation with 2s segments). Max video bitrate: 348kbps, audio: 60kbps\n\nSubtitles\n---\nVoD and live content:\n\n* [dash/vod/testpic_2s/Manifest_stpp.mpd](dash/vod/testpic_2s/Manifest_stpp.mpd) One subtitle track.\n* [dash/vod/testpic_2s/multi_subs.mpd](dash/vod/testpic_2s/multi_subs.mpd) Three subtitle tracks.\n\n* [livesim/testpic_2s/Manifest_stpp.mpd](livsim/testpic_2s/Manifest_stpp.mpd) One subtitle track.\n* [livesim/testpic_2s/multi_subs.mpd](livesim/testpic_2s/multi_subs.mpd) Three subtitle tracks."
  },
  {
    "path": "doc/dashlivesim.mdown",
    "content": "DASH-IF configurable live content simulator\n==================================================\n\nPurpose\n-------\nThe purpose of the DASH live simulator is to provide well-controlled live time-synced content for testing.\n\nThe main link to the content is [http://vm2.dashif.org/livesim/testpic_2s/Manifest.mpd][testpic_2s_base].\nYou can test it directly with Chrome (version>=38), Safari 8+, IE 11 (on Windows 8.1), Edge, and FireFox >=42  using\nthe [DASH-IF reference player][dashif_player].\n\nIt provides an infinite source that is synced with the wall clock at the source side (modulo 1 hour).\n\nTime-synced content\n--------------\nThe content testpic\\_2s shows pictures with a clock and frame number.\n![Test picture](testpic.png)\n\nThe content wraps every hour, and is synchronized with the server clock, so that the content for a\nspecific time is made available when the end the corresponding segment has passed.\n\nFor example, the segment containing the data for 2min to 2min and ss passed a full hour,\nis available at 2min and ss after the hour.\n\nBy watching the screen and noting the time and comparing it to a synchronized clock,\nit is possible to measure the delay in the transport and rendering system. It is typically\nlonger for longer segments.\n\nOptions\n---------\n\nThe test server offers the following features where some are turned on by modifying the URL path to the MPD.\n\n* Live content simulation by providing segments from VoD content in a looped fashion\n* Synchronization with wall-clock, so that a particular media segment is made available at a specific time.\nThis can be used for e2e delay estimation, see below.\n* Full control over the bitrate and duration of the segments, since these are preproduced.\nThere are thus no surprises due to network problems in the live content stream towards the segmenter.\n* Compliance with DASH264 Interoperability Guidelines\n* Support for many different scenarios by specifying modifiers in the path\n* Support for infinite sessions (no change in the MPD, and no duration set)\n* Support for time-limited services and updated MPD which is configured in the URL\n* Support for configuration of minimumUpdatePeriod, timeShiftBufferDepth, startNumber (including implicit)\n* Support for periodic services which repeat every 10min or similar.\n* Support for multiple periods and one period that started later that the session.\n* Feedback on too early or too late segment fetching attempts by explicit text in HTTP 404 return messages\n* Support for availability time offset in BaseURL element\n* Disabling of all timing checks of segments by specifying the `ato_inf` modifier.\n* On the fly multiplexing of audio and video (for eMBMS testing, rather than DASH-IF)\n* Insertion of SCTE-35 ad signaling as emsg messages following the DASH-IF guidelines.\n* Support for client-server time-sync using UTCTiming (head and direct methods). This reduces dash.js startup time.\n* Support for choosing the startNumber in the MPD. All timing will be appropriately shifted so the content will be in sync, independent of the startNumber value.\n* Support for live subtitling in TTML and more specifically in EBU-TT-D format.\n* Support for signalling continuous adaptationSets over period boundaries.\n* Support for SegmentTimeline manifests\n* Support for xlink periods for ad insertion\n* Support for ntp and sntp UTC timing\n* Support for early-terminated periods\n* Support for availabilityTimeOffset\n\n\nLinks and usage\n---------------\nThe DASH-IF server is in the Amazon cloud at vm2.dashif.org.\nThere is currently only one test sequence, which is 1 hour long and provides a clock.\nIt is available with 2s segments in DASH live profile.\nThe content is available as `http://[serveraddress]/livesim/[contentName]/[Manifest].mpd`\nand, in particular, the 2s source is [http://vm2.dashif.org/livesim/testpic_2s/Manifest.mpd][testpic_2s_base].\n\nThere are multiple modifiers that can be used. They need to be placed before `/testpic_2s` and are all of the form `/option_n`.\n\nEvents and other time-limited content\n-------------------------------------\nTo control availabilityStartTime (AST) and availabilityEndTime (AET), one can add extra parts to the URL after pdash.\n\n    http://<server>/<proxy>/start_ut/... will set the AST to the UNIX time ut (clipped to a multiple of duration)\n    http://<server>/<proxy>/dur_dt/... will set the AET as well (ut+dt)\n    http://<server>/<proxy>/dur_dt1/dur_dt2/ will set the AET and then updated it 2*minimumUpdatePeriod before the first has duration has been reached\n\nThe minimumUpdatePeriod is set to 1min by default in this mode.\n\nOne can also make the initialization segments available earlier than AST, by specifying init_ot where ot is an offset time in seconds.\n\nAn example\n\n    http://<server>/<proxy>/start_1370809900/dur_1800/dur_300/init_10800/testpic_2s/Manifest.mpd\n\nwill set the availabilityStartTime to `2013-06-09T20:31:40 (UTC)`, and set the availabilityEndTime to\n`013-06-09T21:01:40`, and the update it to  `2013-06-09T21:06:40`. The initialization segments are set to be available 3 hours in advance.\n\nThe last media segments in a timelimited session, (with duration) will have the `lmsg` compatibility brand set,\nto signal that they are last and that there are no more segments to fetch.\n\nNote that one can influence the\n`minimumUpdatePeriod`by the parameter `mup_x` in the path and `timeShiftBufferDepth`  by the parameter `tsbd_x`. Here `x` is the value in seconds.\n\nToo facilitate the creation of URLs for timelimited content, there is an online link generator [urlgen.html](urlgen.html).\nThere is also a command-line tool written in Python [generate_dashif_url.py](generate_dashif_url).\n\nDynamic MPD with static URLs\n-----------------------------\nTo allow for testing of dynamic MPD updates without the need to construct a time-specific MPD, the following scheme is supported:\n\n    http://<server>/<proxy>/modulo_x/<content>/<mpd>\n\nHere, `modulo_x` denotes that the content is available module `x` minutes,\nthe `availabilityStartTime` and the `mediaPresentationDuration` vary in an `x`-minute periodic pattern.\nThe number `x` must be a divisor of 60, i.e. on of 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60.\nFor example, if `x=10`, the following happens (mpd = mediaPresentationDuration, mup=minimumUpdatePeriod):\n\n    hh:00:00-hh:00:59          ast = hh:00:00 mpd = 120s mup = 30s\n    hh:01:00-hh:02:59          ast = hh:00:00 mpd = 240s\n    hh:03:00-hh:04:59          ast = hh:00:00 mpd = 360s\n    hh:05:00-hh:08:59          ast = hh:00:00 mpd = 480s\n    hh:09:00-hh:10:59          ast = hh:10:00 mpd = 120s\n\nIn other words:\n\n    mup = 5% of the interval\n    0-10% of the interval, the mpd=20% of interval\n    10-30% of the interval, the mpd=40% of the interval\n    30-50% of the interval, the mpd=60% of the interval\n    50-90% of the interval, the mpd=80% of the interval\n    90-100% of the interval, the mpd=20% of the next interval\n\nThus, beyond the media session getting longer and longer during the first 50% of the session,\nfrom 80-90% of the interval, the MPD will describe an expired session, and\nfrom 90-100% of the interval, the MPD will describe a future session.\n\nMultiple periods\n----------------\nMultiple periods are generated by specifying `periods_n` which results in the following:\n\n* n = 0  One period but it starts 1000h after AST, so Period@start and presentatimeOffset are non-zero\n* n > 0  n periods per hour (n = 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60) and\n\n`minimumUpdatePeriod` adjusted to be 5s less than half the period duration. The number of previous periods presented\ndepends on the `timeShiftBufferDepth`\n\nThe `presentationTimeOffset` is signalled in the `SegmentTemplate`. By specifying the option `/peroff_1`,\nthe `PTO` is instead signaled in a `SegmentBase` element in top level of the `Period`.\n\nAd insertion\n------------\nFor testing of App-based ad-insertion, the server can add SCTE35 Splice Insert signals for one-three 10s ad insertions per minute.\nTurn this on by specifying scte35_<n> where <n> is 1,2, or 3 in the path before the content.\nThe ad timing is the following\n\n* 1 ad per minute, start 10s past full minute\n* 2 ads per minute, start at 10s and 40s past full minute\n* 3 ads per minute, start at 10s, 30s, and 50s past full minute\n\nThe presence of such an event-stream is indicated in the manifest.\n\nUTCTiming\n---------\nBy specifying utc_head, utc_direct or a combination like utc_direct-head extra information will be added in the MPD\nto provide the timing information. This is used by the dash.js to get a shorter startup time.\n\nMultiplexed Content\n-------------------\nFor eMBMS, better robustness can be achieved by multiplexing audio and video segments.\nThis can be done automatically by the server. It happens if the path to a segment has two underscores in the\nnext to last path component, like `.../V1__A1/123.m4s`. In this case the two segments `V1/123.m4s` and `V2/123.m4s` are fetched and multiplexed.\nThe corresponding thing happens for the init segments. For this to work, the MPD must be manually changed to have\na multiplexed representation.\n\nHow it works\n------------\nThe module is stateless, and uses the URL to find out what content to serve.\nThe content must have an MPD with extension .mpd, initialization segments with extension .mp4 and\nmedia segments with extension .m4s. Depending on the extension, the server will deliver read the\ncorresponding data from the VoD content and modify it. The modifications to the various\ndata server are:\n\n*MPD file:*\n\n    @MPD level\n        set type dynamic\n        set publishTime /* Configurable in code */\n        set timeShiftBufferDepth\n        set availabilityStartTime\n        set minimumUpdatePeriod\n        set maxSegmentDuration\n        set mediaPresentationDuration if time-limited\n        set availabilityEndTime if time-limited\n        set startNumber (depending on snr_ parameter. Default is 0).\n\n    @Period level\n        set start\n        set periodname\n\n    @BaseURL\n        adding BaseURL if not present, or modifying if present\n\n    @SegmentTemplate level\n        set startNumber\n        set presentationTimeOffset if needed\n\n*Initialization segments:*\n\n        No change (actually setting duration to 0, but it should already be 0)\n\n*Media segments:*\n\n    Mapped from live number to VoD number and multiplexed if needed\n    sequenceNumber updated to be continuous (and identical to segment number)\n    earliest presentation time in tfdt is changed to be continuously grown with start at epoch.\n\n\nOur basic service is a 24/7 service with no updates to the MPD. To facilitate calculations\nwe have chosen the epoch time to be the the anchor for calculations. Our default is:\n\n        startNumber = 0\n        availabilityStartTime = epochStart (Jan. 1 1970)\n        minimumUpdatePeriod = 100Y\n        period start = PT0s\n        presentationTimeOffset = 0\n\nThe availabilityStartTime tells when the initialization segments are available.\nThe first segments should be available one segmentDuration later.\n\nThe latest available segment number can be then be calculated as\n\n        latestSegmentNumber = (now - availabilityStartTime - duration)/duration + startNumber\n\nThe server makes sure that segments are only available from their startTime and for a period\ncorresponding to the timeShiftBufferDepth (the default is 5 min).\n\nThe media timeline shall be synchronized with the MPD. Thus, at the start of a period,\nthe offset of the presentationTime in the media segments should be equal to the period start time or rather\n\n    MediaTimeAtPeriodStart = AST + Period@Start - presentationTimeOffset\n\nWe fulfill this by having Period@start = 0 and presentationTimeOffset = 0, and relating the media timeline to AST.\nHowever, when periods do not start at AST, we must adjust the presentationTimeOffset to be equal to the Period@start.\n\nSome examples of this are the modifiers:\n\n    /periods_0 - one period that starts 1000hours after AST\n    /periods_n - multiple periods (n per hour)\n    /periods_0/peroff_1 - one period but presentationTimeOffset signaled in SegmentBase at Period level\n    /periods_n/peroff_1 - similar to /periods_n but SegmentBase used for presentationTimeOffset\n\nIn addition, one can turn on signalling of continuous periods, but adding the flag /continuous_1/`.\n\n## Changelog\n2.0.2 - May 17 2022: Fix EventStream/Event (Issue #105 & #109). Update vodanalyzer to Python 3\n2.0.1 - May 24 2020: Fixed https detection (Issue #97)\n2.0.0 - May 18 2020: Changed to Python3. Integrated low-latencu chunked mode triggered by chunkdur and ato parameters.\n1.7.0 - Dec. 12 2019: Added two more UTCTiming modes, new mode\nsegtimelineloss, query-strings are neglected, possible session time limit and\nid via redirect, fixed bug in segmenttimeline wraparound\n1.6.0 - Dec. 18, 2018: Support for SegmentTimeline with Number, added suggestedPresentationDelay, propagates default-sample-duration from trex and tfhd, and can now generate sidx boxes.\n1.5.1 - June 3, 2018: Fix: Removed timeShiftBufferDepth in start-over case.\n1.5 - May 17, 2018: Added support for thumbnails and start-over use case.\n* 1.4 - Sep. 29 2016: Added support for SegmentTimeline manifests, xlink periods for ad insertion, ntp and sntp UTC timing, early-terminated periods, availabilityTimeOffset, and MPD callback.\n* 1.3 - Oct. 13, 2015: Added support for continuous periods (continuous_1) and https protocol fo`r BaseURL & UTCTiming. Moved some configuration to mod_wsgi. Also made the stand-alone wsgi server much better.\n* 1.2 - Aug. 18, 2015: Added support for live subtitles in TTML format. Beyond segment renumbering, the content will also be changed. A tool for generating a sequence of such segments is also provided. Support for choosing the starNr. Added support for running using mod_wsgi and not only mod_python.\n* 1.1 - Jun. 2, 2015: Added snr_ option to control startNumber in manifest. Fixed some bugs with availabilityStartTime and PTO._\n* 1.0 - May 7, 2015: First public release. Available as http://vm2.dashif.org/livesim/\n* - Changed init segment durations to 0.\n* 0.9.9 - Apr. 29, 2015: First commit to DASH-IF/live-source-simulator Github project.\n\nThe following is the change-log for the code as internal MobiTV code.\n\n* 0.9.5 - Apr. 13, 2015: Support for specifying UTCTiming methods (head or direct)\n* 0.9.0 - Mar. 16, 2015: Added option of scte_35 signals 1, 2, or 3 times a minute, by specifying scte35_2 as option.\n* - Changed duration in init segment to maxint (only 1's instead of 0) since the duration is unknown for live.\n* 0.8.6 - Oct. 14, 2014: Added possibility of multiple periods and period not starting at AST.\n* 0.8.5 - Mar. 4, 2014: Add presentationTimeOffset when AST is not start of epoch.\n* 0.8.4 - Feb. 18, 2014: Corrected tfdt timing. Can now specify all\\_1 as option to avoid timing checks.\n* 0.8.3 - Feb. 13, 2014: The 404 responses do now include the a message of why content is not available including timing issues.\n* 0.8.2 - Feb. 11, 2014: Fixed bug in BaseURL. Added error_logging for too early and too late segments.\n* 0.8.1 - Jan. 28, 2014: Added modulo period\n* 0.8.0 - Jan. 27, 2014: Supports multiplexing and aligned with DASH-IF contributed server with some extra functionality\n* 0.6.8 - Oct. 30, 2013: One can now set another value for the availabilityStartTime for the bdash server.\n* 0.6.7 - Sep. 30, 2013: Bugfixes for old namespace, range and non-existing segments.\n* 0.6.6 - Sep. 27, 2013: Configurable to remove publishTime and substitute old namespace\n* 0.6.5 - Sep. 20, 2013: Fixed byterange to handle open intervals and return 206.\n* 0.6.4 - Sep. 16, 2013: Now uses tfdt for sync and removes sidx.\n* 0.6.3 - Aug. 30, 2013: Added support for byte-range requests\n* 0.6.2 - Aug. 23, 2013: Added support for additional directory structure for languages\n* 0.6.1 - July 23, 2013: Added Z for GMT timezone in all dates in the MPD.\n* 0.6 - June 5, 2013: Added support for events and other time-limited sessions.\n\n[testpic_2s_base]: http://vm2.dashif.org/livesim/testpic_2s/Manifest.mpd \"Live simulator infinite clock source.\"\n[dashif_player]: http://dashif.org/reference/players/javascript/1.3.0/samples/dash-if-reference-player/index.html?url=http://vm2.dashif.org/livesim/testpic_2s/Manifest.mpd \"DASH-IF Reference Player\"\n"
  },
  {
    "path": "run_tests.sh",
    "content": "python3 -m unittest discover\n"
  },
  {
    "path": "setup/dash.conf",
    "content": "<Location /dash>\n\n    Header set Access-Control-Allow-Headers \"origin,range\"\n    Header set Access-Control-Expose-Headers \"Server,range, Date\"\n    Header set Access-Control-Allow-Methods \"GET, HEAD, OPTIONS\"\n    Header set Access-Control-Allow-Origin \"*\"\n</Location>\n"
  },
  {
    "path": "setup/installation.mdown",
    "content": "DASH-IF live source simulator installation\n-------------------------------\n\nThe DASH live source simulator us using the wsgi HTTP API.\nIt is recommended to use Apache with mod_wsgi, and that is how the https://livesim.dashif.org server is run.\nHowever, wsgi is cross-platform and should work with nginx as well.\nFor local testing, it is also possible to run the wsgi server itself by calling the script `tools/run_wsgi_server.sh`.\n\n### Requirements:\nPython >= 3.6, Apache2 with mod_wsgi(can also be run without Apache, or with nginx).\n\n### Configuration for server static files (VoD mode)\n\nThe VoD content (in live profile) that serves as raw content for live should typically be as maps under\n\n  /var/www/html/dash/vod/\n\nThe directory is specified as `CONTENT_ROOT` to the simulator.\n\nExample content that can be used for both VoD and live streaming is available as\n\n    https://livesim.dashif.org/dash/vod/testpic_2s.tar\n    https://livesim.dashif.org/dash/vod/testpic4_8s.tar\n\nThe main issue for browser players like dash.js is typically CORS.\nFor serving the VoD files using Apache2 from `/var/www/html/dash/vod` it is recommended to add the file\ndash.conf to the Apache2 configuration.\nThe location depends on distribution, but in CentOS it is `/etc/httpd/conf.d/dash.conf`.\n\n### Setup of simulated live streaming from Apache2 with mod_wsgi\nThis is the recommended way to run on a public server. For testing, it may easier to run a local server, see below.\nHow mod_wsgi is installed depends on the Linux distribution.\n\nThe mod_wsgi configuration goes into the configuration directory (for CentOS)\n\n  /etc/httpd/conf.d/mod_wsgi/dashlivesim.conf\n\nor something similar on other Linux distributions.\n\nAs seen in the example file provided in this directory, `VOD_CONF_DIR` and `CONTENT_ROOT` must be set up,\nand the source code tree `dashlivesim` must be found by the `WSGIPythonPath` and `WSGIScriptAlias`must point to\n`mod_wsgi/mod_dashlivesim.py` must be specified.\n\nTo install the actual source code, get it from github and copy the `dashlivesim` directory recursively into\n`/usr/local/bin/mod_wsgi/`.\n\nFinally, the configuration files must be installed in `/var/www/html/livesim_vod_configs` or whatever `VOD_CONF_DIR`\npoints at.\n\n### Setup for a locl wsgi server\nTo run a local wsgi http server use the script `tools/run_wsgi_server`. The `vod_config` and `content_root` directories need to specified on the command line.\n\n### Configuration of live material\n\nFor each simulated live source directory containing manifest files <content>, there must be a configuration\nfile with the corresponding  name <content>.cfg\n\nFor example, for testpic_2s there is a file\n\n    <VOD_CONF_DIR>/testpic_2s.cfg\n\nFor files without subtitles, it can be automatically generated by running the tool\n\n    tools/run_vodanalyzer.sh\n\nThis runs the Python script `dashlivesim.vodanalyzer.dashanalyzer` and produces a file `<content>.cfg`.\nYou can then edit the file, to include fewer segments, fewer representations, or more representations if there\nare other manifests that contain other representations. In particular, all subtitle representations must be added by hand.\n\nThe corresponding content resides in\n\n        <CONTENT_DIR>/<content>/\n\n\nIn such a directory there should one or more VoD MPDs and associated media files.\nNote that the file extensions are critical, but the base names not.\n\n        [contentName]\n        ->  [Manifest].mpd\n        ->  [rep1]\n            -> [init].mp4\n            -> [seqNr].m4s\n        -> [rep2]\n            ...\n\nSample content and configuration can be found at `https://livesim.dashif.org/dash/`.\nThe configurations can be copied from `https://livesim.dashif.org/dash/vod_configs/`.\n\n### UTCTiming Head mode\nFor UTCTiming head mode to work, there must be file accessible via http://<server>/dash/time.txt``.\nThe content is not relevant.\nThe CORS support for the header Date must be supported.\n\n### Sample content and configurations\nSample content and configuration can be found at `https://livesim.dashif.org/dash/`.\nInstead of downloading individual segments, it is recommended to download the `.tar` files when available.\nThe configurations can be copied from `https://livesim.dashif.org/dash/vod_configs/`."
  },
  {
    "path": "setup/mod_wsgi_dashlivesim.conf",
    "content": "WSGIScriptAlias /livesim /usr/local/bin/mod_wsgi/dashlivesim/mod_wsgi/mod_dashlivesim.py\nWSGIPythonPath /usr/local/bin/mod_wsgi\nsetEnv VOD_CONF_DIR /var/www/html/dash/vod_configs\nsetEnv CONTENT_ROOT /var/www/html/dash/vod\n"
  },
  {
    "path": "tools/run_cc_insert.py",
    "content": "export PYTHONPATH=${PYTHONPATH}:..\npython3 -m dashlivesim.cc_inserter.cc_inserter $@\n"
  },
  {
    "path": "tools/run_stpp_generator.sh",
    "content": "export PYTHONPATH=${PYTHONPATH}:..\npython -m dashlivesim.dashlib.stpp_generator.make_stpp_segments $@\n"
  },
  {
    "path": "tools/run_vodanalyzer.sh",
    "content": "export PYTHONPATH=${PYTHONPATH}:..\npython3 -m dashlivesim.vodanalyzer.dashanalyzer $1\n"
  },
  {
    "path": "tools/run_wsgi_server.sh",
    "content": "# Run a local mod_wsgi server\nexport PYTHONPATH=${PYTHONPATH}:..\npython3 -m dashlivesim.mod_wsgi.mod_dashlivesim $*\n"
  }
]